Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev info btn #1779

Merged
merged 6 commits into from
Nov 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions gui/include/gui/widgets/popupwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <QPushButton>
#include <QTextBrowser>
#include <QWidget>
#include <hoverwidget.h>

namespace scopy {
class SCOPY_GUI_EXPORT PopupWidget : public QWidget
Expand Down Expand Up @@ -55,6 +56,8 @@ class SCOPY_GUI_EXPORT PopupWidget : public QWidget
QPushButton *getExitBtn();
QPushButton *getContinueBtn();

void enableCloseButton(bool en);

Q_SIGNALS:
void continueButtonClicked();
void exitButtonClicked();
Expand All @@ -66,6 +69,8 @@ class SCOPY_GUI_EXPORT PopupWidget : public QWidget
QTextBrowser *m_descriptionTextBrowser;
QPushButton *m_exitButton;
QPushButton *m_continueButton;
QPushButton *m_closeButton;
HoverWidget *m_closeHover;
};
} // namespace scopy

Expand Down
12 changes: 11 additions & 1 deletion gui/include/gui/widgets/toolbuttons.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <QPushButton>

#include <menu_anim.hpp>
#include <popupwidget.h>
#include <scopy-gui_export.h>
#include <utils.h>

Expand Down Expand Up @@ -63,7 +64,16 @@ class SCOPY_GUI_EXPORT InfoBtn : public QPushButton
{
Q_OBJECT
public:
InfoBtn(QWidget *parent = nullptr);
InfoBtn(QWidget *parent = nullptr, bool hasTutorial = false);

bool hasTutorial();
QPushButton *getTutorialButton();
QPushButton *getDocumentationButton();
void generateInfoPopup(QWidget *parent);

private:
PopupWidget *m_popupWidget;
bool m_hasTutorial;
};

class SCOPY_GUI_EXPORT RunBtn : public QPushButton
Expand Down
30 changes: 30 additions & 0 deletions gui/src/widgets/popupwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,36 @@ void PopupWidget::initUI()
Style::setStyle(m_continueButton, style::properties::button::basicButton, true, true);
Style::setStyle(m_exitButton, style::properties::button::basicButton, true, true);
Style::setStyle(this, style::properties::widget::overlayMenu);

m_closeButton = nullptr;
m_closeHover = nullptr;
}

void PopupWidget::enableCloseButton(bool en)
{
if(en) {
m_closeButton = new QPushButton(this);
m_closeButton->setMaximumSize(20, 20);
m_closeButton->setIcon(Style::getPixmap(":/gui/icons/close_hovered.svg",
Style::getColor(json::theme::interactive_subtle_idle)));
Style::setStyle(m_closeButton, style::properties::widget::notInteractive);

m_closeHover = new HoverWidget(m_closeButton, this, this);
m_closeHover->setAnchorPos(HoverPosition::HP_TOPRIGHT);
m_closeHover->setContentPos(HoverPosition::HP_CENTER);
m_closeHover->setAnchorOffset(QPoint(-20, 20));
m_closeHover->setVisible(true);
m_closeHover->raise();

connect(m_closeButton, &QPushButton::clicked, this, [=]() { deleteLater(); });
} else {
if(m_closeButton != nullptr) {
delete m_closeButton;
}
if(m_closeHover != nullptr) {
delete m_closeHover;
}
}
}

void PopupWidget::setFocusOnContinueButton()
Expand Down
43 changes: 42 additions & 1 deletion gui/src/widgets/toolbuttons.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,11 @@ GearBtn::GearBtn(QWidget *parent)
Style::setStyle(this, style::properties::button::squareIconButton);
}

InfoBtn::InfoBtn(QWidget *parent)
InfoBtn::InfoBtn(QWidget *parent, bool hasTutorial)
: QPushButton(parent)
, m_hasTutorial(hasTutorial)
{

QString iconPath = ":/gui/icons/" + Style::getAttribute(json::theme::icon_theme_folder) + "/icons/info.svg";
setIcon(Style::getPixmap(iconPath, Style::getColor(json::theme::content_default)));

Expand All @@ -102,6 +104,45 @@ InfoBtn::InfoBtn(QWidget *parent)
Style::setStyle(this, style::properties::button::squareIconButton);
}

