From 92529d243e7ecb7fbd7be42c812652f98421830a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Tue, 30 Jan 2018 09:37:58 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@352 a8b55f48-bf90-11e4-a774-851b48703e85 --- cd_utils/cdutils_core.cpp | 27 +- cd_utils/cdutils_core.h | 1 + cd_utils/cdutils_protocol.h | 11 +- qad/application/qad_application.qrc | 27 +- qcd_utils/pult/cd_pult.conf | 0 qcd_utils/pult/cd_pult.cpp | 494 ------- qcd_utils/pult/cd_pult.h | 116 -- qcd_utils/pult/cd_pult.qrc | 40 - qcd_utils/pult/cd_pult.ui | 1238 ----------------- qcd_utils/pult/cdpultwindow.cpp | 13 + qcd_utils/pult/cdpultwindow.h | 33 + qcd_utils/pult/cdpultwindow.ui | 118 ++ qcd_utils/pult/form.cpp | 186 --- qcd_utils/pult/form.h | 31 - qcd_utils/pult/form.ui | 249 ---- .../pult/icons/accessories-calculator.png | Bin 1525 -> 0 bytes qcd_utils/pult/icons/alpha.png | Bin 158 -> 0 bytes qcd_utils/pult/icons/application-exit.png | Bin 1134 -> 0 bytes qcd_utils/pult/icons/archive-extract.png | Bin 1005 -> 0 bytes qcd_utils/pult/icons/configure.png | Bin 717 -> 0 bytes qcd_utils/pult/icons/dialog-close.png | Bin 813 -> 0 bytes qcd_utils/pult/icons/document-export.png | Bin 1106 -> 0 bytes qcd_utils/pult/icons/document-import.png | Bin 1017 -> 0 bytes qcd_utils/pult/icons/document-open.png | Bin 1798 -> 0 bytes qcd_utils/pult/icons/document-save-.png | Bin 22676 -> 0 bytes qcd_utils/pult/icons/document-save.png | Bin 563 -> 0 bytes qcd_utils/pult/icons/edit-clear-.png | Bin 2066 -> 0 bytes .../pult/icons/edit-clear-locationbar-rtl.png | Bin 644 -> 0 bytes qcd_utils/pult/icons/edit-clear.png | Bin 802 -> 0 bytes qcd_utils/pult/icons/edit-copy.png | Bin 485 -> 0 bytes qcd_utils/pult/icons/edit-delete.png | Bin 640 -> 0 bytes qcd_utils/pult/icons/edit-find-.png | Bin 1631 -> 0 bytes qcd_utils/pult/icons/edit-find.png | Bin 634 -> 0 bytes qcd_utils/pult/icons/edit-guides.png | Bin 544 -> 0 bytes qcd_utils/pult/icons/edit-paste.png | Bin 529 -> 0 bytes qcd_utils/pult/icons/expand_s_x.png | Bin 571 -> 0 bytes qcd_utils/pult/icons/expand_s_y.png | Bin 577 -> 0 bytes qcd_utils/pult/icons/expand_x.png | Bin 579 -> 0 bytes qcd_utils/pult/icons/expand_y.png | Bin 577 -> 0 bytes qcd_utils/pult/icons/item-add.png | Bin 639 -> 0 bytes qcd_utils/pult/icons/item.png | Bin 448 -> 0 bytes qcd_utils/pult/icons/layer-visible-off.png | Bin 1766 -> 0 bytes qcd_utils/pult/icons/layer-visible-on.png | Bin 2001 -> 0 bytes qcd_utils/pult/icons/list-add.png | Bin 564 -> 0 bytes qcd_utils/pult/icons/media-playback-pause.png | Bin 1145 -> 0 bytes qcd_utils/pult/icons/media-playback-stop.png | Bin 1165 -> 0 bytes qcd_utils/pult/icons/media-record.png | Bin 1843 -> 0 bytes qcd_utils/pult/icons/node-add.png | Bin 694 -> 0 bytes qcd_utils/pult/icons/node.png | Bin 658 -> 0 bytes qcd_utils/pult/icons/view-grid.png | Bin 691 -> 0 bytes qcd_utils/pult/icons/view-refresh.png | Bin 2182 -> 0 bytes qcd_utils/pult/icons/zoom-fit-best.png | Bin 539 -> 0 bytes qcd_utils/pult/icons/zoom-fit-height.png | Bin 929 -> 0 bytes qcd_utils/pult/main.cpp | 4 +- 54 files changed, 211 insertions(+), 2377 deletions(-) delete mode 100644 qcd_utils/pult/cd_pult.conf delete mode 100644 qcd_utils/pult/cd_pult.cpp delete mode 100644 qcd_utils/pult/cd_pult.h delete mode 100644 qcd_utils/pult/cd_pult.qrc delete mode 100644 qcd_utils/pult/cd_pult.ui create mode 100644 qcd_utils/pult/cdpultwindow.cpp create mode 100644 qcd_utils/pult/cdpultwindow.h create mode 100644 qcd_utils/pult/cdpultwindow.ui delete mode 100644 qcd_utils/pult/form.cpp delete mode 100644 qcd_utils/pult/form.h delete mode 100644 qcd_utils/pult/form.ui delete mode 100644 qcd_utils/pult/icons/accessories-calculator.png delete mode 100644 qcd_utils/pult/icons/alpha.png delete mode 100644 qcd_utils/pult/icons/application-exit.png delete mode 100644 qcd_utils/pult/icons/archive-extract.png delete mode 100644 qcd_utils/pult/icons/configure.png delete mode 100644 qcd_utils/pult/icons/dialog-close.png delete mode 100644 qcd_utils/pult/icons/document-export.png delete mode 100644 qcd_utils/pult/icons/document-import.png delete mode 100644 qcd_utils/pult/icons/document-open.png delete mode 100644 qcd_utils/pult/icons/document-save-.png delete mode 100644 qcd_utils/pult/icons/document-save.png delete mode 100644 qcd_utils/pult/icons/edit-clear-.png delete mode 100644 qcd_utils/pult/icons/edit-clear-locationbar-rtl.png delete mode 100644 qcd_utils/pult/icons/edit-clear.png delete mode 100644 qcd_utils/pult/icons/edit-copy.png delete mode 100644 qcd_utils/pult/icons/edit-delete.png delete mode 100644 qcd_utils/pult/icons/edit-find-.png delete mode 100644 qcd_utils/pult/icons/edit-find.png delete mode 100644 qcd_utils/pult/icons/edit-guides.png delete mode 100644 qcd_utils/pult/icons/edit-paste.png delete mode 100644 qcd_utils/pult/icons/expand_s_x.png delete mode 100644 qcd_utils/pult/icons/expand_s_y.png delete mode 100644 qcd_utils/pult/icons/expand_x.png delete mode 100644 qcd_utils/pult/icons/expand_y.png delete mode 100644 qcd_utils/pult/icons/item-add.png delete mode 100644 qcd_utils/pult/icons/item.png delete mode 100644 qcd_utils/pult/icons/layer-visible-off.png delete mode 100644 qcd_utils/pult/icons/layer-visible-on.png delete mode 100644 qcd_utils/pult/icons/list-add.png delete mode 100644 qcd_utils/pult/icons/media-playback-pause.png delete mode 100644 qcd_utils/pult/icons/media-playback-stop.png delete mode 100644 qcd_utils/pult/icons/media-record.png delete mode 100644 qcd_utils/pult/icons/node-add.png delete mode 100644 qcd_utils/pult/icons/node.png delete mode 100644 qcd_utils/pult/icons/view-grid.png delete mode 100644 qcd_utils/pult/icons/view-refresh.png delete mode 100644 qcd_utils/pult/icons/zoom-fit-best.png delete mode 100644 qcd_utils/pult/icons/zoom-fit-height.png diff --git a/cd_utils/cdutils_core.cpp b/cd_utils/cdutils_core.cpp index 80bd2b0..13db1bd 100644 --- a/cd_utils/cdutils_core.cpp +++ b/cd_utils/cdutils_core.cpp @@ -173,14 +173,19 @@ void CDUtils::CDCore::dataReceived(const PIString & from, const PIByteArray & da else { CDPacketType pt = (CDPacketType)sig; switch(pt) { - case CD_Ping: - //piCoutObj << "ping"; - break; - default: break; + case CD_Ping: { + //piCoutObj << "ping"; + } break; + case CD_KDirectChange: { + PIByteArray ba = data; + PacketKDirectChange p; + ba >> p; + k_[p.path].setValue(p.value); + } break; + default: break; } } } - } } @@ -232,6 +237,18 @@ void CDCore::K_Request() { } +void CDUtils::CDCore::K_DirectChange(PIDeque path, PIString value) { + PacketKDirectChange p; + p.header.session_id = 0; + p.header.type = CD_KDirectChange; + p.path = path; + p.value = value; + PIByteArray ba; + ba << p; + connection.writeByName("cd", ba); +} + + void CDCore::sendThread() { bool ok = datatr.send(send_data); CDPacketType pt = (CDPacketType)wheader.type; diff --git a/cd_utils/cdutils_core.h b/cd_utils/cdutils_core.h index 07d0f43..ec52629 100644 --- a/cd_utils/cdutils_core.h +++ b/cd_utils/cdutils_core.h @@ -37,6 +37,7 @@ public: EVENT(K_ChangedGlobal) EVENT_HANDLER(void, K_Send); EVENT_HANDLER(void, K_Request); + EVENT_HANDLER2(void, K_DirectChange, PIDeque, path, PIString, value); void k_write(PIIODevice * d); void k_read(PIIODevice * d); diff --git a/cd_utils/cdutils_protocol.h b/cd_utils/cdutils_protocol.h index d644adc..48af806 100644 --- a/cd_utils/cdutils_protocol.h +++ b/cd_utils/cdutils_protocol.h @@ -5,7 +5,7 @@ namespace CDUtils { -enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_Command, CD_XData, CD_XQuery}; +enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_KDirectChange, CD_XData, CD_XQuery, CD_Command}; # pragma pack(push,1) @@ -14,12 +14,21 @@ enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_Command, CD_XData, int session_id; }; + struct PacketKDirectChange { + PacketHeader header; + PIDeque path; + PIString value; + }; + # pragma pack(pop) inline PIByteArray & operator <<(PIByteArray & s, const PacketHeader & v) {s << v.type << v.session_id; return s;} inline PIByteArray & operator >>(PIByteArray & s, PacketHeader & v) {s >> v.type >> v.session_id; return s;} +inline PIByteArray & operator <<(PIByteArray & s, const PacketKDirectChange & v) {s << v.header << v.path << v.value; return s;} +inline PIByteArray & operator >>(PIByteArray & s, PacketKDirectChange & v) {s >> v.header >> v.path >> v.value; return s;} + } #endif // CDUTILS_PROTOCOL_H diff --git a/qad/application/qad_application.qrc b/qad/application/qad_application.qrc index 6a82538..019fa87 100644 --- a/qad/application/qad_application.qrc +++ b/qad/application/qad_application.qrc @@ -1,33 +1,30 @@ lang/qad_application_ru.ts + ../icons/application-exit.png ../icons/dialog-close.png ../icons/edit-clear.png - ../icons/edit-guides.png - ../icons/view-grid.png - ../icons/zoom-fit-best.png + ../icons/edit-copy.png + ../icons/edit-delete.png ../icons/configure.png + ../icons/document-edit.png + ../icons/document-new.png ../icons/document-save.png + ../icons/document-save-all.png + ../icons/document-save-as.png + ../icons/document-open.png + ../icons/document-close.png ../icons/edit-clear-locationbar-rtl.png ../icons/edit-find.png ../icons/list-add.png ../icons/edit-delete.png - ../icons/item.png - ../icons/node-add.png - ../icons/node.png ../icons/edit-copy.png ../icons/edit-paste.png - ../icons/expand_s_x.png - ../icons/expand_s_y.png - ../icons/expand_x.png - ../icons/expand_y.png + ../icons/edit-undo.png + ../icons/edit-redo.png ../icons/border-line.png - ../icons/legend.png - ../icons/graphic.png ../icons/edockwidget.png - ../icons/layer-visible-off.png - ../icons/layer-visible-on.png ../icons/historyview.png ../icons/clear-history.png - + diff --git a/qcd_utils/pult/cd_pult.conf b/qcd_utils/pult/cd_pult.conf deleted file mode 100644 index e69de29..0000000 diff --git a/qcd_utils/pult/cd_pult.cpp b/qcd_utils/pult/cd_pult.cpp deleted file mode 100644 index 8e06458..0000000 --- a/qcd_utils/pult/cd_pult.cpp +++ /dev/null @@ -1,494 +0,0 @@ -#include -#include -#include -#include "cd_pult.h" -#include "ui_cd_pult.h" -#include "piqt.h" -#include "pifile.h" -#include "qpiconfig.h" - -using namespace CDUtils; - - -CD_Pult::CD_Pult(): QMainWindow(), config_("cd_pult.conf"), -config(piqt(config_), QIODevice::ReadWrite) { - //cout << sizeof(coeffsK.k_protocol->to_k) << endl; - ui = new Ui::CD_Pult(); - ui->setupUi(this); - ui->configWidget->setQPIConfig(&config); - ui->configWidget->expandAll(); - ui->list->viewport()->installEventFilter(this); - ui->treeCDK->viewport()->installEventFilter(this); - ui->scrollArea->setAutoFillBackground(false); - ui->scrollAreaWidgetContents->setAutoFillBackground(false); - ui->widget->setAutoFillBackground(false); - log_menu.addAction(ui->actionClear); - show_x = config.getValue("show_x", true); - if (!show_x) - ui->tabWidget->removeTab(1); - session.setFile("session_cd_pult.conf"); - session.addEntry(this); - session.addEntry(ui->tabWidget); - session.addEntry(ui->checkKHideNormal); - session.addEntry(ui->checkKHideExpressions); - session.addEntry(ui->checkKAutoCalculate); - session.addEntry(ui->spinHistory); - session.addEntry(ui->spinBuffer); - needWrite = isPause = false; - timer = 0; - //x.resize(KX_X_PACKET_NUM); - //k.resize(K_NUM); - QPalette pal = palette(); - QColor col; - ui->graphic->setGraphicsCount(0); - //renew(); - /*ui->treeK->setColumnWidth(0, 60); - ui->treeK->setColumnWidth(1, 250); - ui->treeK->setColumnWidth(3, 100); - ui->treeK->setColumnWidth(4, 100);*/ - //ui->table->setK(coeffsK.k()->data(), coeffsK.count()); - //addToList(trUtf8("Read K file \"%1\": %2 coeffs, %3 bytes").arg(PI2QString(coeffs.fileName())).arg(K.size_s()).arg(coeffs.k_content.size_s()), Qt::darkMagenta); - /*CONNECT(void, &coeffs, sendFailed, this, pip_sendFailed); - CONNECT(void, &coeffs, sendSucceed, this, pip_sendSucceed); - CONNECT(void, &coeffs, receiveFailed, this, pip_receiveFailed); - CONNECT(void, &coeffs, receiveSucceed, this, pip_receiveSucceed);*/ - CONNECTU(&K, sended, this, pip_sendSucceed); - CONNECTU(&K, sendFailed, this, pip_sendFailed); - CONNECTU(&K, received, this, pip_receiveSucceed); - CONNECTU(&K, receiveFailed, this, pip_receiveFailed); - connect(this, SIGNAL(q_k_sendFailed()), this, SLOT(k_sendFailed()), Qt::QueuedConnection); - connect(this, SIGNAL(q_k_sendSucceed()), this, SLOT(k_sendSucceed()), Qt::QueuedConnection); - connect(this, SIGNAL(q_k_receiveFailed()), this, SLOT(k_receiveFailed()), Qt::QueuedConnection); - connect(this, SIGNAL(q_k_receiveSucceed()), this, SLOT(k_receiveSucceed()), Qt::QueuedConnection); - connect(&timer_diag, SIGNAL(timeout()), this, SLOT(updateDiag())); - connect(&session, SIGNAL(loading(QPIConfig&)), this, SLOT(loading(QPIConfig&))); - connect(&session, SIGNAL(saving(QPIConfig&)), this, SLOT(saving(QPIConfig&))); - connect(ui->checkKHideNormal, SIGNAL(toggled(bool)), this, SLOT(filterTree())); - connect(ui->checkKHideExpressions, SIGNAL(toggled(bool)), this, SLOT(filterTree())); - connect(ui->lineKSearch, SIGNAL(textChanged(QString)), this, SLOT(filterTree())); - session.load(); - on_spinBuffer_editingFinished(); - K.reinitConnection(K.pultConfig()); - K.configure(config_); - K.readFile(); - updateKDesc(); - updateCDesc(); - timer_diag.start(40); -} - - -CD_Pult::~CD_Pult() { - session.save(); -} - - -void CD_Pult::loading(QPIConfig & conf) { - kdesc_file = Q2PIString(conf.getValue("kdesc_file").stringValue()); - cdesc_file = Q2PIString(conf.getValue("cdesc_file").stringValue()); -} - - -void CD_Pult::saving(QPIConfig & conf) { - conf.setValue("kdesc_file", PI2QString(kdesc_file)); - conf.setValue("cdesc_file", PI2QString(cdesc_file)); -} - - -bool CD_Pult::eventFilter(QObject * o, QEvent * e) { - if (o == ui->list->viewport()) { - if (e->type() == QEvent::ContextMenu) { - clear_target = 0; - log_menu.popup(((QContextMenuEvent*)e)->globalPos()); - } - return QMainWindow::eventFilter(o, e); - } - if (o == ui->treeCDK->viewport()) { - if (e->type() == QEvent::ContextMenu) { - clear_target = 1; - log_menu.popup(((QContextMenuEvent*)e)->globalPos()); - } - return QMainWindow::eventFilter(o, e); - } - //int ind = o->property("index").toInt(); - //qDebug() << "event" << i << e->type(); - switch (e->type()) { - case QEvent::Enter: - ui->graphic->setAutoUpdate(false); - //for (int i = 0; i < KX_X_PACKET_NUM; ++i) - // ui->graphic->setGraphicLineWidth(ind == i ? 3. : 1., i); - ui->graphic->setAutoUpdate(true); - ui->graphic->update(); - break; - case QEvent::Leave: - ui->graphic->setAutoUpdate(false); - //for (int i = 0; i < KX_X_PACKET_NUM; ++i) - // ui->graphic->setGraphicLineWidth(1., i); - ui->graphic->setAutoUpdate(true); - ui->graphic->update(); - break; - default: break; - } - return QMainWindow::eventFilter(o, e); -} - - -void CD_Pult::timerEvent(QTimerEvent * e) { - /*if (e->timerId() == timer_update) { - if (need_update) { - need_update = false; - ui->graphic->updateGraphics(); - } - }*/ - if (e->timerId() == timer) { - static QString sPI = QString::number(atan(1) * 4., 'f', 14).leftJustified(14); - static int cnt = 0; - int si = qMax(cnt - 6, 0); - ++cnt; - cnt %= 23; - ui->labelWait->setText(QString(si, QChar(' ')) + sPI.mid(cnt - 6, 6).trimmed()); - //if (!coeffs.isReady()) return; - //ui->table->setK(coeffsK.k()->data(), coeffsK.count()); - //ui->table->showK(); - } -} - - -void CD_Pult::addToList(const QString & s, const QColor & c) { - ui->list->addItem(QDateTime::currentDateTime().toString("dd/MM/yyyy hh:ss - ") + s); - ui->list->item(ui->list->count() - 1)->setTextColor(c); - ui->list->scrollToBottom(); -} - - -void CD_Pult::on_actionClear_triggered() { - switch (clear_target) { - case 0: - ui->list->clear(); - break; - case 1: - clearSelected(); - break; - default: break; - } -} - - -void CD_Pult::clearSelected() { - /*QList si = ui->treeK->selectedItems(); - ui->treeK->setUpdatesEnabled(false); - ui->treeK->blockSignals(true); - foreach (QTreeWidgetItem * i, si) { -// int ki = i->text(0).toInt(); - i->setText(2, ""); - //coeffs.setFormula(ki, ""); - } - ui->treeK->blockSignals(false); - ui->treeK->setUpdatesEnabled(true); - if (ui->checkKAutoCalculate->isChecked()) { - QApplication::processEvents(); - //calculate(); - }*/ -} - - -QString CD_Pult::typeName(const QString & n) const { - if (n.isEmpty()) return ""; - switch (n[0].toLatin1()) { - case 'l': return trUtf8("list"); break; - case 'b': return trUtf8("bool"); break; - case 'n': return trUtf8("int"); break; - case 'f': return trUtf8("double"); break; - case 'c': return trUtf8("color"); break; - case 'r': return trUtf8("rect"); break; - case 'a': return trUtf8("rect"); break; - case 'p': return trUtf8("point"); break; - case 'v': return trUtf8("vector"); break; - case 'i': return trUtf8("IP"); break; - case 'e': return trUtf8("enum"); break; - case 'F': return trUtf8("file"); break; - case 'D': return trUtf8("dir"); break; - } - return trUtf8("double"); -} - - -void CD_Pult::makeTreeSection(CDSection & ks, QTreeWidgetItem * pi) { - PIMap::iterator ki; - for (ki = ks.k.begin(); ki != ks.k.end(); ++ki) { - QTreeWidgetItem * ti = new QTreeWidgetItem(pi); - const CDType & ck(ki.value()); - ti->setText(0, QString::number(ck.index())); - ti->setText(1, PI2QString(ck.name())); - ti->setText(2, typeName(PI2QString(ck.type()))); - ti->setText(3, PI2QString(ck.formula())); - ti->setText(5, PI2QString(ck.comment())); - } - PIMap::iterator si; - for (si = ks.s.begin(); si != ks.s.end(); ++si) { - QTreeWidgetItem * ti = new QTreeWidgetItem(pi); - CDSection & cs(si.value()); - ti->setText(0, QString("[%1]").arg(si.key())); - ti->setText(1, PI2QString(cs.alias)); - ti->setText(2, PI2QString(cs.name)); - makeTreeSection(cs, ti); - } -} - - -void CD_Pult::on_treeK_itemClicked(QTreeWidgetItem * item, int column) { - Qt::ItemFlags f = Qt::ItemIsEnabled | Qt::ItemIsSelectable; - if (column == 2) f |= Qt::ItemIsEditable; - item->setFlags(f); -} - - -void CD_Pult::on_treeK_itemChanged(QTreeWidgetItem * item, int column) { - if (column != 2) return; -// int ki = item->text(0).toInt(); - //coeffs.setFormula(ki, piqt(item->text(column))); - if (ui->checkKAutoCalculate->isChecked()) - ;//calculate(); -} - - -void CD_Pult::on_buttonSendK_clicked() { -// on_buttonWrite_clicked(); - K.send(); - //coeffs.sendCoeffs(); - if (timer != 0) killTimer(timer); - timer = startTimer(100); -} - - -void CD_Pult::on_buttonReceiveK_clicked() { - K.request(); -// K.se - //coeffs.receiveCoeffs(); - if (timer != 0) killTimer(timer); - timer = startTimer(100); -} - - -void CD_Pult::on_buttonShowAll_clicked() { - /*for (int i = 0; i < KX_X_PACKET_NUM; ++i) { - checks[i]->check.setChecked(true); - //ui->graphic->setGraphicVisible(true, i); - }*/ -} - - -void CD_Pult::on_buttonHideAll_clicked() { - /*for (int i = 0; i < KX_X_PACKET_NUM; ++i) { - checks[i]->check.setChecked(false); - //ui->graphic->setGraphicVisible(false, i); - }*/ -} - - -void CD_Pult::on_buttonRead_clicked() { - K.readFile(); - addToList(trUtf8("Read K file \"%1\": %2 coeffs, %3 bytes").arg(PI2QString(K.file())).arg(K.count()).arg(K.fileSize()), Qt::darkMagenta); - updateTree(); -} - - -void CD_Pult::on_buttonWrite_clicked() { - K.writeFile(); - addToList(trUtf8("Write K file \"%1\": %2 coeffs, %3 bytes").arg(PI2QString(K.file())).arg(K.count()).arg(K.fileSize()), Qt::darkMagenta); -} - - -void CD_Pult::on_buttonSetKDesc_clicked() { - QString ret = QFileDialog::getOpenFileName(this, trUtf8("Select *.h file with K description"), PI2QString(kdesc_file), "C/C++ header files(*.h *.hpp);;All files(*)"); - if (ret.isEmpty()) return; - kdesc_file = Q2PIString(QDir::current().relativeFilePath(ret)); - PIFile f(kdesc_file, PIIODevice::ReadOnly); - piCout << "open description:" << Q2PIString(ret); - //K.update(&f); - updateKDesc(true); -} - - -void CD_Pult::on_buttonSetCDesc_clicked() { - QString ret = QFileDialog::getOpenFileName(this, trUtf8("Select *.h file with C description"), PI2QString(cdesc_file), "C/C++ header files(*.h *.hpp);;All files(*)"); - if (ret.isEmpty()) return; - cdesc_file = Q2PIString(QDir::current().relativeFilePath(ret)); - updateCDesc(); -} - - -void CD_Pult::k_sendFailed() { - addToList(trUtf8("K not sended"), Qt::darkRed); - if (timer != 0) killTimer(timer); -} - - -void CD_Pult::k_sendSucceed() { - addToList(trUtf8("K sended"), Qt::darkGreen);; - if (timer != 0) killTimer(timer); -} - - -void CD_Pult::k_receiveFailed() { - addToList(trUtf8("K not received"), Qt::darkRed); - if (timer != 0) killTimer(timer); -} - - -void CD_Pult::k_receiveSucceed() { - addToList(trUtf8("K received"), Qt::darkGreen); - if (timer != 0) killTimer(timer); - updateTree(); -} - - -void CD_Pult::on_spinBuffer_editingFinished() { - ui->graphic->setHistorySize(ui->spinBuffer->value()); -} - - -void CD_Pult::updateGraph() { - ui->graphic->updateGraphics(); -} - - -void CD_Pult::updateDiag() { - /*ui->labelKReceiver->setText(piqt(coeffs.k_protocol->receiverDeviceName() + " - " + coeffs.k_protocol->receiverDeviceState())); - ui->labelKSender->setText(piqt(coeffs.k_protocol->senderDeviceName())); - ui->spinKSended->setValue(coeffs.k_protocol->sendCount()); - ui->spinKReceived->setValue(coeffs.k_protocol->receiveCount()); - ui->spinKWrong->setValue(coeffs.k_protocol->wrongCount()); - ui->spinKMissed->setValue(coeffs.k_protocol->missedCount()); - ui->labelKType->setText("0x" + QString::number(coeffs.k_protocol->from_k.type, 16).toUpper().rightJustified(2, '0')); - ui->labelKAddrPult->setText("0x" + QString::number(coeffs.k_protocol->from_k.addr_to, 16).toUpper().rightJustified(2, '0')); - ui->labelKAddr->setText("0x" + QString::number(coeffs.k_protocol->to_k.addr_to, 16).toUpper().rightJustified(2, '0')); - - ui->labelXReceiver->setText(piqt(prot_x->receiverDeviceName() + " - " + prot_x->receiverDeviceState())); - ui->labelXSender->setText(piqt(prot_x->senderDeviceName())); - ui->spinXSended->setValue(prot_x->sendCount()); - ui->spinXReceived->setValue(prot_x->receiveCount()); - ui->spinXWrong->setValue(prot_x->wrongCount()); - ui->spinXMissed->setValue(prot_x->missedCount()); - ui->labelXType->setText("0x" + QString::number(prot_x->from_x.type, 16).toUpper().rightJustified(2, '0')); - ui->labelXAddrPult->setText("0x" + QString::number(prot_x->from_x.addr_to, 16).toUpper().rightJustified(2, '0')); - ui->labelXAddr->setText("0x" + QString::number(prot_x->to_x.addr_to, 16).toUpper().rightJustified(2, '0')); - - ui->labelCReceiver->setText(piqt(prot_c->receiverDeviceName() + " - " + prot_c->receiverDeviceState())); - ui->labelCSender->setText(piqt(prot_c->senderDeviceName())); - ui->spinCSended->setValue(prot_c->sendCount()); - ui->spinCReceived->setValue(prot_c->receiveCount()); - ui->spinCWrong->setValue(prot_c->wrongCount()); - ui->spinCMissed->setValue(prot_c->missedCount()); - ui->labelCType->setText("0x" + QString::number(prot_c->from_c.type, 16).toUpper().rightJustified(2, '0')); - ui->labelCAddrPult->setText("0x" + QString::number(prot_c->from_c.addr_to, 16).toUpper().rightJustified(2, '0')); - ui->labelCAddr->setText("0x" + QString::number(prot_c->to_c.addr_to, 16).toUpper().rightJustified(2, '0')); - */ -} - - -void CD_Pult::updateKDesc(bool ask_move) { - addToList(trUtf8("Update K description file \"%1\"").arg(PI2QString(kdesc_file)), Qt::darkMagenta); - PIFile f(kdesc_file, PIIODevice::ReadOnly); - //piCout << "call K.update():"; - K.root() = CDSection(); - K.update(&f); - updateTree(ask_move); -} - - -void CD_Pult::updateCDesc() { - //parseHeader(cdesc_file, cdesc); - updateCommands(); -} - - -bool stringComp(const QString & s1, const QString & s2) { - if (s1.size() != s2.size()) - return s1.size() > s2.size(); - return s1 > s2; -} - - -void CD_Pult::updateTree(bool move) { -} - - -void CD_Pult::updateCommands() { - while (ui->layoutCommands->count() > 0) - delete ui->layoutCommands->itemAt(0)->widget(); - /*QMapIterator it(cdesc); - while (it.hasNext()) { - it.next(); - KDesc kd = it.value(); - QPushButton * b = new QPushButton(); - QString text = kd.name; - if (!kd.comment.isEmpty()) - text += QString("\n(%1)").arg(kd.comment); - b->setText(text); - b->setProperty("_command", kd.index); - connect(b, SIGNAL(clicked()), this, SLOT(commandClicked())); - ui->layoutCommands->addWidget(b); - }*/ -} - - -void CD_Pult::filterTree() { - /*bool hn = ui->checkKHideNormal->isChecked(); - bool hs = ui->checkKHideExpressions->isChecked(); - bool ok = false; - QString fl = ui->lineKSearch->text(); - int lc = ui->treeK->topLevelItemCount(); - for (int i = 0; i < lc; ++i) { - QTreeWidgetItem * ti = ui->treeK->topLevelItem(i); - if (fl.isEmpty()) - ti->setHidden(false); - else - ti->setHidden(!ti->text(0).contains(fl, Qt::CaseInsensitive) && - !ti->text(1).contains(fl, Qt::CaseInsensitive) && - !ti->text(2).contains(fl, Qt::CaseInsensitive) && - !ti->text(3).contains(fl, Qt::CaseInsensitive) && - !ti->text(4).contains(fl, Qt::CaseInsensitive)); - if (hn) - if (ti->data(0, Qt::UserRole).toBool()) - ti->setHidden(true); - if (hs) { - ti->data(2, Qt::DisplayRole).toDouble(&ok); - if (!ok) - ti->setHidden(true); - } - }*/ -} - - -void CD_Pult::markError(QTreeWidgetItem * item, const QString & tool_tip) { - int cc = item->columnCount(); - for (int i = 0; i < cc; ++i) - item->setBackgroundColor(i, QColor(255, 200, 200)); - if (item->toolTip(2).isEmpty()) - item->setToolTip(2, tool_tip); - if (item->toolTip(3).isEmpty()) - item->setToolTip(3, tool_tip); - item->setData(0, Qt::UserRole, false); - item->setText(3, "Error"); -} - - -void CD_Pult::markNormal(QTreeWidgetItem * item) { - int cc = item->columnCount(); - for (int i = 0; i < cc; ++i) - item->setBackground(i, Qt::NoBrush); - item->setToolTip(2, QString()); - item->setToolTip(3, QString()); - item->setData(0, Qt::UserRole, true); -} - - -void CD_Pult::progress(int val, int max) { -} - - -void CD_Pult::commandClicked() { - QPushButton * b = qobject_cast(sender()); - if (!b) return; - //prot_c->sendCommand(b->property("_command").toInt()); -} diff --git a/qcd_utils/pult/cd_pult.h b/qcd_utils/pult/cd_pult.h deleted file mode 100644 index 8c2d274..0000000 --- a/qcd_utils/pult/cd_pult.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef CD_PULT_H -#define CD_PULT_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "piqt.h" -#include "session_manager.h" -#include "qpievaluator.h" -#include "cdutils_core.h" -#include "cdutils_k.h" -#include "qcd_kmodel.h" - - -namespace Ui { - class CD_Pult; -} - -class CD_Pult: public QMainWindow, public PIObject -{ - Q_OBJECT - PIOBJECT(CD_Pult) -public: - CD_Pult(); - ~CD_Pult(); - -private: - bool eventFilter(QObject * o, QEvent * e); - void timerEvent(QTimerEvent * ); - void addToList(const QString & s, const QColor & c); - QColor invertColor(QColor col) {return QColor(255 - col.red(), 255 - col.green(), 255 - col.blue());} - void stopWait(); - bool calculateExpression(int i, QVector trace); - void markError(QTreeWidgetItem * item, const QString & tool_tip = QString()); - void markNormal(QTreeWidgetItem * item); - void progress(int val, int max); - void clearSelected(); - QString typeName(const QString & n) const; - void makeTreeSection(CDUtils::CDSection & ks, QTreeWidgetItem * pi); - - EVENT_HANDLER(void, pip_sendFailed) {emit q_k_sendFailed();} - EVENT_HANDLER(void, pip_sendSucceed) {emit q_k_sendSucceed();} - EVENT_HANDLER(void, pip_receiveFailed) {emit q_k_receiveFailed();} - EVENT_HANDLER(void, pip_receiveSucceed) {emit q_k_receiveSucceed();} - - Ui::CD_Pult * ui; - PIString config_, name_x, name_c; - PIString kdesc_file, cdesc_file, xdesc_file; - QMenu log_menu; - QTimer timer_diag; - SessionManager session; - QPIConfig config; - //QVector k, x; - int clear_target, timer; - bool needWrite, isPause, need_update, show_x; - -private slots: - void loading(QPIConfig & conf); - void saving(QPIConfig & conf); - void updateGraph(); - void updateDiag(); - void updateKDesc(bool ask_move = false); - void updateCDesc(); - void updateTree(bool move = false); - void updateCommands(); - void filterTree(); - //void calculate(); - //void renew(bool write = true); - void commandClicked(); - void k_sendFailed(); - void k_sendSucceed(); - void k_receiveFailed(); - void k_receiveSucceed(); - void on_spinBuffer_editingFinished(); - void on_buttonSendK_clicked(); - void on_buttonReceiveK_clicked(); - void on_buttonShowAll_clicked(); - void on_buttonHideAll_clicked(); - void on_buttonRead_clicked(); - void on_buttonWrite_clicked(); - void on_buttonSetKDesc_clicked(); - void on_buttonReparseKDesc_clicked() {updateKDesc(true);} - void on_buttonSetCDesc_clicked(); - void on_buttonReparseCDesc_clicked() {updateCDesc();} - //void on_buttonCalculate_clicked() {calculate();} - //void on_buttonApply_clicked() {renew();} - void on_buttonPause_toggled(bool on) {isPause = on;} - void on_treeK_itemClicked(QTreeWidgetItem * item, int column); - void on_treeK_itemChanged(QTreeWidgetItem * item, int column); - void on_actionClear_triggered(); - -signals: - void q_k_sendFailed(); - void q_k_sendSucceed(); - void q_k_receiveFailed(); - void q_k_receiveSucceed(); - -}; - -#endif // CD_PULT_H - diff --git a/qcd_utils/pult/cd_pult.qrc b/qcd_utils/pult/cd_pult.qrc deleted file mode 100644 index 99f4688..0000000 --- a/qcd_utils/pult/cd_pult.qrc +++ /dev/null @@ -1,40 +0,0 @@ - - - icons/dialog-close.png - icons/edit-clear-.png - icons/edit-guides.png - icons/view-grid.png - icons/zoom-fit-best.png - icons/configure.png - icons/alpha.png - icons/document-save.png - icons/edit-clear-locationbar-rtl.png - icons/edit-find.png - icons/list-add.png - icons/edit-delete.png - icons/item-add.png - icons/item.png - icons/node-add.png - icons/node.png - icons/edit-copy.png - icons/edit-paste.png - icons/expand_s_x.png - icons/expand_s_y.png - icons/expand_x.png - icons/expand_y.png - icons/media-playback-pause.png - icons/media-playback-stop.png - icons/media-record.png - icons/application-exit.png - icons/document-save-.png - icons/view-refresh.png - icons/document-open.png - icons/archive-extract.png - icons/document-export.png - icons/document-import.png - icons/zoom-fit-height.png - icons/layer-visible-off.png - icons/layer-visible-on.png - icons/accessories-calculator.png - - diff --git a/qcd_utils/pult/cd_pult.ui b/qcd_utils/pult/cd_pult.ui deleted file mode 100644 index 7cd129f..0000000 --- a/qcd_utils/pult/cd_pult.ui +++ /dev/null @@ -1,1238 +0,0 @@ - - - CD_Pult - - - - 0 - 0 - 1035 - 728 - - - - CD Pult - - - - - - - 0 - - - - Coefficients (K) - - - - - - - - Update - - - - :/icons/view-refresh.png:/icons/view-refresh.png - - - - - - - Read - - - - :/icons/archive-extract.png:/icons/archive-extract.png - - - - - - - Send - - - - :/icons/document-export.png:/icons/document-export.png - - - - - - - - 0 - 0 - - - - Qt::CustomContextMenu - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - - - - - Receive - - - - :/icons/document-import.png:/icons/document-import.png - - - - - - - - 0 - 0 - - - - - 200 - 0 - - - - - - - - - - - Write - - - - :/icons/document-save-.png:/icons/document-save-.png - - - - - - - Make ... - - - - :/icons/document-open.png:/icons/document-open.png - - - - - - - - - - - Hide expressions - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 20 - 20 - - - - - - - - Show only errors - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 20 - 20 - - - - - - - - :/icons/edit-find.png - - - Qt::AlignCenter - - - - - - - Search: - - - - - - - - 0 - 0 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 40 - 20 - - - - - - - - Auto calculate - - - true - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 20 - 20 - - - - - - - - Calculate - - - Calculate - - - - :/icons/accessories-calculator.png:/icons/accessories-calculator.png - - - - - - - 100 - - - Calculate %p% - - - - - - - - - QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed - - - true - - - QAbstractItemView::ExtendedSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - 20 - - - - - - - - Commands (C) - - - - - - - - Set C desc file ... - - - - :/icons/document-open.png:/icons/document-open.png - - - - - - - Reparse C desc - - - - :/icons/view-refresh.png:/icons/view-refresh.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - Commands - - - - - - QFrame::NoFrame - - - true - - - - - 0 - 0 - 819 - 613 - - - - - 0 - - - 0 - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 66 - 441 - - - - - - - - - - - - - - - - - - Graphics (X) - - - - - - - 10 - - - - - - - - - - - 0 - 0 - - - - Show all - - - - :/icons/layer-visible-on.png:/icons/layer-visible-on.png - - - - - - - - 0 - 0 - - - - Hide all - - - - :/icons/layer-visible-off.png:/icons/layer-visible-off.png - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Start record - - - - :/icons/media-record.png:/icons/media-record.png - - - - - - - - - - - Pause - - - - :/icons/media-playback-pause.png:/icons/media-playback-pause.png - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Show - - - - - - - - 0 - 0 - - - - с - - - 1 - - - 0.100000000000000 - - - 9999.000000000000000 - - - 10.000000000000000 - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 40 - 20 - - - - - - - - Save - - - - - - - - 0 - 0 - - - - с - - - 1 - - - 0.100000000000000 - - - 9999.000000000000000 - - - 60.000000000000000 - - - - - - - - - Graphic::Autofit|Graphic::BorderInputs|Graphic::Clear|Graphic::Configure|Graphic::CursorAxis|Graphic::Grid|Graphic::OnlyExpandX|Graphic::OnlyExpandY|Graphic::Save - - - false - - - false - - - 60.000000000000000 - - - 10.000000000000000 - - - - - - - - Configuration - - - - - - K - - - - QFormLayout::AllNonFixedFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - receiver: - - - - - - - - - - - - - - sender: - - - - - - - - - - - - - - sended count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - wrong received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - type: - - - - - - - - - - - - - - address K: - - - - - - - - - - - - - - - - - - - - - missed received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - address pult: - - - - - - - - - - X - - - - QFormLayout::AllNonFixedFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - receiver: - - - - - - - - - - - - - - sender: - - - - - - - - - - - - - - type: - - - - - - - - - - - - - - address X: - - - - - - - address pult: - - - - - - - - - - - - - - sended count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - wrong received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - - - - - - - - missed received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - - - - C - - - - QFormLayout::AllNonFixedFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - receiver: - - - - - - - - - - - - - - sender: - - - - - - - - - - - - - - type: - - - - - - - - - - - - - - address C: - - - - - - - address pult: - - - - - - - - - - - - - - sended count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - wrong received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - - - - - - - - missed received count: - - - - - - - true - - - 0 - - - 1999999999 - - - - - - - - - - - - true - - - true - - - true - - - false - - - 20 - - - - - - - Apply - - - - :/icons/document-save-.png:/icons/document-save-.png - - - - - - - - - - - - - - - :/icons/edit-clear-.png:/icons/edit-clear-.png - - - Clear - - - - - - Graphic - QFrame -
graphic.h
-
- - CLineEdit - QLineEdit -
clineedit.h
-
- - QPIConfigWidget - QTreeWidget -
qpiconfigwidget.h
-
- - CDKView - QTreeView -
qcd_kview.h
- - busyStatusChanged(bool) - sendK() - receiveK() - saveK() - loadK() - clear() - clearK() - refresh() - -
-
- - - - - - - spinHistory - valueChanged(double) - graphic - setMaxVisibleTime(double) - - - 919 - 107 - - - 932 - 132 - - - - -
diff --git a/qcd_utils/pult/cdpultwindow.cpp b/qcd_utils/pult/cdpultwindow.cpp new file mode 100644 index 0000000..3d18ac7 --- /dev/null +++ b/qcd_utils/pult/cdpultwindow.cpp @@ -0,0 +1,13 @@ +#include "cdpultwindow.h" +#include "ui_cdpultwindow.h" + + +CDPultWindow::CDPultWindow(QWidget *parent) : EMainWindow(parent), ui(new Ui::CDPultWindow) { + ui->setupUi(this); + +} + + +CDPultWindow::~CDPultWindow() { + delete ui; +} diff --git a/qcd_utils/pult/cdpultwindow.h b/qcd_utils/pult/cdpultwindow.h new file mode 100644 index 0000000..37381df --- /dev/null +++ b/qcd_utils/pult/cdpultwindow.h @@ -0,0 +1,33 @@ +#ifndef CDPULTWINDOW_H +#define CDPULTWINDOW_H + +#include "emainwindow.h" + + +namespace Ui { +class CDPultWindow; +} + +class CDPultWindow : public EMainWindow +{ + Q_OBJECT + +public: + explicit CDPultWindow(QWidget *parent = 0); + ~CDPultWindow(); + +private: + void closeEvent(QCloseEvent * ); + void timerEvent(QTimerEvent *); + void reset(bool full = false); + bool load(const QString & path); + bool save(const QString & path); + void loadingSession(QPIConfig & conf); + void savingSession(QPIConfig & conf); + void addToErrorList(QString msg); + QString loadFilter() {return "CD file(*.dat)";} + QString saveFilter() {return "CD file(*.dat)";} + Ui::CDPultWindow *ui; +}; + +#endif // CDPULTWINDOW_H diff --git a/qcd_utils/pult/cdpultwindow.ui b/qcd_utils/pult/cdpultwindow.ui new file mode 100644 index 0000000..9fc05c3 --- /dev/null +++ b/qcd_utils/pult/cdpultwindow.ui @@ -0,0 +1,118 @@ + + + CDPultWindow + + + + 0 + 0 + 800 + 600 + + + + Form + + + + + 0 + 0 + 800 + 21 + + + + + Main + + + + + + + + + + + + + + + + :/icons/document-open.png:/icons/document-open.png + + + Open + + + Ctrl+O + + + + + + :/icons/document-save.png:/icons/document-save.png + + + Save + + + Ctrl+S + + + + + SaveAs... + + + Ctrl+Shift+S + + + + + Send K + + + Ctrl+D + + + + + Receive_K + + + Ctrl+R + + + + + Parse... + + + Ctrl+Shift+P + + + + + + + + + + + + + + + EMainWindow + QMainWindow +
emainwindow.h
+ 1 +
+
+ + + + +
diff --git a/qcd_utils/pult/form.cpp b/qcd_utils/pult/form.cpp deleted file mode 100644 index caf4243..0000000 --- a/qcd_utils/pult/form.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "form.h" -#include "ui_form.h" -#include -#include -#include "cdutils_k.h" -#include "cdutils_core.h" -#include "qcd_core.h" -#include "qcd_kmodel.h" -#include "pifile.h" -#include "evalspinbox.h" - - -using namespace CDUtils; - -PIStringList takeMembers(PIString &in) { - int slen = in.length(); - int st = -1, bcnt = 0; - PIChar cc; - PIStringList ret; - int rst = -1; - for (int i = 0; i < slen; i++) { - cc = in.at(i); - if (cc == '{') { - if (bcnt == 0) st = i; - bcnt++; - } - if (cc == '}' && st >= 0) { - bcnt--; - if (bcnt == 0) { - in.remove(st, i-st); - return ret; - } - } - if (cc == ';' && bcnt == 1) { - if (rst < 0) rst = st; - ret << in.mid(rst+1, i-rst-1); - rst = i; - } - } - return ret; -} - - -void parseStruct(PIString &in, CDSection * root, const PIStringList &c_types, PIVector §ions, PIVector &enums); - - -void parseEnum(PIString &in, CDSection * root, const PIStringList &c_types, PIVector §ions, PIVector &enums) { - PIString n = in.takeCWord(); - //piCout << n; - PIVariantTypes::Enum e; - e.enum_name = n; - PIString ev = in.inBrackets('{', '}'); - e << ev.split(","); - if (root) { - CDType & cdt((*root)[root->count(false)]); - cdt = CDType(cdt.index(), n, "e", "", "", "", CDType::cdK); - cdt.setEnumValues(e); - enums << cdt; - } else { - enums << CDType(0, n, "e", "", "", "", CDType::cdK); - enums.back().setEnumValues(e); - } - in.removeAll("{"+in+"}"); -} - - -void parseMember(PIString &in, CDSection * root, const PIStringList &c_types, PIVector §ions, PIVector &enums) { - PIString t = in.takeCWord(); - if (t == "struct") { - parseStruct(in, root, c_types, sections, enums); - } - if (t == "enum") { - parseEnum(in, root, c_types, sections, enums); - } - if (root) { - if (c_types.contains(t) && root) { - PIString tt = "s"; - if (t == "bool") tt = "b"; - if (t == "int") tt = "n"; - if (t == "double") tt = "f"; - CDType & cdt((*root)[root->count(false)]); - cdt = CDType(cdt.index(), in.takeCWord(), tt, "", "", "", CDType::cdK); - } - piForeach(CDSection cd, sections) { - if (t == cd.name) { - cd.alias = in.takeCWord(); - root->section(root->sectionsCount()) = cd; - } - } - piForeach(CDType en, enums) { - if (t == en.name()) { - in.takeCWord(); - (*root)[root->count(false)] = en; - } - } - } -} - -void parseStruct(PIString &in, CDSection * root, const PIStringList &c_types, PIVector §ions, PIVector &enums) { - PIString t = in.takeCWord(); - CDSection * c; - if (root) c = &(root->section(root->sectionsCount())); - else c = new CDSection(); - c->name = t; - c->alias = t; - PIStringList members = takeMembers(in); - //piCout << members; - piForeach(PIString &s, members) { - if (s.trim().isEmpty()) continue; - parseMember(s, c, c_types, sections, enums); - } - sections << *c; -} - - -Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { - CDCore::instance()->initPult(); - ui->setupUi(this); - ui->treeView->setKFile(""); - EvalSpinBox * ev = new EvalSpinBox(); - ev->setValue(2); - ui->groupBox->layout()->addWidget(ev); - - PIFile f; - piCout << f.open("test.kh", PIIODevice::ReadOnly); - PIStringList c_types; - c_types << "bool" << "int" << "double" << "string" << "PIString"; - PIString in; - while (!f.isEnd()) { - PIStringList s = f.readLine().trim().split("//"); - if (!s.isEmpty()) - in += s[0]; - } - PIVector sections; - PIVector enums; - int i=0; - while (!in.isEmpty() && i<100) { - if (!in[0].isAlpha()) in.takeSymbol(); - parseMember(in, 0, c_types, sections, enums); - i++; - } - piForeach(CDSection cd, sections) { - if (cd.name == "K") K.root() = cd; - } - - ui->treeView->refresh(); -} - - -Form::~Form() { - delete ui; -} - - -void Form::on_pushButton_3_clicked() { - ui->treeView->setKFile(QFileDialog::getSaveFileName(this, "Save")); - ui->treeView->saveK(); - ui->treeView->setKFile(""); -} - - -void Form::on_pushButton_4_clicked() { - ui->treeView->setKFile(QFileDialog::getOpenFileName(this, "Open")); - ui->treeView->loadK(); - ui->treeView->setKFile(""); - qDebug() << QCDCore::instance()->bindWindow(this); - QCDCore::instance()->bindWidget(ui->spinRadar_Antenna_SwitchRate, K["NVA.NVA_FrameStitch"]); -} - - -void Form::on_pushButton_6_clicked() { - QString fn = QFileDialog::getOpenFileName(this, trUtf8("Select *.h file with K description"), "k_description.h", "C/C++ header files(*.h *.hpp);;All files(*)"); - if (fn.isEmpty()) return; - if (mode_dlg.exec() == QDialog::Rejected) return; - ui->treeView->buildFromHeader(fn, mode_dlg.mode()); - /*piCout << K.root()["Radar_WaveFreqTune"]; - piCout << K.root()["11.NVA_PulseGenFineTune"]; - piCout << K.root()[".NVA.NVA_PulseGenFineTune"]; - piCout << K.root()["NVA_A.1.NVA_Clk"];*/ -} - - -void Form::on_buttonCalc_clicked() { - ui->treeView->calculateK(); - ui->treeView->refresh(); -} diff --git a/qcd_utils/pult/form.h b/qcd_utils/pult/form.h deleted file mode 100644 index 700ecdc..0000000 --- a/qcd_utils/pult/form.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef FORM_H -#define FORM_H - -#include -#include - -namespace Ui { -class Form; -} - -class Form : public QWidget -{ - Q_OBJECT - -public: - explicit Form(QWidget *parent = 0); - ~Form(); - -private slots: - void on_pushButton_3_clicked(); - void on_pushButton_4_clicked(); - void on_pushButton_6_clicked(); - void on_buttonCalc_clicked(); - -private: - Ui::Form * ui; - QCDModeDialog mode_dlg; - -}; - -#endif // FORM_H diff --git a/qcd_utils/pult/form.ui b/qcd_utils/pult/form.ui deleted file mode 100644 index 0100fa2..0000000 --- a/qcd_utils/pult/form.ui +++ /dev/null @@ -1,249 +0,0 @@ - - - Form - - - - 0 - 0 - 731 - 508 - - - - Form - - - - - - Qt::Horizontal - - - - - - - Save - - - - - - - Load - - - - - - - Send - - - - - - - Receive - - - - - - - update from KDescription - - - - - - - Clear - - - - - - - Calculate - - - - - - - Refresh - - - - - - - - - - - - 0 - 0 - - - - GroupBox - - - - - - CheckBox - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - SpinSlider - QWidget -
spinslider.h
-
- - CDKView - QTreeView -
qcd_kview.h
- - busyStatusChanged(bool) - sendK() - receiveK() - saveK() - loadK() - clear() - clearK() - refresh() - -
-
- - - - pushButton_2 - clicked() - treeView - receiveK() - - - 264 - 60 - - - 264 - 152 - - - - - treeView - busyStatusChanged(bool) - pushButton_2 - setDisabled(bool) - - - 264 - 174 - - - 264 - 60 - - - - - pushButton_5 - clicked() - treeView - clearK() - - - 264 - 89 - - - 264 - 188 - - - - - pushButton - clicked() - treeView - sendK() - - - 137 - 60 - - - 198 - 152 - - - - - treeView - busyStatusChanged(bool) - pushButton - setDisabled(bool) - - - 177 - 246 - - - 98 - 46 - - - - - buttonRefresh - clicked() - treeView - refresh() - - - 223 - 114 - - - 217 - 134 - - - - -
diff --git a/qcd_utils/pult/icons/accessories-calculator.png b/qcd_utils/pult/icons/accessories-calculator.png deleted file mode 100644 index 1b1dd1e44dbf286667d71b20d0eb1a42b29a23ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1525 zcmYk6c~DbV7{yaE%2KRAt*F>)X?5I+3rrA@fEt7#U?4#VW#0r8AtnkVA_WY%v5G(@ zVG#%fOaj>m1TicjVF`pK?8q)_!ai!%La*)A>6v%mz4v?XkMExId+!m-!Fq?rJ`D&2 zvIA*@a02teFGCFq?ueqtVlYAR7mye=HMQZ1E8}3R9&UrhgX*0xF^BD|Ad3ia9!vV$8(o#B|{^G@pqM{-ymHPbo^Q^3_?Cfk3i9{xo zDHKX>Zf;sy+S8{`{rvo5Vq&_xyAu);Qc_Zql9G-bIdb~+=`&}}7#SJCU@&828X6i#xQ@f&ZsBowJf1)x+y=Ufi;O1RyLT@dC^j?M#OAJ_{FXVexlnM`1NMMVXR#bN^q zOW5_r?1mB$1gDY46_s*DWjvrpI!{yzV&aRKd{KE7kce3Y7ER!)s1nnwfy5QnVwON4 z0Lj)!xUYbkxv!cl0Ry!yd=P6LkhHqKz8-|$*x2|l6@U{!1z-kH0pI~F0YU&O|KbFa z?dj=}%jE#SzP`Tx{{Df1fx*GSp`oGS;o*^ykvDJNjE;_ujg5_uk55cYOioTtO-)Tt zPrrTpc4lT~c6N4dZf<^leqmu@adAi%?mDSbNwY9bN_4SR74W-8^ zUw|^4;N*aYs6f>;H23J~8yLb&&CaD2l+Xd2z#=xA!{Ksyynk8+2uuHK7W6CY?C$Md z`TTkF%6;8*@EM&zBF5(xI>F(P2ih z--}m+8hSiTh(6E0+ooz3#Z-1>2om{hjXkTH_0`W}#3%|nypRz-<#yb?nzSpobdeEG z!XIXwVsX4Bs1ut0kOL=Gl6EXs+_5Xy+b^K2*pp{^KH=6|%q_|~gR(IgIe)-crqXRq#Khf#;N-DQsWz-g@9p$5eA=I5N;A^qe@%0&ZJ6XD59E;MT5NA350 zY1`D=S_K-~$BfkJM>l7st4kk84bPwl;JEWMnL%`gTlq8&M53J0jTyPB%um%D Q`|?*sS~(z?7rf*C28+}ws{jB1 diff --git a/qcd_utils/pult/icons/alpha.png b/qcd_utils/pult/icons/alpha.png deleted file mode 100644 index 543566938cf5681db007530efc6b64c4ae67c096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPaBR`)C--V~^b^?X8JzX3_G|ngA*^(*DZ1&*w>+aAw xosBLAs~RN^{P_RBevQy<^L#m8)nAzm45u$~80FZyPX%gY@O1TaS?83{1ONw+E@}V( diff --git a/qcd_utils/pult/icons/application-exit.png b/qcd_utils/pult/icons/application-exit.png deleted file mode 100644 index ed5f8b2515e72608d2de9d45fb80ff481926066e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134 zcmV-!1d;oRP)(xC=n00006VoOIv0RI600RN!9r;`8x1N%ut zK~#9!wUS?G990y?zx!uqcQ)CO3Qb9*q)kbepkNXsL>fp%(uUwejD?y8p{)=!q9{uI zgNUFMD`JgLd5}{2)TjDbX(&h)iK5opBqla%!fsPV$ZoQ`*`3+BGvk@tY+BYL;-3Q_ zbGUQA-}(0J;J>IK2tw^3)mP3K37K=}c6+n4r`M;ZdQ>*cgNlLlcl&$x?F+W`_y4@Q zyxhNgd^{yVZgTFam#l;R5QCNuU}|&|FIk9vK+Wf7}ljFCx0I0B)M_DpyEQn_xvs z?A=Q~uEAY2z;11YDwXs*lI}}%*4fvmp>$V!D(@6yRp3GaWzxc#GqBTX3h8TOTW>GW z*$HJAwfv3_Bzk(_c^;HfD5X-`LtYKmiMLikQ{7@wgTlHxF@gKW#vq%T^x3ZNZrqey z_l*xe6hd{cR#q@KIf=k^p*fBN@6N=&lzJ8Aiq_UJcj|qp8>tYY(>JttV*3LfVM;B3 zC5?rTKY+@u!KI`;5`mk~p={fCBo-WNi;EDJ1tVr5Y8ikJBu~AAJo`vlHhy9SSvSW$s^eS~DeuZ?2*i_g*i_>&r1 zfnT}w8N{XYaEdNU#3_a$6~JQA>QxAU0mO$XJP1_;ck)<&>?w2%4eOMoE%>g1C*T}= z1y+rLs0l<2@=5YbUJd5dF-Qrmh-JbbeGLyEAA=A=e|mK{=TQIKd^kYE6N4iNM&E=< zYcmLJgkUoS<2E=DoVWxI6H^51#kUFi93)NQoD*~w{KF$KCq~eaStO95b^qa`sD1ea z4D!%?$Ui4$y5pqA*WX3=v1dY~2FFrALY+K}7`IVtI2yivHHm063ez;ve&lJ~`^HJ_ z6%qtS6?pTYxn++|sdfE(WZyaj=GtK4Y!XuroD(!CJ&Q;rqVF{|H{XJVoJwNa84C=q z!F~Wtj}9aM&1KkEzrylMgK$eW$_gktK%oRUWx%x^{5n1aH8YKkZ@&Vh`t_^VZ(hB5^BM?%e;s-|%XY&(r4?7hUI(^vEK0iGCUi(hX!_KS+oi5OKgxHz zA69$ZW4tf^{_XSTlU;gzZ-0M(W6qE6i5CrBi@r}hc+vLcMqW2}v!;*_J1>9yoA>)% zEL-F^Gqp+Y`a>j2;zWCbZq7Jc#>i0j?orm>xb3;Kd6?(_-hOOnYnf+*n10B@hF1?t zcP9DRyS^8B@iXV_(-#lCcLvRfabvg>!T3OmA@1LvR)M6$4Iy5}uIEkG&tX|ssg*nH z-fwTdW45vkkBbgR&E97hx^>OUGd@?Fiun{LCS0v4v#L+yT(;Itxi@}}u8)}J(puS& z>}#K5Ha<;F*gRA5%Bi{(8QC@0b)?N=uhd;Ax?3qG#KU}Q?_;Gm`bs_X4Xy>dH0}EI zWU0SL+$lSCA(L5`f_M07J_$3FV7s4iT6msd-ON+RnPd$L7kKX!4SHE|!KtX>Wa ztAg8eSIBGBy>{SfiF@S`^GlNR5aZKkIY+({yO$0;8T-Fw{HxR3zM&*1T%zW9UCM(0 z0dk6ue{Xx~5Ieyx;ro*L78-lGYMj0@oa3s0G~tWZ3s?Kbo7;EP*F^lzP`I})=IQ&^ z>x|v3`FWE#_x-&SMGn4WLZx M>FVdQ&MBb@0Gy;gf&c&j diff --git a/qcd_utils/pult/icons/configure.png b/qcd_utils/pult/icons/configure.png deleted file mode 100644 index 5ce478b1adfefacc19d35d61e88a6c02ebe97454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmV;;0y6!HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L02{9W02{9XUK)`c00007bV*G`2iXAx z12+)F5m%`I00K=(L_t(|+KrN3NRx3C#*f?DM%ip+yqb-i;h^3{#n{|Ose_>C#@NE# z7GW2nLRnqZRk>l z!E^IGoWld>6hQ%)Ob;ZrwY8lTqK?F3D=U#m#6CX$#%MA3twKK3jp{=S3-bwzqR{g1 zWn_6|PHT0V4^ml84HUxVD;?&gUq4YYxrThci3GMzVQs_8wx>aE7+A7!I1H&&3b@>z z8%!qi9rhAf2rzWW0VzB{sMRWCC={ZTLLqRr7qhDNRaNlz?0&5`==X~y;%hk@XtmlC z)z#Ho0)bh$({nG|qLN>Ej>p>@6bJ+}b93`2b1k5YM55;Lw?1I9w}RI{3DeUbfmgwU zk`fL#FdNvgKDCcf%4E{WJ?36(INk6~Szl-8a=AAFK#9fNG~C_Y#rJsJGrheQ zBv;6hcfyN?hOCn~Qef@KUgduny7b2#PFv(s$3;Yx5y)(Lh@2zNPdMU39%!A08&{uL z2UAU&vxvjtpqADa^wRZWsl2>Q3i-Hgymh^|--2{HEh0%0sm`d7%`u#mNW_}#x8;FB z5JX#iH3q4425MvyP%7)Gf&RxmQ&aDUagOpXV6s?qkSO9GJthSE-4*}<0=h{= zK~#9!WzSn^)dc{@@z4K%&e_h+uIFq=%jRlhi`pDHEu;s75`r%D5=B@K77|LMhcYtB zu_)9aeCwfntVjt2>7mQOAXr+9^^#1|9GtD`ZtZrqbGCB}A8nt9-{Tj40h@h9LxO!V z9temQ$rQNw4io<8j=*th8yKhw!#7%Y@2*Yv^ax`yi{s-m!^7olE_Z&Nw~vw86c}Jj z6W_OP-`>~P->3c$VnnTx?4w_de8rShOxK5(ZQP zN|Z|!OC5~hy?t0~b6;C=n z)zxm_N=G8;IHwSVh$J|ijD%uMd4=Yrnr+*49Xe*Zv@SC@uH(%k>N`8dd%G=7PDs_) zOYq`*G)E4Q?%sk^EO23`--RVK`hNN^?k3WC<(delcw71NvYRrn(QjIEF!*z;P z2uhTT6iX}?Q+l6#4nX_Phs8U3RT`;kCQ?HTF$&>1CPG%%bL18opHJB{Fr;&U2HSaeDWsC5=5FFCVs!)oxmmJTNUXBK&;g!bWF-JV!{;2kpSPBY zt%j7V5fT=NZ_tEgE_}eDQKnIe0AT%Feu*)BAN9$KbX`#*QJ}75wan!|7&yquoBWFk r1U3tiK&qRTdZHuDlvzL)B>?yjfS~`FyINaO00000NkvXXu0mjf;$wU` diff --git a/qcd_utils/pult/icons/document-export.png b/qcd_utils/pult/icons/document-export.png deleted file mode 100644 index 9e1b6a620cf19c87ece3788fc8bdd77378f38d74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1106 zcmZA0c}$aM90zcY4k#^cCy+%3Z11KLmq9rlV3?FqkgI75-4Meu$244-WT4|v4H&-uLJ3BkKgyXRcuzqa2T^vEi-mMqf+1ZcNlhdf+H7Y8qxVRWR1Ox<-$>fNL zh!h$vJ3AXx{^jB6NhA`Tot-fl%zw52uXsG(6^9E83k?YkVlvYR1OkafVx%(i3-j{| z@+vCJW@ct!7~TdDLI zUtd4)_%V;i8yFZ62n2(JgHHwrhlYlRhlfW-o&lqyqtAhH8=+7*F)=YYIXN};5&)-6 zi(i4$XJ%1zb0U#QEE2r}=I0lHl{bJy@>VL9NCBBlwk};?m#x1;ZJ;(cH#asm<#PF^ zE#zBUav0tMKq?e4tbi3LB}#=tR4N2f+1f=AkZQH9cQs0*(WuoRG@x@dw6=-ZW@4j9 z?V=2*y*-23x(67IMuP!_30x+V*=)90EMRE&T-MgW2MH`;&{Dx_k8*ItV4S=U1O^2k z2|pS`jf*cjTUJ?F$zrz&w|DeLBiL#~Ts#8yI^YvxDQQ0~wlwQ2MA63|Le<0*l4p(z~?&nT5DT?HiBt$z16@z{{+d?v{PT_`BOOZH&! z;u-zOsZ;8rUW9Tz*U)gMb?QdBrSP^8>n^C-J<;rWFYRG|Smq52Hc?jHe40C z(|Axe{%OV6vslbQ=^qkkwmtY}IkRQ_X*x}nwa+DgEORW9A5zR>{^&>%f9Rtu>$U7n zb{M~Svp+ZYNSM1bG$1E1bmX$)6GZQ*`Z9!a^zw;MiQJ?F-*HLabu zC+K_q$XLhwndJ2Y*7WXXyxu>fFnS^g8awvugZ)kJ>5lWzY8$=2H!C#AkN4aO@*64` z`IeKjKvx-DLTWEgpH?jk%*dR$^zzlvOSy-W_GGP|{iNg^r)M4=?ZUaiY< zD2TpR*02w5Qe}Krf}OzKx=I=dPOjF^x`*3efw`9s7k`;`zgA+#(lDp#g?|cKeP3g% zYJGkB%*xg7o<>c~Hy4+e@y6{F?edvL*{D@Y&iNp*`N0#S!S<6UP-(HfF*!B=0F}aQ A^#A|> diff --git a/qcd_utils/pult/icons/document-import.png b/qcd_utils/pult/icons/document-import.png deleted file mode 100644 index 97e683ae5523e3f377a6a73be7f66d480f029ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 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 diff --git a/qcd_utils/pult/icons/document-save-.png b/qcd_utils/pult/icons/document-save-.png deleted file mode 100644 index aee3e22af7b53836812f8d83e0edeff787e2fdef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22676 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

#LTh$(1r~g>qHU4oRx!1ACkLe zWy&&xX3vRN*ccE=W+!;prt zq>veB4nkE*mK07d2`woME2?tjxuU1P9Y}seG)tBpx2Ht2oY8pAh0<)yMG@GJVac6C;It)ZRLMk`uh9tS+Q#69ekUX{G-wgDBoAuF2Qn( zK)dtX=A3VE;^s)2^g0<$Ug%AgIyq!A7BrhopFX{jgP_pd+-z}^%4%zC%QZAKWcaxp zKUUBG_~~4hTOJvZEWiOqmIzLWI;9X^7t4`SQ`|R(Lvcz%6mcHXcEUistW(m$ad8gA zLUg=m$GMkv;)wt8v@=d38B*Gb{i3~ujqVxI64}C%9O4vl5inwnP!E|Um=h{W*nc_CRexa|gZv>8EUY%*eELboE%wlK` z+p=Yg#eXdxHa|ExSm5Uh5QdkWA`Uz^#dj-zJ7L5M8P75}hiM9hXSNc9f>pYsR% zw6v#xqtX#bj^}3uP)k77HMo`hHao}b$RABp_40flq@!dOSMKbL88aH;!<{f;LZ-E~ zH8XMI#5xXvIu3(+{s%C~2?B6&+N)6^8NvWQBKV*fqxzk36*B8+55&VT_zU1D1r-2r zLE*$jW%tA*N}DAb?+Js)EQbz^2J#O16^YT#LU7FK8E84-+>e7Or-h2`q*EjcjY*@3 z4~@)_WXbWUf;&|tyiU=+GQXgO-t_Qyk5U5~Do+S#IrAp4c%IX3FEdZ`0bxztDJjZNh&Pb)btk|AsLO}rk zqoum4E{^ww$|h|K3jv-3bCj7Xykn)5SpYmv!MU!d)R#U!rFG!cap|F=GZGM#dB}l< z3jiqHhlhtPey#`>0tY~z17LW=h7BVdH*Or})^L;SOA0#8zwz`UhoGB zj3qfJHg)ddKK&h)!9Y~}rUs+kgH_gm{Dt?XwGt_&n;ZIu&t@72}=Ju zuIyQ^^mW_{0Ohae`|y`V=L?5|Fa|gf>i9S3n&<9KI|>iba1_r~XjU@c-8`2JgN$pY zQ^j_w5bkqyN`ArwJ8YpK)&z5_0#1H05W{K)>~rNPU^b}f?`~inhFAzZAJp6z$`2*5 zlRq&1b9f#;DCe3vXVO%UDG#@RFu*ttIPjX56W0AOizROml_%K)QElzJp3IQnn z;XG6k@;uB42f)a>b?b%z0ALMp2o(8qfWIIMAgmrlt^71y3QcMW;2&+?8&T}*9Dk7w z2i83_<=lX*90C*u^f$-K>;5tTg7WLRIY&VN0Gavo=eI&t0L*@<|8wPU1O?_LaJIX< zTUY^L0f;HX9Sgv&4cJOXnwC)ET?J*NN>EoP+8Z;ZBZ`}U_y}pK&WQ5z4?0Wy3J420 zUO>es(D76U+!v7XxDjnLgxA?s&xqtzSOXYNV-cWb;!$W!&uJ9^r7Tb@f>sZhS7|(E ze#uy1sNi|HXZYjFJHnMb?^Fj|0Km3W4S*_w001aHw*ZFMtXTsvC_vQ!Ai>kf5DP%{ z-Nr4Jv@L@G6&V#9Edy#HP)O8tLJ(P0WTn%D$<_c>^g6PQe>&w44FLFsPAuHi&%Wg? zZ|MXJ0GxeJ-M@~1^z~o`K*J&TjCXBe#j}PudGONNbz=mD>fN})l_5(UVvH&>wGj^qFbXrnT_WQ+WS(*kOkzs1^VWI27PdSO)MdlZitz=tDqdz)~OL zu~G@^xwuoeb`_cEJ~+k13NFOCXJN-1{NQC}2NN7ka=vZXX^3M`QNQ=pXR∓pp;T zAY7546vdB52v{0qiEwltW+9%V%y_?GCIK+uzKS$FEBOh8KZajNlvy{Jpe4EZ^`s~8ck8v z(P;@zt$~8(PgeZMCk0iB>Y>u=fC>aErO!%ng6eI457B*);P~TJfF^(eFY&<&$Z)G5 z$E^S`so`VKfOX&~zc7dCuX|&THiIz$9%g1+7^3M;9yEjk)d~_H(znpuCUt*t+EFZY zW|rM6u_{ohGfrnD?Q?Ow;6f4kJ=Rg>MWGHugX5lOf~^On8IL*s6xS(BZG1UhJdRC$ zu!}PQIi`LQ;N;Z%GxQhg_MqVWyv0j=I6$E4$Sj=DXEx&6;dE-G4Q2k{!#~F(T0PZ%-`;RLG z!GwzN2UY;C2}oxJ<|U=)L4k#U+fbEITrYSKfgLyWy?}qBg8Pq5pt&t<9H-Q+Ivgmn zlo$6|z=W6}u&g%xaVr9>0HO5IDF~O_X6D~flq~_(rWIrj$ew+jr{4;=PUPg%HLs|Y zyAs7WaRO=|WOsMBFzw+N`Uk+l$&>Bb%2kRDJqO{pv$HeO=fpvjL=&`Xf%NODy7v~1iIt8bjqYw4GrqVZaeoNE$w+p@B0DIn>R1XAI>%-FTM1V_C0W`!1E5MRq*1AFVa&&HTkm)k8AgrEn7BLKbmb){`}`ZXvKK@k7Ytwo{YB(9F? z;2_0Ku;{F~yQsL?!9iy?1;;|c4%SjZ%{70TwwHKcBH=J-%EN&+{;d zhN(E7P<- zOhP?!y}wyJm`;b*`kqJvqBiX|nL~L2fd*Ux1d!eYF6Tbg5P<9ZC&&uF5~UDVJ~Kya z$B9GKW9yGCk1)gXRIvtRXipPk@<6(R{ z10;&Qkze=csdPHpgO1qUX}3Wtm&>>~JBMXkI4Be#D>XTZ+DDB(A$cT#*xhj)kQiey zO%sM;K-YE1@`TY9(UZv}-m29|6TcYK$LKUNox!$kO4I`&Fl}aA7Py>1;e44jn~%EA z#v7jv1002ovPDHLkV1jI` B^11*3 diff --git a/qcd_utils/pult/icons/edit-clear-.png b/qcd_utils/pult/icons/edit-clear-.png deleted file mode 100644 index 631ed4457342d9e6f224012c842463ef09bfb8c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2066 zcmV+t2<`WYP)x*e)JWac-SH#wQ-nR8CQ z??V9a&birHyP>V2D6Oi1xANEi_WvUA?O=O#N1Yt{FO}b!bpZ~OI%n`&{aCwN2zNS9 z<;}Xl^-CIRSECYcHRXZsglPS&3*5WjSf$N705{Jm`}F5o6%ZbYHS29I`~HkF7JAMW z9h!B4-ixPvn@;edOOyWUnB?HHSr-`S)M$I}4mtW`5AwSp2HFJOx?;+$L~N8m^(Bff|Ht{ui9&=7Wp`+_rHI)*!@x7XeD= zg~}9-Dj8ZUgp)(O_~DmAA;#H!Tty@*5nA)#^~VwVxSGK4al`P7qet=I3Kh7;_ETI< zB;HCO%6|(-!i#t%PmY*8D?9w+No*|EXCf&P-%sP>910ptM#xTIn~somDMGgf#@e37#LwL%m)+;BfE*HhU`HL`UPBN&7IH zg6{4`C^QS9zW%5{{3vSQbj`!CP&}f_#V1V+AD%?We#Y=5wo7uolKVr0G9HxaQBab3 z0OanQ{(ghzgunFh!TnU~RBp2vxHE={1r&sDgi`Tf5OexFeeU!2;}Zm~LTKlVM-b22 zw!bbv?p3!o4Vp_6K`ROdb#??Kc-o&XHZ-``>-`zNzI{9Hb#}%*B-cGX@YmcB+~@77 z|7Z@}RYn4;mp0bn;M;a;fJP2ssoG ziJo0{xZCbexXae|O~}~}-w6uBePm4i@xfS0;Q7<=83>RUMf%0={<8(KaJf7QE|eya z90W}U6Lcav$Pf9p>FZ=fB3IuDuTA)>g9E<0Wee_dalu_X-EhOaxwy@71{#^bp8BM12vn=r`+xhI4vboUDhwTr_v+mZ|YjpPBLS4Rh1s zc9(U-H_ge}aL!P_0R<138sp2Kufyp?BArP5qJSW5o1#oW1O2V`d*M|Y<+xh z;oR@;n;H&1FfhR1n3>=!uA6Zxkq{7xpA|?B+7ezZ^m~>OxdU2?BS9@q|v_3JGcuf()^)G z9t@gvI@F1opi1_$fOX49 zMb2w@HL~D8W;m=4-SOUnp$?kI@DHX&L(ho7GlcNOMq8|Q-GQ?#EErSpcEMId`2ja4 z1=qFzQV|C-BAuZvKO8RRv!VWIAk<{hq3Y-!(5BI#DK`kTS%FXxEOyFAZ|kN;vCvQu;@{m4DddIe+e>emV{RWNwbfY^-qQI%}MY zP$?OM5mLv}%ue!sw|hESb)U+hy_6i-0hi<)&`BAS4e5bX5@mcJXe$f>ozM@|nR}qK zBpeD7sIA2Tn|mr4&QCjH111t3t)Jw1+l%TXtk3ImLN+vrLzdUcg669QG-I))B{gB0 z<->lK{~LIj9zL}LIuUzGd758v5@%~~ZI(Zr6EonPoIP1DrcX9zFyMR+lg!-@+7wJs z6M^p1Fz7tKcQQAASBX|c7pQ#fJ7tbmqXoX7iECxS+Zv=S>sm3xLM^44snxVO`imI| z1V%Yam+n4dZ2Ywzo{Nz2o6%2ophgzo%gv^!w-4V@Z#_QvJ+GxFmd8k&x zVrryx$1|Bs%l7=p-?j?`hI;T@Jrk;Fv^i7uQqIB}8U6hRF=M$}#I(zfbx%%WZ&OwA zcRxKL@P1hq?=>QfcJHf~F`XL}jO7)%f%D!1Je{At0f9cGD^0o4CKZCfdHOw3C3tK~ w4tEYMH2CfEFY~e(IA|La%m4rY07*qoM6N<$f+Lgg_5c6? diff --git a/qcd_utils/pult/icons/edit-clear-locationbar-rtl.png b/qcd_utils/pult/icons/edit-clear-locationbar-rtl.png deleted file mode 100644 index 6c4b83b7ac6e451f461973dac0c9a6c53dedef25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~*(*`Bv~l~6?FSDYJaY8Nv17;1UpRl|%9VTf?mc|? z@cHxSFJHcV_3G8zw{Jgu`0)Aj=PzHr{QC9l_wV0-{`@KR`o0Pn77`^ve!&d#@_Ksq z_8}pusXI=cy7Kht(+?kh{P_EqYvr0*Ks9qcT^vIsBJkEM|1so z>*;dxIy;s3ojI&$kq&AP_I<(sjrDEsaU~GX3SIsdMei7bh)})pLEh`3!Xi^UM4W+LIZr$zxaOz7mw|A28X|&gK2(h zZfSoyEkX7Ar7SOshe$kJ@wtDv=f<5!bjpH@N4L9nR{6W;bYuBbX#H42w#$q|FGoYkR7TQxAVVC~AgvlcDbQ{K}v zz)cqHtE#WH+tMnPL>x$^K&cL@=%%l{d{cK)X)1KPX3v;gl4lwwgdERi@@M$WfsL{? zP3)eLTi{~|fOrH9%Ru@V9LpV0qngA+;sn5whQ6+jjvrr!>i^mx(;;26*la$T(-0mV zM6EV|5;_BFz$$UjH5GQd1)8dx zW$%Zmk#1*hIjlV+=?;EPa9k=7g`$b#;sWMW{kp}nRc!428shS@9j29Ip{OZjyKMj{ zG9;eH^E^zu)Bdikvh?_!mu@q(n3*v73Z?HG|HJ$KtcH9J10IQl4im gAunrc0{^W1Pl-(m{G3O!W1aTUgGKN%6@}cL`d0sS5o>yped=IE{-7;x28@w z?{(Ng;8?o(vZal2UCV9SDn2q^kz14h;ArvQ8^O9iIQDs;w`*7+VDp{f_ZlWKjr z)#jWRvnDK(uc_Jn=1hKh7{h^v8aJ_m2#-3&dS~D8ALfP$ET*!d=Iaj$ESaLv%HXJJ zadX**`|pc8)DD~|l;Q1I%+aL4pv!&XZJDLtiIt|8wDsLQZsnLs95p=my!g*?kHg2f ze}skYh-*HqEXlpecGB}onN3VDlz0sp?)p^E4K+@`E$^}V!kg~`uY(tgCWzj2SkAUA zhv5~wSpvTuPll7r+MOC)9ESz0WW}p&`9(OEY-(cc;=5QH8+dok<}z*b-~0I2y#2;5 zm%ceYifxa*+WiUnz4IqbQQ=IBY~#^CEhHY#9paTJbKGK|^!~uRnp-kXG?@4ro-by5 zaqMZ<%Gv6Zf0wV?sdn1z0IR9imMNmDb$a0zwKG0V)~~O%Gci?|KU*m}BkiApw!tmN Y4DJ^lh1J@%z&K#=boFyt=akR{0F^SkGXMYp diff --git a/qcd_utils/pult/icons/edit-delete.png b/qcd_utils/pult/icons/edit-delete.png deleted file mode 100644 index 87cd0b0125d6193c16c59f25b88396493e885f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~*<;sHJ( zuK)l4Z(v|p!N9PVfuWs&p^JfGA_Kz=28KBd467IzAX4jDSb*GiKE6H%hCBv_Tn2_L z28Klp4AZo=>*d6nRHQFelpgl-Jed$XS6*hniPlkf`z7+iOXNkDC`v6+mRl+(v`kK5 zwTk$9b?ME9YMZs?_j%bL_HsDk<9sU2r$Je2`?nP^4n zy$lTd7#Q|j8XpwoI%I5o$k*ermDN#8qhmrm$Ax%K+S#3Uu|MtSb;ix@0t3SZA)d=& zVVA>0E~h43Ns7Cc5PLm2@wTwQZ4try!urld@myOUR3yfXZwfVuCELX$$gHBz;HAv3GxeOFfuao00U1?PcLu(fWV*& z*YDnY^6b^8FJFJbz;6)v0|bBn{{8pwYTmshp#IsOE{-7*lD!9A#hMrxSP$@P+)yej zFHd4mDu4d>{K5|<=XpdH-eIeeoFkI5#Mch*eE5E3q& zsDJ)QWe~HZu=JPqwHHm!J!tPMoAuVM<=A|yGuL0$MD)r}t=B23K4h_=$wxfq{j{s6 zvbJ;1RM`0b{&%I*Q{~<_^9mg*KC_8ox^*ST366Hw_&MDTLh{a=g|okJNlO7blfl!~ K&t;ucLK6VLNBNWh diff --git a/qcd_utils/pult/icons/edit-find-.png b/qcd_utils/pult/icons/edit-find-.png deleted file mode 100644 index 64a1e28d3afe98367cfe6e0dc06e617fd3045772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1631 zcmV-l2B7(gP)MNw`U7%Rx2bK8Bi(|P{(xd5FTJ76}M;B+{UX?H*-l_BDd$m@K* z;M=q`5flm)BogV($cTt9+2j_Jne%fHIyY=Yds`af4F3(o!_k*TbFVhQ(|~VO{~eZVwoZ78xQj3UAZcnMB6)-8nqf0 zs=dQz<5Z}eRl$)-O-Y5xXn@ORfj@T!@_b%;u0<|2X>H9sR)v(1h=_=74BhlP9mrCP zu&~I3b&CV&ZD~MndlRb5ixE2|7CH(@yBwNUHlks9Jyb*>DKYUTZA{;>E8V;M9W+xp zJXvneCp9?*W&;B^BgLZ9Y^+~aLow^ov$_H0g}E@(WW639ekg?MbX%iT!X`>YZbmFh zB|N<85TmKkigmSq)R*`m7YZO2iMcW?U9uGW_wIw1nsMydvHqy2sHLpr-J82{{QZ7z z&oCQ}&?@9`O8M{zqfxFEV3|*Yb+digzM=+=vvZJ^B4Aa!N86|Nv0f#IE0r8GqS0(g zM5{ds9lms|^NLU@n+%sU8N8Snw!T5RO!kP%aVI)Ddi8IeOxNvFvE;5&p?v6ZdxC7! zDyQ?|PM(NG#%XA@@zLrMVuLpgOAJ#{rH+R&BZcdm5UOQRClR4IeG=*!9@g3u(U&hq zZ%#UzjIl&09wlZOSN{p)$5%b?aEXbDaq(h!Fp87m7e!&AE)MJ6LiEm@j?HcXHaVwa z`)md|W(_yuA$FVXd$v(3lnLl@C*wqg0+;LbxLCvBNQoG$iNO4_0&W6mS|+@}aXdzt znu;8kl@y(X&MX0rl*%wzt-)YGj-y4Sgl9Ttda~GZ4TX@iS*1{-wyGT6C3>9n3vsPh zjgKlsI8vO3zLsUk%gbXAqOXQc{_LrEot3w_t`gneR2(asjw^H3_#`04sYO}nT+;~h zp(ak6$-TfZjFa~J;JiQ;j&0k3&yMWCwSj#&+_wdDD#~H8SZ=Tf)r%4!8%Gh172dWVk78Vs16%!K^ z7Z;b1kN}Fy$jB%wE32resHrNetE+2hXlQF|>*(m{>gpO98JQRvnrX&tshF9W zS!l>x>ZsZnXt+8#cqlS>d3pKz`ub^d`uX_<8_R?S2Ze=&MS9p~MEGW8WMqcBWoBk( zWn~o=vQON3vRn3KWzqag8Vm&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aDtGr;B5V z#MI;j1+D__&jtn`IEoMd$ocec)*P8x?>^-S*iBzCZ{MahYc{Q$ry<^PUhnzJ?6r@c ztw>t?TJt!ch=9q~LgNj=AsY+}HXDkvWCav`{CMp`Sm@PjAHEd^K1vcOGB7Ou6mb1w z;O7D(<3fQXf$bakxeCGr1p^Deac?shPo7|~?Gyi(Nr{OQKXQH9YC0+5!PO#O&aF?9 z6CP~l;Vr!SC^g~HbfYO^326xlViU}!JV|G|b^639jzYybjq(f(=Z{Mqoh4|b5A+Fx Mr>mdKI;Vst0N7E%9smFU diff --git a/qcd_utils/pult/icons/edit-guides.png b/qcd_utils/pult/icons/edit-guides.png deleted file mode 100644 index d26483960a4dcbadb1f43e5338886914f179d9e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00!&;00!&<9(6c100007bV*G`2iXV< z7c?snYm~(R00E#$L_t(|+KrMwYZO5khoASIo!yNm$8O|E8he{GqNU=uNN;Zus-Gb4P}#Y7A?ygXPKr96UOJL@!>R*>ELDtA1kf(LUSRwVPELmLx=%zus$aSl7`2@O146zfYCK8uCTp@eddeLoc{v>-MjzqkF`<&0000j6lR&1TgAAr&ZD!k+qP}W%jJ@CJRS#CRRM9ND9TBQ-xjmkjMQ-h5{U#%r&Fla zYOo82VSMr$Ij3T=SddLTjly+Z+O#GUI#oqsWi!YTYX~Mp1c=N6n29LEN`M@2&z|S8 zz?K6UxCItq2SjA@zXAxJ_(ltgM1XRn1uCLIxCJIj9r$!Vb_lQ|29qtzg5l3_{kb(5 zjm9I~{uX%RpAOcb`;j_K(Y$)So_lkBnZvay{frS1X+EDb*~^{h3eETC3$-v9491ub zaDdSvvJu4^P)Guu8^Mp^E`ked2vSpt|61su;L2ij z<;PH$U8o=m7C~3tWcNTG)J7{b*F~FWqfP8t%?xJ_=iHei07;UR(=|yPDj=vjL>=voHq|p#I-L?Qk>AmS zzPxvY0Nbw1lMihQArOM+`NlI`aTj%p_iiAI9|$Hw>+3_T2;aNL;`?_!mV=+Kn@kKz5^$Yl9iaBspAwx;pX{S z#-xlBhlq@bpn{6fn5pNER231WR;dAk=m>$JMxhWW_&>=E-TxetbB4~q4s4q*7xMMe z`tqTiLx#AA`>z)1x*vO%1$<bC>TR zB179YWoA}u9idFEyi8O1+r)8vEX%UVenCc{Z$RQW{+MOi)^7ts%?QYKD)s;X002ov JPDHLkV1m)``fdOK diff --git a/qcd_utils/pult/icons/expand_s_y.png b/qcd_utils/pult/icons/expand_s_y.png deleted file mode 100644 index c2e8f78173c175483a1a98bff2ef435bc6ac7265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)pZR(Utz}U)y$1I+ZZs8Kv2x`d2p3=gC8!C(U?VCUV@$jgNlX-R zi)>vH3`HxaDxCIkPE*eJy1>>DO^h(fY$ln%XXb@dnpG;5QW%Dp0RO+a<#PE0z(t+V zfU5zZnPq4++5|xkGXo4W!<>7ywV!9^->9c~@kvb{FRy zW;W{jL?$jwQm_)_97=QCzC43;H09FT60Ycx7pY?EYxQF^tCF;{(@^v4XHBi%)VCik zMeRLx;z&snD@kIdX{?2Jvr4-i^?Kc75CQN$Bap-5b9iOQgC|Gej#fZM+keOV48#4t zWuHN#@rh^aFGxrju@UCRrZAUdD9AIv@{ogEf)x|2TcVH^cyzsfoWb*rmn1IXaJWs! z#nj&{54tRj-($p|L2-ehUY-Zz_y1(Dxw)n7?JeDUJ)!1qsOD~{-LR#-{r!R8cy&cl z6lp(-1`G_SPCwQ9Ngio=+D1?N%40#LQu%0R*Zv|V{X(9S diff --git a/qcd_utils/pult/icons/expand_x.png b/qcd_utils/pult/icons/expand_x.png deleted file mode 100644 index 217e3eae51e02886363f3e14aeb62ec7435a1fa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)%Z}XCd`boz{X>GMd&T3|I?#(&(&JlnpitEP6L9farDlW}D1A7>uj{~Xfc44i@Q zy3Rje=$xw?i+wqLhS);o#a$ZaYfG|#4LtWZ7IDu0!?nE%;KIwZj8KH2!QAU9hV?jm zKNPV-`PD@{j|MAHgeRxh3H%WHEzj-Z5;MgcG>yk;K=srrI$(_*1s=F_Zl0i-!>Gfk zBP)5zXRaY41JgF{z4xW%LxgF$6Q=RbZo)7;nx^T=c0dk5TY!XN_%=<``fn;9*V(uq Rx_tlu002ovPDHLkV1kJN18@KU diff --git a/qcd_utils/pult/icons/expand_y.png b/qcd_utils/pult/icons/expand_y.png deleted file mode 100644 index fedf9368a2fa13d85cb05ea6441438619a432d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)o>cu7m&p0nSN8 zK~y-)rISBTR8bJcfAjX?%3F#xX7zhO43(}_R2F;%V_{(>5dUC8FmaVc#ER(0uu>aM zz)AxaHdcfL(3OV>Z};w7+KM-%U^Da$f>?+-V)803s37FHIBI_G)%{z(s9`E%_}jndC^JY1@AFngdw z4)E;LbFA2f%#-4n|1i%%pO{^mCFu9ai?$rKrP>iS2PJ89b3^rSUo`!8Qaiifl{9wM zbcxc`DNUW)ZKs*VTWaq&)#>aX5fK3IGeQM4{0}nUrC`ESAPlTW(P;P`yw5OxGq>Ib z%ePcllnnT?fy3T+vVXcVM zS&_TdoB1y@qf-p{2wX(5Tjc)ey+1WrU0u`q`kKaG4y(QutG*R$E8f=b-d>(#uZEQ* ziT08t*T8_m@yA*|&LPc>TlJ);d^xOCDxb}4Px#24YJ`L;wH)0002_L%V+f000SaNLh0L00VXa00VXbebs`@00007bV*G`2ipf2 z5f1MO_vl!NDy2!q(wRLC{lU>hk|7A?&#&NUx#3*NsEGh#?SNe z;e`kO5T(>j03J~;Y!}|myq)P3w~KYQF!|eTeA>7-S(}XK_vV#SNQYh!3z!VQ7k4G!;ogP ziSPSFQA8qV{b)8Hm!|3QJxm*tUCM>uMWb@|N zk(VREhnPkjVsVErLm!x?xwOB(zj$zP(C_m3JQEWW%g!z5DgQg-IL=C=(Rh4XTRNSl zQmJfOmNnaMw^wVm+T0+Yo}S(;7K^j8wzhU$E|-%)Ut1ikil9pxRc^=(v7tizPbUN6!eXiEiT>GUh2m+!gLPXFsjUWil)S61AP)hZ=mP{rC zUDq#anuds=RL^xbn;p`6nrAYZ-hg2kD~{tVA08h5rfqzDd>Oznj3vi$7SH1-rQ}~U Z{sb_v1Uf{wNjd-k002ovPDHLkV1mj;9L)d# diff --git a/qcd_utils/pult/icons/item.png b/qcd_utils/pult/icons/item.png deleted file mode 100644 index 50bfddbfa29e1b8edd2d07e365d3d554eb40581b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37?{gIn6dV1(;1*3dx@v7EBkGB2|+ytC)E5ZC#9Ta_AqPjcJ8oi=#E=; z?DoPf3(O=mmZtwX|FHcq`=9Rt<{pz$>aFI+E!JSV_`J$!X2Q-Gxt!Z^{9-JQ3gX?Y z9ULw#%Q6f0-=C<$8FT&Z-OYIdZHhjZT>?ckP777eQ$B6v68PmY_ui&WI)ZJAU5gxI zuS@j0CGIgTv)5&$)aq-#J#eXJ_2{`!`Fhj@H=?B%}-8@m+M``_=&9uH*Pa^sRo>+4-6M^5QY@6L)8`()!D z8fv>uG3?t>wHBal3X8;U3up(2hH7+uIwX<3@#U_6BHG40$;U0f=WUPf&NZ7|$&es% lY+CWY$}R0vCeSATx?0 z4$ACc7(^1B6N8F^5>P=@_#xFcX*|1YeYp_A1C;0U<^6ak**RX%Ip1D;?X}nU@r$3Y z5nj3#fRqtrbzGSaEEv~=gyt5>V9UAy)earg4&%XueGobcmo-wK?5=FFMn%F4=$ zkW4OIxFF}wozoD)ICJKVl$4anl`B`ePM$m&MiBP)_CH+m0|ySwL*oAx6&0z3IXO9U z`0!ylbm)*|WMn7+1XWmAsPP>zR6B9v#4!#I4!W;So|>8(!m5uRJu0hKt?F2?U_qXT zhsVFBOqmkMz`vt>e0(yOFJIogfB$}hP*Gl9-o0$uGG|LmOWpTQo|Kg2&+5?krfJir zEyn+iGchr-!J?*SW@ZM4g@uJF!Wz$h?d0U-9T*r`zGu%KDJUq=z{Gz5!UgRZ83;#5 zN8S4M>!+uurwgjv$;EAKY|K9Q9e@~c8}01uJa5H{6)jm=S=7eA=gyt$IDY*25n-?f zogJ>OuD*J`-e#oA23S+v9Q^(Lvl9~&38EFht-g51*R5NZIcd_QKiJvXSq$L;dIYOA zHHKl35#+yr>E-1Wy>H(>inmz3Gu&k`7<4OFuKd&d`SbsXDn1q9f@Y@jUE??Ef>^Bp;%^YOczb(0>U2YN)WyX`H;_hDz*2sd zo12@)WKcGP356hdrwLuWcu@tP;oVGpGZy;cw>l#eR&(ae36G15t0xOzG=`)UA5De1 zv=C>k*0>U`^vnBniwt}w|vNOZ&be0g-Jfrn$TefVGty{Osix)5C#*G{D?AbH9fB(Kp zUW?!N?%k6|j~+=~U7du5g$b-%0m#qK*T4uF3NtdHM=Jyv=w;4V&TGt9;A_r zkY>{U?%g}7uCA5`4<1NkW2017RVfxKpo5y)TB*N%TRkH?+1c6Jh7B8p0FEC&u7MF2 z@DC#sI$K*?LuhE|jNstlF$43Pz|9;%V-M7>vCpKjy}e!DzJ1HSDhBSN;!+6m*s)_m z+buDQ^3I(*eL84sYtz=QT}wf7^U_!ZChRZ$G@*}*iW)nRdUL#Zi^!9clQksJ*k=MD z#q2c~uSWIppc$3QrcIlaAX#O6e7s!0eqB(tVyvU1L%@WVnVBiDW$o0dQ-aNG2FB35 zH)nr~R=r2k$E1x6AfeXU+A6PKzgB&&si~3DvNDMQy+J`ivUKTEf!zwu3Iapoc|hra zV49norK_t;Iy*aMVTzW$1MY7%0LW=KvMhrrBG`!Mijj9My!B6Eu^PJqDRvy?Qn6 znC%c)b8N3DzcUDQzLb=dTcna>hzhj#@846=N(Tf+TaCbkVB=y!bzq@B_ze?$`0zmh zTqP%q3<{VajvP6n)(Qv+@EFPuOc3^%=PHaNM@z9#Sy`z@DlILIASgsCT*AY{IkKuc z26fQg-AxvhfM33RDJ?B6avP%xuu9+r0kOBR6+>mKQ%ow7l9N@n zWPzY|?b@Zzi9J0%y}j=P@bKY7C1QFD-(>(u8%|da1TdT>TR@z@2OAXx!C7YoFcyur zylvYy+AT#U2M->k@<~0D_fgM@sIRZ5D{>_19|YTgwSS8Z%VdzegP#NN^7P%icV}Tb zdT2bX0%rmZ{bvGJ-q&{qK|Fc#M1wHZShHRH2Is^?>Wu4-^sgaV)ciO09ULzpYEf5oNe0>-dF*iD!)VKPS2%h%WU zuZtEf3c}sr&CSgR&t@2n$Jz+q@Gbwe)Aa*qVDtmZXFuKR|9|r7A=3LD`2YX_07*qo IM6N<$f}#jh3;+NC diff --git a/qcd_utils/pult/icons/layer-visible-on.png b/qcd_utils/pult/icons/layer-visible-on.png deleted file mode 100644 index b24055207626a181301366abbf9c9992d6cfb1f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2001 zcmV;?2QK)DP)U5({sLAW~f0Da+&l;-5${=cTUBtIK+XlUq53WXx)^&S5;N1&zw1}|3ySZ1Tr!*P+ngC@Yu0qVH||Hx%rO=o}Qk*=IGI*Pvhd^ z5E&VX&6_vF)6)|hH*UnHO`F63Vq#(t6%{39Wo4nVvhpK)dwUBCLh^&bv$M0e78Dd9 zARquvPENhHwzdjOOUrl*3kyHqR#sMVGiJ=FSh8fvy$u^SV8@Of*tKgHh^=8_XpWwq zp5%Lj@7=rCCnqNdME_j^+ai%jtc{F}OpJ|<^$ZOSrM&5XJrffXV_jWcEBel=*|TR~ z@bdCPN=k}ADH){{{btHcSX*05D9=mj5X_u8GlxF1B2fKrdvDsbX;QkeIkB>a*y@zY zWX!~)l`B`;+Su4kDF$Q8r^d|8%!6+{Rb?|nIyyQwbLY;jWNlE@bkWB~-?_#qmlXu= zNYolW#{+a|OKIzAw{(IMl+ZG>v$NX~9UYD8>gxCSJCh^RTDx|w>%4jMmYbTI>Q4at z0yE9GnLmI2@2C>|eSCZZU0hsVrO!*wb;pXg(t@k`2}q=%PNQ&X!B9z6Jj#mTi#LPc(FF7os9zuv!pe=SwRA}!t0aoRAV zO4*c_mIilsciZQpQ|(HgrICW+tNd#B?%kzqLhJ<;Bv|R*-rn%_^@YE`KY2r-`0UW3 zL!jU)=p9RbckDcUeSM=jbLK=OCMGJGh3`~`9Q=X>3l-hN26Ey#A6c^QB;Pi!d#K_*p>eZ{r6~jfVrko3u zb9P4`ZA!)fjn=JO_b!t%S*M#u;#x!C>}-OEhX+zqQ_$Pfg_4HPaQ*fu&VMqDs@8u& z(WF7$pNG(J;|rX8{}!BAcwkFlfEYkhQj$m&K>mj_Tm#|3l5y?N6d*nB-D38QCf_@wzi_Qv;<-P zeh58(3*l++p}775f?_f;I52?z{(g`N2~>Vu8GIgyQ3tXcgE34h&;QOnwbR?weg&#= zp{c1!=<4bc54!l_Rpd1c!ROoq{5mQdaoeMDw73{lo^V;R2v+jbaBtQi;YtreQVO8H zc?-kC!x$VK6m>+Gf?O^aXn+|eoat;>6FH&2v$OMh?&(~1H1!C4`vJO5Zrr$up`jr$fWE#y?A*CiAOizU zPCPGM=aw;%HS4fY!otE7oI9qjt*uQM=YK9!shd+(gf;|ot%p2 zwRX2 zDu=_?6L`hzAQrBX!80h44U51B7@VmW_q}`fpj0XaEjX2KDRBGFPO<9QgxHolXh4F>VD7qi>MM`_m-tGi%nYwe-wEYdpr<;H5w1PdmxD j;H13A0u`VAFR%Xq565XnM?5ki00000NkvXXu0mjf-tF2E diff --git a/qcd_utils/pult/icons/list-add.png b/qcd_utils/pult/icons/list-add.png deleted file mode 100644 index 1e03be9bc896c5f6d8a943ff9d153b42b67e6b16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)8Z)0JRB|3DF3=|YfF7jDEZ>IVpdRI~vVL~%?rHj{Mb-aA4?aN$HkpY6+e zIJ}%A@;qlRND8>Ne);a1hpoZcM@ORNcT0CDpm2lpt8;$t;5m`HA+Mts_V&s9W~>cf zetj;y8B(ff-fq3o6i^ss-tluMK}bpJ9RCvtKmqnoV4WvU2M7e2b^n@kK&}DWEA7Qj z+`01X%TpaFO`sJG5esISB#+&7>@2gVH>sP%}a+DuI`p-7R~pI$1Y5x z9J%rcDSiulyep{dI#Oy%ghc%waq@#~ax=Pj`qhjEu-38}b?Q6+eS$+ zxgkjtHlh#o1_P#oDl|xq z)$=3opuA-AQ-@kiO_W*dZ1Abw6Jy@#*R^Fg!5P*sA&3jgil^7k&X>BCo8zhBfN|0000j diff --git a/qcd_utils/pult/icons/media-playback-pause.png b/qcd_utils/pult/icons/media-playback-pause.png deleted file mode 100644 index 5c7d128ee8728707a6193eb41af32b4e28890533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1145 zcmV-<1cv*GP)kdg00002b3#c}2nbc| zMg#x=010qNS#tmY19kua19ky@)q>0b000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S* zE^l&Yo9;Xs000B{Nkl^Bw_qq@)F2oWehM>5RxKr%Hm6}!%+eJ5;P+bTi3lS*+iMTL0p`m}$nM`IT^X~QY zaG4NCay|}k4)2`reDBVC=eR(>eVF$r-4qj)1*i$D;c~M0PMbdKBbY0P8D8 zNRZe0(#=lS4j`Bv4AY$T#V)(F>5$@qgbX?I43H&hGVkVQTK`M%-dOl9R8v}PlTfBY zi6Kx_XPp{e(V)oOvODwsMjyfSW8sRgbZCm;7>{s>LF)-A9bt!GSz(YOIg)jEYVNmv z1n0)Wim$Y|!zjl&!d>KX1_-1=S4uXx!c9g*BZ^}mZ1f1;9t>A~RnmD}-Nz`9B_lW? z0AARoLt71gX2l*QS$4-iYC!^!PWx(`EtOXpXIQuMLe5;j%?k_(ck>KSD6@^PrqfZu zTjj9UEjB3e5=Y{bXGp9+X2H-k6+2RKUOr5==^p;LmOwhwEw*SeNk!$kNFa(HGKK-u zRZ!`3w1jRkodNeoK5Xumws?wX8B=*yiC?HsOV_htc8-SPJfF~|t$W)nvB)6?>h9je zpGZp`B~LIKJ2`?1ZgB&mdA7LD28rp&2~X$v@KS(GB*rNxdAP4PAj zxg#Mfs#4O^iJuSw4-k|P?C3C|O?k9NW=@#Snlh&M2Y27mKA zEr?d9!3_>$)>9G;NvH)J4GS>GWR~PWe;o5}V-&T-|4X2-ix-T>&Ur*`wm-HEFKilt zuO(p>asSD#JyU84ISQ2I(R#6!$GlZj6jqaPDd^{#{VCl@kf+FqJX$X{f|z$rRf;Yp zVTpQ%9ad=4p(}V53{#Rv>&23686AG2DFW(Y$pv2iG`yw>$eTRG5QX?gI{s@akKaO# zckR=1pMCXu0%0~Z#l`}6XweZQ5l`4(Y|?dCIiC~I12n@dB=B{O`HcAf;wlaCw*?)k z!5dP8Cbjkdfj`KLfO%Dt1z?WJOtrxGI3}@zeM2oyMbus8-%>#3%c|NNsxNA&2Aj$E z^C}f`g1y`TNQISea-KDt%T7aeVQ;7!g~ocQ=#cPC@ifIam82kQ`jKyNcEl<_wXkoj zo4qiG7K=BbLmcH%?&C0yTk3pGXxP9Lkdg00002b3#c}2nbc| zMg#x=010qNS#tmY19kua19ky@)q>0b000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S* zE^l&Yo9;Xs000CGNklrkmC6Jy9WesR^^K8P&yuG_6BOq91w;O z0FIbYMal#}U|XkRx6FwT6Tku#*>#;1HyPf+y_n^2g($1BtyaSfaR;8k6ZA~sI(gSC zc%vyhSu{W$FX5Pt^Vi%%4psu)qlr?gpwL-XKAv1R_HEJ~1I0WF4?Jpm~W5GYEj ztH#jhkPumvF9GJYitJ75H}MpnMT6lX9Y15XR54~N2ULy4d;0$f``E+=_o>u3cZcqz ztB)Df#=OsD0F^qVjg&%)$pL|--KDEznj~;+%&Pn%Kky?%Ctk&nW;j|!4e%6}nAfZ3nxTO315g7c|Bk-L zfaG<;pbU5l8X*cRv9L2JXw=|y1iD;xnjS1dKkxTfK@nT`F9Ew5D9F>4bh~(rnSG8{ z9IwEKi+b)Ufs3v5z@c9-(K+Snz+2!?KjqVA*sc&7?)`d7C_O6|h0Pt^l*|)UbjczO zpHqs6{c1tr{jM{Ly^B^h(GM`fHiqD-BOIzeI|&rCUIitq#~4@XO$B|~3_nj_UbE*a z_zsUE(wSO(Of&e;r{TG7?{D~uDlKGfEwz9w%aCkX=Os-r_7})Orh+paP4EeXiDW3t zT2Q`-u^N!^S6smWBcueERN)jwd!i#FYW(a`Q(s>b2 zBl1;=3cRN8@g?$5rZwm&>RT`nX;=;&DABsmLiTnzs1o-Ne$v fC9`oMo%a0)Lk#jiOZi|800000NkvXXu0mjfdhQk9 diff --git a/qcd_utils/pult/icons/media-record.png b/qcd_utils/pult/icons/media-record.png deleted file mode 100644 index f926a8f27f85ef68165ae570e0237c53aabe19a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843 zcmV-32h8}1P)lUEc!{aPp#3JQ)<`D13Lv)N_>h<(9s;-2Q_ zc+qG;l5J#}ye#g?=tMywWZBd$S+)lRkr9X?WFwinEWq?ZW{{XD22Dsb+oUx%LH?B% zXuI>f>G^W0aS(5Ma_@J0@A>`Cx#!+{t|b ztgp{7jQ%4>j)YgEcSQnCO-(KyQ^(CpCg8+)t|@UI6C(zedWO3?x!rK|=uzKG5ol~| zOyU2&;^tunbSy0`(c7p-5vo}5l6rKP12%G}%>&CJZu#KZ*od_Lu!^z?K^ z#%i@<-c6Q@IXM~L_?Jn%f8xZ6yDubg^5jWaJ`8Xunx39kfL^bc3JVKq&6+i2 zx7%TnDJakZ5)dp6Nc;VMx_b30O-)TvMn(q62#He0@jpkPuC5Mi{wITb01lUL-MW>w zZQDkmIJziJpXmxX+9$!M0EhiU_|`RojWN% zKOf)-Af14aNEGyoU_2~^!0pQY6%`dqH!y$&Oki8N)6T3rxYG`%rKP3H{cG2*1-Q7> z1cu#Hm#FT_xGQ%ac4P; z6F~!zEnBuwR#uj7k*O>?`HXyDe?viDPYb)(2rp2K=Y=PHH23=-^sJ|s3V-;Xl5$@K zfOrEQR!idXcvMg_7XEj#lp75G5f4Bo0#3G?oMg)^_n-ZaLcGUqOeP6pSSZwa_`wPS*uUZd z5K$uiL^Ho#NhDx;bKSaiz!Cy38-uvyhC{T9>&1F0f%Xov!815aQaOm2Xp)T;$D*{v z@et+cw#u$Y z6{9g8#DX?ND~bAaOoKsv0xWAUu175;t)v(#2wgnd#0#?$)cEF~`aiX}NXOUp;gr=+ zPak5yCjo~)<(`M=WHLYefFf8b7FfK*vcRZe7S#AgKmK>}SREW9Is<_Ku%u5B7{fpW z$fHM(^Z-F^DtM*l6LP%cr6q1JGN;8ja5$of;9K?Ey*nuT(~ouVW%};lzpt=RfNgO7 zD+_`T1Z0cA6FLDbAief;JEeHN3>G!P!y1X?9c5I|(XPho1ay559y~Df2w+=_i;Mr^ zL0=G)M-1S=z&(KNn7AXX8BWTst|EgoBDD;B{KnEa^I@yAzC28M=e|{AP{i#3#-)UN z;M%ooG&(wp`$6)?T6G)N)YSaQ_2+U~)YjJ0#*G_sD`K#mj3$v4iVhBsLMKu+q3ym-<7!nFM0!GkI-XUT^$SOLYmckiaMvNEwmPtWwV zhp6T2?d`>X2sjW%Tczb49UXU9e3(>LR_1ag4-Bt=iG-&4fjeP hxBD+$y0oh2`F|miFh-s2`rH5j002ovPDHLkV1mqrSN#A0 diff --git a/qcd_utils/pult/icons/node-add.png b/qcd_utils/pult/icons/node-add.png deleted file mode 100644 index 80b5c61c6e67c8a593e30a12114e28a2a61bb3b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L00VXa00VXbebs`@00007bV*G`2ipf2 z5f3`g(CHQc00K5iL_t(I%cYP@NK|nYhrj=wJ2O5KhrmV+O)Mmhlm>MXZNf!uf(UAx z6lS$-QBD{HNkR}-q!O04&^Fb=AXLxp(H?`)`r9i~+yp zIp_DC!x3ZAXII`ux>~2^hg|?dfOkh(!dGccheug%Iz#N=D^J^(HoxxBmCTutC+N_ ztLyN2CO}+U$1oFY7%Rk$MK%l-FgpSF?C;qk?Xvby*jE<>{W*#m?eEPx#24YJ`L;wH)0002_L%V+f000SaNLh0L00VXa00VXbebs`@00007bV*G`2ipf2 z5fC$bR$nXt00I(8L_t(I%Z-vvNK|1IhM(`=J2Pg9Hj$$vSr|!RB}j{cHZ_ZC(WXV) zKo=FXkTxM03dsmT1QHlTwustjyMjn^jEaIpltx1`bDYY*adMoQJNN%Y&7MB!(?{Hy|+JvrK6b+ZUkBpG$_M~zsD{cTcl!J|7yw#lpT=av`O_d3kS-`D3&Uy8&ju3c&rZH#-5oavqOAF`G1HOS{3y~Q)>I;>C20TpF$?lLs3;?- z2m;MynFR`EV1FVF(^N{CsdMh$ZTIfp-LKu~EQdcYOOq?nITHLN!8`?=p5W^0+A7AZt-IFOoa=th)A$ z-9%_J04aD-)B}|aqZo#gB1(za<^~p&ypVLnhq--B#K%Pan8y#5m2uRC`#d-VD-(W< zAcz2g1xS(%;51D$l$W7!h9VdMScYLCIF1E?qXQgE^FcpPlRN`S@hru2Ojr;^o)iUM z1VG{_Nnj;Wlq4w<=AsfGjfk?y%Mvd~Lb4nM0s}-I$RdC>5C90nB>*A-Kq~_Pw4ok& zbVS`&Q&o#3BqklsFDxo9(H6!YgI$I7beYk%H>r9zG~Y}{eO=moqs7wH+^#%#N~KcW z`=ooJOYuvYva?%PtG_USq?~zszIxF9rlG~$tv6Wj#xLyHpOu-SwC&R7=MARY8nQ3F zJ`kL%e{9y+zC8b9+Bv6PdSGrpwDNnrf*Hm$PIlTmRAcwY)B7L2%KYAIiBhvirdjvJ u#=&`}$)5F4Wz8KypA;;;wDrx;G2l7IA&y5dTpJOVmGCB;F+kXKm7Lqgo diff --git a/qcd_utils/pult/icons/view-refresh.png b/qcd_utils/pult/icons/view-refresh.png deleted file mode 100644 index afa2a9d77403a12cf6808fd4e551f8582e2599d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2182 zcmV;12zmF3P)Dnz#_!jKNQq7A*Lpp`badk2@PWXqYX-|G^Br&q=F$>Qi+zP5MsM!mpA*k zuf20;?#!HXoIAVOWm%yVoA{l4@5#OM_&bhbJb6n1`H5BQ;7S*8aYsrg z(%8Ii3;uED#FnEM{<>~)`;y+z_k9UfuL=Wd3^^--)HY-9vi9Yh?_cu(n!Jfy$zTS8 zFo2)}vyvn?9M|-r={nrdg{hj@bLQ6=E!AfxklAj3tAllJUis0Fqv}*~qbQ*$kCrho zG=SmJ;ke;A=O|2uVNMJp+ zu;cEWP$ayjH}ek0J-mASRn(kXt0W9x0rd%pBpxKBqw^{10_ z%oVjGo>@EUS*iKf;$&9;O=?7MYMcQXV9*`JiNOiUq?uH19(+43b^r%Qh*N0-8PySL@{C>NTq zmAl*&&j?%;7m=-I(Us~#EHN?vgcGQQ0hk0J4Qw(qsrZhsSEW?J(B&a8Ns-d@z$hB4 z&i!^|7&j3whr5FWPw_8BZN)_edGBODPKjlmU)OlN& z4dJ>|3B=t!-WZQFVw^yzWIt}A)jJn2p(fkv>~xUJ=8+4c!VW>LUW;RQ#vRl~YN%eT z0!}M&0-I$B!U~}7K&Z}?pjDR^9 zW{w1fBn%*okZ2@|Mo`dfPy?U|ddU}J(~;eB;yI9g(5#EJY7>RVjYkxMPzh1xRX_*Q zgGN}L>lt#-?Jo$$M-mwReI4(mI02!^YNO`Zp&|eVz{136M>f%FB&97#EC=ugZbOBQ z1{xQHVXx5y)hVYs5kve(BsILL3O2L2eVrEoM3QY?Kgcb3@949XR>=y| zN9HIt>tOA)An!&l_%Kg4mvO7o?ddELGctBk@|Iqbzuk#2Bo z&hBJ8ZldsmjWTmA?MYAi&~*-)hk2IVeh$Mc&Y~^q*Rk^U(roGHs0>XDKJW)w2D&} zLr@aI9y*b6*=b_SODgY>+mHwoplwY`2+TZC2}AP}PN!W?UpF;VD9pM2G~W zv=zcESwU4AVsN?%Clyk$t6K5CULaO>RB3=w+Hwq`F$PVc@dDDMA*^l<0R@VEwgoBC zK!`SB>s*LjR9s;~MEqP3GO_+i2^oFJ_AnvesgxX9l+N^$J}LPp={csqlMPa&i2+9F zj44oKhzaYFr6Ez$U5wc-8i@dIWNt}C(P%E(pO2sm(K&6A^9rN6E-jV4e5RI?33*KZ zT*_Gq#1IGMUb2DoFS?k2bZmYj#*0&+QxLHOlOr$$LS29}0T6%)0v1HT&Bz{0YhaLo z5K{6CO^Wlcm!ukdMp#^1ui8avBL6 zumS>~gG4_FIunN4<@%g)A+7>w`9$QyDB!rPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L00!&;00!&<9(6c100007bV*G`2iOG+ z3Mv{e5wxxV00EmxL_t(|+Le(#OT$nUhToeAqSPt~7F=}E#m&jxk6AiZaa0lNq(4P} zfH)N?Iu^vKpin^+#eYycXiYUqwMmnEJh|qgUb6VW!%Z%{Cnx6!d^5(*;eR}`Z%A3D zf0AUt3?L=Bt5&OcX}2K&OcV-OT3iH#fJjXcY%Z76kFfBIHit{464ut&@$&o(%d%kG zHf%mwez&n(k>~~l%>WEIr1U}yH&26j?*UCmqS;}c7-zQH5XsWG;o0^C8zPoE9-x+R<0fk-=e?aDu)R;z_Zqk()ruN)c~ z1ruc!Na%Fw_nitCi$x^xkg>PFe*xgi+=80=&ap@Na)&mLe2Qbq##F1-NJ>eb=TUjL zd=Fp}8nb}og|vF$(W@6FA+@%8y-u#{>hKISMuAMiD5mSX2in@+I?wvD-pM#SuimqX d*h@Bm!56}ZCMId;HE{p{002ovPDHLkV1lrt=VJf> diff --git a/qcd_utils/pult/icons/zoom-fit-height.png b/qcd_utils/pult/icons/zoom-fit-height.png deleted file mode 100644 index 32e2190094920b70541fc499e4e801322af1de40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 929 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V5|-B32_B-@q^H?(2$Vey!^bJ z+??9FnvTx)a~CfiK5^>i&6~IH+`e=74rj)Dft>fM74Ow5-m6!A(5ZcI)cDc4`=i%{ z&;FA>MbG*YJM&%KtanNCzm}~0TD9(58vQ_3PJf*sx*a#*KTge&2WP$Eh2yPv3fb=FHi1=gyx$f8o-lOINO3 zxpwW^bs)HL{l<+OK=<6b1w^;*-o0}l2wwhp@apHoXK$XoeE;m(^XD&KymxLU<_se!oOSSHJy=wt8P$>76RpzF=_0L5$_~N$m z`N%+;Pog9dqk_ z`_6gKQZ7x3dQkCC^3xjQC1PLnO#DssMfYtw(Z#o~a=Ei2@29IX9w>aAy|9D#%bND) z1(IF{Z2JmWWm?30A0JD7>#4Ng@__i9OVve{ZGYCV3d$@^c<@=|*S_cVPaHff&g}dB z;oshyH{JcW<*#UZ@3iW#)d@Kf`NogF*%l02r!#%3EZY7-IQl|(Ba7);{toLW<$130 ztSf82m;Ac<+sNZi^b7g?WPippK4&km-qO2wz_yx8h%;Pmeb~X*vkex$f309S?bU;C zKb~F9(LC`}Kj!DxuV?#u-*8_uYm3~U^~C-MbLupf$NA@OJpg4iPgg&ebxsLQ0G2=) A&;S4c diff --git a/qcd_utils/pult/main.cpp b/qcd_utils/pult/main.cpp index f5233e0..8ba665d 100644 --- a/qcd_utils/pult/main.cpp +++ b/qcd_utils/pult/main.cpp @@ -1,10 +1,10 @@ #include -#include "form.h" +#include "cdpultwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); - Form w; + CDPultWindow w; w.show(); return a.exec(); }