mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Списки отображаются в виде дерева
This commit is contained in:
@@ -15,7 +15,7 @@ DialogListSubProc::DialogListSubProc(ConnectorToServer* connectorToServer, QWidg
|
|||||||
layout->addWidget(listSubProc);
|
layout->addWidget(listSubProc);
|
||||||
this->setWindowTitle(tr("List subprocedures"));
|
this->setWindowTitle(tr("List subprocedures"));
|
||||||
|
|
||||||
this->setMinimumSize(400, 200);
|
this->setMinimumSize(1400, 700);
|
||||||
this->setModal(true);
|
this->setModal(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#include <QScrollBar>
|
||||||
#include "listsubproc.h"
|
#include "listsubproc.h"
|
||||||
#include "ui_listsubproc.h"
|
#include "ui_listsubproc.h"
|
||||||
|
|
||||||
@@ -5,10 +6,16 @@ ListSubProc::ListSubProc(ConnectorToServer* connectorToServer, QWidget *parent)
|
|||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::ListSubProc),
|
ui(new Ui::ListSubProc),
|
||||||
connectorToServer(connectorToServer),
|
connectorToServer(connectorToServer),
|
||||||
waitAnimationWidget(nullptr)
|
waitAnimationWidget(nullptr),
|
||||||
|
treeWidget(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
treeWidget = new QTreeWidget();
|
||||||
|
ui->horizontalLayout_Tree->addWidget(treeWidget);
|
||||||
|
|
||||||
|
preparationTreeWidget();
|
||||||
|
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
waitAnimationWidget->setParent(this);
|
waitAnimationWidget->setParent(this);
|
||||||
@@ -21,6 +28,7 @@ ListSubProc::~ListSubProc()
|
|||||||
{
|
{
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
delete waitAnimationWidget;
|
delete waitAnimationWidget;
|
||||||
|
delete treeWidget;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,10 +39,23 @@ void ListSubProc::closeEvent(QCloseEvent *event)
|
|||||||
|
|
||||||
void ListSubProc::resizeEvent(QResizeEvent *event)
|
void ListSubProc::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
|
setWidthColumnsTree();
|
||||||
|
|
||||||
QSize size = event->size();
|
QSize size = event->size();
|
||||||
waitAnimationWidget->resize(size);
|
waitAnimationWidget->resize(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ListSubProc::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
// В случае получения события изменения языка приложения
|
||||||
|
if (event->type() == QEvent::LanguageChange)
|
||||||
|
{// переведём окно заново
|
||||||
|
ui->retranslateUi(this);
|
||||||
|
|
||||||
|
reSetHeadTreeWidget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ListSubProc::setTask(TaskAmmFim *task)
|
void ListSubProc::setTask(TaskAmmFim *task)
|
||||||
{
|
{
|
||||||
this->task = *task;
|
this->task = *task;
|
||||||
@@ -48,6 +69,68 @@ void ListSubProc::setTask(TaskAmmFim *task)
|
|||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ListSubProc::preparationTreeWidget()
|
||||||
|
{
|
||||||
|
treeWidget->setColumnCount(ColumnsTreeSubProc::clmnSP_count);
|
||||||
|
|
||||||
|
reSetHeadTreeWidget();
|
||||||
|
|
||||||
|
#ifdef PROJECT_TYPE_DEBUG
|
||||||
|
treeWidget->setColumnHidden(ColumnsTreeSubProc::clmnSP_canplay, false);
|
||||||
|
#else
|
||||||
|
treeWidget->setColumnHidden(ColumnsTreeSubProc::clmnSP_canplay, true);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ListSubProc::reSetHeadTreeWidget()
|
||||||
|
{
|
||||||
|
QStringList listHeaders;
|
||||||
|
listHeaders = QStringList{tr("Subprocedure"), tr("DM code"), tr("Canplay")};
|
||||||
|
treeWidget->setHeaderLabels(listHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ListSubProc::setWidthColumnsTree()
|
||||||
|
{
|
||||||
|
listWidthColumn.clear();
|
||||||
|
|
||||||
|
treeWidget->setColumnWidth(ColumnsTreeSubProc::clmnSP_title, 100);
|
||||||
|
listWidthColumn.append(100);
|
||||||
|
treeWidget->setColumnWidth(ColumnsTreeSubProc::clmnSP_code, 250);
|
||||||
|
listWidthColumn.append(250);
|
||||||
|
treeWidget->setColumnWidth(ColumnsTreeSubProc::clmnSP_canplay, 50);
|
||||||
|
listWidthColumn.append(50);
|
||||||
|
|
||||||
|
treeWidget->setColumnWidth(ColumnsTreeSubProc::clmnSP_title, calculateWidth_0Column());
|
||||||
|
}
|
||||||
|
|
||||||
|
int ListSubProc::calculateWidth_0Column()
|
||||||
|
{
|
||||||
|
int widthHeader = treeWidget->width() - 25;
|
||||||
|
int width0Column = 0;
|
||||||
|
int widthSB = 0;
|
||||||
|
if(treeWidget->verticalScrollBar()->isVisible())
|
||||||
|
widthSB = treeWidget->verticalScrollBar()->size().width();
|
||||||
|
int cntColumns = treeWidget->columnCount();
|
||||||
|
int widthRightColumns = 0;
|
||||||
|
for (int i = 1; i < cntColumns; i++)
|
||||||
|
{
|
||||||
|
if(! treeWidget->isColumnHidden(i))
|
||||||
|
{//Колонка не скрыта
|
||||||
|
int w = listWidthColumn.at(i);
|
||||||
|
widthRightColumns += w;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
width0Column = widthHeader - widthRightColumns - widthSB;
|
||||||
|
|
||||||
|
return width0Column;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ListSubProc::buildCanplay(ModeList modeList)
|
||||||
|
{
|
||||||
|
QString canplay = QString("%1/%2/%3/%4").arg(modeList.demo?"+":"-", modeList.train?"+":"-", modeList.exam?"+":"-", modeList.autoM?"+":"-");
|
||||||
|
return canplay;
|
||||||
|
}
|
||||||
|
|
||||||
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
||||||
{
|
{
|
||||||
if(this->task.ammProcedure.dmCode == dmCode)
|
if(this->task.ammProcedure.dmCode == dmCode)
|
||||||
@@ -56,7 +139,13 @@ void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
|||||||
|
|
||||||
for(SubProc subProc : list)
|
for(SubProc subProc : list)
|
||||||
{
|
{
|
||||||
ui->listWidget->addItem(subProc.dmCode);
|
QTreeWidgetItem* item = new QTreeWidgetItem(treeWidget);
|
||||||
|
item->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
|
item->setText(ColumnsTreeSubProc::clmnSP_title, subProc.title);
|
||||||
|
item->setText(ColumnsTreeSubProc::clmnSP_code, subProc.dmCode);
|
||||||
|
item->setText(ColumnsTreeSubProc::clmnSP_canplay, buildCanplay(subProc.modeList));
|
||||||
|
|
||||||
|
treeWidget->addTopLevelItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
|
|||||||
@@ -3,7 +3,15 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QResizeEvent>
|
#include <QResizeEvent>
|
||||||
#include "connectorToServer.h"
|
#include <QTreeWidget>
|
||||||
|
#include "connectortoserver.h"
|
||||||
|
|
||||||
|
enum ColumnsTreeSubProc{
|
||||||
|
clmnSP_title = 0,
|
||||||
|
clmnSP_code,
|
||||||
|
clmnSP_canplay,
|
||||||
|
clmnSP_count
|
||||||
|
};
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ListSubProc;
|
class ListSubProc;
|
||||||
@@ -19,9 +27,17 @@ public:
|
|||||||
|
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
|
void changeEvent(QEvent * event) override;
|
||||||
|
|
||||||
void setTask(TaskAmmFim* task);
|
void setTask(TaskAmmFim* task);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void preparationTreeWidget();
|
||||||
|
void reSetHeadTreeWidget();
|
||||||
|
void setWidthColumnsTree();
|
||||||
|
int calculateWidth_0Column();
|
||||||
|
QString buildCanplay(ModeList modeList);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slot_UpdateSubProcForDMCode(QString dmCode);
|
void slot_UpdateSubProcForDMCode(QString dmCode);
|
||||||
|
|
||||||
@@ -33,6 +49,9 @@ private:
|
|||||||
TaskAmmFim task;
|
TaskAmmFim task;
|
||||||
|
|
||||||
WaitAnimationWidget *waitAnimationWidget;
|
WaitAnimationWidget *waitAnimationWidget;
|
||||||
|
|
||||||
|
QTreeWidget* treeWidget;
|
||||||
|
QList<int> listWidthColumn;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LISTSUBPROC_H
|
#endif // LISTSUBPROC_H
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QListWidget" name="listWidget"/>
|
<layout class="QHBoxLayout" name="horizontalLayout_Tree"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -530,9 +530,6 @@ void ProcessingSystem::processingClientQueryListSubProc(ClientHandler *client, Q
|
|||||||
QByteArray arrayAnswer = dataParser->getDocsAnswerParser()->listSubProc(list, dmCode);
|
QByteArray arrayAnswer = dataParser->getDocsAnswerParser()->listSubProc(list, dmCode);
|
||||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
||||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessingSystem::processingSendMessage(ClientMessage clientMessage)
|
void ProcessingSystem::processingSendMessage(ClientMessage clientMessage)
|
||||||
|
|||||||
Reference in New Issue
Block a user