113 lines
2.4 KiB
C++
113 lines
2.4 KiB
C++
#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();
|
|
}
|
|
|