From 1006c4f227463a6d15169edc89a1fd99bfdb557d Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Tue, 6 Sep 2011 19:15:35 +0000 Subject: [PATCH] Fixed ticket #26 (empty tabs after some actions). --- src/gui/daynavigatorwidget.cpp | 22 ++++++---------------- src/gui/daynavigatorwidget.h | 1 + src/gui/tabcontainer.cpp | 4 ++-- src/mvc/treeview.cpp | 5 +---- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/gui/daynavigatorwidget.cpp b/src/gui/daynavigatorwidget.cpp index 8db754d..48ce89a 100644 --- a/src/gui/daynavigatorwidget.cpp +++ b/src/gui/daynavigatorwidget.cpp @@ -45,23 +45,13 @@ void DayNavigatorWidget::setDates(const QDate &aStartDate, const QDate &aEndDate mStartDate = aStartDate; mEndDate = aEndDate; - mCurDate = aStartDate; + if (!mCurDate.isValid()) mCurDate = mStartDate; + else if (mCurDate < mStartDate) mCurDate = mStartDate; + else if (mCurDate > mEndDate) mCurDate = mEndDate; - // QRect rect = mFontMetrics->boundingRect(mCurDate.toString("MMM dd yyyy")); - - if(mStartDate==mEndDate) // only one day conference - { - prevDayButton->setDisabled(true); - nextDayButton->setDisabled(true); - emit(dateChanged(mCurDate)); - } - else - { - // at least 2-days conference - prevDayButton->setDisabled(true); - nextDayButton->setDisabled(false); - emit(dateChanged(mCurDate)); - } + prevDayButton->setDisabled(mCurDate == mStartDate); + nextDayButton->setDisabled(mCurDate == mEndDate); + emit(dateChanged(mCurDate)); } void DayNavigatorWidget::configureNavigation() diff --git a/src/gui/daynavigatorwidget.h b/src/gui/daynavigatorwidget.h index d4ddcea..79d71f0 100644 --- a/src/gui/daynavigatorwidget.h +++ b/src/gui/daynavigatorwidget.h @@ -77,6 +77,7 @@ class DayNavigatorWidget : public QWidget, private Ui::DayNavigatorWidget DayNavigatorWidget(QWidget *aParent = NULL); ~DayNavigatorWidget() {} void setDates(const QDate &aStartDate, const QDate &aEndDate); + QDate curDate() const {return mCurDate;} protected: void paintEvent(QPaintEvent *); void configureNavigation(); diff --git a/src/gui/tabcontainer.cpp b/src/gui/tabcontainer.cpp index 357ea35..c17eff2 100644 --- a/src/gui/tabcontainer.cpp +++ b/src/gui/tabcontainer.cpp @@ -96,13 +96,13 @@ void TabContainer::updateTreeViewModel(int aEventId, bool aReloadModel) if(aReloadModel) { // requires special handling - // eg. in case of favourities - some favourities may have changed + // eg. in case of favourites - some favourites may have changed // and so we need to reload them int confId = Conference::activeConference(); QDate startDate = Conference::getById(confId).start(); QDate endDate = Conference::getById(confId).end(); dayNavigator->setDates(startDate, endDate); - updateTreeView( Conference::getById(confId).start() ); + updateTreeView(dayNavigator->curDate()); } else { diff --git a/src/mvc/treeview.cpp b/src/mvc/treeview.cpp index 8893351..6f514e9 100644 --- a/src/mvc/treeview.cpp +++ b/src/mvc/treeview.cpp @@ -70,10 +70,7 @@ bool TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aP Event event = Event::getById(aIndex.data().toInt(),confId); QList conflicts = Event::conflictEvents(event.id(),Conference::activeConference()); - if(event.isFavourite()) - event.setFavourite(false); - else - event.setFavourite(true); + event.setFavourite(!event.isFavourite()); event.update("favourite"); if(event.isFavourite()) -- 2.39.5