Mercurial > hg > svgui
diff widgets/TransformFinder.cpp @ 426:6bf3c906b7a5
* Connect up Up and Down arrows in the transform finder
author | Chris Cannam |
---|---|
date | Tue, 30 Sep 2008 10:33:28 +0000 |
parents | 4a5fe5471282 |
children | 4711b400f976 |
line wrap: on
line diff
--- a/widgets/TransformFinder.cpp Mon Sep 29 16:31:49 2008 +0000 +++ b/widgets/TransformFinder.cpp Tue Sep 30 10:33:28 2008 +0000 @@ -28,6 +28,7 @@ #include <QApplication> #include <QDesktopWidget> #include <QTimer> +#include <QAction> TransformFinder::TransformFinder(QWidget *parent) : QDialog(parent), @@ -72,6 +73,16 @@ m_resultsFrame->show(); } + QAction *up = new QAction(tr("Up"), this); + up->setShortcut(tr("Up")); + connect(up, SIGNAL(triggered()), this, SLOT(up())); + addAction(up); + + QAction *down = new QAction(tr("Down"), this); + down->setShortcut(tr("Down")); + connect(down, SIGNAL(triggered()), this, SLOT(down())); + addAction(down); + QDesktopWidget *desktop = QApplication::desktop(); QRect available = desktop->availableGeometry(); @@ -178,14 +189,14 @@ selectedText += tr("<small>%1</small>") .arg(XmlExportable::encodeEntities(desc.longDescription)); - selectedText += tr("<ul><small>"); - selectedText += tr("<li>Plugin type: %1</li>") + selectedText += tr("<br><small>"); + selectedText += tr(" — Plugin type: %1<br>") .arg(XmlExportable::encodeEntities(desc.type)); - selectedText += tr("<li>Category: %1</li>") + selectedText += tr(" — Category: %1<br>") .arg(XmlExportable::encodeEntities(desc.category)); - selectedText += tr("<li>System identifier: %1</li>") + selectedText += tr(" — System identifier: %1") .arg(XmlExportable::encodeEntities(desc.identifier)); - selectedText += tr("</small></ul>"); + selectedText += tr("</small>"); if (i >= m_labels.size()) { SelectableLabel *label = new SelectableLabel(m_resultsFrame); @@ -245,3 +256,36 @@ return m_selectedTransform; } +void +TransformFinder::up() +{ + for (int i = 0; i < m_labels.size(); ++i) { + if (!m_labels[i]->isVisible()) continue; + if (m_labels[i]->objectName() == m_selectedTransform) { + if (i > 0) { + m_labels[i]->setSelected(false); + m_labels[i-1]->setSelected(true); + m_selectedTransform = m_labels[i-1]->objectName(); + } + return; + } + } +} + +void +TransformFinder::down() +{ + for (int i = 0; i < m_labels.size(); ++i) { + if (!m_labels[i]->isVisible()) continue; + if (m_labels[i]->objectName() == m_selectedTransform) { + if (i+1 < m_labels.size() && + m_labels[i+1]->isVisible()) { + m_labels[i]->setSelected(false); + m_labels[i+1]->setSelected(true); + m_selectedTransform = m_labels[i+1]->objectName(); + } + return; + } + } +} +