2 #include <QDialogButtonBox>
4 #include <QRadioButton>
6 #include <QTableWidget>
13 :
QDialog(parent), mHandleTableEdit(true)
27 mEnterExpression =
new QRadioButton(
"Enter boolean expression:");
29 layExpression->
addWidget(mEnterExpression);
36 for (
int i=1; i<inputList.
size(); i++)
37 def += (
"&" + inputList.
at(i)->name());
48 mEnterTable =
new QRadioButton(
"Enter table with accepted combinations:");
59 for (
int irow=0; irow<inputList.
size(); irow++)
64 for (
int icol=0; icol<2; icol++)
69 addEmptyTableColumn(2);
79 void BooleanDialog::addEmptyTableColumn(
int icol)
87 for (
int irow=0; irow < mTableWidget->
rowCount(); irow++)
91 mTableWidget->
setItem(irow,icol,twi);
95 void BooleanDialog::handleTableCellChanged(
int irow,
int icol)
97 if (!mHandleTableEdit)
return;
98 mHandleTableEdit =
false;
102 if (txt ==
"0" || txt ==
"1")
104 if (txt ==
"X" || txt ==
"x")
111 addEmptyTableColumn(n++);
114 for (
int i=0; i<mTableWidget->
rowCount(); i++)
117 addEmptyTableColumn(n);
121 else if (icol+1 >= n)
122 addEmptyTableColumn(icol+1);
123 mHandleTableEdit =
true;
127 void BooleanDialog::activateExpression(
bool enable)
137 void BooleanDialog::handleExpressionToggled(
bool state)
139 activateExpression(state);
142 void BooleanDialog::handleTableToggled(
bool state)
144 activateExpression(!state);
154 return mLineEdit->
text().trimmed();
160 for (
int icol = 2; icol < mTableWidget->
columnCount(); icol++)
162 bool incomplete =
false;
164 for (
int irow = 0; irow < mTableWidget->
rowCount(); irow++)
bool hasExpression() const
BooleanDialog(const QList< WaveData * > inputList, QWidget *parent=nullptr)
QList< int > tableValues() const
QString expression() const
void setFrameStyle(int style)
void setText(const QString &)
const T & at(int i) const const
bool isEmpty() const const
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QSet::iterator insert(const T &value)
QList< T > toList() const const
QString number(int n, int base)
void setColumnWidth(int column, int width)
void setText(const QString &text)
QString text() const const