diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -86,6 +86,7 @@ auto newInstanceWidget = new AtCoreInstanceWidget(); QString name = QString::number(m_instances->addTab(newInstanceWidget, i18n("Connect a printer"))); newInstanceWidget->setObjectName(name); + newInstanceWidget->setOpenFiles(m_openFiles); connect(this, &MainWindow::profilesChanged, newInstanceWidget, &AtCoreInstanceWidget::updateProfileData); connect(newInstanceWidget, &AtCoreInstanceWidget::requestProfileDialog, [ this ] { std::unique_ptr pd(new ProfilesDialog); diff --git a/src/widgets/atcoreinstancewidget.h b/src/widgets/atcoreinstancewidget.h --- a/src/widgets/atcoreinstancewidget.h +++ b/src/widgets/atcoreinstancewidget.h @@ -67,6 +67,7 @@ QMap profileData; QList m_files; QAction *m_printAction; + QAction *m_stopAction; QSettings m_settings; QString m_theme; void initConnectsToAtCore(); @@ -86,6 +87,7 @@ void updateSerialPort(const QStringList &ports); void buildConnectionToolbar(); void connectButtonClicked(); + void togglePrintButtons(bool shown); signals: void connectionChanged(QString name); void disableDisconnect(bool b); diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp --- a/src/widgets/atcoreinstancewidget.cpp +++ b/src/widgets/atcoreinstancewidget.cpp @@ -28,7 +28,8 @@ QWidget(parent), m_mainToolBar(nullptr), m_toolBar(nullptr), - m_printAction(nullptr) + m_printAction(nullptr), + m_stopAction(nullptr) { m_theme = palette().text().color().value() >= QColor(Qt::lightGray).value() ? QString("dark") : QString("light") ; ui = new Ui::AtCoreInstanceWidget; @@ -116,20 +117,20 @@ }); m_mainToolBar->addAction(m_printAction); - auto stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QString(":/%1/stop").arg(m_theme))), i18n("Stop")); - - connect(stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint); - connect(stopAction, &QAction::triggered, [this](){ + m_stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QString(":/%1/stop").arg(m_theme))), i18n("Stop")); + connect(m_stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint); + connect(m_stopAction, &QAction::triggered, [this](){ m_printAction->setText(i18n("Print")); m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme)))); }); - m_mainToolBar->addAction(stopAction); + m_mainToolBar->addAction(m_stopAction); auto disableMotorsAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop),i18n("Disable Motors")); connect(disableMotorsAction, &QAction::triggered, this, &AtCoreInstanceWidget::disableMotors); m_mainToolBar->addAction(disableMotorsAction); ui->mainToolBarLayout->addWidget(m_mainToolBar); + togglePrintButtons(m_files.size()); } void AtCoreInstanceWidget::buildConnectionToolbar() @@ -449,6 +450,7 @@ void AtCoreInstanceWidget::setOpenFiles(const QList& files) { m_files = files; + togglePrintButtons(m_files.size()); } void AtCoreInstanceWidget::updateSerialPort(const QStringList &ports) @@ -465,3 +467,9 @@ m_comboProfile->clear(); m_comboProfile->addItems(profiles); } + +void AtCoreInstanceWidget::togglePrintButtons(bool shown) +{ + m_printAction->setVisible(shown); + m_stopAction->setVisible(shown); +}