Added "clear" button to filter bar
authorLuciano Montanaro <mikelima@cirulla.net>
Sat, 25 Jun 2011 17:40:42 +0000 (19:40 +0200)
committerLuciano Montanaro <mikelima@cirulla.net>
Sat, 25 Jun 2011 17:40:42 +0000 (19:40 +0200)
Added a "Clear" button (with a big X icon) to the search bar to match
look an behavior of other maemo applications.

application/stationlistview.cpp
application/stationlistview.h
application/stationlistview.ui

index dd916d9..dbc1594 100644 (file)
@@ -44,11 +44,15 @@ StationListView::StationListView(StationListModel *model, QWidget *parent) :
     m_sortingMode(NoSorting)
 
 {
+    ui->setupUi(this);
 #ifdef Q_WS_MAEMO_5
     setAttribute(Qt::WA_Maemo5StackedWindow);
     setAttribute(Qt::WA_Maemo5AutoOrientation);
+    ui->filterClear->setIcon(QIcon::fromTheme("general_close"));
+#else
+    ui->filterClear->setIcon(QIcon::fromTheme("edit-clear"));
 #endif
-    ui->setupUi(this);
+
     viewSelectionGroup->addAction(ui->sortByNameAction);
     viewSelectionGroup->addAction(ui->sortByDistanceAction);
     viewSelectionGroup->addAction(ui->sortRecentFirstAction);
@@ -57,7 +61,7 @@ StationListView::StationListView(StationListModel *model, QWidget *parent) :
     ui->listView->setModel(filterModel);
     ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
     ui->listView->setSelectionMode(QAbstractItemView::SingleSelection);
-    ui->filterEdit->hide();
+    ui->filterFrame->hide();
 
     keyPressForwarder->setTarget(ui->filterEdit);
     ui->listView->installEventFilter(keyPressForwarder);
@@ -66,10 +70,11 @@ StationListView::StationListView(StationListModel *model, QWidget *parent) :
             this, SIGNAL(aboutTriggered()));
     connect(ui->showSettingsAction, SIGNAL(triggered()),
             this, SIGNAL(settingsChangeRequested()));
-    connect(ui->listView,
-            SIGNAL(activated(QModelIndex)), SLOT(showStation(QModelIndex)));
+    connect(ui->listView, SIGNAL(activated(QModelIndex)),
+            SLOT(showStation(QModelIndex)));
     connect(ui->filterEdit, SIGNAL(textChanged(const QString &)),
             SLOT(handleFilterChanges(const QString &)));
+    connect(ui->filterClear, SIGNAL(clicked()), SLOT(handlefilterClearClick()));
     connect(viewSelectionGroup, SIGNAL(triggered(QAction*)),
             SLOT(handleSortingChange(QAction*)));
 
@@ -104,10 +109,11 @@ void StationListView::showStation(const QModelIndex &index)
 void StationListView::handleFilterChanges(const QString &filter)
 {
     if (!filter.isEmpty())
-        ui->filterEdit->show();
+        ui->filterFrame->show();
     else
-        ui->filterEdit->hide();
+        ui->filterFrame->hide();
     filterModel->setFilterFixedString(filter);
+    qDebug() << "Filtering for" << filter;
 }
 
 void StationListView::updatePosition(const QtMobility::QGeoPositionInfo &update)
@@ -172,3 +178,8 @@ StationListView::SortingMode StationListView::sortingMode()
 {
     return m_sortingMode;
 }
+
+void StationListView::handlefilterClearClick()
+{
+    ui->filterEdit->clear();
+}
index 672577e..88c47ca 100644 (file)
@@ -52,7 +52,9 @@ private slots:
     void handleFilterChanges(const QString &filter);
     void handleSortingChange(QAction *action);
 
-private:
+    void handlefilterClearClick();
+
+    private:
     Ui::StationListView *ui;
     QActionGroup *viewSelectionGroup;
     StationListModel *stationListModel;
index ab8b820..b9db599 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>780</width>
-    <height>460</height>
+    <width>778</width>
+    <height>458</height>
    </rect>
   </property>
   <property name="windowTitle">
      <widget class="QListView" name="listView"/>
     </item>
     <item>
-     <widget class="QLineEdit" name="filterEdit"/>
+     <widget class="QFrame" name="filterFrame">
+      <property name="frameShape">
+       <enum>QFrame::NoFrame</enum>
+      </property>
+      <property name="frameShadow">
+       <enum>QFrame::Raised</enum>
+      </property>
+      <property name="lineWidth">
+       <number>0</number>
+      </property>
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <property name="margin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QLineEdit" name="filterEdit">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>1</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="filterClear"/>
+       </item>
+      </layout>
+     </widget>
     </item>
    </layout>
   </widget>
@@ -28,8 +56,8 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>780</width>
-     <height>25</height>
+     <width>778</width>
+     <height>42</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuView">