// A tag was selected so a new FilterCriteria is created and the // filtered table will display the results. void NTagView::buildSelection() { QLOG_TRACE() << "Inside NTagView::buildSelection()"; QList<QTreeWidgetItem*> selectedItems = this->selectedItems(); if (selectedItems.size() > 0 && selectedItems[0]->data(0,Qt::UserRole) == "root") return; // First, find out if we're already viewing history. If we are we // chop off the end of the history & start a new one if (global.filterPosition+1 < global.filterCriteria.size()) { while (global.filterPosition+1 < global.filterCriteria.size()) global.filterCriteria.removeLast(); } FilterCriteria *oldFilter = global.filterCriteria[global.filterPosition]; filterPosition++; FilterCriteria *newFilter = new FilterCriteria(); if (selectedItems.size() > 0) { newFilter->setTags(selectedItems); } newFilter->resetAttribute = true; newFilter->resetDeletedOnly = true; newFilter->resetSavedSearch = true; newFilter->resetFavorite = true; newFilter->resetTags = true; newFilter->resetNotebook=true; if (oldFilter!= NULL && oldFilter->isNotebookSet()) { QTreeWidgetItem *notebook =oldFilter->getNotebook(); if (notebook!= NULL) newFilter->setNotebook(*notebook); } global.filterCriteria.push_back(newFilter); global.filterPosition++; emit updateSelectionRequested(); QLOG_TRACE() << "Leaving NTagView::buildSelection()"; }
//************************************************************* // This function is called from the main NixNote class. // it will reset the items which are selected based upon // what the user did somewhere else (outside this widget). //************************************************************* void NNotebookView::updateSelection() { blockSignals(true); FilterCriteria *criteria = global.filterCriteria[global.filterPosition]; if (global.filterPosition != filterPosition) { QList<QTreeWidgetItem*> selectedItems = this->selectedItems(); for (int i=0; i<selectedItems.size() && criteria->resetNotebook; i++) { selectedItems[i]->setSelected(false); } if (criteria->isNotebookSet()) { criteria->getNotebook()->setSelected(true); } } filterPosition = global.filterPosition; if (selectedItems().size() == 0) root->setSelected(false); blockSignals(false); }