mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4624 Allow customization of date/time components in labels
This commit is contained in:
@@ -114,7 +114,9 @@ void RiuQwtPlotTools::setDefaultAxes(QwtPlot* plot)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuQwtPlotTools::enableDateBasedBottomXAxis(QwtPlot* plot,
|
||||
const QString& dateFormat,
|
||||
const QString& timeFormat)
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents)
|
||||
{
|
||||
QwtDateScaleDraw* scaleDraw = new QwtDateScaleDraw(Qt::UTC);
|
||||
|
||||
@@ -129,7 +131,7 @@ void RiuQwtPlotTools::enableDateBasedBottomXAxis(QwtPlot* plot,
|
||||
|
||||
for (QwtDate::IntervalType interval : intervals)
|
||||
{
|
||||
scaleDraw->setDateFormat(interval, dateTimeFormatForInterval(interval, dateFormat, timeFormat));
|
||||
scaleDraw->setDateFormat(interval, dateTimeFormatForInterval(interval, dateFormat, timeFormat, dateComponents, timeComponents));
|
||||
}
|
||||
|
||||
QwtDateScaleEngine* scaleEngine = new QwtDateScaleEngine(Qt::UTC);
|
||||
@@ -142,39 +144,51 @@ void RiuQwtPlotTools::enableDateBasedBottomXAxis(QwtPlot* plot,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuQwtPlotTools::dateTimeFormatForInterval(QwtDate::IntervalType interval,
|
||||
const QString& dateFormat,
|
||||
const QString& timeFormat)
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents)
|
||||
{
|
||||
switch (interval)
|
||||
{
|
||||
case QwtDate::Millisecond:
|
||||
return RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND_MILLISECOND);
|
||||
case QwtDate::Second:
|
||||
return RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND);
|
||||
case QwtDate::Minute: {
|
||||
QString fullFormat = RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE);
|
||||
fullFormat += "\n";
|
||||
fullFormat += RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
return fullFormat;
|
||||
}
|
||||
case QwtDate::Hour: {
|
||||
QString fullFormat = RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR);
|
||||
if (!fullFormat.endsWith("AP"))
|
||||
{
|
||||
fullFormat += ":00";
|
||||
}
|
||||
fullFormat += "\n";
|
||||
fullFormat += RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
return fullFormat;
|
||||
}
|
||||
case QwtDate::Day:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
case QwtDate::Week:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH);
|
||||
case QwtDate::Month:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH);
|
||||
case QwtDate::Year:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR);
|
||||
default:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
}
|
||||
if (dateComponents != RiaQDateTimeTools::DATE_FORMAT_UNSPECIFIED && timeComponents != RiaQDateTimeTools::TIME_FORMAT_UNSPECIFIED)
|
||||
{
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, dateComponents) + "\n" +
|
||||
RiaQDateTimeTools::timeFormatString(timeFormat, timeComponents);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (interval)
|
||||
{
|
||||
case QwtDate::Millisecond:
|
||||
return RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND_MILLISECOND);
|
||||
case QwtDate::Second:
|
||||
return RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND);
|
||||
case QwtDate::Minute:
|
||||
{
|
||||
QString fullFormat = RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE);
|
||||
fullFormat += "\n";
|
||||
fullFormat += RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
return fullFormat;
|
||||
}
|
||||
case QwtDate::Hour:
|
||||
{
|
||||
QString fullFormat = RiaQDateTimeTools::timeFormatString(timeFormat, RiaQDateTimeTools::TIME_FORMAT_HOUR);
|
||||
if (!fullFormat.endsWith("AP"))
|
||||
{
|
||||
fullFormat += ":00";
|
||||
}
|
||||
fullFormat += "\n";
|
||||
fullFormat += RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
return fullFormat;
|
||||
}
|
||||
case QwtDate::Day:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
case QwtDate::Week:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH);
|
||||
case QwtDate::Month:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH);
|
||||
case QwtDate::Year:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR);
|
||||
default:
|
||||
return RiaQDateTimeTools::dateFormatString(dateFormat, RiaQDateTimeTools::DATE_FORMAT_YEAR_MONTH_DAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -27,8 +27,15 @@ class RiuQwtPlotTools
|
||||
public:
|
||||
static void setCommonPlotBehaviour(QwtPlot* plot);
|
||||
static void setDefaultAxes(QwtPlot* plot);
|
||||
static void enableDateBasedBottomXAxis(QwtPlot* plot, const QString& dateFormat, const QString& timeFormat);
|
||||
static void enableDateBasedBottomXAxis(QwtPlot* plot,
|
||||
const QString& dateFormat,
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents = RiaQDateTimeTools::DATE_FORMAT_UNSPECIFIED,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents = RiaQDateTimeTools::TIME_FORMAT_UNSPECIFIED);
|
||||
|
||||
static QString
|
||||
dateTimeFormatForInterval(QwtDate::IntervalType interval, const QString& dateFormat, const QString& timeFormat);
|
||||
static QString dateTimeFormatForInterval(QwtDate::IntervalType interval,
|
||||
const QString& dateFormat,
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents);
|
||||
};
|
||||
|
@@ -102,9 +102,11 @@ RiuSummaryQwtPlot::RiuSummaryQwtPlot(RimViewWindow* viewWindow, QWidget* parent
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSummaryQwtPlot::useDateBasedTimeAxis(const QString& dateFormat,
|
||||
const QString& timeFormat)
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents)
|
||||
{
|
||||
RiuQwtPlotTools::enableDateBasedBottomXAxis(this, dateFormat, timeFormat);
|
||||
RiuQwtPlotTools::enableDateBasedBottomXAxis(this, dateFormat, timeFormat, dateComponents, timeComponents);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -41,7 +41,12 @@ class RiuSummaryQwtPlot : public RiuQwtPlot
|
||||
public:
|
||||
RiuSummaryQwtPlot(RimViewWindow* ownerViewWindow, QWidget* parent = nullptr);
|
||||
|
||||
void useDateBasedTimeAxis(const QString& dateFormat, const QString& timeFormat);
|
||||
void
|
||||
useDateBasedTimeAxis(const QString& dateFormat,
|
||||
const QString& timeFormat,
|
||||
RiaQDateTimeTools::DateFormatComponents dateComponents = RiaQDateTimeTools::DATE_FORMAT_UNSPECIFIED,
|
||||
RiaQDateTimeTools::TimeFormatComponents timeComponents = RiaQDateTimeTools::TIME_FORMAT_UNSPECIFIED);
|
||||
|
||||
void useTimeBasedTimeAxis();
|
||||
|
||||
void addOrUpdateEnsembleCurveSetLegend(RimEnsembleCurveSet* curveSetToShowLegendFor);
|
||||
|
Reference in New Issue
Block a user