Skip to content

Commit

Permalink
datamonitor: menu control update
Browse files Browse the repository at this point in the history
Signed-off-by: Ionut Muthi <[email protected]>
  • Loading branch information
IonutMuthi committed May 10, 2024
1 parent 2526184 commit 951b691
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class SCOPY_DATAMONITORPLUGIN_EXPORT DatamonitorTool : public QWidget

ToolTemplate *tool;
GearBtn *settingsButton;
QPushButton *openLastMenuBtn;
QButtonGroup *rightMenuBtnGrp;
InfoBtn *infoBtn;
PrintBtn *printBtn;
RunBtn *runBtn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,25 @@ class MonitorSelectionMenu : public QWidget
friend class DataMonitorStyleHelper;
Q_OBJECT
public:
explicit MonitorSelectionMenu(QMap<QString, DataMonitorModel *> *monitorList, QWidget *parent = nullptr);
explicit MonitorSelectionMenu(QMap<QString, DataMonitorModel *> *monitorList, QButtonGroup *monitorsGroup,
QWidget *parent = nullptr);

void addMonitor(DataMonitorModel *monitor);
void removeDevice(QString device);

SemiExclusiveButtonGroup *monitorsGroup() const;
void setMonitorsGroup(SemiExclusiveButtonGroup *newMonitorsGroup);
QButtonGroup *monitorsGroup() const;

Q_SIGNALS:
void monitorToggled(bool toggled, QString monitorName);
void removeMonitor();
void requestRemoveImportedDevice(QString device);
void requestMonitorMenu(QString monitorName);
void requestMonitorMenu(bool toggled, QString monitorName);

private:
QWidget *deviceChannelsWidget;
QWidget *importedChannelsWidget;
QVBoxLayout *layout;
SemiExclusiveButtonGroup *m_monitorsGroup;
QButtonGroup *m_monitorsGroup;
QMap<QString, MenuCollapseSection *> deviceMap;

void generateDeviceSection(QString device, bool import = false);
Expand Down
28 changes: 18 additions & 10 deletions plugins/datamonitorPlugin/src/datamonitortool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,14 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
tool->leftContainer()->setVisible(true);
tool->rightContainer()->setVisible(true);
tool->bottomContainer()->setVisible(true);
tool->topContainerMenuControl()->setVisible(false);

lay->addWidget(tool);

settingsButton = new GearBtn(this);
settingsButton->setChecked(true);
openLastMenuBtn = new OpenLastMenuBtn(dynamic_cast<MenuHAnim *>(tool->rightContainer()), true, this);
rightMenuBtnGrp = dynamic_cast<OpenLastMenuBtn *>(openLastMenuBtn)->getButtonGroup();

infoBtn = new InfoBtn(this);
printBtn = new PrintBtn(this);
runBtn = new RunBtn(this);
Expand Down Expand Up @@ -72,7 +74,8 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
tool->addWidgetToTopContainerHelper(runBtn, TTA_RIGHT);
tool->addWidgetToTopContainerHelper(clearBtn, TTA_RIGHT);

tool->addWidgetToTopContainerHelper(settingsButton, TTA_RIGHT);
tool->addWidgetToTopContainerMenuControlHelper(openLastMenuBtn, TTA_RIGHT);
tool->addWidgetToTopContainerMenuControlHelper(settingsButton, TTA_LEFT);

tool->addWidgetToTopContainerHelper(addMonitorButton, TTA_LEFT);

Expand Down Expand Up @@ -139,8 +142,9 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
connect(m_dataMonitorSettings, &DataMonitorSettings::titleUpdated, this,
&DatamonitorTool::settingsTitleChanged);
connect(settingsButton, &GearBtn::toggled, this, [=, this](bool toggled) {
tool->openRightContainerHelper(toggled);
tool->requestMenu(DataMonitorUtils::getToolSettingsId());
if(toggled) {
tool->requestMenu(DataMonitorUtils::getToolSettingsId());
}
});

/// 7 segments settings ///
Expand Down Expand Up @@ -223,8 +227,10 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
}

