Changeset 9d8946b


Ignore:
Timestamp:
01/21/10 15:12:57 (12 years ago)
Author:
timkoma <timkoma@…>
Branches:
master, qt5
Children:
e493054
Parents:
6a807e7
Message:

update for the search

Location:
src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • src/gui/mainwindow.cpp

    r6a807e7 r9d8946b  
    4646    connect(trackDayNavigator, SIGNAL(dateChanged(const QDate &)), SLOT(updateTracksView(const QDate &)));
    4747    connect(favouriteDayNavigator, SIGNAL(dateChanged(const QDate &)), SLOT(updateFavouritesView(const QDate &)));
     48    connect(searchDayNavigator, SIGNAL(dateChanged(const QDate &)), SLOT(updateSearchView(const QDate &)));
    4849
    4950    // DAY EVENTS View
     
    7879        searchTreeView->setModel(new EventModel());
    7980        searchTreeView->setItemDelegate(new Delegate(searchTreeView));
    80         searchTreeView->setVisible(false);
    81         searchDayNavigator->setVisible(false);
     81
    8282    // event clicked
    8383    connect(dayTreeView, SIGNAL(clicked(const QModelIndex &)), SLOT(itemClicked(const QModelIndex &)));
     
    117117    connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(updateTab(int)));
    118118
     119    searchTreeView->hide();
     120    searchDayNavigator->hide();
     121
    119122    // open dialog for given Event ID
    120123    // this is used in case Alarm Dialog request application to start
     
    209212        }
    210213        break;
     214    case 3: //index 3 of tabWidget: searchTab
     215       {
     216           updateSearchView( searchDayNavigator->getCurrentDate() );
     217       }
     218       break;
    211219    default:
    212220        {
     
    228236    favTreeView->reset();
    229237    favouriteDayNavigator->show();
     238}
     239
     240void MainWindow::updateSearchView(const QDate &aDate)
     241{
     242    searchTreeView->reset();
     243    int eventsCount = static_cast<EventModel*>(searchTreeView->model())->loadSearchResultEvents(aDate,confId);
     244    if( eventsCount ){
     245        searchDayNavigator->show();
     246        searchTreeView->show();
     247    }
     248    else{
     249        searchTreeView->hide();
     250        searchDayNavigator->hide();
     251    }
    230252}
    231253
     
    270292        columns.append( "abstract" );
    271293
    272     searchTreeView->reset();
    273     if( mSqlEngine->searchEvent( confId, columns, searchEdit->text() ) > 0 ){
    274         static_cast<EventModel*>(searchTreeView->model())->loadSearchResultEvents(Conference::getById(confId).start(),confId);
    275         searchDayNavigator->show();
    276         searchTreeView->show();
    277     }
    278 }
    279 
     294    mSqlEngine->searchEvent( confId, columns, searchEdit->text() );
     295    updateSearchView( Conference::getById(confId).start() );
     296}
     297
  • src/gui/mainwindow.h

    r6a807e7 r9d8946b  
    2525    void updateTracksView(const QDate &aDate);
    2626    void updateFavouritesView(const QDate &aDate);
     27    void updateSearchView(const QDate &aDate);
    2728    void itemClicked(const QModelIndex &aIndex);
    2829    void displayMap(const QModelIndex &aIndex);
  • src/gui/mainwindow.ui

    r6a807e7 r9d8946b  
    9696       </attribute>
    9797       <layout class="QVBoxLayout" name="verticalLayout_3">
    98          <item>
    99           <layout class="QFormLayout" name="formLayout">
    100            <property name="fieldGrowthPolicy">
    101             <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
    102            </property>
    103            <item row="0" column="0">
    104             <widget class="QCheckBox" name="searchTitle">
    105              <property name="text">
    106               <string>Title</string>
    107              </property>
    108             </widget>
    109            </item>
    110            <item row="0" column="1">
    111             <layout class="QHBoxLayout" name="horizontalLayout">
    112              <item>
    113               <widget class="QLineEdit" name="searchEdit">
    114                <property name="enabled">
    115                 <bool>true</bool>
    116                </property>
    117                <property name="toolTip">
    118                 <string>type a keyword to search</string>
    119                </property>
    120               </widget>
    121              </item>
    122              <item>
    123               <widget class="QPushButton" name="searchButton">
    124                <property name="text">
    125                 <string>Search</string>
    126                </property>
    127                <property name="checkable">
    128                 <bool>false</bool>
    129                </property>
    130                <property name="autoDefault">
    131                 <bool>false</bool>
    132                </property>
    133                <property name="default">
    134                 <bool>true</bool>
    135                </property>
    136                <property name="flat">
    137                 <bool>false</bool>
    138                </property>
    139               </widget>
    140              </item>
    141             </layout>
    142            </item>
    143            <item row="1" column="0">
    144             <widget class="QCheckBox" name="searchAbstract">
    145              <property name="text">
    146               <string>Abstract</string>
    147              </property>
    148             </widget>
    149            </item>
    150           </layout>
    151          </item>
    152          <item>
    153           <widget class="DayNavigatorWidget" name="searchDayNavigator" native="true">
    154            <property name="maximumSize">
    155             <size>
    156              <width>16777215</width>
    157              <height>16777215</height>
    158             </size>
    159            </property>
    160           </widget>
    161          </item>
    162          <item>
    163           <widget class="TreeView" name="searchTreeView">
    164            <property name="maximumSize">
    165             <size>
    166              <width>16777215</width>
    167              <height>16777215</height>
    168             </size>
    169            </property>
    170           </widget>
    171          </item>
    172         </layout>
     98        <item>
     99         <layout class="QFormLayout" name="searchHeadLayout">
     100          <property name="fieldGrowthPolicy">
     101           <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
     102          </property>
     103          <item row="0" column="0">
     104           <widget class="QCheckBox" name="searchTitle">
     105            <property name="text">
     106             <string>Title</string>
     107            </property>
     108           </widget>
     109          </item>
     110          <item row="0" column="1">
     111           <layout class="QHBoxLayout" name="horizontalLayout">
     112            <item>
     113             <widget class="QLineEdit" name="searchEdit">
     114              <property name="enabled">
     115               <bool>true</bool>
     116              </property>
     117              <property name="toolTip">
     118               <string>type a keyword to search</string>
     119              </property>
     120             </widget>
     121            </item>
     122            <item>
     123             <widget class="QPushButton" name="searchButton">
     124              <property name="text">
     125               <string>Search</string>
     126              </property>
     127              <property name="checkable">
     128               <bool>false</bool>
     129              </property>
     130              <property name="autoDefault">
     131               <bool>false</bool>
     132              </property>
     133              <property name="default">
     134               <bool>true</bool>
     135              </property>
     136              <property name="flat">
     137               <bool>false</bool>
     138              </property>
     139             </widget>
     140            </item>
     141           </layout>
     142          </item>
     143          <item row="1" column="0">
     144           <widget class="QCheckBox" name="searchAbstract">
     145            <property name="text">
     146             <string>Abstract</string>
     147            </property>
     148           </widget>
     149          </item>
     150         </layout>
     151        </item>
     152        <item>
     153         <layout class="QHBoxLayout" name="searchDayNavigatorHorizontalLayout">
     154          <item>
     155           <spacer name="horizontalSpacer_2">
     156            <property name="orientation">
     157             <enum>Qt::Horizontal</enum>
     158            </property>
     159            <property name="sizeHint" stdset="0">
     160             <size>
     161              <width>40</width>
     162              <height>20</height>
     163             </size>
     164            </property>
     165           </spacer>
     166          </item>
     167          <item>
     168           <widget class="DayNavigatorWidget" name="searchDayNavigator" native="true">
     169            <property name="maximumSize">
     170             <size>
     171              <width>16777215</width>
     172              <height>16777215</height>
     173             </size>
     174            </property>
     175           </widget>
     176          </item>
     177          <item>
     178           <spacer name="horizontalSpacer">
     179            <property name="orientation">
     180             <enum>Qt::Horizontal</enum>
     181            </property>
     182            <property name="sizeHint" stdset="0">
     183             <size>
     184              <width>40</width>
     185              <height>20</height>
     186             </size>
     187            </property>
     188           </spacer>
     189          </item>
     190         </layout>
     191        </item>
     192        <item>
     193         <widget class="TreeView" name="searchTreeView">
     194          <property name="maximumSize">
     195           <size>
     196            <width>16777215</width>
     197            <height>16777215</height>
     198           </size>
     199          </property>
     200         </widget>
     201        </item>
     202       </layout>
    173203      </widget>
    174204      <widget class="QWidget" name="mapTab" >
  • src/mvc/event.cpp

    r6a807e7 r9d8946b  
    2222Event Event::getById(int id, int conferenceId)
    2323{
    24 
    2524    QSqlQuery query;
    2625    query.prepare(selectQuery() + "WHERE id = :id AND xid_conference = :conf");
  • src/mvc/eventmodel.cpp

    r6a807e7 r9d8946b  
    185185}
    186186
    187 void EventModel::loadSearchResultEvents(const QDate &aDate, int aConferenceId)
     187int EventModel::loadSearchResultEvents(const QDate &aDate, int aConferenceId)
    188188{
    189189    clearModel();
     
    192192    {
    193193        qDebug() << "Loading search result Data: [" << Conference::getById(aConferenceId).title() << "] " << aDate;
    194         mEvents = Event::getSearchResultByDate(QDate(aDate.year(), aDate.month(), aDate.day()), aConferenceId, "start");
    195     }
     194        try{
     195            mEvents = Event::getSearchResultByDate(QDate(aDate.year(), aDate.month(), aDate.day()), aConferenceId, "start");
     196        }
     197        catch( OrmException &e  ){
     198            qDebug() << "Event::getSearchResultByDate failed: " << e.text();
     199        }
     200        catch(...){
     201            qDebug() << "Event::getSearchResultByDate failed";
     202        }
     203
     204    }
     205
    196206    createTimeGroups();
     207
     208    return mEvents.count();
    197209}
    198210
  • src/mvc/eventmodel.h

    r6a807e7 r9d8946b  
    2020    void loadFavEvents(const QDate &aDate, int aConferenceId); // loads Favourite events from the DB
    2121    void loadEventsByTrack(const QDate &aDate, int aConferenceId); // loads Events grouped by Track from the DB
    22     void loadSearchResultEvents(const QDate &aDate, int aConferenceId);
     22    int loadSearchResultEvents(const QDate &aDate, int aConferenceId);
    2323    // a method to force 'EventModel' emit signal 'dataChanged()'
    2424    // a 'view', eg. 'TreeView' listens for this signal and redraws changed items(indexes)
  • src/orm/ormrecord.h

    r6a807e7 r9d8946b  
    1212class OrmException
    1313{
    14 };
    15 
    16 class OrmNoObjectException : OrmException
    17 {
    18 };
    19 
    20 class OrmSqlException : OrmException
    21 {
    22 public:
    23     OrmSqlException(const QString& text) : mText(text) {}
    24     QString text() const { return mText; }
    25 
     14public:
     15    OrmException(const QString& text) : mText(text) {};
     16    virtual ~OrmException(){};
     17    virtual const QString& text() const { return mText; }
    2618private:
    2719    QString mText;
     20};
     21
     22class OrmNoObjectException : OrmException
     23{
     24public:
     25    OrmNoObjectException() : OrmException("No object exception"){};
     26    ~OrmNoObjectException(){};
     27};
     28
     29class OrmSqlException : OrmException
     30{
     31public:
     32    OrmSqlException(const QString& text) : OrmException( QString("Sql error: ") + text ) {};
     33    ~OrmSqlException(){};
    2834};
    2935
  • src/sql/sqlengine.cpp

    r6a807e7 r9d8946b  
    295295    // INSERT
    296296    QString query = QString("INSERT INTO SEARCH_EVENT ( xid_conference, id) "
    297                 "SELECT xid_conference, id FROM EVENT AS e INNER JOIN VIRTUAL_EVENT AS ve USING (xid_conference, id) "
     297                "SELECT xid_conference, id FROM EVENT "
    298298                "WHERE xid_conference = %1 AND (").arg( aConferenceId );
    299299    int i = 0;
Note: See TracChangeset for help on using the changeset viewer.