|
From: <cn...@us...> - 2024-07-05 23:41:24
|
Revision: 1482
http://sourceforge.net/p/seq/svn/1482
Author: cn187
Date: 2024-07-05 23:41:20 +0000 (Fri, 05 Jul 2024)
Log Message:
-----------
AddFilter Toggle All should cycle partial->unchecked->checked
Modified Paths:
--------------
showeq/branches/cn187_devel/src/filtermgr.cpp
showeq/branches/cn187_devel/src/filtermgr.h
Modified: showeq/branches/cn187_devel/src/filtermgr.cpp
===================================================================
--- showeq/branches/cn187_devel/src/filtermgr.cpp 2024-07-05 21:11:38 UTC (rev 1481)
+++ showeq/branches/cn187_devel/src/filtermgr.cpp 2024-07-05 23:41:20 UTC (rev 1482)
@@ -404,7 +404,23 @@
m_edit->blockSignals(old_edit_state);
}
+void ToggleAllCheckBox::nextCheckState()
+{
+ switch(checkState())
+ {
+ case Qt::Unchecked:
+ setCheckState(Qt::Checked);
+ break;
+ case Qt::PartiallyChecked:
+ setCheckState(Qt::Unchecked);
+ break;
+ case Qt::Checked:
+ setCheckState(Qt::Unchecked);
+ break;
+ }
+}
+
FilterDialog::FilterDialog(QWidget* parent, Qt::WindowFlags flags) :
QDialog(parent, flags),
m_toggleAll(nullptr),
@@ -463,7 +479,7 @@
//using an extra widget so the spacing lines up
QWidget* toggleAllWidget = new QWidget();
QHBoxLayout* toggleAllLayout = new QHBoxLayout(toggleAllWidget);
- m_toggleAll = new QCheckBox();
+ m_toggleAll = new ToggleAllCheckBox();
m_toggleAll->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
m_toggleAll->setTristate(true);
toggleAllLayout->addWidget(m_toggleAll);
Modified: showeq/branches/cn187_devel/src/filtermgr.h
===================================================================
--- showeq/branches/cn187_devel/src/filtermgr.h 2024-07-05 21:11:38 UTC (rev 1481)
+++ showeq/branches/cn187_devel/src/filtermgr.h 2024-07-05 23:41:20 UTC (rev 1482)
@@ -222,7 +222,16 @@
void stateChanged(int state);
};
+//SubClassing QCheckBox so we can control the sequence of check/uncheck/partial when
+//clicking "Toggle All"
+class ToggleAllCheckBox : public QCheckBox
+{
+ protected:
+ virtual void nextCheckState() override;
+};
+
+
class FilterDialog : public QDialog
{
Q_OBJECT
@@ -242,7 +251,7 @@
void createForm();
QHash<QString, FilterFormField*> m_filterFields;
- QCheckBox* m_toggleAll;
+ ToggleAllCheckBox* m_toggleAll;
QString m_spawnFilterString;
FilterFieldMap m_spawnFilterMap;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|