The conflict editor works again.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Mon, 17 Oct 2011 19:04:20 +0000 (19:04 +0000)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Mon, 17 Oct 2011 19:04:20 +0000 (19:04 +0000)
src/gui/conflictdialogcontainer.cpp
src/gui/conflictdialogcontainer.h
src/gui/conflictsdialog.cpp
src/gui/conflictsdialog.h
src/gui/eventdialog.cpp
src/gui/eventdialog.h
src/gui/tabcontainer.cpp

index 2149c6b..c04bc3e 100644 (file)
 #include "conflictdialogcontainer.h"
 
 ConflictDialogContainer::ConflictDialogContainer(QWidget *aParent)
-    : TabContainer( aParent )
-{
-}
+    : TabContainer( aParent ), mEventId(-1), mConferenceId(-1)
+{}
 
-void ConflictDialogContainer::loadEvents( const QDate &aDate, const int aConferenceId )
-{
-    Q_UNUSED(aDate);
 
-    static_cast<EventModel*>(treeView->model())->loadConflictEvents( mEventId, aConferenceId );
+void ConflictDialogContainer::setEventId(int aEventId, int conferenceId) {
+    mEventId = aEventId;
+    mConferenceId = conferenceId;
+    loadEvents();
 }
 
-void ConflictDialogContainer::updateTreeView(const QDate &aDate)
-{
-    TabContainer::updateTreeView(aDate);
+
+void ConflictDialogContainer::loadEvents() {
+    static_cast<EventModel*>(treeView->model())->loadConflictEvents(mEventId, mConferenceId);
     treeView->setAllExpanded(true);
 }
 
+
+void ConflictDialogContainer::loadEvents(const QDate &aDate, const int aConferenceId) {
+    Q_UNUSED(aDate);
+    Q_ASSERT(aConferenceId == mConferenceId);
+    Q_ASSERT(mConferenceId > 0);
+    Q_ASSERT(mEventId > 0);
+    loadEvents();
+}
+
+
index 9f1616b..068c081 100644 (file)
@@ -28,18 +28,18 @@ class ConflictDialogContainer: public TabContainer
     Q_OBJECT
 public:
     ConflictDialogContainer(QWidget *aParent);
-    virtual ~ConflictDialogContainer(){}
+    virtual ~ConflictDialogContainer() {}
 
-    void setEventId(int aEventId) { mEventId = aEventId; }
+public slots:
+    void setEventId(int aEventId, int conferenceId);
+    void loadEvents(); // update the conflicts
 
 protected:
-    virtual void loadEvents( const QDate &aDate, const int aConferenceId );
-
-protected slots:
-    virtual void updateTreeView(const QDate &aDate);
+    virtual void loadEvents(const QDate &aDate, const int aConferenceId); // the date and conference are ignored
 
 private:
     int mEventId;
+    int mConferenceId;
 };
 
 #endif /* CONFLICTDIALOGCONTAINER_H */
index b4832f7..74e66d1 100644 (file)
  */
 #include "conflictsdialog.h"
 
-ConflictsDialog::ConflictsDialog(int aEventId, QWidget *aParent)
+ConflictsDialog::ConflictsDialog(int aEventId, int aConferenceId, QWidget *aParent)
     : QDialog(aParent)
 {
     setupUi(this);
-    connect(container, SIGNAL(eventHasChanged(int,bool)), this, SIGNAL(eventHasChanged(int,bool)));
-    connect(container, SIGNAL(eventHasChanged(int,bool)), container, SLOT(updateTreeViewModel(int,bool)));
+    connect(container, SIGNAL(eventChanged(int,bool)), this, SIGNAL(eventChanged(int,bool)));
+    connect(container, SIGNAL(eventChanged(int,bool)), container, SLOT(loadEvents()));
 
-    container->setEventId(aEventId);
+    container->setEventId(aEventId, aConferenceId);
 }
 
+
 ConflictsDialog::~ConflictsDialog()
 {
-    disconnect(container, SIGNAL(eventHasChanged(int,bool)), this, SIGNAL(eventHasChanged(int,bool)));
+    disconnect(container, SIGNAL(eventChanged(int,bool)), this, SIGNAL(eventChanged(int,bool)));
 }
 
index cca88db..4a8accc 100644 (file)
@@ -27,10 +27,10 @@ class ConflictsDialog : public QDialog, Ui::ConflictsDialog
 {
     Q_OBJECT
 public:
-    ConflictsDialog(int aEventId, QWidget *aParent = NULL);
+    ConflictsDialog(int aEventId, int aConferenceId, QWidget *aParent = NULL);
     ~ConflictsDialog();
 signals:
-    void eventHasChanged(int aEventId, bool aReloadModel = false);
+    void eventChanged(int aEventId, bool favouriteChanged);
 };
 
 #endif /* CONFLICTSDIALOG_H */ 
index 6fd7004..ee74937 100644 (file)
@@ -86,13 +86,13 @@ void EventDialog::favouriteClicked()
         conflicts = Event::conflictEvents(event.id(),Conference::activeConference());
     }
 
-    // have to emit 'eventHasChanged' signal on all events in conflict
+    // have to emit 'eventChanged' signal on all events in conflict
     for(int i=0; i<conflicts.count(); i++)
-        emit(eventHasChanged(conflicts[i].id()));
+        emit eventChanged(conflicts[i].id(), false);
 
     // since the Favourite icon has changed, update TreeViews accordingly
     // all TreeViews have to listen on this signal
-    emit(eventHasChanged(event.id(),true));
+    emit eventChanged(event.id(), true);
 }
 
 void EventDialog::alarmClicked()
@@ -123,6 +123,6 @@ void EventDialog::alarmClicked()
     event.update("alarm");
     // since the Alarm icon has changed, update TreeView accordingly
     // all TreeViews have to listen on this signal
-    emit(eventHasChanged(event.id()));
+    emit eventChanged(event.id(), false);
 }
 
index afd0b23..1b05073 100644 (file)
@@ -34,7 +34,7 @@ private slots:
     void favouriteClicked();
     void alarmClicked();
 signals:
-    void eventHasChanged(int aEventId, bool aReloadModel = false); // emited when user changes some event details, eg. sets it Favourite
+    void eventChanged(int aEventId, bool favouriteChanged); // emited when user changes some event details, eg. sets it Favourite
 private:
     int mEventId;
 };
index 822a80b..2dc6c56 100644 (file)
@@ -76,7 +76,8 @@ void TabContainer::itemClicked(const QModelIndex &aIndex)
 
 void TabContainer::displayConflicts(const QModelIndex &aIndex)
 {
-    ConflictsDialog dialog(static_cast<Event*>(aIndex.internalPointer())->id(),this);
+    Event* event = static_cast<Event*>(aIndex.internalPointer());
+    ConflictsDialog dialog(event->id(), event->conferenceId(), this);
 #ifdef N810
     dialog.setFixedWidth(static_cast<QWidget*>(parent())->width());
 #endif