123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #include "lotroprocessdialog.h"
- #include "ui_processdialog.h"
- #include <QPixmap>
- #include <QBitmap>
- #include <QMouseEvent>
- #include "models/lotromanager.h"
- #include <QTextCodec>
- using namespace LOTRO_DAT;
- LotroProcessDialog::LotroProcessDialog(LotroManager* mgr, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::ProcessDialog), lotro_manager(mgr)
- {
- ui->setupUi(this);
- setModal(true);
- setWindowTitle("Выполнение операции...");
- QPixmap background(":/assets/backgrounds/process_dialog.png");
- QPixmap current_bg = background.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
- QBitmap current_mask = current_bg.mask();
- setMask(current_mask);
- QPalette palette;
- palette.setBrush(QPalette::Window, current_bg);
- setPalette(palette);
- loader.setFileName(":/assets/backgrounds/loading-gear.gif");
- ui->loader->setMovie(&loader);
- loader.setScaledSize(ui->loader->size());
- loader.start();
- uiUpdateTimer.setInterval(30);
- connect(&uiUpdateTimer, &QTimer::timeout, this, &LotroProcessDialog::updateUI);
- uiUpdateTimer.start();
- }
- void LotroProcessDialog::mousePressEvent(QMouseEvent *event)
- {
- if (event->button() == Qt::LeftButton) {
- dragPosition = event->globalPos() - frameGeometry().topLeft();
- event->accept();
- }
- }
- void LotroProcessDialog::updateUI()
- {
- if (!qApp)
- return;
- // std::string debug_msg = app->client_local_dat.GetStatusModule().GetDebugMessage();
- // QTextCodec *codec = QTextCodec::codecForName("UTF8");
- // QByteArray ba(debug_msg.c_str());
- // QString dmsg = codec->toUnicode(ba);
- // int percentage = app->client_local_dat.GetStatusModule().GetPercentage();
- // DatStatus::DAT_STATUS status = app->client_local_dat.GetStatusModule().GetStatus();
- // QString title = "";
- // switch (status) {
- // case DatStatus::E_INITIALISING:
- // title = "Инициализация";
- // break;
- // case DatStatus::E_EXTRACTING:
- // title = "Извлечение данных";
- // break;
- // case DatStatus::E_PATCHING:
- // title = "Применение патча";
- // break;
- // case DatStatus::E_COMMITING:
- // title = "Фиксация данных";
- // break;
- // case DatStatus::E_BACKUP_CREATING:
- // title = "Создание резервной копии";
- // break;
- // case DatStatus::E_BACKUP_REMOVING:
- // title = "Удаление резервной копии";
- // break;
- // case DatStatus::E_GATHERING_INFO:
- // title = "Сбор информации ядра";
- // break;
- // case DatStatus::E_FREE:
- // title = "Свободен";
- // break;
- // default:
- // title = "Неизвестная операция";
- // break;
- // }
- // if (status == DatStatus::E_FREE)
- // hide();
- // else
- // show();
- // ui->title->setText(title);
- // ui->progressBar->setValue(percentage);
- // ui->debug_info->setText(dmsg);
- }
- void LotroProcessDialog::mouseMoveEvent(QMouseEvent *event)
- {
- if (event->buttons() & Qt::LeftButton) {
- move(event->globalPos() - dragPosition);
- // app->window.move(event->globalPos() - dragPosition +
- // QPoint((width() - app->window.width()) / 2, (height() - app->window.height()) / 2)
- // );
- event->accept();
- }
- }
- LotroProcessDialog::~LotroProcessDialog()
- {
- delete ui;
- }
|