bool InfoBtn::hasTutorial() { return m_hasTutorial; }

void InfoBtn::generateInfoPopup(QWidget *parent)
{
m_popupWidget = new PopupWidget(parent);
m_popupWidget->move(parent->rect().center() - m_popupWidget->rect().center());
m_popupWidget->setTitle("Plugin Information");
m_popupWidget->setDescription(
"To learn more about this plugin, check out the tutorial or read the online documentation.");
m_popupWidget->getExitBtn()->setText("Tutorial");
m_popupWidget->getContinueBtn()->setText("Documentation");
m_popupWidget->enableCloseButton(true);

connect(m_popupWidget->getExitBtn(), &QPushButton::clicked, this, [=]() { m_popupWidget->deleteLater(); });

connect(m_popupWidget->getContinueBtn(), &QPushButton::clicked, this, [=]() { m_popupWidget->deleteLater(); });

m_popupWidget->enableTintedOverlay(true);
m_popupWidget->show();
m_popupWidget->raise();
}

QPushButton *InfoBtn::getTutorialButton()
{
if(m_hasTutorial) {
return m_popupWidget->getExitBtn();
}

return nullptr;
}

QPushButton *InfoBtn::getDocumentationButton()
{
if(m_hasTutorial) {
return m_popupWidget->getContinueBtn();
}
return nullptr;
}

RunBtn::RunBtn(QWidget *parent)
: QPushButton(parent)
{
Expand Down
2 changes: 0 additions & 2 deletions plugins/dac/include/dac/dacplugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ class SCOPY_DAC_EXPORT DACPlugin : public QObject, public PluginBase
QString about() override;
QString version() override;
QString description() override;
void initPreferences() override;
bool loadPreferencesPage() override;

public Q_SLOTS:
bool onConnect() override;
Expand Down
24 changes: 10 additions & 14 deletions plugins/dac/src/dacinstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ DacInstrument::DacInstrument(const Connection *conn, QWidget *parent)
openLastMenuBtn = new OpenLastMenuBtn(dynamic_cast<MenuHAnim *>(tool->rightContainer()), true, this);
rightMenuBtnGrp = dynamic_cast<OpenLastMenuBtn *>(openLastMenuBtn)->getButtonGroup();

infoBtn = new InfoBtn(this);
infoBtn = new InfoBtn(this, true);
settingsBtn = new GearBtn(this);

devicesGroup = new QButtonGroup(this);
Expand All @@ -70,10 +70,17 @@ DacInstrument::DacInstrument(const Connection *conn, QWidget *parent)

rightMenuBtnGrp->addButton(settingsBtn);
rightMenuBtnGrp->addButton(devicesBtn->button());
connect(infoBtn, &InfoBtn::clicked, this, [=]() {
infoBtn->generateInfoPopup(this);

connect(infoBtn, &QAbstractButton::clicked, this, [=, this]() {
QDesktopServices::openUrl(QUrl("https://analogdevicesinc.github.io/scopy/plugins/dac/dac.html"));
connect(infoBtn->getTutorialButton(), &QPushButton::clicked, this, [=]() { this->startTutorial(); });

connect(infoBtn->getDocumentationButton(), &QAbstractButton::clicked, this, [=, this]() {
QDesktopServices::openUrl(
QUrl("https://analogdevicesinc.github.io/scopy/plugins/dac/dac.html"));
});
});

connect(devicesBtn, &QPushButton::toggled, dynamic_cast<MenuHAnim *>(tool->leftContainer()),
&MenuHAnim::toggleMenu);

Expand Down Expand Up @@ -189,17 +196,6 @@ void DacInstrument::abortTutorial()
&DacInstrument::startDdsTutorial);
}

void DacInstrument::showEvent(QShowEvent *event)
{
QWidget::showEvent(event);

// Handle tutorial
if(Preferences::get("dacplugin_start_tutorial").toBool()) {
startTutorial();
Preferences::set("dacplugin_start_tutorial", false);
}
}

void DacInstrument::setupDacDataManagers()
{
QStringList deviceList;
Expand Down
2 changes: 0 additions & 2 deletions plugins/dac/src/dacinstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@ public Q_SLOTS:
const QString settingsMenuId = "settings";
const QString devicesMenuId = "devices";
const QString verticalChannelManagerId = "vcm";

void showEvent(QShowEvent *event) override;
};
} // namespace dac
} // namespace scopy
Expand Down
40 changes: 0 additions & 40 deletions plugins/dac/src/dacplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,46 +100,6 @@ void DACPlugin::unload()

