git-svn-id: svn://db.shs.com.ru/libs@123 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -9,7 +9,6 @@ endif()
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${PIP_INCLUDES} ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/../)
|
||||
add_definitions(-DCDPULT)
|
||||
file(GLOB CPPS "*.cpp")
|
||||
file(GLOB MOCS "*.h")
|
||||
file(GLOB UIS "*.ui")
|
||||
|
||||
@@ -56,6 +56,10 @@ config(piqt(config_), QIODevice::ReadWrite) {
|
||||
ui->treeCDK->setModel(kmodel);
|
||||
delegate = new CDKDelegate();
|
||||
ui->treeCDK->setItemDelegateForColumn(4, delegate);
|
||||
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);
|
||||
@@ -68,6 +72,7 @@ config(piqt(config_), QIODevice::ReadWrite) {
|
||||
connect(ui->lineKSearch, SIGNAL(textChanged(QString)), this, SLOT(filterTree()));
|
||||
session.load();
|
||||
on_spinBuffer_editingFinished();
|
||||
K.reinitConnection(K.pultConfig());
|
||||
K.configure(config_);
|
||||
K.readFile();
|
||||
updateKDesc();
|
||||
@@ -234,11 +239,6 @@ void CD_Pult::makeTreeSection(CDSection & ks, QTreeWidgetItem * pi) {
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::received(bool ok) {
|
||||
if (!ok) return;
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::on_treeK_itemClicked(QTreeWidgetItem * item, int column) {
|
||||
Qt::ItemFlags f = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
||||
if (column == 2) f |= Qt::ItemIsEditable;
|
||||
@@ -256,7 +256,8 @@ void CD_Pult::on_treeK_itemChanged(QTreeWidgetItem * item, int column) {
|
||||
|
||||
|
||||
void CD_Pult::on_buttonSendK_clicked() {
|
||||
on_buttonWrite_clicked();
|
||||
// on_buttonWrite_clicked();
|
||||
K.send();
|
||||
//coeffs.sendCoeffs();
|
||||
if (timer != 0) killTimer(timer);
|
||||
timer = startTimer(100);
|
||||
@@ -264,6 +265,8 @@ void CD_Pult::on_buttonSendK_clicked() {
|
||||
|
||||
|
||||
void CD_Pult::on_buttonReceiveK_clicked() {
|
||||
K.request();
|
||||
// K.se
|
||||
//coeffs.receiveCoeffs();
|
||||
if (timer != 0) killTimer(timer);
|
||||
timer = startTimer(100);
|
||||
@@ -319,30 +322,27 @@ void CD_Pult::on_buttonSetCDesc_clicked() {
|
||||
|
||||
|
||||
void CD_Pult::k_sendFailed() {
|
||||
stopWait();
|
||||
addToList(trUtf8("K not sended"), Qt::darkRed);
|
||||
if (timer != 0) killTimer(timer);
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::k_sendSucceed() {
|
||||
stopWait();
|
||||
addToList(trUtf8("K sended"), Qt::darkGreen);
|
||||
addToList(trUtf8("K sended"), Qt::darkGreen);;
|
||||
if (timer != 0) killTimer(timer);
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::k_receiveFailed() {
|
||||
stopWait();
|
||||
addToList(trUtf8("K not received"), Qt::darkRed);
|
||||
if (timer != 0) killTimer(timer);
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::k_receiveSucceed() {
|
||||
stopWait();
|
||||
addToList(trUtf8("K received"), Qt::darkGreen);
|
||||
//addToList(trUtf8("Write K file \"%1\": %2 coeffs, %3 bytes").arg(PI2QString(coeffs.fileName())).arg(K.size_s()).arg(coeffs.k_content.size_s()), Qt::darkMagenta);
|
||||
//ui->spinSize->setValue(K.size_s());
|
||||
if (timer != 0) killTimer(timer);
|
||||
updateTree();
|
||||
//ui->table->setK(coeffsK.k()->data(), coeffsK.count());
|
||||
}
|
||||
|
||||
|
||||
@@ -351,13 +351,6 @@ void CD_Pult::on_spinBuffer_editingFinished() {
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::stopWait() {
|
||||
killTimer(timer);
|
||||
timer = 0;
|
||||
ui->labelWait->setText(" ");
|
||||
}
|
||||
|
||||
|
||||
void CD_Pult::updateGraph() {
|
||||
ui->graphic->updateGraphics();
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "piqt.h"
|
||||
#include "session_manager.h"
|
||||
#include "qpievaluator.h"
|
||||
#include "cdutils_core.h"
|
||||
#include "cdutils_k.h"
|
||||
#include "cd_kmodel.h"
|
||||
|
||||
@@ -52,7 +53,6 @@ private:
|
||||
QString typeName(const QString & n) const;
|
||||
void makeTreeSection(CDUtils::CDSection & ks, QTreeWidgetItem * pi);
|
||||
|
||||
EVENT_HANDLER1(void, received, bool, ok);
|
||||
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();}
|
||||
|
||||
112
cd_utils/pult/cdkview.cpp
Normal file
112
cd_utils/pult/cdkview.cpp
Normal file
@@ -0,0 +1,112 @@
|
||||
#include <QDir>
|
||||
#include "cdutils_k.h"
|
||||
#include "cdkview.h"
|
||||
#include "cd_kmodel.h"
|
||||
#include "piqt.h"
|
||||
#include "pifile.h"
|
||||
|
||||
using namespace CDUtils;
|
||||
|
||||
|
||||
CDKView::CDKView(QWidget *parent) : QTreeView(parent) {
|
||||
kmodel = 0;
|
||||
CONNECTU(&K, sended, this, cdk_sendSucceed);
|
||||
CONNECTU(&K, sendFailed, this, cdk_sendFailed);
|
||||
CONNECTU(&K, received, this, cdk_receiveSucceed);
|
||||
CONNECTU(&K, receiveFailed, this, cdk_receiveFailed);
|
||||
connect(this, SIGNAL(_qcdk_sendFailed()), this, SLOT(k_sendFailed()), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(_qcdk_sendSucceed()), this, SLOT(k_sendSucceed()), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(_qcdk_receiveFailed()), this, SLOT(k_receiveFailed()), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(_qcdk_receiveSucceed()), this, SLOT(k_receiveSucceed()), Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
|
||||
CDKView::~CDKView() {
|
||||
delete kmodel;
|
||||
}
|
||||
|
||||
|
||||
void CDKView::refresh() {
|
||||
if (!kmodel) {
|
||||
K.reinitConnection(K.pultConfig());
|
||||
kmodel = new CDKItemModel();
|
||||
setModel(kmodel);
|
||||
setItemDelegateForColumn(4, new CDKDelegate());
|
||||
}
|
||||
kmodel->rebuildModel();
|
||||
expandAll();
|
||||
for (int i=0; i<6; i++) resizeColumnToContents(i);
|
||||
}
|
||||
|
||||
|
||||
void CDKView::setKFile(const QString &filename) {
|
||||
K.setFileName(Q2PIString(filename));
|
||||
}
|
||||
|
||||
|
||||
void CDKView::sendK() {
|
||||
bisyStatusChanged(true);
|
||||
K.send();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::receiveK() {
|
||||
bisyStatusChanged(true);
|
||||
K.request();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::saveK() {
|
||||
K.writeFile();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::loadK() {
|
||||
K.readFile();
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::clearK() {
|
||||
K.root() = CDSection();
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::buildFromHeader(const QString &kdescription) {
|
||||
if (kdescription.isEmpty()) return;
|
||||
PIString kdesc_file = Q2PIString(QDir::current().relativeFilePath(kdescription));
|
||||
PIFile f(kdesc_file, PIIODevice::ReadOnly);
|
||||
K.update(&f);
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::k_sendFailed() {
|
||||
bisyStatusChanged(false);
|
||||
emit messageStatus("send failed");
|
||||
emit KSendFailed();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::k_sendSucceed() {
|
||||
bisyStatusChanged(false);
|
||||
emit messageStatus("send success");
|
||||
emit KSendSucceed();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::k_receiveFailed() {
|
||||
bisyStatusChanged(false);
|
||||
emit messageStatus("receive failed");
|
||||
emit KReceiveFailed();
|
||||
}
|
||||
|
||||
|
||||
void CDKView::k_receiveSucceed() {
|
||||
bisyStatusChanged(false);
|
||||
emit messageStatus("receive success");
|
||||
refresh();
|
||||
emit KReceiveSucceed();
|
||||
}
|
||||
|
||||
58
cd_utils/pult/cdkview.h
Normal file
58
cd_utils/pult/cdkview.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#ifndef CDKVIEW_H
|
||||
#define CDKVIEW_H
|
||||
|
||||
#include "piobject.h"
|
||||
#include <QTreeView>
|
||||
|
||||
class CDKItemModel;
|
||||
|
||||
class CDKView : public QTreeView, public PIObject
|
||||
{
|
||||
Q_OBJECT
|
||||
PIOBJECT(CDKView)
|
||||
public:
|
||||
explicit CDKView(QWidget *parent = 0);
|
||||
~CDKView();
|
||||
void refresh();
|
||||
void setKFile(const QString & filename);
|
||||
|
||||
CDKItemModel * CDKModel() {return kmodel;}
|
||||
|
||||
public slots:
|
||||
void sendK();
|
||||
void receiveK();
|
||||
void saveK();
|
||||
void loadK();
|
||||
void clearK();
|
||||
void buildFromHeader(const QString & kdescription);
|
||||
|
||||
private slots:
|
||||
void k_sendFailed();
|
||||
void k_sendSucceed();
|
||||
void k_receiveFailed();
|
||||
void k_receiveSucceed();
|
||||
|
||||
private:
|
||||
EVENT_HANDLER(void, cdk_sendFailed) {emit _qcdk_sendFailed();}
|
||||
EVENT_HANDLER(void, cdk_sendSucceed) {emit _qcdk_sendSucceed();}
|
||||
EVENT_HANDLER(void, cdk_receiveFailed) {emit _qcdk_receiveFailed();}
|
||||
EVENT_HANDLER(void, cdk_receiveSucceed) {emit _qcdk_receiveSucceed();}
|
||||
|
||||
CDKItemModel * kmodel;
|
||||
|
||||
signals:
|
||||
void KSendFailed();
|
||||
void KSendSucceed();
|
||||
void KReceiveFailed();
|
||||
void KReceiveSucceed();
|
||||
void messageStatus(QString msg);
|
||||
void bisyStatusChanged(bool bisy);
|
||||
|
||||
void _qcdk_sendFailed(); // PRIVATE
|
||||
void _qcdk_sendSucceed(); // PRIVATE
|
||||
void _qcdk_receiveFailed(); // PRIVATE
|
||||
void _qcdk_receiveSucceed(); // PRIVATE
|
||||
|
||||
};
|
||||
|
||||
#endif // CDKVIEW_H
|
||||
33
cd_utils/pult/form.cpp
Normal file
33
cd_utils/pult/form.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "form.h"
|
||||
#include "ui_form.h"
|
||||
#include "QFileDialog"
|
||||
|
||||
Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) {
|
||||
ui->setupUi(this);
|
||||
ui->treeView->setKFile("");
|
||||
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("");
|
||||
}
|
||||
|
||||
|
||||
void Form::on_pushButton_6_clicked() {
|
||||
ui->treeView->buildFromHeader(QFileDialog::getOpenFileName(this, trUtf8("Select *.h file with K description"), "k_description.h", "C/C++ header files(*.h *.hpp);;All files(*)"));
|
||||
}
|
||||
29
cd_utils/pult/form.h
Normal file
29
cd_utils/pult/form.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef FORM_H
|
||||
#define FORM_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
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();
|
||||
|
||||
private:
|
||||
Ui::Form *ui;
|
||||
};
|
||||
|
||||
#endif // FORM_H
|
||||
163
cd_utils/pult/form.ui
Normal file
163
cd_utils/pult/form.ui
Normal file
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>432</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="CDKView" name="treeView"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="pushButton_3">
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="text">
|
||||
<string>Send</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="pushButton_2">
|
||||
<property name="text">
|
||||
<string>Receive</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="pushButton_4">
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="pushButton_5">
|
||||
<property name="text">
|
||||
<string>Clear</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="pushButton_6">
|
||||
<property name="text">
|
||||
<string>update from KDescription</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>CDKView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header location="global">cdkview.h</header>
|
||||
<slots>
|
||||
<signal>bisyStatusChanged(bool)</signal>
|
||||
<slot>sendK()</slot>
|
||||
<slot>receiveK()</slot>
|
||||
<slot>saveK()</slot>
|
||||
<slot>loadK()</slot>
|
||||
<slot>clear()</slot>
|
||||
<slot>clearK()</slot>
|
||||
</slots>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>pushButton_2</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>treeView</receiver>
|
||||
<slot>receiveK()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>569</x>
|
||||
<y>69</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>410</x>
|
||||
<y>152</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>treeView</sender>
|
||||
<signal>bisyStatusChanged(bool)</signal>
|
||||
<receiver>pushButton_2</receiver>
|
||||
<slot>setDisabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>309</x>
|
||||
<y>174</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>569</x>
|
||||
<y>66</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>pushButton_5</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>treeView</receiver>
|
||||
<slot>clearK()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>463</x>
|
||||
<y>104</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>468</x>
|
||||
<y>188</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>pushButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>treeView</receiver>
|
||||
<slot>sendK()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>190</x>
|
||||
<y>65</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>198</x>
|
||||
<y>152</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>treeView</sender>
|
||||
<signal>bisyStatusChanged(bool)</signal>
|
||||
<receiver>pushButton</receiver>
|
||||
<slot>setDisabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>177</x>
|
||||
<y>246</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>98</x>
|
||||
<y>46</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
@@ -1,10 +1,10 @@
|
||||
#include <QtGui/QApplication>
|
||||
#include "cd_pult.h"
|
||||
#include "form.h"
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
QApplication a(argc, argv);
|
||||
CD_Pult w;
|
||||
Form w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user