/////////////////monitor selection menu ///////////////
m_monitorSelectionMenu = new MonitorSelectionMenu(dataAcquisitionManager->getDataMonitorMap());
m_monitorSelectionMenu->monitorsGroup()->addButton(settingsButton);
m_monitorSelectionMenu = new MonitorSelectionMenu(dataAcquisitionManager->getDataMonitorMap(), rightMenuBtnGrp);

rightMenuBtnGrp->addButton(settingsButton);

tool->leftStack()->add("Monitors", m_monitorSelectionMenu);

connect(m_dataAcquisitionManager, &DataAcquisitionManager::monitorAdded, this,
Expand Down Expand Up @@ -265,10 +271,12 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
connect(m_monitorSelectionMenu, &MonitorSelectionMenu::requestRemoveImportedDevice, m_dataAcquisitionManager,
&DataAcquisitionManager::removeDevice);

connect(m_monitorSelectionMenu, &MonitorSelectionMenu::requestMonitorMenu, this, [=, this](QString monitor) {
tool->openRightContainerHelper(true);
tool->requestMenu(monitor);
});
connect(m_monitorSelectionMenu, &MonitorSelectionMenu::requestMonitorMenu, this,
[=, this](bool toggled, QString monitor) {
if(toggled) {
tool->requestMenu(monitor);
}
});

initTutorialProperties();
DataMonitorStyleHelper::DataMonitorToolStyle(this);
Expand Down
17 changes: 6 additions & 11 deletions plugins/datamonitorPlugin/src/menus/monitorselectionmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
using namespace scopy;
using namespace datamonitor;

MonitorSelectionMenu::MonitorSelectionMenu(QMap<QString, DataMonitorModel *> *monitorList, QWidget *parent)
MonitorSelectionMenu::MonitorSelectionMenu(QMap<QString, DataMonitorModel *> *monitorList, QButtonGroup *monitorsGroup,
QWidget *parent)
: QWidget{parent}
{
QVBoxLayout *mainLayout = new QVBoxLayout(this);
Expand Down Expand Up @@ -42,8 +43,7 @@ MonitorSelectionMenu::MonitorSelectionMenu(QMap<QString, DataMonitorModel *> *mo
importedChannelsWidgetLayout->setSpacing(10);
importedChannelsWidget->setLayout(importedChannelsWidgetLayout);

m_monitorsGroup = new SemiExclusiveButtonGroup(this);
m_monitorsGroup->setExclusive(true);
m_monitorsGroup = monitorsGroup;

foreach(QString monitor, monitorList->keys()) {
addMonitor(monitorList->value(monitor));
Expand Down Expand Up @@ -113,11 +113,11 @@ void MonitorSelectionMenu::addMonitor(DataMonitorModel *monitor)
monitorChannel->setStyleSheet(monitorChannel->styleSheet() +
QString(":hover{ background-color: %1 ; }").arg(monitor->getColor().name()));

connect(monitorChannel, &MenuControlButton::clicked, this, [=, this]() {
connect(monitorChannel, &MenuControlButton::toggled, this, [=, this](bool toggled) {
if(!monitorChannel->checkBox()->isChecked()) {
monitorChannel->checkBox()->setChecked(true);
}
Q_EMIT requestMonitorMenu(monitor->getName());
Q_EMIT requestMonitorMenu(toggled, monitor->getName());
});

connect(monitorChannel->checkBox(), &QCheckBox::toggled, this,
Expand All @@ -139,9 +139,4 @@ void MonitorSelectionMenu::removeDevice(QString device)
}
}

SemiExclusiveButtonGroup *MonitorSelectionMenu::monitorsGroup() const { return m_monitorsGroup; }

void MonitorSelectionMenu::setMonitorsGroup(SemiExclusiveButtonGroup *newMonitorsGroup)
{
m_monitorsGroup = newMonitorsGroup;
}
QButtonGroup *MonitorSelectionMenu::monitorsGroup() const { return m_monitorsGroup; }

0 comments on commit 951b691

Please sign in to comment.