QString DACPlugin::description() { return "Tool for generic IIO DAC control."; }

void DACPlugin::initPreferences()
{
Preferences *p = Preferences::GetInstance();
p->init("dacplugin_start_tutorial", true);
}

bool DACPlugin::loadPreferencesPage()
{
Preferences *p = Preferences::GetInstance();

m_preferencesPage = new QWidget();
QVBoxLayout *lay = new QVBoxLayout(m_preferencesPage);

MenuSectionWidget *generalWidget = new MenuSectionWidget(m_preferencesPage);
MenuCollapseSection *generalSection = new MenuCollapseSection(
"General", MenuCollapseSection::MHCW_NONE, MenuCollapseSection::MHW_BASEWIDGET, generalWidget);
generalWidget->contentLayout()->setSpacing(10);
generalWidget->contentLayout()->addWidget(generalSection);
generalSection->contentLayout()->setSpacing(10);
lay->setMargin(0);
lay->addWidget(generalWidget);
lay->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));

QWidget *resetTutorialWidget = new QWidget();
QHBoxLayout *resetTutorialWidgetLayout = new QHBoxLayout();

resetTutorialWidget->setLayout(resetTutorialWidgetLayout);
resetTutorialWidgetLayout->setMargin(0);

QPushButton *resetTutorial = new QPushButton("Reset", generalSection);
Style::setStyle(resetTutorial, style::properties::button::basicButton);
connect(resetTutorial, &QPushButton::clicked, this, [=, this]() { p->set("dacplugin_start_tutorial", true); });

resetTutorialWidgetLayout->addWidget(new QLabel("DAC tutorial "), 6);
resetTutorialWidgetLayout->addWidget(resetTutorial, 1);
generalSection->contentLayout()->addWidget(resetTutorialWidget);

return true;
}

QString DACPlugin::about()
{
QString content = "DAC plugin";
Expand Down
2 changes: 0 additions & 2 deletions plugins/datalogger/include/datalogger/datamonitortool.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ class SCOPY_DATALOGGER_EXPORT DatamonitorTool : public QWidget

void initTutorialProperties();
void startTutorial();

void showEvent(QShowEvent *event) override;
};
} // namespace scopy::datamonitor
#endif // DATAMONITORTOOL_H
16 changes: 0 additions & 16 deletions plugins/datalogger/src/dataloggerplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,6 @@ void DataLoggerPlugin::initPreferences()
p->init("dataloggerplugin_data_storage_size", "10 Kb");
p->init("dataloggerplugin_read_interval", "1");
p->init("dataloggerplugin_date_time_format", "hh:mm:ss");
p->init("dataloggerplugin_start_tutorial", true);
}

bool DataLoggerPlugin::loadPreferencesPage()
Expand Down Expand Up @@ -289,21 +288,6 @@ bool DataLoggerPlugin::loadPreferencesPage()
generalSection->contentLayout()->addWidget(PreferencesHelper::addPreferenceEdit(
p, "dataloggerplugin_date_time_format", "DateTime format :", generalSection));

QWidget *resetTutorialWidget = new QWidget();
QHBoxLayout *resetTutorialWidgetLayout = new QHBoxLayout();

resetTutorialWidget->setLayout(resetTutorialWidgetLayout);
resetTutorialWidgetLayout->setMargin(0);

QPushButton *resetTutorial = new QPushButton("Reset", generalSection);
Style::setStyle(resetTutorial, style::properties::button::basicButton);
connect(resetTutorial, &QPushButton::clicked, this,
[=, this]() { p->set("dataloggerplugin_start_tutorial", true); });

