add QAD valuetreeeditor util
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include "piqt.h"
|
||||
#include "qad_locations.h"
|
||||
|
||||
@@ -16,8 +17,8 @@ MainWindow::MainWindow(QWidget * parent): QMainWindow(parent), Ui::MainWindow()
|
||||
#endif
|
||||
npal = epal = lineInput->palette();
|
||||
epal.setColor(lineInput->backgroundRole(), QColor(Qt::red).lighter(150));
|
||||
connect(&session, SIGNAL(loading(QPIConfig & )), this, SLOT(loading(QPIConfig & )));
|
||||
connect(&session, SIGNAL(saving(QPIConfig & )), this, SLOT(saving(QPIConfig & )));
|
||||
connect(&session, SIGNAL(loading(QPIConfig &)), this, SLOT(loading(QPIConfig &)));
|
||||
connect(&session, SIGNAL(saving(QPIConfig &)), this, SLOT(saving(QPIConfig &)));
|
||||
session.setFile(QAD::userPath(QAD::ltConfig, "session_qpicalc"));
|
||||
session.addEntry(this);
|
||||
session.addEntry(lineInput);
|
||||
@@ -28,18 +29,16 @@ MainWindow::MainWindow(QWidget * parent): QMainWindow(parent), Ui::MainWindow()
|
||||
}
|
||||
|
||||
|
||||
MainWindow::~MainWindow() {session.save();
|
||||
MainWindow::~MainWindow() {
|
||||
session.save();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::changeEvent(QEvent * e) {
|
||||
QMainWindow::changeEvent(e);
|
||||
switch (e->type()) {
|
||||
case QEvent::LanguageChange:
|
||||
retranslateUi(this);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case QEvent::LanguageChange: retranslateUi(this); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,9 +81,9 @@ void MainWindow::redrawGraphics() {
|
||||
|
||||
|
||||
void MainWindow::loading(QPIConfig & conf) {
|
||||
active_ = false;
|
||||
active_ = false;
|
||||
QStringList vars = conf.getValue("variables").toStringList();
|
||||
int vc = vars.size() / 2;
|
||||
int vc = vars.size() / 2;
|
||||
for (int i = 0; i < vc; ++i) {
|
||||
QTreeWidgetItem * ti = new QTreeWidgetItem(treeVariables);
|
||||
ti->setText(0, vars[i * 2]);
|
||||
@@ -110,8 +109,7 @@ void MainWindow::loading(QPIConfig & conf) {
|
||||
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
|
||||
graphic->setVisualRect(conf.getValue("graphicRect", QRectF(-1., -1., 2., 2.)).toRectF());
|
||||
ba = conf.getValue("graphic_state").toByteArray();
|
||||
if (!ba.isEmpty())
|
||||
graphic->load(ba);
|
||||
if (!ba.isEmpty()) graphic->load(ba);
|
||||
on_tabWidget_currentChanged(0);
|
||||
redrawGraphics();
|
||||
active_ = true;
|
||||
@@ -133,7 +131,8 @@ void MainWindow::saving(QPIConfig & conf) {
|
||||
QTreeWidgetItem * ti = treeGraphics->topLevelItem(i);
|
||||
vars << QString::number(ti->background(1).color().rgb()) << ti->text(2);
|
||||
}
|
||||
QByteArray ba; QDataStream s(&ba, QIODevice::WriteOnly);
|
||||
QByteArray ba;
|
||||
QDataStream s(&ba, QIODevice::WriteOnly);
|
||||
s << graphic->allGraphics();
|
||||
conf.setValue("graphics", QByteArray2QString(ba));
|
||||
conf.setValue("graphicRect", graphic->visualRect());
|
||||
@@ -142,8 +141,10 @@ void MainWindow::saving(QPIConfig & conf) {
|
||||
|
||||
|
||||
void MainWindow::on_lineInput_textChanged(QString text) {
|
||||
if (evaluator.check(Q2PIString(text))) lineInput->setPalette(npal);
|
||||
else lineInput->setPalette(epal);
|
||||
if (evaluator.check(Q2PIString(text)))
|
||||
lineInput->setPalette(npal);
|
||||
else
|
||||
lineInput->setPalette(epal);
|
||||
labelParsed->setText(PI2QString(evaluator.expression()));
|
||||
labelError->setText(PI2QString(evaluator.error()));
|
||||
}
|
||||
@@ -151,36 +152,37 @@ void MainWindow::on_lineInput_textChanged(QString text) {
|
||||
|
||||
void MainWindow::on_lineInput_returnPressed() {
|
||||
bool ret = evaluator.check(Q2PIString(lineInput->text()));
|
||||
if (ret) lineInput->setPalette(npal);
|
||||
else lineInput->setPalette(epal);
|
||||
if (ret)
|
||||
lineInput->setPalette(npal);
|
||||
else
|
||||
lineInput->setPalette(epal);
|
||||
labelParsed->setText(PI2QString(evaluator.expression()));
|
||||
labelError->setText(PI2QString(evaluator.error()));
|
||||
if (!ret) return;
|
||||
complexd val = evaluator.evaluate();
|
||||
evaluator.setVariable(ans, val);
|
||||
if (val.imag() == 0) labelResult->setText(QString::number(val.real()));
|
||||
if (val.imag() == 0)
|
||||
labelResult->setText(QString::number(val.real()));
|
||||
else {
|
||||
if (val.real() == 0) labelResult->setText(QString::number(val.imag()) + "i");
|
||||
if (val.real() == 0)
|
||||
labelResult->setText(QString::number(val.imag()) + "i");
|
||||
else {
|
||||
if (val.imag() > 0) labelResult->setText(QString::number(val.real())
|
||||
+ " + " + QString::number(val.imag()) + "i");
|
||||
else labelResult->setText(QString::number(val.real())
|
||||
+ " - " + QString::number(fabs(val.imag())) + "i");
|
||||
if (val.imag() > 0)
|
||||
labelResult->setText(QString::number(val.real()) + " + " + QString::number(val.imag()) + "i");
|
||||
else
|
||||
labelResult->setText(QString::number(val.real()) + " - " + QString::number(fabs(val.imag())) + "i");
|
||||
}
|
||||
}
|
||||
if (lineInput->text().trimmed().isEmpty()) return;
|
||||
QTreeWidgetItem * ti = 0, * pti = 0;
|
||||
if (treeHistory->topLevelItemCount() > 0)
|
||||
pti = treeHistory->topLevelItem(treeHistory->topLevelItemCount() - 1);
|
||||
QTreeWidgetItem *ti = 0, *pti = 0;
|
||||
if (treeHistory->topLevelItemCount() > 0) pti = treeHistory->topLevelItem(treeHistory->topLevelItemCount() - 1);
|
||||
if (pti != 0)
|
||||
if (pti->text(0) == lineInput->text())
|
||||
return;
|
||||
if (pti->text(0) == lineInput->text()) return;
|
||||
ti = new QTreeWidgetItem(treeHistory);
|
||||
ti->setText(0, lineInput->text());
|
||||
ti->setText(1, labelResult->text());
|
||||
treeHistory->addTopLevelItem(ti);
|
||||
if (treeHistory->verticalScrollBar()->value() == treeHistory->verticalScrollBar()->maximum())
|
||||
treeHistory->scrollToBottom();
|
||||
if (treeHistory->verticalScrollBar()->value() == treeHistory->verticalScrollBar()->maximum()) treeHistory->scrollToBottom();
|
||||
}
|
||||
|
||||
|
||||
@@ -196,11 +198,16 @@ void MainWindow::on_treeGraphics_itemSelectionChanged() {
|
||||
|
||||
void MainWindow::on_treeGraphics_itemDoubleClicked(QTreeWidgetItem * item, int column) {
|
||||
Qt::ItemFlags f = item->flags();
|
||||
if (column != 1) f &= ~Qt::ItemIsEditable;
|
||||
else f |= Qt::ItemIsEditable;
|
||||
if (column != 1)
|
||||
f &= ~Qt::ItemIsEditable;
|
||||
else
|
||||
f |= Qt::ItemIsEditable;
|
||||
item->setFlags(f);
|
||||
if (column != 0) return;
|
||||
QColor col = QColorDialog::getColor(item->data(0, Qt::DecorationRole).value<QColor>(), this, "Select color for graphic", QColorDialog::ShowAlphaChannel);
|
||||
QColor col = QColorDialog::getColor(item->data(0, Qt::DecorationRole).value<QColor>(),
|
||||
this,
|
||||
"Select color for graphic",
|
||||
QColorDialog::ShowAlphaChannel);
|
||||
if (!col.isValid()) return;
|
||||
item->setData(0, Qt::DecorationRole, col);
|
||||
updateGraphics();
|
||||
@@ -219,8 +226,8 @@ void MainWindow::on_buttonVarAdd_clicked() {
|
||||
|
||||
|
||||
void MainWindow::on_buttonVarDel_clicked() {
|
||||
QList<QTreeWidgetItem * > si = treeVariables->selectedItems();
|
||||
foreach (QTreeWidgetItem * i, si)
|
||||
QList<QTreeWidgetItem *> si = treeVariables->selectedItems();
|
||||
foreach(QTreeWidgetItem * i, si)
|
||||
delete i;
|
||||
buttonVarClear->setEnabled(treeVariables->topLevelItemCount() > 0);
|
||||
}
|
||||
@@ -243,8 +250,8 @@ void MainWindow::on_buttonGraphicAdd_clicked() {
|
||||
|
||||
|
||||
void MainWindow::on_buttonGraphicDel_clicked() {
|
||||
QList<QTreeWidgetItem * > si = treeGraphics->selectedItems();
|
||||
foreach (QTreeWidgetItem * i, si)
|
||||
QList<QTreeWidgetItem *> si = treeGraphics->selectedItems();
|
||||
foreach(QTreeWidgetItem * i, si)
|
||||
delete i;
|
||||
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
|
||||
updateGraphics();
|
||||
|
||||
Reference in New Issue
Block a user