diff -r 4f2773374eff -r 4b22a598b890 filebrowser/ui/src/searchview.cpp --- a/filebrowser/ui/src/searchview.cpp Fri May 14 15:53:02 2010 +0300 +++ b/filebrowser/ui/src/searchview.cpp Thu May 27 12:52:19 2010 +0300 @@ -17,62 +17,64 @@ #include "searchview.h" #include "enginewrapper.h" +#include "notifications.h" #include -#include - #include #include #include #include -#include #include #include #include -#include +#include +#include #include #include #include -#include - const QStringList RECURSEMODES = (QStringList() << "Non-recursive" << "Recursive"); +const QString acceptActionText = "Search"; +const QString rejectActionText = "Cancel"; -SearchView::SearchView(HbView &mainView, HbMainWindow &mainWindow, EngineWrapper &engineWrapper) -: mMainWindow(mainWindow), - mMainView(mainView), - mEngineWrapper(engineWrapper), - mAttributes(), - mResults(), - mForm(0), - mSearchFileNameItem(0), - mWildCardItem(0), - mHasString(0), - mRecurse(0), - mMinSize(0), - mMaxSize(0), - mMinDate(0), - mMaxDate(0), - mPath() + +SearchView::SearchView(EngineWrapper &engineWrapper) + : mEngineWrapper(engineWrapper), + mAttributes(), + mResults(), + mForm(0), + mSearchFileNameItem(0), + mWildCardItem(0), + mHasString(0), + mRecurse(0), + mMinSize(0), + mMaxSize(0), + mMinDate(0), + mMaxDate(0), + mPath(), + mProgressDialog(0) { + // Set title and add this view to main window + setTitle("Search"); + + // Override back navigation action + HbAction *leaveViewAction = new HbAction(Hb::BackNaviAction, this); + connect(leaveViewAction, SIGNAL(triggered()), this, SLOT(reject())); + setNavigationAction(leaveViewAction); + + initDataForm(); + createToolbar(); } SearchView::~SearchView() { } -void SearchView::open(const QString &path) -{ - // Remove main view from main window - mMainWindow.removeView(&mMainView); - mMainWindow.addView(this); - // Set title and add this view to main window - setTitle("Search"); - +void SearchView::initDataForm() { mForm = new HbDataForm(/*HbFormView::ModeEdit,*/ this); HbDataFormModel *model = new HbDataFormModel(); - mPath = path; + mSearchFileNameItem = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mSearchFileNameItem->setLabel("Search dir: "); @@ -81,28 +83,25 @@ mHasString = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mHasString->setLabel("Has string: "); - + mRecurse = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem); mRecurse->setLabel("Recurse: "); mRecurse->setContentWidgetData("items", RECURSEMODES); - + mMinSize = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mMinSize->setLabel("Min size: "); - + mMaxSize = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mMaxSize->setLabel("Max size: "); - + mMinDate = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mMinDate->setLabel("Min date: "); mMinDate->setContentWidgetData("text", "01/01/1980"); - + mMaxDate = new HbDataFormModelItem(HbDataFormModelItem::TextItem); mMaxDate->setLabel("Max date: "); mMaxDate->setContentWidgetData("text", "31/12/2060"); - - // load file search attribute values from FB engine: - loadAttributes(); - + model->appendDataFormItem(mSearchFileNameItem); model->appendDataFormItem(mWildCardItem); model->appendDataFormItem(mHasString); @@ -114,82 +113,32 @@ mForm->setModel(model); QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical,this); - - HbPushButton* buttonSearch = new HbPushButton("Search"); - buttonSearch->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed); - connect(buttonSearch, SIGNAL(clicked()), this, SLOT(startFileSearch())); - - HbPushButton* buttonCancel = new HbPushButton("Cancel"); - buttonCancel->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed); - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(backButtonClicked())); - - // Create widget and layout for buttons - QGraphicsWidget *buttonsWidget = new QGraphicsWidget(this); - QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout(buttonsWidget); - - // add buttons to layout - gridLayout->addItem(buttonSearch, 0, 0); - gridLayout->addItem(buttonCancel, 0, 1); - buttonsWidget->setLayout(gridLayout); - // add form and buttons widget to list layout - layout->addItem(mForm); - layout->addItem(buttonsWidget); + layout->addItem(mForm); setLayout(layout); - // about to close connect to go back to file browser view - connect(this, SIGNAL(aboutToClose()), this, SLOT(backButtonClicked())); -} - -void SearchView::backButtonClicked() -{ - mMainWindow.removeView(this); - mForm->deleteLater(); - mForm = 0; - mMainWindow.addView(&mMainView); } -void SearchView::startFileSearch() +void SearchView::createToolbar() { - // save form data values and set them as search attributes into FB engine. - readFormItems(); - mEngineWrapper.setFileSearchAttributes(mAttributes); - - // Create busy indicator widget with label **Searching**. Launch it to screen when - // FB Utils engine started for file search. Hide busy indicator when search completed. - QProgressBar *progressBar = new QProgressBar(); - progressBar->setMaximumHeight(16); - progressBar->setMaximumWidth(200); - progressBar->setTextVisible(false); - progressBar->setMaximum(0); - progressBar->setMinimum(0); - progressBar->setValue(1); + HbToolBar *toolBar = new HbToolBar(this); + HbAction *acceptAction = new HbAction(acceptActionText); + connect(acceptAction, SIGNAL(triggered()), this, SLOT(accept())); + toolBar->addAction(acceptAction); - QWidget *busyIndWidget = new QWidget(); - busyIndWidget->setGeometry(12, 50, 120, 60); - QVBoxLayout *vbl = new QVBoxLayout(busyIndWidget); - QLabel *label = new QLabel("**Searching**"); - vbl->addWidget(label); - vbl->addWidget(progressBar); - QHBoxLayout *hbl1 = new QHBoxLayout(); - vbl->addLayout(hbl1); - busyIndWidget->show(); - qApp->processEvents(); - bool err = mEngineWrapper.searchFiles(); - busyIndWidget->hide(); + HbAction *rejectAction = new HbAction(rejectActionText); + connect(rejectAction, SIGNAL(triggered()), this, SLOT(reject())); + toolBar->addAction(rejectAction); - // show results of file search: - mResults = mEngineWrapper.getSearchResults(); - fileSearchResults(); + setToolBar(toolBar); } - void SearchView::loadAttributes() { // get settings from engine; mAttributes = mEngineWrapper.getFileSearchAttributes(); - + // set data: mSearchFileNameItem->setContentWidgetData("text", mPath); - mSearchFileNameItem->setContentWidgetData("text", mAttributes.mSearchDir); +// mSearchFileNameItem->setContentWidgetData("text", mAttributes.mSearchDir); mWildCardItem->setContentWidgetData("text",mAttributes.mWildCards); mHasString->setContentWidgetData("text", mAttributes.mTextInFile); @@ -202,23 +151,6 @@ mMaxDate->setContentWidgetData("text", mAttributes.mMaxDate); } - -void SearchView::fileSearchResults() -{ - HbDialog *dialog = new HbDialog(); - dialog->setDismissPolicy(HbPopup::TapOutside); - dialog->setTimeout(HbPopup::NoTimeout); - - // Create a list and some simple content for it - HbListWidget *resultsList = new HbListWidget(); - resultsList->addItem(QString("%1 entries found").arg(mResults.mNumberOfFoundFiles)); - for (int i = 0; i < mResults.mFoundFilesList->size(); i++) { - resultsList->addItem(QString("%1").arg(mResults.mFoundFilesList->at(i))); - } - dialog->setContentWidget(resultsList); - dialog->open(); -} - /** * Reads form items and saves values of them into member variable mAttributes */ @@ -233,3 +165,40 @@ mAttributes.mMaxDate = mMaxDate->contentWidgetData("text").toDate(); mAttributes.mRecurse = mRecurse->contentWidgetData("selected").toBool(); } + +void SearchView::open(const QString &path) +{ + mPath = path; + // load file search attribute values from FB engine: + loadAttributes(); +} + +void SearchView::startFileSearch() +{ + // save form data values and set them as search attributes into FB engine. + readFormItems(); + mEngineWrapper.setFileSearchAttributes(mAttributes); + + bool err = mEngineWrapper.searchFiles(); + + // show results of file search: + mResults = mEngineWrapper.getSearchResults(); + fileSearchResults(); +} + +void SearchView::fileSearchResults() +{ + QString noteMsg("%1 entries found"); + Notifications::showInformationNote(noteMsg.arg(mEngineWrapper.itemCount()), QString("")); +} + +void SearchView::accept() +{ + startFileSearch(); + emit finished(true); +} + +void SearchView::reject() +{ + emit finished(false); +}