resetTutorialWidgetLayout->addWidget(new QLabel("Data logger tutorial "), 6);
resetTutorialWidgetLayout->addWidget(resetTutorial, 1);
generalSection->contentLayout()->addWidget(resetTutorialWidget);

return true;
}

Expand Down
29 changes: 11 additions & 18 deletions plugins/datalogger/src/datamonitortool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,23 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
openLastMenuBtn = new OpenLastMenuBtn(dynamic_cast<MenuHAnim *>(tool->rightContainer()), true, this);
rightMenuBtnGrp = dynamic_cast<OpenLastMenuBtn *>(openLastMenuBtn)->getButtonGroup();

infoBtn = new InfoBtn(this);
printplotManager = new PrintPlotManager(this);
runBtn = new RunBtn(this);
clearBtn = new QPushButton("Clear", this);
PrintBtn *printBtn = new PrintBtn(this);

// connect(infoBtn, &QPushButton::clicked, this, &DatamonitorTool::startTutorial);
connect(infoBtn, &QAbstractButton::clicked, this, [=, this]() {
QDesktopServices::openUrl(
QUrl("https://analogdevicesinc.github.io/scopy/plugins/datalogger/datalogger.html"));
});
infoBtn = new InfoBtn(this, true);

connect(infoBtn, &InfoBtn::clicked, this, [=]() {
infoBtn->generateInfoPopup(this);

connect(infoBtn->getTutorialButton(), &QPushButton::clicked, this, [=]() { this->startTutorial(); });

// connect(infoBtn, &QPushButton::clicked, this, &DatamonitorTool::startTutorial);
connect(infoBtn->getDocumentationButton(), &QPushButton::clicked, this, [=]() {
QDesktopServices::openUrl(
QUrl("https://analogdevicesinc.github.io/scopy/plugins/datalogger/datalogger.html"));
});
});

//// add monitors
addMonitorButton = new AddBtn(this);
Expand Down Expand Up @@ -356,15 +360,4 @@ void DatamonitorTool::startTutorial()
datamonitorTutorial->start();
}

void DatamonitorTool::showEvent(QShowEvent *event)
{
QWidget::showEvent(event);

// Handle tutorial
if(Preferences::get("dataloggerplugin_start_tutorial").toBool()) {
startTutorial();
Preferences::set("dataloggerplugin_start_tutorial", false);
}
}

#include "moc_datamonitortool.cpp"
36 changes: 16 additions & 20 deletions plugins/regmap/src/registermaptool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,23 @@ RegisterMapTool::RegisterMapTool(QWidget *parent)
tool->centralContainer()->layout()->setSpacing(0);
lay->addWidget(tool);

InfoBtn *infoBtn = new InfoBtn(this);
InfoBtn *infoBtn = new InfoBtn(this, true);
tool->addWidgetToTopContainerHelper(infoBtn, TTA_LEFT);
connect(infoBtn, &QAbstractButton::clicked, this, [=]() {
QDesktopServices::openUrl(
QUrl("https://analogdevicesinc.github.io/scopy/plugins/registermap/registermap.html"));

connect(infoBtn, &InfoBtn::clicked, this, [=]() {
infoBtn->generateInfoPopup(this);
connect(infoBtn->getTutorialButton(), &QPushButton::clicked, this, [=]() {
if(searchBarWidget->isVisible()) {
startTutorial();
} else {
startSimpleTutorial();
}
});

connect(infoBtn->getDocumentationButton(), &QAbstractButton::clicked, this, [=]() {
QDesktopServices::openUrl(
QUrl("https://analogdevicesinc.github.io/scopy/plugins/registermap/registermap.html"));
});
});

searchBarWidget = new SearchBarWidget();
Expand Down Expand Up @@ -253,19 +265,3 @@ void RegisterMapTool::toggleSearchBarEnabled(bool enabled)
searchBarWidget->hide();
}
}

void RegisterMapTool::showEvent(QShowEvent *event)
{
QWidget::showEvent(event);

// Handle tutorial
if(Preferences::get("regmapplugin_start_tutorial").toBool()) {
if(searchBarWidget->isVisible()) {

startTutorial();
} else {
startSimpleTutorial();
}
Preferences::set("regmapplugin_start_tutorial", false);
}
}
Loading
Loading