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);
22 findWidget, SIGNAL (nextButton (QString) ),
23 this, SLOT (nextButtonPressed (QString) ) );
26 QVBoxLayout* mainLayout = new QVBoxLayout;
28 mainLayout->addWidget(view);
29 mainLayout->addWidget(findWidget);
31 setLayout (mainLayout);
34 connect (view->selectionModel(),SIGNAL (selectionChanged (QItemSelection,QItemSelection)),
35 this, SLOT (updateSelection (QItemSelection,QItemSelection)));
37 connect (resultsModel, SIGNAL(layoutChanged() ), view, SLOT (expandAll() ));
40 void FindResultWidget::addItem (TreeItem *ti)
44 QModelIndex index = view->selectionModel()->currentIndex();
45 //QAbstractItemModel *resultsModel = view->model();
47 if (!resultsModel->insertRow(index.row()+1, index.parent()))
50 for (int column = 0; column < resultsModel->columnCount(index.parent()); ++column) {
51 QModelIndex child = resultsModel->index(index.row()+1, column, index.parent());
52 resultsModel->setData(child, QVariant(ti->getHeadingPlain()), Qt::EditRole);
53 resultsModel->getItem(child)->setOriginal (ti);
58 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()); ++column) {
68 QModelIndex child = resultsModel->index(index.row()+1, column, index.parent());
69 resultsModel->setData(child, QVariant(s), Qt::EditRole);
74 QString FindResultWidget::getFindText()
76 return findWidget->getFindText();
79 FindResultModel* FindResultWidget::getResultModel()
84 void FindResultWidget::popup()
87 parentWidget()->show();
88 findWidget->setFocus();
91 void FindResultWidget::cancelPressed()
93 emit (hideFindResultWidget() );
96 void FindResultWidget::nextButtonPressed(QString s)
98 emit (findPressed(s) );
101 void FindResultWidget::updateSelection(QItemSelection newsel,QItemSelection)
104 foreach (ix,newsel.indexes() )
106 FindResultItem *fri= static_cast<FindResultItem*>(ix.internalPointer());
107 if (fri->getOrgModel() && fri->getOriginalID()>0)
109 TreeItem *ti=fri->getOrgModel()->findID(fri->getOriginalID() );
112 fri->getOrgModel()->select (ti);
113 int i=fri->getOriginalIndex();
114 if (i>=0) emit (noteSelected (resultsModel->getSearchString(),i));
120 void FindResultWidget::setStatus (FindWidget::Status st)
122 findWidget->setStatus (st);