From 600a9cfb43917469ca6ae6bdc8380ea99db086bd Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Thu, 22 Aug 2019 09:52:52 -0300 Subject: [PATCH] Add Import Chart menu to Main Window and Chart Bar (#3146) It allows to import .gchart files from menus as an alternative to drag&drop, for completeness and to reduce end user questions. --- src/Charts/ChartBar.cpp | 2 ++ src/Gui/MainWindow.cpp | 13 +++++++++++++ src/Gui/MainWindow.h | 1 + 3 files changed, 16 insertions(+) diff --git a/src/Charts/ChartBar.cpp b/src/Charts/ChartBar.cpp index 1d6e89dda..265c95417 100644 --- a/src/Charts/ChartBar.cpp +++ b/src/Charts/ChartBar.cpp @@ -122,6 +122,8 @@ ChartBar::ChartBar(Context *context) : QWidget(context->mainWindow), context(con barMenu = new QMenu("Add"); chartMenu = barMenu->addMenu(tr("Add Chart")); + barMenu->addAction(tr("Import Chart..."), context->mainWindow, SLOT(importChart())); + #ifdef GC_HAS_CLOUD_DB barMenu->addAction(tr("Upload Chart..."), context->mainWindow, SLOT(exportChartToCloudDB())); barMenu->addAction(tr("Download Chart..."), context->mainWindow, SLOT(addChartFromCloudDB())); diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 034bd304d..c5478d2e3 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -554,6 +554,7 @@ MainWindow::MainWindow(const QDir &home) #endif viewMenu->addSeparator(); subChartMenu = viewMenu->addMenu(tr("Add Chart")); + viewMenu->addAction(tr("Import Chart..."), this, SLOT(importChart())); #ifdef GC_HAS_CLOUD_DB viewMenu->addAction(tr("Upload Chart..."), this, SLOT(exportChartToCloudDB())); viewMenu->addAction(tr("Download Chart..."), this, SLOT(addChartFromCloudDB())); @@ -820,6 +821,18 @@ MainWindow::addChart(QAction*action) currentTab->addChart(id); // called from MainWindow to inset chart } +void +MainWindow::importChart() +{ + QString fileName = QFileDialog::getOpenFileName(this, tr("Select Chart file to import"), "", tr("GoldenCheetah Chart Files (*.gchart)")); + + if (fileName.isEmpty()) { + QMessageBox::critical(this, tr("Import Chart"), tr("No chart file selected!")); + } else { + importCharts(QStringList()<