--- 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 <HbView>
-#include <HbMainWindow>
-
#include <HbDataForm>
#include <HbDataFormModel>
#include <HbDataFormModelItem>
#include <HbAction>
-#include <HbPushButton>
#include <HbListWidget>
#include <HbListWidgetItem>
#include <HbDialog>
-#include <HbMenu>
+#include <HbToolBar>
+#include <HbProgressDialog>
#include <QtGui>
#include <QDir>
#include <QFileInfo>
-#include <QProgressBar>
-
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);
+}