123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "statuswidget.h"
- #include "ui_statuswidget.h"
- #include "widgets/mainwindow.h"
- #include "models/patchdownloader.h"
- #include "models/lotrodatmanager.h"
- #include <QDesktopServices>
- #include <QUrl>
- #include <QDebug>
- #include <QMessageBox>
- StatusWidget::StatusWidget(QSettings* settings, PatchDownloader* patch_downloader, LotroDatManager* lotro_dat_manager, QWidget *parent) :
- QWidget(parent), lotro_manager(lotro_dat_manager),
- ui(new Ui::StatusWidget)
- {
- ui->setupUi(this);
- connect(ui->announcements_list, &NewsListWidget::newsUpdated, this, &StatusWidget::invokeUpdateFontSize);
- connect(ui->server_status_flag, &StatusFlagWidget::flagIdChanged, this, &StatusWidget::changeCentralWidget);
- ui->status_widget->hide();
- patch_updater = patch_downloader;
- connect(patch_updater, &PatchDownloader::downloadStarted, this, &StatusWidget::onPatchDownloaderStarted, Qt::QueuedConnection);
- connect(patch_updater, &PatchDownloader::progressChanged, this, &StatusWidget::onPatchDownloaderProgressChanged, Qt::QueuedConnection);
- connect(patch_updater, &PatchDownloader::downloadCompleted, this, &StatusWidget::onPatchDownloaderFinished, Qt::QueuedConnection);
- ui->bottom_widget->hide();
- }
- StatusWidget::~StatusWidget()
- {
- delete ui;
- }
- void StatusWidget::onPatchDownloaderStarted()
- {
- qDebug() << "Status widget received DownloadStarted signal!";
- ui->bottom_widget->show();
- ui->process_label->setText("Загрузка обновлений патчей...");
- ui->progressBar->setValue(0);
- }
- void StatusWidget::onPatchDownloaderFinished()
- {
- ui->process_label->setText("Загрузка обновлений патчей завершена...");
- ui->progressBar->setValue(100);
- ui->bottom_widget->hide();
- }
- void StatusWidget::onPatchDownloaderProgressChanged(quint64 bytesDownloaded, quint64 bytesTotal, QString download_speed_formatted, QString elapsed_time_formatted)
- {
- ui->bottom_widget->show();
- ui->process_label->setText("Загрузка " + download_speed_formatted + ". Загружено "
- + Downloader::getSizeFormatted(bytesDownloaded) + " из " + Downloader::getSizeFormatted(bytesTotal)
- + " (" + QString::number(bytesDownloaded * 100 / bytesTotal) + "%) ");
- //+ "\nОставшееся время: " + elapsed_time_formatted);
- ui->progressBar->setValue(bytesDownloaded * 100 / bytesTotal + 5);
- }
- void StatusWidget::changeCentralWidget()
- {
- if (ui->announcements_widget->isHidden()) {
- ui->announcements_widget->show();
- ui->status_widget->hide();
- } else {
- ui->announcements_widget->hide();
- ui->status_widget->show();
- }
- }
- void StatusWidget::invokeUpdateFontSize()
- {
- MainWindow* window = qobject_cast<MainWindow*>(parentWidget()->parentWidget()->parentWidget());
- window->changeFontSizeRecursive(100, this);
- }
- void StatusWidget::on_site_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://translate.lotros.ru/"));
- }
- void StatusWidget::on_forum_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://lotros.ru/"));
- }
- void StatusWidget::on_guides_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://translate.lotros.ru/guides"));
- }
- void StatusWidget::on_addons_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://translate.lotros.ru/mathoms"));
- }
- void StatusWidget::on_bugreport_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://translate.lotros.ru/bugs/add"));
- }
- void StatusWidget::on_donate_link_button_clicked()
- {
- QDesktopServices::openUrl(QUrl("http://translate.lotros.ru/donate"));
- }
- void StatusWidget::on_game_button_clicked()
- {
- MainWindow* window = qobject_cast<MainWindow*>(parentWidget()->parentWidget()->parentWidget());
- window->showChooseVersionDialog();
- }
|