diff --git a/src/meshlab/additionalgui.cpp b/src/meshlab/additionalgui.cpp index 836238462..7745dab90 100644 --- a/src/meshlab/additionalgui.cpp +++ b/src/meshlab/additionalgui.cpp @@ -792,7 +792,7 @@ bool MLAutoCompleterPopUp::event( QEvent *event ) return QListView::event(event); } -SearchBar::SearchBar(const WordActionsMapAccessor& wm,const int max,QWidget* parent) +SearchMenu::SearchMenu(const WordActionsMapAccessor& wm,const int max,QWidget* parent) :QMenu(parent),searchline(NULL),wama(wm),maxres(max) { searchline = new QLineEdit(this); @@ -802,7 +802,7 @@ SearchBar::SearchBar(const WordActionsMapAccessor& wm,const int max,QWidget* par connect(searchline,SIGNAL(textEdited( const QString&)),this,SLOT(edited( const QString&))); } -void SearchBar::updateResults() +void SearchMenu::updateResults() { try { @@ -826,21 +826,23 @@ void SearchBar::updateResults() } } -void SearchBar::edited( const QString& ) +void SearchMenu::edited( const QString& ) { updateResults(); } -void SearchBar::clearResults() +void SearchMenu::clearResults() { QList actlst = actions(); foreach(QAction* act,actlst) { + //QLineEdit MUST NOT be deleted! if (qobject_cast(act) == 0) removeAction(act); } } +//MyToolButton class has been introduced to overcome the "always on screen small down arrow visualization problem" officially recognized qt bug. MyToolButton::MyToolButton( QWidget * parent /*= 0 */ ) : QToolButton( parent ) { diff --git a/src/meshlab/additionalgui.h b/src/meshlab/additionalgui.h index 8fec4d8ae..166a5855c 100644 --- a/src/meshlab/additionalgui.h +++ b/src/meshlab/additionalgui.h @@ -225,11 +225,11 @@ protected: void paintEvent( QPaintEvent * ); }; -class SearchBar : public QMenu +class SearchMenu : public QMenu { Q_OBJECT public: - SearchBar(const WordActionsMapAccessor& wm,const int max,QWidget* parent); + SearchMenu(const WordActionsMapAccessor& wm,const int max,QWidget* parent); inline void setMaxResultNum(const int max) {maxres = max;}; inline int maxResultNum() const {return maxres;}; void clearResults(); diff --git a/src/meshlab/mainwindow_Init.cpp b/src/meshlab/mainwindow_Init.cpp index 1dca026ab..92a35648b 100644 --- a/src/meshlab/mainwindow_Init.cpp +++ b/src/meshlab/mainwindow_Init.cpp @@ -481,13 +481,10 @@ void MainWindow::createToolBars() MyToolButton* toolb = new MyToolButton(this); toolb->setPopupMode(QToolButton::InstantPopup); toolb->setIcon(QIcon(":/images/search.png")); - searchToolBar->addWidget(toolb); - SearchBar* ser = new SearchBar(wama,10,toolb); + SearchMenu* ser = new SearchMenu(wama,10,toolb); toolb->setMenu(ser); connect(ser,SIGNAL(updatedResults()),toolb,SLOT(tbupdate())); - - //searchToolBar->addAction(searchAct); } @@ -637,27 +634,13 @@ void MainWindow::createMenus() splitMenu = handleMenu->addMenu(tr("&Split")); unSplitMenu = handleMenu->addMenu("&Close"); - wama; + + /////////WordActionsMapAccessor init. Probably should have been done from menu and not from PM. ////////// for(QMap::iterator it = PM.actionFilterMap.begin();it != PM.actionFilterMap.end();++it) { QString tx = it.value()->text() + " " + it.value()->toolTip(); wama.addWordsPerAction(*it.value(),tx); - } - try - { - RankedMatches rm; - int ii = wama.rankedMatchesPerInputString("subdivision Butterfly surface",rm); - if (ii > 0) - { - QList myacts; - rm.getActionsWithNMatches(ii,myacts); - } - } - catch(InvalidInvariantException& e) - { - qDebug() << "WARNING!!!!!!!!!!!!!!!!!!!" << e.what() << "\n"; - } - + } } void MainWindow::fillFilterMenu()