1 #include "findresultwidget.h"
6 #include "findresultitem.h"
7 #include "findresultmodel.h"
10 FindResultWidget::FindResultWidget(QWidget *)
12 // Create results model
13 resultsModel = new FindResultModel;
16 view = new QTreeView(this);
17 view->setModel(resultsModel);
20 findWidget = new FindWidget(this);
21 connect(findWidget, SIGNAL(nextButtonPressed(QString, bool)), this,
22 SLOT(nextButtonPressed(QString, bool)));
24 QVBoxLayout *mainLayout = new QVBoxLayout;
26 mainLayout->addWidget(view);
27 mainLayout->addWidget(findWidget);
29 setLayout(mainLayout);
32 connect(view->selectionModel(),
33 SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this,
34 SLOT(updateSelection(QItemSelection, QItemSelection)));
36 connect(resultsModel, SIGNAL(layoutChanged()), view, SLOT(expandAll()));
39 void FindResultWidget::addItem(TreeItem *ti)
42 QModelIndex index = view->selectionModel()->currentIndex();
43 // QAbstractItemModel *resultsModel = view->model();
45 if (!resultsModel->insertRow(index.row() + 1, index.parent()))
48 for (int column = 0; column < resultsModel->columnCount(index.parent());
51 resultsModel->index(index.row() + 1, column, index.parent());
52 resultsModel->setData(child, QVariant(ti->getHeadingPlain()),
54 resultsModel->getItem(child)->setOriginal(ti);
59 void FindResultWidget::addItem(const QString &s)
62 QModelIndex index = view->selectionModel()->currentIndex();
64 if (!resultsModel->insertRow(index.row() + 1, index.parent()))
67 for (int column = 0; column < resultsModel->columnCount(index.parent());
70 resultsModel->index(index.row() + 1, column, index.parent());
71 resultsModel->setData(child, QVariant(s), Qt::EditRole);
76 QString FindResultWidget::getFindText() { return findWidget->getFindText(); }
78 FindResultModel *FindResultWidget::getResultModel() { return resultsModel; }
80 void FindResultWidget::popup()
83 parentWidget()->show();
84 findWidget->setFocus();
87 void FindResultWidget::cancelPressed() { emit(hideFindResultWidget()); }
89 void FindResultWidget::nextButtonPressed(QString s, bool searchNotesFlag)
91 emit(findPressed(s, searchNotesFlag));
94 void FindResultWidget::updateSelection(QItemSelection newsel, QItemSelection)
97 foreach (ix, newsel.indexes()) {
99 static_cast<FindResultItem *>(ix.internalPointer());
100 if (fri->getOrgModel() && fri->getOriginalID() > 0) {
101 TreeItem *ti = fri->getOrgModel()->findID(fri->getOriginalID());
103 fri->getOrgModel()->select(ti);
104 int i = fri->getOriginalIndex();
106 emit(noteSelected(resultsModel->getSearchString(), i));
112 void FindResultWidget::setStatus(FindWidget::Status st)
114 findWidget->setStatus(st);