keep ui actions consistent with selected widget
This commit is contained in:
parent
2c394a1bc7
commit
f19f572daf
|
@ -22,6 +22,8 @@ DeviceWindow::DeviceWindow(QWidget *parent)
|
|||
ui->widgetView->sortByColumn(WidgetModel::Column::PortName, Qt::SortOrder::AscendingOrder);
|
||||
|
||||
// model connections
|
||||
connect(ui->widgetView->selectionModel(), &QItemSelectionModel::currentChanged,
|
||||
this, &DeviceWindow::selectionChanged);
|
||||
connect(ui->actionParameter, &QAction::triggered,
|
||||
this, [this]() {
|
||||
auto selected = ui->widgetView->currentIndex();
|
||||
|
@ -60,7 +62,37 @@ DeviceWindow::DeviceWindow(QWidget *parent)
|
|||
this, [this](){QMessageBox::aboutQt(this);});
|
||||
}
|
||||
|
||||
|
||||
DeviceWindow::~DeviceWindow()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
void DeviceWindow::selectionChanged(const QModelIndex ¤t, const QModelIndex &previous)
|
||||
{
|
||||
Q_UNUSED(previous)
|
||||
|
||||
bool valid = false;
|
||||
bool connected = false;
|
||||
bool hasdmx = false;
|
||||
bool hasrdm = false;
|
||||
if (current.isValid())
|
||||
{
|
||||
valid = true;
|
||||
auto wdgt = current.data(Qt::EditRole).value<DmxWidget*>();
|
||||
connected = wdgt->isConnected();
|
||||
hasdmx = connected & wdgt->featureDMX();
|
||||
hasrdm = connected & wdgt->featureRDM();
|
||||
}
|
||||
|
||||
ui->menuWidget->setEnabled(valid);
|
||||
ui->actionOpen->setEnabled(!connected);
|
||||
ui->actionClose->setEnabled(connected);
|
||||
ui->actionDMX->setEnabled(hasdmx);
|
||||
ui->actionRDM->setEnabled(hasrdm);
|
||||
ui->actionParameter->setEnabled(connected);
|
||||
ui->actionUserData->setEnabled(connected);
|
||||
ui->actionFirmware->setEnabled(false);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,9 @@ public:
|
|||
explicit DeviceWindow(QWidget *parent = nullptr);
|
||||
~DeviceWindow();
|
||||
|
||||
private slots:
|
||||
void selectionChanged(const QModelIndex ¤t, const QModelIndex &previous);
|
||||
|
||||
private:
|
||||
Ui::DeviceWindow *ui;
|
||||
WidgetModel *model;
|
||||
|
|
|
@ -16,7 +16,17 @@
|
|||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTableView" name="widgetView"/>
|
||||
<widget class="QTableView" name="widgetView">
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
|
Loading…
Reference in New Issue