git-svn-id: svn://db.shs.com.ru/libs@123 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-09-20 20:12:24 +00:00
parent 72a1d2cffd
commit 211d498061
17 changed files with 585 additions and 68 deletions

View File

@@ -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")

View File

@@ -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();
}

View File

@@ -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
View 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
View 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
View 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
View 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
View 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>

View File

@@ -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();
}