mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Splitter for Train View
.. icons and basics. Wanted three treeviews to work on the issue related to treeviews not expanding properly.
This commit is contained in:
@@ -115,9 +115,7 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h
|
||||
deviceTree->header()->hide();
|
||||
deviceTree->setAlternatingRowColors (false);
|
||||
deviceTree->setIndentation(5);
|
||||
allDevices = new QTreeWidgetItem(deviceTree, HEAD_TYPE);
|
||||
allDevices->setText(0, tr("Devices"));
|
||||
deviceTree->expandItem(allDevices);
|
||||
deviceTree->expandItem(deviceTree->invisibleRootItem());
|
||||
deviceTree->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
|
||||
workoutModel = new QSqlTableModel(this, trainDB->connection());
|
||||
@@ -283,19 +281,20 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h
|
||||
recordSelector->setChecked(Qt::Checked);
|
||||
recordSelector->hide(); // we don't let users change this for now
|
||||
|
||||
trainSplitter = new QSplitter;
|
||||
trainSplitter->setHandleWidth(1);
|
||||
trainSplitter->setFrameStyle(QFrame::NoFrame);
|
||||
trainSplitter->setOrientation(Qt::Vertical);
|
||||
trainSplitter = new GcSplitter(Qt::Vertical);
|
||||
trainSplitter->setContentsMargins(0,0,0,0);
|
||||
trainSplitter->setLineWidth(0);
|
||||
trainSplitter->setMidLineWidth(0);
|
||||
|
||||
deviceItem = new GcSplitterItem(tr("Devices"), QIcon(QPixmap(":images/sidebar/power.png")), this);
|
||||
workoutItem = new GcSplitterItem(tr("Workouts"), QIcon(QPixmap(":images/sidebar/folder.png")), this);
|
||||
deviceItem->addWidget(deviceTree);
|
||||
trainSplitter->addWidget(deviceItem);
|
||||
workoutItem->addWidget(workoutTree);
|
||||
trainSplitter->addWidget(workoutItem);
|
||||
cl->addWidget(trainSplitter);
|
||||
trainSplitter->addWidget(deviceTree);
|
||||
trainSplitter->addWidget(workoutTree);
|
||||
|
||||
#if defined Q_OS_MAC || defined GC_HAVE_VLC
|
||||
trainSplitter->addWidget(mediaTree);
|
||||
mediaItem = new GcSplitterItem(tr("Media"), QIcon(QPixmap(":images/sidebar/movie.png")), this);
|
||||
mediaItem->addWidget(mediaTree);
|
||||
trainSplitter->addWidget(mediaItem);
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
@@ -333,7 +332,6 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h
|
||||
// now the GUI is setup lets sort our control variables
|
||||
gui_timer = new QTimer(this);
|
||||
disk_timer = new QTimer(this);
|
||||
stream_timer = new QTimer(this);
|
||||
load_timer = new QTimer(this);
|
||||
|
||||
session_time = QTime();
|
||||
@@ -405,7 +403,7 @@ TrainTool::configChanged()
|
||||
// DEVICES
|
||||
|
||||
// zap whats there
|
||||
QList<QTreeWidgetItem *> devices = allDevices->takeChildren();
|
||||
QList<QTreeWidgetItem *> devices = deviceTree->invisibleRootItem()->takeChildren();
|
||||
for (int i=0; i<devices.count(); i++) delete devices.at(i);
|
||||
|
||||
if (appsettings->value(this, TRAIN_MULTI, false).toBool() == true)
|
||||
@@ -422,7 +420,7 @@ TrainTool::configChanged()
|
||||
for (int i=0; i<Devices.count(); i++) {
|
||||
|
||||
// add to the selection tree
|
||||
QTreeWidgetItem *device = new QTreeWidgetItem(allDevices, i);
|
||||
QTreeWidgetItem *device = new QTreeWidgetItem(deviceTree->invisibleRootItem(), i);
|
||||
device->setText(0, Devices.at(i).name);
|
||||
|
||||
// Create the controllers for each device
|
||||
@@ -447,7 +445,7 @@ TrainTool::configChanged()
|
||||
|
||||
// select the first device
|
||||
if (Devices.count()) {
|
||||
deviceTree->setCurrentItem(allDevices->child(0));
|
||||
deviceTree->setCurrentItem(deviceTree->invisibleRootItem()->child(0));
|
||||
}
|
||||
// And select default workout to Ergo
|
||||
QModelIndex firstWorkout = sortModel->index(0, 0, QModelIndex());
|
||||
@@ -461,26 +459,6 @@ TrainTool::configChanged()
|
||||
useMetricUnits = main->useMetricUnits;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
* Race Server Selected
|
||||
*----------------------------------------------------------------------*/
|
||||
void
|
||||
TrainTool::serverTreeWidgetSelectionChanged()
|
||||
{
|
||||
serverSelected();
|
||||
}
|
||||
|
||||
int
|
||||
TrainTool::selectedServerNumber()
|
||||
{
|
||||
if (serverTree->selectedItems().isEmpty()) return -1;
|
||||
|
||||
QTreeWidgetItem *selected = serverTree->selectedItems().first();
|
||||
|
||||
if (selected->type() == HEAD_TYPE) return -1;
|
||||
else return selected->type();
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
* Device Selected
|
||||
*--------------------------------------------------------------------*/
|
||||
@@ -634,7 +612,6 @@ void TrainTool::Start() // when start button is pressed
|
||||
status &=~RT_PAUSED;
|
||||
foreach(int dev, devices()) Devices[dev].controller->restart();
|
||||
gui_timer->start(REFRESHRATE);
|
||||
if (status & RT_STREAMING) stream_timer->start(STREAMRATE);
|
||||
if (status & RT_RECORDING) disk_timer->start(SAMPLERATE);
|
||||
load_period.restart();
|
||||
if (status & RT_WORKOUT) load_timer->start(LOADRATE);
|
||||
@@ -656,7 +633,6 @@ void TrainTool::Start() // when start button is pressed
|
||||
foreach(int dev, devices()) Devices[dev].controller->pause();
|
||||
status |=RT_PAUSED;
|
||||
gui_timer->stop();
|
||||
if (status & RT_STREAMING) stream_timer->stop();
|
||||
if (status & RT_RECORDING) disk_timer->stop();
|
||||
if (status & RT_WORKOUT) load_timer->stop();
|
||||
load_msecs += load_period.restart();
|
||||
@@ -753,12 +729,6 @@ void TrainTool::Start() // when start button is pressed
|
||||
disk_timer->start(SAMPLERATE); // start screen
|
||||
}
|
||||
}
|
||||
|
||||
// stream
|
||||
if (status & RT_STREAMING) {
|
||||
stream_timer->start(STREAMRATE);
|
||||
}
|
||||
|
||||
gui_timer->start(REFRESHRATE); // start recording
|
||||
|
||||
}
|
||||
@@ -776,7 +746,6 @@ void TrainTool::Pause() // pause capture to recalibrate
|
||||
status &=~RT_PAUSED;
|
||||
foreach(int dev, devices()) Devices[dev].controller->restart();
|
||||
gui_timer->start(REFRESHRATE);
|
||||
if (status & RT_STREAMING) stream_timer->start(STREAMRATE);
|
||||
if (status & RT_RECORDING) disk_timer->start(SAMPLERATE);
|
||||
load_period.restart();
|
||||
if (status & RT_WORKOUT) load_timer->start(LOADRATE);
|
||||
@@ -795,7 +764,6 @@ void TrainTool::Pause() // pause capture to recalibrate
|
||||
foreach(int dev, devices()) Devices[dev].controller->pause();
|
||||
status |=RT_PAUSED;
|
||||
gui_timer->stop();
|
||||
if (status & RT_STREAMING) stream_timer->stop();
|
||||
if (status & RT_RECORDING) disk_timer->stop();
|
||||
if (status & RT_WORKOUT) load_timer->stop();
|
||||
load_msecs += load_period.restart();
|
||||
@@ -1169,7 +1137,6 @@ void TrainTool::Calibrate()
|
||||
lap_time.start();
|
||||
load_period.restart();
|
||||
if (status & RT_WORKOUT) load_timer->start(LOADRATE);
|
||||
if (status & RT_STREAMING) stream_timer->start(STREAMRATE);
|
||||
if (status & RT_RECORDING) disk_timer->start(SAMPLERATE);
|
||||
main->notifyUnPause(); // get video started again, amongst other things
|
||||
|
||||
@@ -1205,7 +1172,6 @@ void TrainTool::Calibrate()
|
||||
session_elapsed_msec += session_time.elapsed();
|
||||
lap_elapsed_msec += lap_time.elapsed();
|
||||
|
||||
if (status & RT_STREAMING) stream_timer->stop();
|
||||
if (status & RT_RECORDING) disk_timer->stop();
|
||||
if (status & RT_WORKOUT) load_timer->stop();
|
||||
load_msecs += load_period.restart();
|
||||
@@ -1518,7 +1484,7 @@ TrainTool::deleteDevice()
|
||||
|
||||
// Delete the selected device
|
||||
QTreeWidgetItem *selected = deviceTree->selectedItems().first();
|
||||
int index = allDevices->indexOfChild(selected);
|
||||
int index = deviceTree->invisibleRootItem()->indexOfChild(selected);
|
||||
|
||||
if (index < 0 || index > list.size()) return;
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "DeviceTypes.h"
|
||||
#include "ErgFile.h"
|
||||
#include "ErgFilePlot.h"
|
||||
#include "GcSideBarItem.h"
|
||||
|
||||
// standard stuff
|
||||
#include <QDir>
|
||||
@@ -83,11 +84,8 @@ class TrainTool : public GcWindow
|
||||
const QTreeWidgetItem *currentWorkout() { return workout; }
|
||||
const QTreeWidgetItem *currentMedia() { return media; }
|
||||
const QTreeWidgetItem *workoutItems() { return allWorkouts; }
|
||||
const QTreeWidgetItem *currentServer() { return server; }
|
||||
const QTreeWidgetItem *serverItems() { return allServers; }
|
||||
|
||||
int selectedDeviceNumber();
|
||||
int selectedServerNumber();
|
||||
|
||||
// set labels when ergfile selected etc
|
||||
void setLabels();
|
||||
@@ -113,13 +111,11 @@ class TrainTool : public GcWindow
|
||||
signals:
|
||||
|
||||
void deviceSelected();
|
||||
void serverSelected();
|
||||
void start();
|
||||
void pause();
|
||||
void stop();
|
||||
|
||||
private slots:
|
||||
void serverTreeWidgetSelectionChanged();
|
||||
void deviceTreeWidgetSelectionChanged();
|
||||
void workoutTreeWidgetSelectionChanged();
|
||||
void mediaTreeWidgetSelectionChanged();
|
||||
@@ -165,7 +161,10 @@ class TrainTool : public GcWindow
|
||||
|
||||
const QDir home;
|
||||
MainWindow *main;
|
||||
QSplitter *trainSplitter;
|
||||
GcSplitter *trainSplitter;
|
||||
GcSplitterItem *deviceItem,
|
||||
*workoutItem,
|
||||
*mediaItem;
|
||||
|
||||
QWidget *toolbarButtons;
|
||||
|
||||
@@ -173,15 +172,11 @@ class TrainTool : public GcWindow
|
||||
QSqlTableModel *workoutModel;
|
||||
|
||||
QTreeWidget *deviceTree;
|
||||
QTreeWidget *serverTree;
|
||||
QTreeView *workoutTree;
|
||||
QSortFilterProxyModel *sortModel; // sorting workout list
|
||||
QSortFilterProxyModel *vsortModel; // sorting video list
|
||||
QTreeView *mediaTree;
|
||||
|
||||
QTreeWidgetItem *allServers;
|
||||
QTreeWidgetItem *allDevices;
|
||||
QTreeWidgetItem *server;
|
||||
QTreeWidgetItem *allWorkouts;
|
||||
QTreeWidgetItem *workout;
|
||||
QTreeWidgetItem *media;
|
||||
@@ -224,7 +219,6 @@ class TrainTool : public GcWindow
|
||||
QTime session_time, lap_time;
|
||||
|
||||
QTimer *gui_timer, // refresh the gui
|
||||
*stream_timer, // send telemetry to server
|
||||
*load_timer, // change the load on the device
|
||||
*disk_timer; // write to .CSV file
|
||||
|
||||
|
||||
@@ -134,5 +134,8 @@
|
||||
<file>images/sidebar/minus.png</file>
|
||||
<file>images/sidebar/plus.png</file>
|
||||
<file>images/sidebar/extra.png</file>
|
||||
<file>images/sidebar/folder.png</file>
|
||||
<file>images/sidebar/movie.png</file>
|
||||
<file>images/sidebar/power.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
src/images/sidebar/folder.png
Executable file
BIN
src/images/sidebar/folder.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 211 B |
BIN
src/images/sidebar/movie.png
Executable file
BIN
src/images/sidebar/movie.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 232 B |
BIN
src/images/sidebar/power.png
Executable file
BIN
src/images/sidebar/power.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 227 B |
Reference in New Issue
Block a user