3 #include <QDialogButtonBox>
5 #include <QRadioButton>
7 #include <QTableWidget>
10 #include <QVBoxLayout>
14 :
QDialog(parent), mHandleTableEdit(true)
28 mEnterExpression =
new QRadioButton(
"Enter boolean expression:");
30 layExpression->
addWidget(mEnterExpression);
37 for (
int i=1; i<inputList.
size(); i++)
38 def += (
"&" + inputList.
at(i)->name());
49 mEnterTable =
new QRadioButton(
"Enter table with accepted combinations:");
60 for (
int irow=0; irow<inputList.
size(); irow++)
65 for (
int icol=0; icol<2; icol++)
70 addEmptyTableColumn(2);
80 void BooleanDialog::addEmptyTableColumn(
int icol)
88 for (
int irow=0; irow < mTableWidget->
rowCount(); irow++)
92 mTableWidget->
setItem(irow,icol,twi);
96 void BooleanDialog::handleTableCellChanged(
int irow,
int icol)
98 if (!mHandleTableEdit)
return;
99 mHandleTableEdit =
false;
103 if (txt ==
"0" || txt ==
"1")
105 if (txt ==
"X" || txt ==
"x")
112 addEmptyTableColumn(n++);
115 for (
int i=0; i<mTableWidget->
rowCount(); i++)
118 addEmptyTableColumn(n);
122 else if (icol+1 >= n)
123 addEmptyTableColumn(icol+1);
124 mHandleTableEdit =
true;
128 void BooleanDialog::activateExpression(
bool enable)
138 void BooleanDialog::handleExpressionToggled(
bool state)
140 activateExpression(state);
143 void BooleanDialog::handleTableToggled(
bool state)
145 activateExpression(!state);
155 return mLineEdit->
text().trimmed();
161 for (
int icol = 2; icol < mTableWidget->
columnCount(); icol++)
163 bool incomplete =
false;
165 for (
int irow = 0; irow < mTableWidget->
rowCount(); irow++)
182 return QtCompat::setToList<int>(val);
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)
QString number(int n, int base)
void setColumnWidth(int column, int width)
void setText(const QString &text)
QString text() const const