From 6441a6faf8dfc9b4449672c2f73dfdda210ae813 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sun, 19 Dec 2021 13:52:57 +0000 Subject: [PATCH] Overview Minimum Columns Settings .. most users likely won't use this, but the minimum number of columns to scale the scene is now configurable in the settings dialog for the overview. --- src/Charts/Overview.cpp | 25 ++++++++++++++++++------- src/Charts/Overview.h | 10 ++++++---- src/Gui/ChartSpace.h | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/Charts/Overview.cpp b/src/Charts/Overview.cpp index bc38a0fa3..451df6956 100644 --- a/src/Charts/Overview.cpp +++ b/src/Charts/Overview.cpp @@ -26,7 +26,7 @@ static QIcon grayConfig, whiteConfig, accentConfig; -OverviewWindow::OverviewWindow(Context *context, int scope, bool blank) : GcChartWindow(context), context(context), configured(false), scope(scope), blank(blank), mincols(5) +OverviewWindow::OverviewWindow(Context *context, int scope, bool blank) : GcChartWindow(context), context(context), configured(false), scope(scope), blank(blank) { setContentsMargins(0,0,0,0); setProperty("color", GColor(COVERVIEWBACKGROUND)); @@ -39,17 +39,27 @@ OverviewWindow::OverviewWindow(Context *context, int scope, bool blank) : GcChar QAction *importChart= new QAction(tr("Import Chart...")); addAction(importChart); - QAction *renameChart= new QAction(tr("Rename...")); - addAction(renameChart); + QAction *settings= new QAction(tr("Settings...")); + addAction(settings); - setControls(NULL); + // settings + QWidget *controls=new QWidget(this); + QFormLayout *formlayout = new QFormLayout(controls); + mincolsEdit= new QSpinBox(this); + mincolsEdit->setMinimum(1); + mincolsEdit->setMaximum(10); + mincolsEdit->setValue(5); + mincolsEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); + formlayout->addRow(new QLabel(tr("Minimum Columns")), mincolsEdit); + + setControls(controls); QHBoxLayout *main = new QHBoxLayout; main->setSpacing(0); main->setContentsMargins(0,0,0,0); space = new ChartSpace(context, scope, this); - space->setMinimumColumns(mincols); + space->setMinimumColumns(minimumColumns()); main->addWidget(space); HelpWhatsThis *help = new HelpWhatsThis(space); @@ -77,7 +87,8 @@ OverviewWindow::OverviewWindow(Context *context, int scope, bool blank) : GcChar // menu items connect(addTile, SIGNAL(triggered(bool)), this, SLOT(addTile())); connect(importChart, SIGNAL(triggered(bool)), this, SLOT(importChart())); - connect(renameChart, SIGNAL(triggered(bool)), this, SLOT(renameChart())); + connect(settings, SIGNAL(triggered(bool)), this, SLOT(settings())); + connect(mincolsEdit, SIGNAL(valueChanged(int)), this, SLOT(setMinimumColumns(int))); connect(space, SIGNAL(itemConfigRequested(ChartSpaceItem*)), this, SLOT(configItem(ChartSpaceItem*))); } @@ -104,7 +115,7 @@ OverviewWindow::addTile() } void -OverviewWindow::renameChart() +OverviewWindow::settings() { emit showControls(); } diff --git a/src/Charts/Overview.h b/src/Charts/Overview.h index 180604081..6f01aa9cf 100644 --- a/src/Charts/Overview.h +++ b/src/Charts/Overview.h @@ -29,6 +29,7 @@ #include "RideItem.h" #include "RideMetric.h" #include "HrZones.h" +#include #include "ChartSpace.h" #include "OverviewItems.h" @@ -53,13 +54,13 @@ class OverviewWindow : public GcChartWindow QString getConfiguration() const; void setConfiguration(QString x); - int minimumColumns() const { return mincols; } - void setMinimumColumns(int x) { mincols=x; space->setMinimumColumns(mincols); } + int minimumColumns() const { return mincolsEdit->value(); } + void setMinimumColumns(int x) { if (x>0 && x< 11) {mincolsEdit->setValue(x); space->setMinimumColumns(x); }} // add a tile to the window void addTile(); void importChart(); - void renameChart(); + void settings(); // config item requested void configItem(ChartSpaceItem *); @@ -71,7 +72,8 @@ class OverviewWindow : public GcChartWindow bool configured; int scope; bool blank; - int mincols; + + QSpinBox *mincolsEdit; }; class OverviewConfigDialog : public QDialog diff --git a/src/Gui/ChartSpace.h b/src/Gui/ChartSpace.h index 63094b99e..31f28bea8 100644 --- a/src/Gui/ChartSpace.h +++ b/src/Gui/ChartSpace.h @@ -194,7 +194,7 @@ class ChartSpace : public QWidget // current state for event processing enum { NONE, DRAG, SPAN, XRESIZE, YRESIZE } state; - void setMinimumColumns(int x) { mincols=x; updateGeometry(); } + void setMinimumColumns(int x) { mincols=x; updateGeometry(); updateView(); } int minimumColumns() const { return mincols; } // used by children