TraceSelector: Add ability to add items with return
It's now possible to add items by selecting them in the AvailableTree and pressing return to add them to the SelectedTree.
This commit is contained in:
@@ -73,6 +73,34 @@ QStringList TraceAvailableTree::mimeTypes() const
|
||||
return types;
|
||||
}
|
||||
|
||||
void TraceAvailableTree::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if(event->key() == Qt::Key_Return)
|
||||
{
|
||||
for (unsigned int i = 0; i < topLevelItemCount(); i++)
|
||||
{
|
||||
auto currentItem = static_cast<TraceSelectorTreeItem *>(topLevelItem(i));
|
||||
|
||||
if (currentItem->isSelected())
|
||||
{
|
||||
auto clonedItem = new TraceSelectorTreeItem(*currentItem);
|
||||
|
||||
for (int i = 0; i < currentItem->childCount(); i++)
|
||||
{
|
||||
auto child = static_cast<TraceSelectorTreeItem *>(currentItem->child(i));
|
||||
clonedItem->addChild(new TraceSelectorTreeItem(*child));
|
||||
}
|
||||
|
||||
selectedTree->addTopLevelItem(clonedItem);
|
||||
}
|
||||
}
|
||||
|
||||
Q_EMIT selectedTree->itemsChanged();
|
||||
}
|
||||
|
||||
QTreeWidget::keyPressEvent(event);
|
||||
}
|
||||
|
||||
TraceSelectedTree::TraceSelectedTree(QWidget *parent) :
|
||||
QTreeWidget(parent)
|
||||
{
|
||||
@@ -201,8 +229,8 @@ void TraceSelectedTree::keyPressEvent(QKeyEvent *event)
|
||||
|
||||
TraceSelector::TraceSelector(QWidget *parent) :
|
||||
QWidget(parent), layout(new QVBoxLayout(this)),
|
||||
availableTree(new TraceAvailableTree(this)),
|
||||
selectedTree(new TraceSelectedTree(this))
|
||||
selectedTree(new TraceSelectedTree(this)),
|
||||
availableTree(new TraceAvailableTree(selectedTree, this))
|
||||
{
|
||||
QLabel *descriptionLabel = new QLabel();
|
||||
descriptionLabel->setText(
|
||||
|
||||
@@ -43,17 +43,24 @@
|
||||
|
||||
class TracePlot;
|
||||
class TracePlotLine;
|
||||
class TraceSelectedTree;
|
||||
class QVBoxLayout;
|
||||
|
||||
class TraceAvailableTree : public QTreeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit TraceAvailableTree(QWidget *parent = nullptr) : QTreeWidget(parent) {}
|
||||
explicit TraceAvailableTree(TraceSelectedTree* selectedTree, QWidget *parent = nullptr) :
|
||||
QTreeWidget(parent), selectedTree(selectedTree) {}
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *event) override;
|
||||
|
||||
QMimeData *mimeData(const QList<QTreeWidgetItem *> items) const override;
|
||||
QStringList mimeTypes() const override;
|
||||
|
||||
private:
|
||||
TraceSelectedTree *selectedTree;
|
||||
};
|
||||
|
||||
class TraceSelectedTree : public QTreeWidget
|
||||
@@ -123,8 +130,8 @@ private:
|
||||
|
||||
TracePlot *traceplot;
|
||||
QVBoxLayout *layout;
|
||||
TraceAvailableTree *availableTree;
|
||||
TraceSelectedTree *selectedTree;
|
||||
TraceAvailableTree *availableTree;
|
||||
};
|
||||
|
||||
#endif //TRACESELECTOR_H
|
||||
|
||||
Reference in New Issue
Block a user