X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/blobdiff_plain/de5d0f171e04928e5e6f88753c9068b233b051f8..080dc7d603d45ba0662aa731418993ddd45b5fe8:/src/gui/daynavigatorwidget.cpp diff --git a/src/gui/daynavigatorwidget.cpp b/src/gui/daynavigatorwidget.cpp index 0aa3a84..1b61efd 100644 --- a/src/gui/daynavigatorwidget.cpp +++ b/src/gui/daynavigatorwidget.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2010 Ixonos Plc. - * Copyright (C) 2011-2017 Philipp Spitzer, gregor herrmann, Stefan Stahl + * Copyright (C) 2011-2024 Philipp Spitzer, gregor herrmann, Stefan Stahl * * This file is part of ConfClerk. * @@ -17,11 +17,14 @@ * You should have received a copy of the GNU General Public License along with * ConfClerk. If not, see . */ -#include "daynavigatorwidget.h" #include #include +#include "daynavigatorwidget.h" +#include "conference.h" +#include "application.h" + DayNavigatorWidget::DayNavigatorWidget(QWidget *aParent): QWidget(aParent) { setupUi(this); @@ -80,6 +83,14 @@ void DayNavigatorWidget::unsetDates() { this->update(); } +QSize DayNavigatorWidget::minimumSizeHint() const { +#ifdef MAEMO + return QSize(20, 0); +#else + return QSize(fontMetrics().lineSpacing() * 3 / 2, 0); +#endif +} + void DayNavigatorWidget::configureNavigation() { prevDayButton->setDisabled(!mStartDate.isValid() || mCurDate == mStartDate); @@ -107,8 +118,28 @@ void DayNavigatorWidget::nextDayButtonClicked() { void DayNavigatorWidget::paintEvent(QPaintEvent *aEvent) { Q_UNUSED(aEvent); - - QString selectedDateStr = mCurDate.isValid() ? mCurDate.toString("dddd\nyyyy-MM-dd") : tr("No date"); + QString selectedDateStr; + if (mCurDate.isValid()) { + QString selectedDateFormat = +#ifdef MAEMO + "dddd\nyyyy-MM-dd"; +#else + "dddd • yyyy-MM-dd"; +#endif + selectedDateStr = mCurDate.toString(selectedDateFormat); + bool hasConference = ((Application*) qApp)->hasActiveConference(); + if (hasConference) { + Conference& conference = ((Application*) qApp)->activeConference(); + if (conference.hasDisplayTimeShift() && conference.displayTimeShift() != 0) { + QTime shift(0, 0); + bool minus = conference.displayTimeShift() < 0; + shift = shift.addSecs(conference.displayTimeShift() * 60 * (minus ? -1 : 1)); + selectedDateStr += " • " + (minus ? QString("-") : "+") + shift.toString("HH:mm"); + } + } + } else { + selectedDateStr = tr("No date"); + } QPainter painter(this); painter.save(); @@ -121,7 +152,12 @@ void DayNavigatorWidget::paintEvent(QPaintEvent *aEvent) { #ifdef MAEMO qreal factor = 0.8; #else - qreal factor = (qreal) 2 * q.width() / painter.fontMetrics().width(selectedDateStr); +#if QT_VERSION >= 0x050b00 // QT 5.11 + auto dateStrWidth = painter.fontMetrics().horizontalAdvance(selectedDateStr); +#else + auto dateStrWidth = painter.fontMetrics().width(selectedDateStr); +#endif + qreal factor = (qreal) 2 * q.width() / dateStrWidth; #endif if (factor < 1) f.setPointSizeF(f.pointSizeF() * factor); painter.setFont(f);