Changeset e662750
- Timestamp:
- 01/21/10 10:49:41 (13 years ago)
- Branches:
- master, qt5
- Children:
- 72cd3af
- Parents:
- 842f5f9
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/gui/mainwindow.cpp
r842f5f9 re662750 71 71 trackTreeView->setItemDelegate(new Delegate(trackTreeView)); 72 72 73 // DAYEVENTS View73 // SEARCH EVENTS View 74 74 searchTreeView->setHeaderHidden(true); 75 75 searchTreeView->setRootIsDecorated(false); … … 112 112 trackDayNavigator->setDates(aStartDate, aEndDate); 113 113 favouriteDayNavigator->setDates(aStartDate, aEndDate); 114 searchDayNavigator->setDates(aStartDate, aEndDate); 114 115 } 115 116 … … 275 276 columns.append( "abstract" ); 276 277 278 searchTreeView->reset(); 277 279 if( mSqlEngine->searchEvent( confId, columns, searchEdit->text() ) > 0 ){ 278 searchTreeView->setVisible(true); 279 searchDayNavigator->setVisible(true); 280 } 281 } 282 280 static_cast<EventModel*>(searchTreeView->model())->loadSearchResultEvents(Conference::getById(confId).start(),confId); 281 searchDayNavigator->show(); 282 searchTreeView->show(); 283 } 284 } 285 -
src/gui/mainwindow.ui
r842f5f9 re662750 91 91 </layout> 92 92 </widget> 93 <widget class="QWidget" name="searchTab" 94 <attribute name="title" 93 <widget class="QWidget" name="searchTab"> 94 <attribute name="title"> 95 95 <string>Search</string> 96 96 </attribute> 97 <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" native="1" name="searchDayNavigator">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>97 <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> 173 173 </widget> 174 174 <widget class="QWidget" name="mapTab" > -
src/mvc/event.cpp
r842f5f9 re662750 114 114 } 115 115 116 QList<Event> Event::getSearchResultByDate(const QDate& date, int conferenceId, QString orderBy) 117 { 118 119 QString strQuery = QString("SELECT %1 FROM EVENT INNER JOIN VIRTUAL_EVENT USING (xid_conference, id) " 120 "INNER JOIN SEARCH_EVENT USING (xid_conference, id) ").arg( columnsForSelectJoin2T() ); 121 strQuery += QString( 122 "WHERE %1.xid_conference = :conf AND %1.start >= :start AND %1.start < :end ORDER BY %1.%2").arg(sTable1Name, orderBy); 123 qDebug() << strQuery; 124 QSqlQuery query; 125 query.prepare( strQuery ); 126 query.bindValue(":conf", conferenceId); 127 query.bindValue(":start", convertToDb(date, QVariant::DateTime)); 128 query.bindValue(":end", convertToDb(date.addDays(1), QVariant::DateTime)); 129 130 return load(query); 131 } 132 -
src/mvc/event.h
r842f5f9 re662750 28 28 static QList<Event> getByDate(const QDate & date, int conferenceId, QString orderBy); 29 29 static QList<Event> getFavByDate(const QDate & date, int conferenceId); // get Favourities by Date 30 static QList<Event> getSearchResultByDate(const QDate& date, int conferenceId, QString orderBy); 30 31 public: 31 32 // Table 1 -
src/mvc/eventmodel.cpp
r842f5f9 re662750 183 183 } 184 184 185 void EventModel::loadSearchResultEvents(const QDate &aDate, int aConferenceId) 186 { 187 clearModel(); 188 // check for existence of the conference in the DB 189 if(Conference::getAll().count()) 190 { 191 qDebug() << "Loading search result Data: [" << Conference::getById(aConferenceId).title() << "] " << aDate; 192 mEvents = Event::getSearchResultByDate(QDate(aDate.year(), aDate.month(), aDate.day()), aConferenceId, "start"); 193 } 194 createTimeGroups(); 195 } 196 185 197 void EventModel::loadEventsByTrack(const QDate &aDate, int aConferenceId) 186 198 { -
src/mvc/eventmodel.h
r842f5f9 re662750 20 20 void loadFavEvents(const QDate &aDate, int aConferenceId); // loads Favourite events from the DB 21 21 void loadEventsByTrack(const QDate &aDate, int aConferenceId); // loads Events grouped by Track from the DB 22 void loadSearchResultEvents(const QDate &aDate, int aConferenceId); 22 23 // a method to force 'EventModel' emit signal 'dataChanged()' 23 24 // a 'view', eg. 'TreeView' listens for this signal and redraws changed items(indexes) -
src/orm/ormrecord.h
r842f5f9 re662750 143 143 throw new OrmSqlException(query.lastError().text()); 144 144 } 145 else 146 { 147 qDebug() << "SQL OK"; 148 } 145 149 } 146 150 … … 150 154 objects << hydrate(query.record()); 151 155 } 152 156 qDebug() << "Fetch done"; 153 157 return objects; 154 158 } -
src/sql/sqlengine.cpp
r842f5f9 re662750 38 38 result = createTables(database); 39 39 } 40 41 database.open(); 40 else 41 { 42 database.open(); 43 } 42 44 43 45 //LOG_INFO(QString("Opening '%1' database '%2'").arg(aDatabaseType).arg(aDatabaseName)); … … 318 320 return -1; 319 321 320 QString query = QString( 321 "DROP TABLE IF EXISTS SEARCH_EVENT;" 322 "CREATE TEMP TABLE SEARCH_EVENT ( xid_conference INTEGER NOT NULL, id INTEGER NOT NULL );" 323 "INSERT INTO SEARCH_EVENT ( xid_conference, id) " 324 "SELECT xid_conference, id FROM EVENT AS e INNER JOIN VIRTUAL_EVENT AS ve USING (xid_conference, id) " 325 "WHERE xid_conference = %1 AND (").arg( aConferenceId ); 326 322 323 // DROP 324 execQuery( db, "DROP TABLE IF EXISTS SEARCH_EVENT;"); 325 // CREATE 326 execQuery( db, "CREATE TABLE SEARCH_EVENT ( xid_conference INTEGER NOT NULL, id INTEGER NOT NULL );"); 327 // INSERT 328 QString query = QString("INSERT INTO SEARCH_EVENT ( xid_conference, id) " 329 "SELECT xid_conference, id FROM EVENT AS e INNER JOIN VIRTUAL_EVENT AS ve USING (xid_conference, id) " 330 "WHERE xid_conference = %1 AND (").arg( aConferenceId ); 327 331 int i = 0; 328 332 foreach (QString str, aColumns){ … … 332 336 query += QString(");"); 333 337 334 qDebug() << "\nSQL: " << query; 335 336 db.exec(); 337 338 if( db.lastError().isValid() && db.lastError().number() != 0 ){ 339 qDebug() << "SQL ERR: " << db.lastError().number() << ", " << db.lastError().text(); 340 return 0; 338 execQuery( db, query ); 339 340 //TODO: retun number of rows from SEARCH_EVENT 341 return 1; 342 } 343 344 bool SqlEngine::execQuery(QSqlDatabase &aDatabase, const QString &aQuery) 345 { 346 qDebug() << "\nSQL: " << aQuery; 347 348 QSqlQuery sqlQuery(aDatabase); 349 if( !sqlQuery.exec(aQuery) ){ 350 qDebug() << "SQL ERR: " << sqlQuery.lastError().number() << ", " << sqlQuery.lastError().text(); 351 return false; 341 352 } 342 353 else{ 343 qDebug() << "SQL OK.\n"; 344 return 1; 345 } 346 347 } 354 qDebug() << "SQL OK.\n"; 355 return true; 356 } 357 } -
src/sql/sqlengine.h
r842f5f9 re662750 25 25 QString login(const QString &aDatabaseType, const QString &aDatabaseName); 26 26 bool createTables(QSqlDatabase &aDatabase); 27 bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery); 27 28 }; 28 29
Note: See TracChangeset
for help on using the changeset viewer.