'search' tab functionality moved to 'tabcontainer'
authorpavelpa <pavelpa@localhost>
Wed, 27 Jan 2010 08:07:41 +0000 (08:07 +0000)
committerpavelpa <pavelpa@localhost>
Wed, 27 Jan 2010 08:07:41 +0000 (08:07 +0000)
src/gui/mainwindow.cpp
src/gui/mainwindow.h
src/gui/mainwindow.ui
src/gui/tabcontainer.cpp
src/gui/tabcontainer.h
src/gui/tabcontainer.ui

index 6ea78512456913174de7ab412182865a128b3b3c..660de2b405ee0dd4e26d4cb7b6d68ad60a5b282f 100644 (file)
@@ -48,50 +48,34 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent)
     tracksTabContainer->setType(TabContainer::EContainerTypeTracks);
     nowTabContainer->setType(TabContainer::EContainerTypeNow);
     roomsTabContainer->setType(TabContainer::EContainerTypeRooms);
+    searchTabContainer->setType(TabContainer::EContainerTypeSearch);
 
     connect(importScheduleWidget, SIGNAL(scheduleImported(int)), SLOT(scheduleImported(int)));
 
-    connect(searchDayNavigator, SIGNAL(dateChanged(const QDate &)), SLOT(updateSearchView(const QDate &)));
-
-    // SEARCH EVENTS View
-       searchTreeView->setHeaderHidden(true);
-       searchTreeView->setRootIsDecorated(false);
-       searchTreeView->setIndentation(0);
-       searchTreeView->setAnimated(true);
-       searchTreeView->setModel(new EventModel());
-       searchTreeView->setItemDelegate(new Delegate(searchTreeView));
-
     // event details have changed
     connect(dayTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
     connect(favsTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
     connect(favsTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
     connect(roomsTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
     connect(nowTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
+    connect(searchTabContainer, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
 
-    connect(searchTreeView, SIGNAL(eventHasChanged(int)), SLOT(eventHasChanged(int)));
-
-    // event clicked
-    connect(searchTreeView, SIGNAL(clicked(const QModelIndex &)), SLOT(itemClicked(const QModelIndex &)));
-
-    // event search button clicked
-    connect(searchButton, SIGNAL(clicked()), SLOT(searchClicked()));
-    connect(searchAgainButton, SIGNAL(clicked()), SLOT(searchAgainClicked()));
 
     // event conference map button clicked
     connect(showMapButton, SIGNAL(clicked()), SLOT(conferenceMapClicked()));
-    //
+
     connect(tabWidget, SIGNAL(infoIconClicked()), SLOT(aboutApp()));
 
     if(Conference::getAll().count()) // no conference(s) in the DB
     {
-        QDate aStartDate = Conference::getById(AppSettings::confId()).start();
-        QDate aEndDate = Conference::getById(AppSettings::confId()).end();
-        searchDayNavigator->setDates(aStartDate, aEndDate);
+        QDate startDate = Conference::getById(AppSettings::confId()).start();
+        QDate endDate = Conference::getById(AppSettings::confId()).end();
         //
-        dayTabContainer->setDates(aStartDate, aEndDate);
-        tracksTabContainer->setDates(aStartDate, aEndDate);
-        roomsTabContainer->setDates(aStartDate, aEndDate);
-        favsTabContainer->setDates(aStartDate, aEndDate);
+        dayTabContainer->setDates(startDate, endDate);
+        tracksTabContainer->setDates(startDate, endDate);
+        roomsTabContainer->setDates(startDate, endDate);
+        favsTabContainer->setDates(startDate, endDate);
+        searchTabContainer->setDates(startDate, endDate);
         //
         conferenceTitle->setText(Conference::getById(AppSettings::confId()).title());
         conferenceSubtitle->setText(Conference::getById(AppSettings::confId()).subtitle());
@@ -102,10 +86,6 @@ MainWindow::MainWindow(int aEventId, QWidget *aParent)
                 Conference::getById(AppSettings::confId()).end().toString("dd-MM-yyyy"));
     }
 
-    searchTreeView->hide();
-    searchVerticalWidget->hide();
-    searchHead->show();
-
     // open dialog for given Event ID
     // this is used in case Alarm Dialog request application to start
     if(aEventId)
@@ -152,58 +132,6 @@ void MainWindow::aboutApp()
     dialog.exec();
 }
 
-void MainWindow::updateSearchView(const QDate &aDate)
-{
-    qDebug() << "MainWindow::updateSearchView(), aDate: " << aDate.toString() ;
-    searchTreeView->reset();
-    int eventsCount = static_cast<EventModel*>(searchTreeView->model())->loadSearchResultEvents(aDate,AppSettings::confId());
-    if( eventsCount ||
-            searchDayNavigator->getCurrentDate() != Conference::getById(AppSettings::confId()).start() ){
-        searchVerticalWidget->show();
-        //searchAgainButton->show();
-        searchTreeView->show();
-        searchHead->hide();
-    }
-    else{
-        searchTreeView->hide();
-        searchVerticalWidget->hide();
-        searchHead->show();
-    }
-}
-
-void MainWindow::searchClicked()
-{
-    QHash<QString,QString> columns;
-
-    if( searchTitle->isChecked() )
-        columns.insertMulti("EVENT", "title");
-    if( searchAbstract->isChecked() )
-        columns.insertMulti("EVENT", "abstract");
-    if( searchTag->isChecked() )
-        columns.insertMulti("EVENT", "tag");
-    if( searchSpeaker->isChecked() )
-        columns["PERSON"] = "name";
-    if( searchRoom->isChecked() )
-        columns["ROOM"] = "name";
-
-    QString keyword = searchEdit->text().replace( QString("%"), QString("\\%") );
-    qDebug() << "\nKeyword to search: " << keyword;
-    SqlEngine::searchEvent( AppSettings::confId(), columns, keyword );
-
-    QDate aStartDate = Conference::getById(AppSettings::confId()).start();
-    QDate aEndDate = Conference::getById(AppSettings::confId()).end();
-    searchDayNavigator->setDates(aStartDate, aEndDate);
-    updateSearchView( Conference::getById(AppSettings::confId()).start() );
-}
-
-void MainWindow::searchAgainClicked()
-{
-    searchHead->show();
-    //searchAgainButton->hide();
-    searchVerticalWidget->hide();
-    searchTreeView->hide();
-}
-
 void MainWindow::conferenceMapClicked()
 {
     QString mapPath = QString(":/maps/campus.png");
@@ -224,7 +152,6 @@ void MainWindow::eventHasChanged(int aEventId)
     tracksTabContainer->updateTreeViewModel(aEventId);
     nowTabContainer->updateTreeViewModel(aEventId);
     roomsTabContainer->updateTreeViewModel(aEventId);
-
-    static_cast<EventModel*>(searchTreeView->model())->updateModel(aEventId);
+    searchTabContainer->updateTreeViewModel(aEventId);
 }
 
index 2e82a7cdde99e7e7e5866a4d9738e62a71be4241..0c40681b1766bd86c3312a49ce29fef29b925792 100644 (file)
@@ -16,12 +16,9 @@ public:
 private slots:
     void scheduleImported(int aConfId);
     void aboutApp();
-    void updateSearchView(const QDate &aDate);
-    void searchClicked();
-       void searchAgainClicked();
     void conferenceMapClicked();
     void eventHasChanged(int aEventId);
 };
 
-#endif // MAINWINDOW_H
+#endif /* MAINWINDOW_H */
 
index 7f25a2fa7cd4c304d0afada14e60a73148b20c41..63e4e05dc25bb82d2163924bdfb4d99ccd913875 100644 (file)
        </attribute>
        <layout class="QHBoxLayout" name="horizontalLayout_1" >
         <item>
-         <widget class="QWidget" native="1" name="searchVerticalWidget" >
-          <property name="enabled" >
-           <bool>true</bool>
-          </property>
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <layout class="QVBoxLayout" name="searchDayNavigatorVerticalLayout" >
-           <property name="margin" >
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QToolButton" name="searchAgainButton" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="toolTip" >
-              <string>Search again</string>
-             </property>
-             <property name="text" >
-              <string>S</string>
-             </property>
-             <property name="icon" >
-              <iconset resource="../icons.qrc" >
-               <normaloff>:/icons/search.png</normaloff>:/icons/search.png</iconset>
-             </property>
-             <property name="iconSize" >
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="toolButtonStyle" >
-              <enum>Qt::ToolButtonIconOnly</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="DayNavigatorWidget" native="1" name="searchDayNavigator" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="maximumSize" >
-              <size>
-               <width>16777215</width>
-               <height>16777215</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item>
-         <layout class="QVBoxLayout" name="verticalLayout_3" >
-          <item>
-           <widget class="QWidget" native="1" name="searchHead" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="maximumSize" >
-             <size>
-              <width>16777215</width>
-              <height>16777215</height>
-             </size>
-            </property>
-            <layout class="QGridLayout" name="searchHeadLayout" >
-             <property name="sizeConstraint" >
-              <enum>QLayout::SetDefaultConstraint</enum>
-             </property>
-             <item row="2" column="0" >
-              <layout class="QHBoxLayout" name="horizontalLayout" >
-               <item>
-                <widget class="QLineEdit" name="searchEdit" >
-                 <property name="enabled" >
-                  <bool>true</bool>
-                 </property>
-                 <property name="toolTip" >
-                  <string>type a keyword to search</string>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QPushButton" name="searchButton" >
-                 <property name="sizePolicy" >
-                  <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text" >
-                  <string>Search</string>
-                 </property>
-                 <property name="icon" >
-                  <iconset resource="../icons.qrc" >
-                   <normaloff>:/icons/search.png</normaloff>:/icons/search.png</iconset>
-                 </property>
-                 <property name="checkable" >
-                  <bool>false</bool>
-                 </property>
-                 <property name="autoDefault" >
-                  <bool>true</bool>
-                 </property>
-                 <property name="default" >
-                  <bool>true</bool>
-                 </property>
-                 <property name="flat" >
-                  <bool>false</bool>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </item>
-             <item row="0" column="0" >
-              <layout class="QHBoxLayout" name="horizontalLayout_6" >
-               <item>
-                <widget class="QCheckBox" name="searchTitle" >
-                 <property name="text" >
-                  <string>Title</string>
-                 </property>
-                 <property name="checked" >
-                  <bool>true</bool>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QCheckBox" name="searchAbstract" >
-                 <property name="text" >
-                  <string>Abstract</string>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QCheckBox" name="searchSpeaker" >
-                 <property name="text" >
-                  <string>Speaker</string>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QCheckBox" name="searchTag" >
-                 <property name="text" >
-                  <string>Tag</string>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QCheckBox" name="searchRoom" >
-                 <property name="text" >
-                  <string>Room</string>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <spacer name="horizontalSpacer" >
-                 <property name="orientation" >
-                  <enum>Qt::Horizontal</enum>
-                 </property>
-                 <property name="sizeHint" stdset="0" >
-                  <size>
-                   <width>40</width>
-                   <height>20</height>
-                  </size>
-                 </property>
-                </spacer>
-               </item>
-              </layout>
-             </item>
-            </layout>
-           </widget>
-          </item>
-          <item>
-           <widget class="TreeView" name="searchTreeView" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="MinimumExpanding" hsizetype="Expanding" >
-              <horstretch>0</horstretch>
-              <verstretch>1</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="minimumSize" >
-             <size>
-              <width>0</width>
-              <height>0</height>
-             </size>
-            </property>
-            <property name="maximumSize" >
-             <size>
-              <width>16777215</width>
-              <height>16777215</height>
-             </size>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <spacer name="verticalSpacer_2" >
-            <property name="orientation" >
-             <enum>Qt::Vertical</enum>
-            </property>
-            <property name="sizeType" >
-             <enum>QSizePolicy::Expanding</enum>
-            </property>
-            <property name="sizeHint" stdset="0" >
-             <size>
-              <width>20</width>
-              <height>1</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-         </layout>
+         <widget class="TabContainer" native="1" name="searchTabContainer" />
         </item>
        </layout>
       </widget>
   <widget class="QStatusBar" name="statusbar" />
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>DayNavigatorWidget</class>
-   <extends>QWidget</extends>
-   <header>daynavigatorwidget.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>TreeView</class>
-   <extends>QTreeView</extends>
-   <header>../mvc/treeview.h</header>
-  </customwidget>
   <customwidget>
    <class>TabWidget</class>
    <extends>QTabWidget</extends>
index 6035e84a26a32ef48af38f3cd85a16b4a6df97cd..993b9a2474b97fea23ef469fd4eb727b59252114 100644 (file)
@@ -4,6 +4,7 @@
 #include <QMessageBox>
 #include <QTimer>
 
+#include <sqlengine.h>
 #include <appsettings.h>
 
 #include <conference.h>
@@ -22,6 +23,7 @@ TabContainer::TabContainer(QWidget *aParent)
     setupUi(this);
 
     searchAgainButton->hide();
+    searchHead->hide();
 
     treeView->setHeaderHidden(true);
     treeView->setRootIsDecorated(false);
@@ -37,6 +39,9 @@ TabContainer::TabContainer(QWidget *aParent)
     connect(treeView, SIGNAL(requestForMap(const QModelIndex &)), SLOT(displayMap(const QModelIndex &)));
     connect(treeView, SIGNAL(requestForWarning(const QModelIndex &)), SLOT(displayWarning(const QModelIndex &)));
 
+    connect(searchButton, SIGNAL(clicked()), SLOT(searchClicked()));
+    connect(searchAgainButton, SIGNAL(clicked()), SLOT(searchAgainClicked()));
+
     if(!Conference::getAll().count()) // no conference(s) in the DB
     {
         dayNavigator->hide(); // hide DayNavigatorWidget
@@ -52,12 +57,17 @@ TabContainer::TabContainer(QWidget *aParent)
 void TabContainer::setType(TabContainer::Type aType)
 {
     mType = aType;
+
     if(aType == EContainerTypeNow)
     {
         QTimer *timer = new QTimer( this );
         connect( timer, SIGNAL(timeout()), SLOT(timerUpdateTreeView()) );
         timer->start( 30000); // 30 seconds timer
     }
+    if(aType == EContainerTypeSearch)
+    {
+        searchHead->show();
+    }
 }
 
 void TabContainer::updateTreeView(const QDate &aDate)
@@ -90,6 +100,25 @@ void TabContainer::updateTreeView(const QDate &aDate)
                 treeView->setAllExpanded(true);
             }
             break;
+        case EContainerTypeSearch:
+            {
+                treeView->reset();
+                int eventsCount = static_cast<EventModel*>(treeView->model())->loadSearchResultEvents(aDate,AppSettings::confId());
+                if( eventsCount ||
+                        dayNavigator->getCurrentDate() != Conference::getById(AppSettings::confId()).start() ){
+                    searchAgainButton->show();
+                    dayNavigator->show();
+                    treeView->show();
+                    searchHead->hide();
+                }
+                else{
+                    treeView->hide();
+                    searchAgainButton->hide();
+                    dayNavigator->hide();
+                    searchHead->show();
+                }
+            }
+            break;
         case EContainerTypeNone:
         default:
             {
@@ -178,3 +207,42 @@ void TabContainer::timerUpdateTreeView()
     }
 }
 
+void TabContainer::searchClicked()
+{
+    if(mType == EContainerTypeSearch)
+    {
+        QHash<QString,QString> columns;
+
+        if( searchTitle->isChecked() )
+            columns.insertMulti("EVENT", "title");
+        if( searchAbstract->isChecked() )
+            columns.insertMulti("EVENT", "abstract");
+        if( searchTag->isChecked() )
+            columns.insertMulti("EVENT", "tag");
+        if( searchSpeaker->isChecked() )
+            columns["PERSON"] = "name";
+        if( searchRoom->isChecked() )
+            columns["ROOM"] = "name";
+
+        QString keyword = searchEdit->text().replace( QString("%"), QString("\\%") );
+        qDebug() << "\nKeyword to search: " << keyword;
+        SqlEngine::searchEvent( AppSettings::confId(), columns, keyword );
+
+        QDate startDate = Conference::getById(AppSettings::confId()).start();
+        QDate endDate = Conference::getById(AppSettings::confId()).end();
+        dayNavigator->setDates(startDate, endDate);
+        updateTreeView( Conference::getById(AppSettings::confId()).start() );
+    }
+}
+
+void TabContainer::searchAgainClicked()
+{
+    if(mType == EContainerTypeSearch)
+    {
+        searchHead->show();
+        searchAgainButton->hide();
+        dayNavigator->hide();
+        treeView->hide();
+    }
+}
+
index 527c58b9b62b2e236027abaeeac5447fe672a1ef..47748a0c912bee3e2a79cc4735e9e180ba6067a7 100644 (file)
@@ -39,6 +39,8 @@ private slots:
     void itemClicked(const QModelIndex &aIndex);
     void displayMap(const QModelIndex &aIndex);
     void displayWarning(const QModelIndex &aIndex);
+    void searchClicked();
+    void searchAgainClicked();
 
 private:
     TabContainer::Type mType;
index ff1966e9a8c9a2b167f5861114ebfedd519ec17c..4da6b10bb101a03637618a1b60dd0a0ee017c87f 100644 (file)
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout" >
-   <item row="0" column="0" >
-    <widget class="QToolButton" name="searchAgainButton" >
-     <property name="enabled" >
-      <bool>true</bool>
-     </property>
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="toolTip" >
-      <string>Search again</string>
-     </property>
-     <property name="text" >
-      <string>S</string>
-     </property>
-     <property name="icon" >
-      <iconset resource="../icons.qrc" >
-       <normaloff>:/icons/search.png</normaloff>:/icons/search.png</iconset>
-     </property>
-     <property name="iconSize" >
-      <size>
-       <width>24</width>
-       <height>24</height>
-      </size>
-     </property>
-     <property name="toolButtonStyle" >
-      <enum>Qt::ToolButtonIconOnly</enum>
-     </property>
-    </widget>
+   <item row="0" column="2" >
+    <layout class="QVBoxLayout" name="verticalLayout" >
+     <item>
+      <widget class="QWidget" native="1" name="searchHead" >
+       <property name="sizePolicy" >
+        <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="maximumSize" >
+        <size>
+         <width>16777215</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <layout class="QGridLayout" name="searchHeadLayout_2" >
+        <property name="sizeConstraint" >
+         <enum>QLayout::SetDefaultConstraint</enum>
+        </property>
+        <item row="2" column="0" >
+         <layout class="QHBoxLayout" name="horizontalLayout_2" >
+          <item>
+           <widget class="QLineEdit" name="searchEdit" >
+            <property name="enabled" >
+             <bool>true</bool>
+            </property>
+            <property name="toolTip" >
+             <string>type a keyword to search</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="searchButton" >
+            <property name="sizePolicy" >
+             <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text" >
+             <string>Search</string>
+            </property>
+            <property name="icon" >
+             <iconset resource="../icons.qrc" >
+              <normaloff>:/icons/search.png</normaloff>:/icons/search.png</iconset>
+            </property>
+            <property name="checkable" >
+             <bool>false</bool>
+            </property>
+            <property name="autoDefault" >
+             <bool>true</bool>
+            </property>
+            <property name="default" >
+             <bool>true</bool>
+            </property>
+            <property name="flat" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="0" column="0" >
+         <layout class="QHBoxLayout" name="horizontalLayout_7" >
+          <item>
+           <widget class="QCheckBox" name="searchTitle" >
+            <property name="text" >
+             <string>Title</string>
+            </property>
+            <property name="checked" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="searchAbstract" >
+            <property name="text" >
+             <string>Abstract</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="searchSpeaker" >
+            <property name="text" >
+             <string>Speaker</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="searchTag" >
+            <property name="text" >
+             <string>Tag</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="searchRoom" >
+            <property name="text" >
+             <string>Room</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer" >
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item row="3" column="0" >
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="TreeView" name="treeView" />
+     </item>
+    </layout>
    </item>
-   <item rowspan="2" row="0" column="1" >
-    <widget class="TreeView" name="treeView" />
-   </item>
-   <item row="1" column="0" >
-    <widget class="DayNavigatorWidget" native="1" name="dayNavigator" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-    </widget>
+   <item row="0" column="1" >
+    <layout class="QVBoxLayout" name="verticalLayout_2" >
+     <item>
+      <widget class="QToolButton" name="searchAgainButton" >
+       <property name="enabled" >
+        <bool>true</bool>
+       </property>
+       <property name="sizePolicy" >
+        <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip" >
+        <string>Search again</string>
+       </property>
+       <property name="text" >
+        <string>S</string>
+       </property>
+       <property name="icon" >
+        <iconset resource="../icons.qrc" >
+         <normaloff>:/icons/search.png</normaloff>:/icons/search.png</iconset>
+       </property>
+       <property name="iconSize" >
+        <size>
+         <width>24</width>
+         <height>24</height>
+        </size>
+       </property>
+       <property name="toolButtonStyle" >
+        <enum>Qt::ToolButtonIconOnly</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="DayNavigatorWidget" native="1" name="dayNavigator" >
+       <property name="sizePolicy" >
+        <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+      </widget>
+     </item>
+    </layout>
    </item>
   </layout>
  </widget>