Update Context Help for Options/Preferences and ScopeBar

Includes separation of Global/Athlete Options and New SideBar.
[publish binaries]
This commit is contained in:
Ale Martinez
2021-04-14 12:52:31 -03:00
parent e79b474ea8
commit cb04baf734
7 changed files with 46 additions and 28 deletions

View File

@@ -146,7 +146,7 @@ AthleteConfig::AthleteConfig(QDir home, Context *context) :
backupPage = new BackupPage(context);
HelpWhatsThis *backupPageHelp = new HelpWhatsThis(backupPage);
autoImportPage->setWhatsThis(backupPageHelp->getWhatsThisText(HelpWhatsThis::Preferences_Athlete_Backup));
backupPage->setWhatsThis(backupPageHelp->getWhatsThisText(HelpWhatsThis::Preferences_Athlete_Backup));
setContentsMargins(0,0,0,0);
QHBoxLayout *mainLayout = new QHBoxLayout(this);

View File

@@ -2,6 +2,7 @@
#include "AthleteConfigDialog.h"
#include "TabView.h"
#include "JsonRideFile.h" // for DATETIME_FORMAT
#include "HelpWhatsThis.h"
// athlete card
static bool _registerItems()
@@ -23,6 +24,9 @@ static const int gl_button_width = ROWHEIGHT*5;
AthleteView::AthleteView(Context *context) : ChartSpace(context, OverviewScope::ATHLETES)
{
HelpWhatsThis *help = new HelpWhatsThis(this);
this->setWhatsThis(help->getWhatsThisText(HelpWhatsThis::ScopeBar_Athletes));
// fixed width - 1200 col width, 70 margins + scrollbar
setFixedZoom(50 + (gl_athletes_per_row*1200) + ((gl_athletes_per_row+1) * 70));

View File

@@ -67,16 +67,20 @@ HelpWhatsThis::getText(GCHelp chapter) {
return text.arg("Main-Page_Table-of-contents").arg("Table of Contents");
// Scope Bar
case ScopeBar:
return text.arg("ScopeBar_Views").arg(tr("Quick access to main Views and common actions"));
case ScopeBar_Athletes:
return text.arg("ScopeBar_Views#athletes").arg(tr("Athletes Status and Configuration"));
case ScopeBar_Trends:
return text.arg("ScopeBar_Views#trends").arg(tr("Analysis of a number of activities (e.g. a date range ) like PMC, long term metrics view, ... and data summaries"));
case ScopeBar_Diary:
return text.arg("ScopeBar_Views#diary").arg(tr("Extended Calendar view and configurable activity list, plus long term metrics charts and diagram types"));
case ScopeBar_Rides:
return text.arg("ScopeBar_Views#activities").arg(tr("Analysis of a single activity with diagrams like activity plot, W'bal, ... and Chung's Aerolab"));
case ScopeBar_Intervals:
return text.arg("ScopeBar_Views#intervals").arg("Intervals");
case ScopeBar_Train:
return text.arg("ScopeBar_Views#train").arg(tr("Ride indoors, following pre-programmed workouts - with multi device and video playback support"));
case ScopeBar_Sync:
return text.arg("ScopeBar_Views#sync").arg(tr("Sync with all Cloud Services with Sync on Start Up option enabled"));
case ScopeBar_Options:
return text.arg("ScopeBar_Views#options").arg(tr("Application level Options/Preferences for all athletes"));
// Tool Bar
case ToolBar_Download:
@@ -317,22 +321,27 @@ HelpWhatsThis::getText(GCHelp chapter) {
return text.arg("Workout-Control_General").arg(tr("Workout Control, Intensity Adjustments and Notifications Display"));
// Preferences
case Preferences_General:
return text.arg("Preferences_General").arg(tr("General"));
case Preferences_Athlete_About:
return text.arg("Preferences_Athlete").arg(tr("Athlete"));
case Preferences_Athlete_About_Phys:
return text.arg("Preferences_Athlete_Phys").arg(tr("Athlete"));
case Preferences_Athlete_About_Model:
return text.arg("Preferences_Athlete#model").arg(tr("Athlete Model"));
case Preferences_Athlete_TrainingZones_Power:
return text.arg("Preferences_Athlete_Training-Zones#power-zones").arg(tr("Training Zone definition for power"));
case Preferences_Athlete_TrainingZones_HR:
return text.arg("Preferences_Athlete_Training-Zones#heartrate-zones").arg(tr("Training Zone definition for heartrate"));
case Preferences_Athlete_TrainingZones_Pace:
return text.arg("Preferences_Athlete_Training-Zones#pace-zones").arg(tr("Training Zone definition for Swim and Run"));
case Preferences_Athlete_Measures:
return text.arg("Preferences_Athlete#measures").arg(tr("Athlete Measures"));
case Preferences_Athlete_Autoimport:
return text.arg("Preferences_Athlete_Autoimport").arg(tr("Autoimport"));
return text.arg("Preferences_Athlete#auto-import").arg(tr("Auto Import"));
case Preferences_Athlete_Backup:
return text.arg("Preferences_Athlete#backup").arg(tr("Backup"));
case Preferences_Passwords:
return text.arg("Preferences_Passwords").arg(tr("Passwords"));
return text.arg("Preferences_Accounts").arg(tr("Cloud Accounts"));
case Preferences_General:
return text.arg("Preferences_General").arg(tr("General"));
case Preferences_Appearance:
return text.arg("Preferences_Appearance").arg(tr("Appearance"));
case Preferences_Intervals:
@@ -355,6 +364,8 @@ HelpWhatsThis::getText(GCHelp chapter) {
return text.arg("Preferences_Metrics#summary").arg(tr("Metrics shown in 'Summary'"));
case Preferences_Metrics_Intervals:
return text.arg("Preferences_Metrics#intervals").arg(tr("Metrics shown in 'Intervals'"));
case Preferences_Measures:
return text.arg("Preferences_Measures").arg(tr("Measures"));
case Preferences_Training:
return text.arg("Preferences_Training").arg(tr("Training"));
case Preferences_Training_RemoteControls:

View File

@@ -33,11 +33,13 @@ Q_OBJECT
public:
enum GCHelp{ Default,
ScopeBar,
ScopeBar_Athletes,
ScopeBar_Trends,
ScopeBar_Diary,
ScopeBar_Rides,
ScopeBar_Intervals,
ScopeBar_Train,
ScopeBar_Sync,
ScopeBar_Options,
ToolBar_Download,
ToolBar_Manual,
@@ -171,7 +173,6 @@ Q_OBJECT
Preferences_General,
Preferences_Athlete_About,
Preferences_Athlete_About_Phys,
Preferences_Athlete_Measures,
Preferences_Athlete_About_Model,
Preferences_Athlete_TrainingZones_Power,

View File

@@ -219,30 +219,33 @@ MainWindow::MainWindow(const QDir &home)
*--------------------------------------------------------------------*/
sidebar = new NewSideBar(context, this);
sidebar->addItem(QImage(":sidebar/athlete.png"), tr("athletes"), 0);
HelpWhatsThis *helpNewSideBar = new HelpWhatsThis(sidebar);
sidebar->setWhatsThis(helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar));
sidebar->addItem(QImage(":sidebar/athlete.png"), tr("athletes"), 0, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Athletes));
sidebar->setItemEnabled(1, false);
sidebar->addItem(QImage(":sidebar/plan.png"), tr("plan"), 1);
sidebar->addItem(QImage(":sidebar/plan.png"), tr("plan"), 1), tr("Feature not implemented yet");
sidebar->setItemEnabled(1, false);
sidebar->addItem(QImage(":sidebar/trends.png"), tr("trends"), 2);
sidebar->addItem(QImage(":sidebar/assess.png"), tr("activities"), 3);
sidebar->addItem(QImage(":sidebar/trends.png"), tr("trends"), 2, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Trends));
sidebar->addItem(QImage(":sidebar/assess.png"), tr("activities"), 3, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Rides));
sidebar->setItemSelected(3, true);
sidebar->addItem(QImage(":sidebar/reflect.png"), tr("reflect"), 4);
sidebar->addItem(QImage(":sidebar/reflect.png"), tr("reflect"), 4), tr("Feature not implemented yet");
sidebar->setItemEnabled(4, false);
sidebar->addItem(QImage(":sidebar/train.png"), tr("train"), 5);
sidebar->addItem(QImage(":sidebar/train.png"), tr("train"), 5, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Train));
sidebar->addStretch();
sidebar->addItem(QImage(":sidebar/apps.png"), tr("apps"), 6);
sidebar->addItem(QImage(":sidebar/apps.png"), tr("apps"), 6, tr("Feature not implemented yet"));
sidebar->setItemEnabled(6, false);
sidebar->addStretch();
// we can click on the quick icons, but they aren't selectable views
sidebar->addItem(QImage(":sidebar/sync.png"), tr("sync"), 7);
sidebar->addItem(QImage(":sidebar/sync.png"), tr("sync"), 7, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Sync));
sidebar->setItemSelectable(7, false);
sidebar->addItem(QImage(":sidebar/prefs.png"), tr("options"), 8);
sidebar->addItem(QImage(":sidebar/prefs.png"), tr("options"), 8, helpNewSideBar->getWhatsThisText(HelpWhatsThis::ScopeBar_Options));
sidebar->setItemSelectable(8, false);
connect(sidebar, SIGNAL(itemClicked(int)), this, SLOT(sidebarClicked(int)));
@@ -1238,9 +1241,7 @@ void
MainWindow::sidebarSelected(int id)
{
switch (id) {
case 0: // athlete not written yet
selectAthlete();
break;
case 0: selectAthlete(); break;
case 1: // plan not written yet
break;
case 2: selectHome(); break;

View File

@@ -57,12 +57,13 @@ NewSideBar::selected(int id)
}
int
NewSideBar::addItem(QImage icon, QString name, int id)
NewSideBar::addItem(QImage icon, QString name, int id, QString whatsThisText)
{
// allocated an id
if (id == -1) id=lastid++;
NewSideBarItem *add = new NewSideBarItem(this, id, icon, name);
if (!whatsThisText.isEmpty()) add->setWhatsThis(whatsThisText);
layout->addWidget(add);
items.insert(id, add);

View File

@@ -18,7 +18,7 @@ class NewSideBar : public QWidget
// managing items - the id can be assigned or will get a default
// it returns the id used
int addItem(QImage icon, QString name, int id=-1);
int addItem(QImage icon, QString name, int id=-1, QString whatsThisText="");
// leave a gap- we have main icons, gap, apps, gap, sync, prefs
void addStretch();