Changeset d97bcab
- Timestamp:
- 04/15/10 14:49:59 (13 years ago)
- Branches:
- master, qt5
- Children:
- 04acaf9
- Parents:
- f5b68a4
- Location:
- src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/gui/importschedulewidget.cpp
rf5b68a4 rd97bcab 27 27 #include <QNetworkAccessManager> 28 28 #include <QNetworkReply> 29 #include <QMessageBox> 29 30 #include <QDebug> 30 31 #include <appsettings.h> … … 167 168 void ImportScheduleWidget::on_delete() 168 169 { 169 // TODO: implement 170 int active_id = Conference::activeConference(); 171 Conference active_conference = Conference::getById(active_id); 172 173 QMessageBox::StandardButton answer = 174 QMessageBox::question(0 175 , "Deletion confirmation" 176 , QString("Really delete the %1 conference").arg(active_conference.title()) 177 , QMessageBox::Yes | QMessageBox::No 178 , QMessageBox::No); 179 180 if (answer == QMessageBox::Yes) { 181 QString title = active_conference.title(); 182 Conference::deleteConference(active_id); 183 emit(scheduleDeleted(title)); 184 } 170 185 } 171 186 -
src/gui/importschedulewidget.h
rf5b68a4 rd97bcab 44 44 signals: 45 45 void scheduleImported(int confId); 46 void scheduleDeleted(const QString& title); 46 47 private: 47 48 void importFromNetwork(const QString& url); -
src/gui/mainwindow.cpp
rf5b68a4 rd97bcab 75 75 76 76 connect(importScheduleWidget, SIGNAL(scheduleImported(int)), SLOT(scheduleImported(int))); 77 connect(importScheduleWidget, SIGNAL(scheduleDeleted(const QString&)), SLOT(scheduleDeleted(const QString&))); 77 78 78 79 // event details have changed … … 161 162 } 162 163 164 void MainWindow::scheduleDeleted(const QString& title) 165 { 166 int idx = selectConference->findText(title); 167 168 if (idx == -1) { 169 // should not happen 170 qWarning() << __PRETTY_FUNCTION__ << "removed non-existent item:" << title; 171 } else { 172 // will it signal "changed"? 173 selectConference->removeItem(idx); 174 } 175 } 176 163 177 void MainWindow::aboutApp() 164 178 { -
src/gui/mainwindow.h
rf5b68a4 rd97bcab 34 34 private slots: 35 35 void scheduleImported(int aConfId); 36 void scheduleDeleted(const QString& title); 36 37 void aboutApp(); 37 38 void conferenceMapClicked(); -
src/mvc/conference.cpp
rf5b68a4 rd97bcab 18 18 */ 19 19 #include "conference.h" 20 #include "../sql/sqlengine.h" 20 21 21 22 QSqlRecord const Conference::sColumns = Conference::toRecord(QList<QSqlField>() … … 52 53 int Conference::activeConference() 53 54 { 54 QSqlQuery query("SELECT id FROM conference WHERE active = 1"); 55 query.exec(); 55 { 56 QSqlQuery query("SELECT id FROM conference WHERE active = 1"); 57 query.exec(); 56 58 57 QList<int> activeConfs; 58 while(query.next()) 59 activeConfs.append(query.record().value("id").toInt()); 59 // TODO: change it so that it will select somw existing ID 60 60 61 qDebug() << __PRETTY_FUNCTION__ 62 << "activeConfs.count()" << activeConfs.count() 63 ; 61 if (query.next()) { 62 return query.record().value("id").toInt(); 63 } 64 } 64 65 65 if(activeConfs.count()==0) // no active DB 66 return 1; 67 else // even if there are more active confs, the first from the list is confidered active 68 return activeConfs[0]; 66 QSqlQuery query2("SELECT id FROM conference ORDER BY id"); 67 if (query2.next()) { 68 return query2.record().value("id").toInt(); 69 } 70 71 return -1; 69 72 } 70 73 74 void Conference::deleteConference(int id) 75 { 76 SqlEngine::deleteConference(id); 77 } 78 -
src/mvc/conference.h
rf5b68a4 rd97bcab 36 36 static QList<Conference> getAll(); 37 37 static int activeConference(); 38 static void deleteConference(int id); 38 39 39 40 public: -
src/sql/sqlengine.cpp
rf5b68a4 rd97bcab 321 321 } 322 322 323 void SqlEngine::deleteConference(int id) 324 { 325 QSqlDatabase db = QSqlDatabase::database(); 326 327 if ( !db.isValid() || !db.isOpen()) { 328 return; 329 } 330 331 beginTransaction(); 332 333 QHash<QString, QVariant> params; 334 params["xid_conference"] = id; 335 execQueryWithParameter(db, "DELETE FROM LINK WHERE xid_conference = :xid_conference", params); 336 execQueryWithParameter(db, "DELETE FROM EVENT_ROOM WHERE xid_conference = :xid_conference", params); 337 execQueryWithParameter(db, "DELETE FROM EVENT_PERSON WHERE xid_conference = :xid_conference", params); 338 execQueryWithParameter(db, "DELETE FROM EVENT WHERE xid_conference = :xid_conference", params); 339 execQueryWithParameter(db, "DELETE FROM CONFERENCE WHERE id = :xid_conference", params); 340 execQuery(db, "DELETE FROM ROOM WHERE NOT EXISTS(SELECT * FROM EVENT_ROOM WHERE xid_room = ROOM.id)"); 341 execQuery(db, "DELETE FROM PERSON WHERE NOT EXISTS(SELECT * FROM EVENT_PERSON WHERE xid_person = PERSON.id)"); 342 343 commitTransaction(); 344 } 345 323 346 bool SqlEngine::execQuery(QSqlDatabase &aDatabase, const QString &aQuery) 324 347 { … … 336 359 } 337 360 361 bool SqlEngine::execQueryWithParameter(QSqlDatabase &aDatabase, const QString &aQuery, const QHash<QString, QVariant>& params) 362 { 363 qDebug() << "SQL:" << aQuery << "params:" << params; 364 365 QSqlQuery sqlQuery(aDatabase); 366 sqlQuery.prepare(aQuery); 367 foreach (QString param_key, params.keys()) { 368 sqlQuery.bindValue(param_key, params[param_key]); 369 } 370 if( !sqlQuery.exec() ){ 371 qDebug() << "SQL ERR: " << sqlQuery.lastError().number() << ", " << sqlQuery.lastError().text(); 372 return false; 373 } 374 else{ 375 //qDebug() << "SQL OK.\n"; 376 return true; 377 } 378 } 379 -
src/sql/sqlengine.h
rf5b68a4 rd97bcab 37 37 static void addLinkToDB(QHash<QString,QString> &aLink); 38 38 static void addRoomToDB(QHash<QString,QString> &aRoom); 39 static void deleteConference(int id); 39 40 40 41 static bool beginTransaction(); … … 46 47 static QString login(const QString &aDatabaseType, const QString &aDatabaseName); 47 48 static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery); 49 static bool execQueryWithParameter(QSqlDatabase &aDatabase, const QString &aQuery, const QHash<QString, QVariant>& params); 48 50 }; 49 51
Note: See TracChangeset
for help on using the changeset viewer.