mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
feat: choosing complete
This commit is contained in:
74
Widgets/updatefileslot.cpp
Normal file
74
Widgets/updatefileslot.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
#include "updatefileslot.h"
|
||||
#include "ui_updatefileslot.h"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
UpdateFileSlot::UpdateFileSlot(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::UpdateFileSlot),
|
||||
needUpdate(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
void UpdateFileSlot::fill(QString itemName, FileData serverData, FileData localData)
|
||||
{
|
||||
ui->Path->setText(itemName);
|
||||
local = localData;
|
||||
|
||||
QString result = " Сервер: ";
|
||||
QDateTime serverFileTime = QDateTime::fromString(serverData.lastUpdate,"dd.MM.yyyy hh:mm:ss");
|
||||
QDateTime localFileTime = QDateTime::fromString(localData.lastUpdate,"dd.MM.yyyy hh:mm:ss");
|
||||
result.append(serverFileTime.toString("dd.MM.yyyy"));
|
||||
result.append(" Локально: ");
|
||||
result.append(localFileTime.toString("dd.MM.yyyy"));
|
||||
ui->Dates->setText(result);
|
||||
|
||||
bool newest = localFileTime > serverFileTime;
|
||||
|
||||
ui->UpdateCheckBox->setChecked(newest);
|
||||
QPixmap pixmap;
|
||||
if (newest)
|
||||
{
|
||||
pixmap.load(":/resource/Icons/new.png");
|
||||
}
|
||||
else
|
||||
{
|
||||
pixmap.load(nullptr);
|
||||
}
|
||||
|
||||
QPixmap scaled = pixmap.scaled(ui->Image->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
ui->Image->setPixmap(scaled);
|
||||
}
|
||||
|
||||
UpdateFileSlot::~UpdateFileSlot()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
FileData UpdateFileSlot::getLocal() const
|
||||
{
|
||||
return local;
|
||||
}
|
||||
|
||||
bool UpdateFileSlot::getNeedUpdate() const
|
||||
{
|
||||
return needUpdate;
|
||||
}
|
||||
|
||||
void UpdateFileSlot::setNeedUpdate(bool value)
|
||||
{
|
||||
needUpdate = value;
|
||||
}
|
||||
|
||||
void UpdateFileSlot::on_UpdateCheckBox_stateChanged(int arg1)
|
||||
{
|
||||
if (ui->UpdateCheckBox->checkState() == Qt::Checked)
|
||||
{
|
||||
needUpdate = true;
|
||||
}
|
||||
else if (ui->UpdateCheckBox->checkState() == Qt::Unchecked)
|
||||
{
|
||||
needUpdate = false;
|
||||
}
|
||||
}
|
||||
36
Widgets/updatefileslot.h
Normal file
36
Widgets/updatefileslot.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#ifndef UPDATEFILESLOT_H
|
||||
#define UPDATEFILESLOT_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include <Data/FileData.h>
|
||||
|
||||
namespace Ui {
|
||||
class UpdateFileSlot;
|
||||
}
|
||||
|
||||
class UpdateFileSlot : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit UpdateFileSlot(QWidget *parent = nullptr);
|
||||
void fill(QString itemName, FileData serverData, FileData localData);
|
||||
|
||||
bool getNeedUpdate() const;
|
||||
void setNeedUpdate(bool value);
|
||||
FileData getLocal() const;
|
||||
|
||||
~UpdateFileSlot();
|
||||
|
||||
|
||||
private slots:
|
||||
void on_UpdateCheckBox_stateChanged(int arg1);
|
||||
|
||||
private:
|
||||
Ui::UpdateFileSlot *ui;
|
||||
FileData local;
|
||||
bool needUpdate;
|
||||
};
|
||||
|
||||
#endif // UPDATEFILESLOT_H
|
||||
79
Widgets/updatefileslot.ui
Normal file
79
Widgets/updatefileslot.ui
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UpdateFileSlot</class>
|
||||
<widget class="QWidget" name="UpdateFileSlot">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>789</width>
|
||||
<height>40</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Frame</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="horizontalLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>0</y>
|
||||
<width>721</width>
|
||||
<height>41</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="mainLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="Path">
|
||||
<property name="text">
|
||||
<string>/RUS/Scens/XXX-X-XX-XX-XX-XXXXXX-XXXX-X</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="Dates">
|
||||
<property name="text">
|
||||
<string>XXXXXXX XXxXXxXXX XXXXXXXXx XXxXXxXXXX</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Image">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>755</x>
|
||||
<y>5</y>
|
||||
<width>31</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../resources.qrc">:/resource/Icons/checked.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="UpdateCheckBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>6</x>
|
||||
<y>10</y>
|
||||
<width>21</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -32,11 +32,14 @@ void UpdateNotifyWidget::addToList(FileData localFileData,FileData serverFileDat
|
||||
{
|
||||
QString itemName = localFileData.path;
|
||||
itemName = itemName.remove(streamingAssetsPath);
|
||||
itemName.append("Сервер: ");
|
||||
itemName.append(serverFileData.lastUpdate);
|
||||
itemName.append("Локально: ");
|
||||
itemName.append(localFileData.lastUpdate);
|
||||
ui->updateListWidget->addItem(itemName);
|
||||
UpdateFileSlot *slot = new UpdateFileSlot();
|
||||
QListWidgetItem *widgetItem = new QListWidgetItem();
|
||||
|
||||
widgetItem->setSizeHint(QSize(slot->width(),slot->height()));
|
||||
ui->updateListWidget->addItem(widgetItem);
|
||||
ui->updateListWidget->setItemWidget(widgetItem,slot);
|
||||
|
||||
slot->fill(itemName,serverFileData,localFileData);
|
||||
}
|
||||
|
||||
void UpdateNotifyWidget::showTryChangeBase()
|
||||
@@ -128,6 +131,24 @@ void UpdateNotifyWidget::closeWindow()
|
||||
on_closeButton_clicked();
|
||||
}
|
||||
|
||||
QList<FileData> *UpdateNotifyWidget::getUpdateList()
|
||||
{
|
||||
QList<FileData> *realUpdateList = new QList<FileData>();
|
||||
|
||||
for (int i = 0; i < ui->updateListWidget->count(); i++) {
|
||||
QListWidgetItem *item = ui->updateListWidget->item(i);
|
||||
UpdateFileSlot *slot = qobject_cast<UpdateFileSlot*>(ui->updateListWidget->itemWidget(item));
|
||||
|
||||
if (slot && slot->getNeedUpdate())
|
||||
{
|
||||
realUpdateList->append(slot->getLocal());
|
||||
}
|
||||
}
|
||||
|
||||
return realUpdateList;
|
||||
|
||||
}
|
||||
|
||||
void UpdateNotifyWidget::setUpdateState()
|
||||
{
|
||||
ui->undoChangesButton->show();
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <Data/FileData.h>
|
||||
#include <Core/versioncontainer.h>
|
||||
#include <Widgets/updatefileslot.h>
|
||||
|
||||
namespace Ui {
|
||||
class UpdateNotifyWidget;
|
||||
@@ -26,6 +27,7 @@ public:
|
||||
void showTryChangeBase();
|
||||
void setVersionContainer(VersionContainer *versionContainer);
|
||||
void closeWindow();
|
||||
QList<FileData> *getUpdateList();
|
||||
signals:
|
||||
void sigLoadToServerBehaviour();
|
||||
void sigUndoCurrentChanges();
|
||||
|
||||
Reference in New Issue
Block a user