Browse Source

Small code cleanup part 2

Ivan Arkhipov 3 years ago
parent
commit
d97115380e

+ 1 - 10
src/Legacy/Legacy.pro

@@ -24,17 +24,14 @@ SOURCES += \
     widgets/helpwidget.cpp \
     widgets/mainwindow.cpp \
     widgets/menuentry.cpp \
-    widgets/settingswidget.cpp \
     widgets/aboutwidget.cpp \
     widgets/statuswidget.cpp \
     widgets/newslistwidget.cpp \
     widgets/newspiece.cpp \
     widgets/serverstatuswidget.cpp \
     widgets/switchbutton.cpp \
-    widgets/chooseversiondialog.cpp \
     widgets/translationcomponents.cpp \
     widgets/weeklycodewidget.cpp \
-    widgets/dialogwindow.cpp \
     widgets/qsmoothscrollarea.cpp \
     widgets/tooltipbutton.cpp \
     widgets/progressbar.cpp \
@@ -54,17 +51,14 @@ HEADERS += \
     widgets/helpwidget.h \
     widgets/mainwindow.h \
     widgets/menuentry.h \
-    widgets/settingswidget.h \
     widgets/aboutwidget.h \
     widgets/statuswidget.h \
     widgets/newslistwidget.h \
     widgets/newspiece.h \
     widgets/serverstatuswidget.h \
     widgets/switchbutton.h \
-    widgets/chooseversiondialog.h \
     widgets/translationcomponents.h \
     widgets/weeklycodewidget.h \
-    widgets/dialogwindow.h \
     widgets/qsmoothscrollarea.h \
     widgets/tooltipbutton.h \
     widgets/progressbar.h \
@@ -77,15 +71,12 @@ FORMS += \
     widgets/gamesettings.ui \
     widgets/helpwidget.ui \
     widgets/mainwindow.ui \
-    widgets/settingswidget.ui \
     widgets/aboutwidget.ui \
     widgets/statuswidget.ui \
     widgets/newspiece.ui \
     widgets/serverstatuswidget.ui \
-    widgets/chooseversiondialog.ui \
     widgets/translationcomponents.ui \
-    widgets/weeklycodewidget.ui \
-    widgets/dialogwindow.ui
+    widgets/weeklycodewidget.ui
 
 win32:RC_ICONS = $${PROJECT_ROOT_PATH}/resources/appicon.ico
 

+ 0 - 61
src/Legacy/widgets/chooseversiondialog.cpp

@@ -1,61 +0,0 @@
-#include "chooseversiondialog.h"
-#include "ui_chooseversiondialog.h"
-
-#include "models/settings.h"
-#include "models/patchinstaller.h"
-#include "widgets/mainwindow.h"
-#include "constants.h"
-
-ChooseVersionDialog::ChooseVersionDialog(QWidget *parent) :
-    QWidget(parent),
-    ui(new Ui::ChooseVersionDialog)
-{
-//    setWindowModality(Qt::WindowModal);
-    ui->setupUi(this);
-    ui->wait_widget->hide();
-    ui->cancel_widget->show();
-}
-
-ChooseVersionDialog::~ChooseVersionDialog()
-{
-    delete ui;
-}
-
-void ChooseVersionDialog::updateFontsSizes()
-{
-    ui->label_title->setFont(garamond_12pt);
-}
-
-void ChooseVersionDialog::resizeEvent(QResizeEvent *event)
-{
-    updateFontsSizes();
-}
-
-void ChooseVersionDialog::show()
-{
-    QString locale_prefix = Settings::getValue("Lotro/original_locale").toString();
-    ui->start_original->setStyleSheet("QWidget#start_original{\n	border: 0;\n	border-image: url(:/buttons/run_" + locale_prefix + ".png);\n}\n\nQWidget#start_original:hover{\n	border: 3px;\n	border-image: url(:/buttons/run_" + locale_prefix + ".png);\n}");
-    QWidget::show();
-}
-
-void ChooseVersionDialog::on_start_patched_clicked()
-{
-    ui->wait_widget->show();
-    ui->cancel_widget->hide();
-    QMetaObject::invokeMethod(&PatchInstaller::instance(), "startGame",
-                              Qt::QueuedConnection, Q_ARG(bool, true));
-}
-
-void ChooseVersionDialog::on_start_original_clicked()
-{
-    ui->wait_widget->show();
-    ui->cancel_widget->hide();
-    QMetaObject::invokeMethod(&PatchInstaller::instance(), "startGame",
-                              Qt::QueuedConnection, Q_ARG(bool, false));
-}
-
-void ChooseVersionDialog::on_cancel_clicked()
-{
-    hide();
-    emit cancelled();
-}

+ 0 - 49
src/Legacy/widgets/chooseversiondialog.h

@@ -1,49 +0,0 @@
-#ifndef CHOOSEVERSIONDIALOG_H
-#define CHOOSEVERSIONDIALOG_H
-
-#include <QDialog>
-#include <QMouseEvent>
-#include <QSettings>
-#include "models/patchinstaller.h"
-
-class PatchDownloader;
-class LotroDatManager;
-
-namespace Ui {
-class ChooseVersionDialog;
-}
-
-class ChooseVersionDialog : public QWidget
-{
-    Q_OBJECT
-
-public:
-    explicit ChooseVersionDialog(QWidget *parent = 0);
-    ~ChooseVersionDialog();
-
-public slots:
-    void updateFontsSizes();
-
-protected:
-    void resizeEvent(QResizeEvent *event) override;
-
-public slots:
-    void show();
-
-private slots:
-
-    void on_start_patched_clicked();
-
-    void on_start_original_clicked();
-
-    void on_cancel_clicked();
-
-signals:
-    void cancelled();
-
-private:
-    Ui::ChooseVersionDialog *ui;
-    QPoint dragPosition;
-};
-
-#endif // CHOOSEVERSIONDIALOG_H

+ 0 - 423
src/Legacy/widgets/chooseversiondialog.ui

@@ -1,423 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ChooseVersionDialog</class>
- <widget class="QWidget" name="ChooseVersionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>991</width>
-    <height>607</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>380</width>
-    <height>200</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Выбор версии игры</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout_3">
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <item row="0" column="0">
-    <widget class="QWidget" name="dialog_background" native="true">
-     <property name="styleSheet">
-      <string notr="true">QWidget#dialog_background{
-background-color: rgba(20, 20, 20, 150);
-}</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_4">
-      <item row="0" column="0">
-       <widget class="QWidget" name="contents" native="true">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <layout class="QGridLayout" name="gridLayout">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
-         <property name="spacing">
-          <number>0</number>
-         </property>
-         <item row="0" column="0">
-          <widget class="QWidget" name="widget_2" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-topleft.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QWidget" name="widget_7" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-top.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="2">
-          <widget class="QWidget" name="widget_9" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-topright.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QWidget" name="widget_4" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-left.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QWidget" name="content_area" native="true">
-           <property name="styleSheet">
-            <string notr="true">QWidget#content_area{
-	border-image: url(:/backgrounds/strong_translucent-background.png);
-}</string>
-           </property>
-           <layout class="QGridLayout" name="gridLayout_2">
-            <property name="leftMargin">
-             <number>11</number>
-            </property>
-            <property name="topMargin">
-             <number>11</number>
-            </property>
-            <property name="rightMargin">
-             <number>11</number>
-            </property>
-            <item row="0" column="0" colspan="2">
-             <widget class="QLabel" name="label_title">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="font">
-               <font>
-                <family>EB Garamond</family>
-                <pointsize>12</pointsize>
-                <weight>50</weight>
-                <bold>false</bold>
-               </font>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">color: white; </string>
-              </property>
-              <property name="text">
-               <string>ВЫБЕРИТЕ ВЕРСИЮ ИГРЫ</string>
-              </property>
-              <property name="alignment">
-               <set>Qt::AlignCenter</set>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="0" colspan="2">
-             <widget class="QWidget" name="cancel_widget" native="true">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <layout class="QHBoxLayout" name="horizontalLayout_2">
-               <property name="spacing">
-                <number>0</number>
-               </property>
-               <property name="leftMargin">
-                <number>0</number>
-               </property>
-               <property name="topMargin">
-                <number>0</number>
-               </property>
-               <property name="rightMargin">
-                <number>0</number>
-               </property>
-               <property name="bottomMargin">
-                <number>0</number>
-               </property>
-               <item>
-                <widget class="QPushButton" name="cancel">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Вернуться</string>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </widget>
-            </item>
-            <item row="1" column="0" colspan="2">
-             <widget class="QWidget" name="widget" native="true">
-              <layout class="QHBoxLayout" name="horizontalLayout">
-               <property name="spacing">
-                <number>7</number>
-               </property>
-               <property name="leftMargin">
-                <number>0</number>
-               </property>
-               <property name="topMargin">
-                <number>0</number>
-               </property>
-               <property name="rightMargin">
-                <number>0</number>
-               </property>
-               <property name="bottomMargin">
-                <number>0</number>
-               </property>
-               <item>
-                <widget class="QPushButton" name="start_original">
-                 <property name="minimumSize">
-                  <size>
-                   <width>120</width>
-                   <height>70</height>
-                  </size>
-                 </property>
-                 <property name="maximumSize">
-                  <size>
-                   <width>129</width>
-                   <height>70</height>
-                  </size>
-                 </property>
-                 <property name="cursor">
-                  <cursorShape>PointingHandCursor</cursorShape>
-                 </property>
-                 <property name="toolTip">
-                  <string>Запустить оригинальную версию</string>
-                 </property>
-                 <property name="styleSheet">
-                  <string notr="true">QWidget#start_original{
-	border: 0;
-	border-image: url(:/buttons/run_English.png);
-}
-
-QWidget#start_original:hover{
-	border: 3px;
-	border-image: url(:/buttons/run_English.png);
-}</string>
-                 </property>
-                 <property name="text">
-                  <string/>
-                 </property>
-                 <property name="flat">
-                  <bool>true</bool>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QPushButton" name="start_patched">
-                 <property name="minimumSize">
-                  <size>
-                   <width>120</width>
-                   <height>70</height>
-                  </size>
-                 </property>
-                 <property name="maximumSize">
-                  <size>
-                   <width>120</width>
-                   <height>70</height>
-                  </size>
-                 </property>
-                 <property name="cursor">
-                  <cursorShape>PointingHandCursor</cursorShape>
-                 </property>
-                 <property name="toolTip">
-                  <string>Запустить русифицированную версию</string>
-                 </property>
-                 <property name="styleSheet">
-                  <string notr="true">QWidget#start_patched{
-	border: 0;
-	border-image: url(:/buttons/run_RU.png);
-}
-
-QWidget#start_patched:hover{
-	border: 3px;
-	border-image: url(:/buttons/run_RU.png);
-}</string>
-                 </property>
-                 <property name="text">
-                  <string/>
-                 </property>
-                 <property name="flat">
-                  <bool>true</bool>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </widget>
-            </item>
-            <item row="4" column="0">
-             <widget class="QWidget" name="wait_widget" native="true">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <layout class="QVBoxLayout" name="verticalLayout">
-               <property name="spacing">
-                <number>0</number>
-               </property>
-               <property name="leftMargin">
-                <number>0</number>
-               </property>
-               <property name="topMargin">
-                <number>0</number>
-               </property>
-               <property name="rightMargin">
-                <number>0</number>
-               </property>
-               <property name="bottomMargin">
-                <number>0</number>
-               </property>
-               <item>
-                <widget class="QLabel" name="label">
-                 <property name="styleSheet">
-                  <string notr="true">color:white</string>
-                 </property>
-                 <property name="text">
-                  <string>Подоготовка к запуску, пожалуйста, подождите...</string>
-                 </property>
-                 <property name="alignment">
-                  <set>Qt::AlignCenter</set>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QProgressBar" name="progressBar">
-                 <property name="maximum">
-                  <number>0</number>
-                 </property>
-                 <property name="value">
-                  <number>-1</number>
-                 </property>
-                 <property name="textVisible">
-                  <bool>false</bool>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </widget>
-            </item>
-           </layout>
-          </widget>
-         </item>
-         <item row="1" column="2">
-          <widget class="QWidget" name="widget_10" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-right.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QWidget" name="widget_3" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-botleft.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QWidget" name="widget_6" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-bottom.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="2">
-          <widget class="QWidget" name="widget_8" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-botright.png);</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 0 - 20
src/Legacy/widgets/dialogwindow.cpp

@@ -1,20 +0,0 @@
-#include "widgets/dialogwindow.h"
-#include "ui_dialogwindow.h"
-
-DialogWindow::DialogWindow(QWidget *parent) :
-    QWidget(parent),
-    ui(new Ui::DialogWindow)
-{
-    ui->setupUi(this);
-    hide();
-}
-
-DialogWindow::~DialogWindow()
-{
-    delete ui;
-}
-
-void DialogWindow::on_button_clicked()
-{
-    hide();
-}

+ 0 - 25
src/Legacy/widgets/dialogwindow.h

@@ -1,25 +0,0 @@
-#ifndef DIALOGWINDOW_H
-#define DIALOGWINDOW_H
-
-#include <QWidget>
-
-namespace Ui {
-class DialogWindow;
-}
-
-class DialogWindow : public QWidget
-{
-    Q_OBJECT
-
-public:
-    explicit DialogWindow(QWidget *parent = 0);
-    ~DialogWindow();
-
-private slots:
-    void on_button_clicked();
-
-private:
-    Ui::DialogWindow *ui;
-};
-
-#endif // DIALOGWINDOW_H

+ 0 - 251
src/Legacy/widgets/dialogwindow.ui

@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DialogWindow</class>
- <widget class="QWidget" name="DialogWindow">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>1062</width>
-    <height>928</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <property name="autoFillBackground">
-   <bool>true</bool>
-  </property>
-  <property name="styleSheet">
-   <string notr="true"/>
-  </property>
-  <layout class="QGridLayout" name="gridLayout_3">
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <item row="0" column="0">
-    <widget class="QWidget" name="dialog_background" native="true">
-     <property name="styleSheet">
-      <string notr="true">QWidget#dialog_background{
-background-color: rgba(20, 0, 0, 70);
-}</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_6">
-      <item row="0" column="0">
-       <widget class="QWidget" name="widget" native="true">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_4">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
-         <property name="spacing">
-          <number>0</number>
-         </property>
-         <item row="0" column="0">
-          <widget class="QWidget" name="widget_11" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-topleft.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QWidget" name="widget_12" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-top.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="2">
-          <widget class="QWidget" name="widget_13" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-topright.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QWidget" name="widget_14" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-left.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QWidget" name="content_area" native="true">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">QWidget#content_area{
-	border-image: url(:/backgrounds/strong_translucent-background.png);
-}</string>
-           </property>
-           <layout class="QGridLayout" name="gridLayout_5">
-            <property name="leftMargin">
-             <number>11</number>
-            </property>
-            <property name="topMargin">
-             <number>0</number>
-            </property>
-            <property name="rightMargin">
-             <number>0</number>
-            </property>
-            <property name="bottomMargin">
-             <number>0</number>
-            </property>
-            <property name="spacing">
-             <number>0</number>
-            </property>
-            <item row="0" column="0" rowspan="3">
-             <widget class="QLabel" name="message">
-              <property name="minimumSize">
-               <size>
-                <width>300</width>
-                <height>0</height>
-               </size>
-              </property>
-              <property name="font">
-               <font>
-                <family>EB Garamond</family>
-                <pointsize>12</pointsize>
-               </font>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">color:white; background: transparent;</string>
-              </property>
-              <property name="text">
-               <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Приветствую!&lt;/p&gt;&lt;p&gt;Добро пожаловать в Наследие версии 2.0.0!&lt;/p&gt;&lt;p&gt;Пройдёмся по настройкам и приступим к установке русификации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-              </property>
-              <property name="wordWrap">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
-            <item row="3" column="0">
-             <widget class="QPushButton" name="button">
-              <property name="text">
-               <string>Ок, хуле</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </widget>
-         </item>
-         <item row="1" column="2">
-          <widget class="QWidget" name="widget_15" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-right.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QWidget" name="widget_16" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-botleft.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QWidget" name="widget_17" native="true">
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-bottom.png);</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="2">
-          <widget class="QWidget" name="widget_18" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>26</width>
-             <height>26</height>
-            </size>
-           </property>
-           <property name="styleSheet">
-            <string notr="true">border-image: url(:/backgrounds/strong_translucent-border-botright.png);</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 4 - 62
src/Legacy/widgets/mainwindow.cpp

@@ -2,11 +2,11 @@
 #include "ui_mainwindow.h"
 #include "constants.h"
 
-#include "widgets/chooseversiondialog.h"
-#include "widgets/dialogwindow.h"
 #include "models/patchdownloader.h"
 #include "models/patchinstaller.h"
+#include "models/settings.h"
 
+#include <QWidget>
 #include <QBitmap>
 #include <QPainter>
 #include <QPixmap>
@@ -35,8 +35,6 @@ MainWindow::MainWindow(QWidget *parent)
     , status_widget_(nullptr)
     , help_widget_(nullptr)
     , about_widget_(nullptr)
-    , choose_locale_dialog_(nullptr)
-    , dialog_window_(nullptr)
     , menu_hover_widget_(nullptr)
     , menu_hover_widget_animation_(nullptr)
 {
@@ -59,16 +57,6 @@ MainWindow::MainWindow(QWidget *parent)
     hideAllContentWidgets();
     status_widget_->show();
 
-    qDebug() << __FUNCTION__ << "Initialising additional frames...";
-
-    choose_locale_dialog_ = new ChooseVersionDialog(this);
-    choose_locale_dialog_->resize(size());
-    choose_locale_dialog_->hide();
-    connect(choose_locale_dialog_, &ChooseVersionDialog::cancelled, choose_locale_dialog_, &ChooseVersionDialog::hide);
-
-    dialog_window_ = new DialogWindow(this);
-    dialog_window_->resize(size());
-
     qDebug() << __FUNCTION__ << "Making background";
 
     qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
@@ -135,16 +123,10 @@ void MainWindow::resizeEvent(QResizeEvent * event)
     ui->content_area->move(0, height * 110 / default_window_height);
     ui->content_area->resize(width * 1000 / default_window_width, height * 530 / default_window_height);
     setupWindowBackgroundAndMask(current_bg_);
-    choose_locale_dialog_->resize(event->size());
 
     ui->closeButton->setMinimumSize(width * 20 / default_window_width, height * 20 / default_window_height);
     ui->minimizeButton->setMinimumSize(width * 20 / default_window_width, height * 20 / default_window_height);
 
-    choose_locale_dialog_->move({0, 0});
-    choose_locale_dialog_->resize(event->size());
-
-    dialog_window_->move({0, 0});
-    dialog_window_->resize(size());
     updateFontSizes();
 }
 
@@ -192,31 +174,6 @@ MainWindow::~MainWindow()
     delete ui;
 }
 
-void MainWindow::showMessageDialog(QObject* emitter, QString message, QString ok_button_text, QString cancel_button_text)
-{
-    QMessageBox msg_box;
-    msg_box.setText(message);
-    msg_box.setStandardButtons(QMessageBox::NoButton);
-
-    QPushButton* ok_button = nullptr;
-    QPushButton* cancel_button = nullptr;
-
-    if (!ok_button_text.isEmpty()) {
-        ok_button = new QPushButton(&msg_box);
-        ok_button->setText(ok_button_text);
-        msg_box.addButton(ok_button, QMessageBox::AcceptRole);
-    }
-
-    if (!cancel_button_text.isEmpty()) {
-        cancel_button = new QPushButton(&msg_box);
-        cancel_button->setText(cancel_button_text);
-        msg_box.addButton(cancel_button, QMessageBox::RejectRole);
-    }
-
-    int result = msg_box.exec();
-    emit messageDialogFinished(emitter, result);
-}
-
 void MainWindow::on_menuentry_1_clicked()
 {
     current_active_entry_ = ui->menuentry_1;
@@ -258,20 +215,10 @@ void MainWindow::setupWindowBackgroundAndMask(QPixmap background)
     setPalette(palette);
 }
 
-void MainWindow::onPatchOperationsStarted()
-{
-    show_warning_on_close = true;
-}
-
-void MainWindow::onPatchOperationsFinished()
-{
-    show_warning_on_close = false;
-}
-
 void MainWindow::makeConnections()
 {
-    connect(&PatchInstaller::instance(), &PatchInstaller::started, this, &MainWindow::onPatchOperationsStarted);
-    connect(&PatchInstaller::instance(), &PatchInstaller::finished, this, &MainWindow::onPatchOperationsFinished);
+    connect(&PatchInstaller::instance(), &PatchInstaller::started, this, [this](){show_warning_on_close = true;});
+    connect(&PatchInstaller::instance(), &PatchInstaller::finished, this, [this](){show_warning_on_close = false;});
 }
 
 void MainWindow::setupMenuHoverWidget()
@@ -363,11 +310,6 @@ void MainWindow::onErrorStatusChanged(AppErrorStatus status)
     status_widget_->onErrorStatusChanged(status);
 }
 
-void MainWindow::onSecondsToNextTryToInitChanged(size_t seconds_elapsed)
-{
-    status_widget_->onSecondsToNextTryToInitChanged(seconds_elapsed);
-}
-
 void MainWindow::on_minimizeButton_clicked()
 {
     setWindowState(Qt::WindowMinimized);

+ 0 - 13
src/Legacy/widgets/mainwindow.h

@@ -13,10 +13,8 @@
 #include <QMutexLocker>
 
 #include "statuswidget.h"
-#include "settingswidget.h"
 #include "aboutwidget.h"
 #include "helpwidget.h"
-#include "chooseversiondialog.h"
 #include "legacyapplication.h"
 
 namespace Ui {
@@ -24,7 +22,6 @@ class MainWindow;
 }
 
 class MenuEntry;
-class DialogWindow;
 class LotroDatManager;
 class PatchDownloader;
 
@@ -42,9 +39,6 @@ protected:
 
 public slots:
     void onErrorStatusChanged(AppErrorStatus status);
-    void onSecondsToNextTryToInitChanged(size_t seconds_elapsed);
-
-    void showMessageDialog(QObject* emitter, QString message, QString ok_button_text = "Ок", QString cancel_button_text = "Отмена");
     void updateFontSizes();
 
 signals:
@@ -73,10 +67,6 @@ private slots:
 
     void setupWindowBackgroundAndMask(QPixmap background);
 
-    void onPatchOperationsStarted();
-
-    void onPatchOperationsFinished();
-
 private:
     void makeConnections();
 
@@ -104,9 +94,6 @@ private:
     HelpWidget *help_widget_;
     AboutWidget *about_widget_;
 
-    ChooseVersionDialog *choose_locale_dialog_;
-    DialogWindow *dialog_window_;
-
     QWidget* menu_hover_widget_;
     QPropertyAnimation* menu_hover_widget_animation_;
     QTimer menu_hover_checker_timer_;

+ 0 - 587
src/Legacy/widgets/settingswidget.cpp

@@ -1,587 +0,0 @@
-#include "ui_settingswidget.h"
-
-#include "models/settings.h"
-#include "models/filesystem.h"
-#include "models/patchdownloader.h"
-
-#include "widgets/settingswidget.h"
-#include "widgets/mainwindow.h"
-
-#include "constants.h"
-
-#include <QDebug>
-#include <QScrollBar>
-#include <QFileDialog>
-#include <QMetaObject>
-#include <QMessageBox>
-
-using namespace SettingsWidgetPrivate;
-
-SettingsWidget::SettingsWidget(QWidget *parent)
-    : QWidget(parent)
-    , ui(new Ui::SettingsWidget)
-{
-    settings_changed_ = false;
-
-    ui->setupUi(this);
-
-    combobox_scrolling_disabler = new ComboboxScrollingDisabler();
-    scroller = new SettingsTabsScroller({ui->sub_entry_1,
-                                         ui->sub_entry_2,
-                                         ui->sub_entry_3,
-                                         ui->sub_entry_4
-                                        },
-                                        ui->content_scroll_area);
-
-    ui->lotro_base_language_combobox->installEventFilter(combobox_scrolling_disabler);
-    ui->interface_scale_combobox->installEventFilter(combobox_scrolling_disabler);
-//    ui->content_scroll_area->verticalScrollBar()->installEventFilter(scroller);
-
-    ui->patch_installing_label->hide();
-    connect(&PatchInstaller::instance(), &PatchInstaller::started, this, &SettingsWidget::onPatchTotalOperationsStarted);
-    connect(&PatchInstaller::instance(), &PatchInstaller::finished, this, &SettingsWidget::onPatchTotalOperationsFinished);
-    connect(&PatchDownloader::instance(), &PatchDownloader::started, this, &SettingsWidget::onPatchTotalOperationsStarted);
-    connect(&PatchDownloader::instance(), &PatchDownloader::finished, this, &SettingsWidget::onPatchTotalOperationsFinished);
-
-    //    connect(legacy_patches, &PatchList::backupSettingsInfoChanged, this, &SettingsWidget::onBackupSettingsInfoChanged);
-//    connect(legacy_patches->getManager(), &LotroDatManager::statusChanged, this, &SettingsWidget::onLotroManagerProcessChanged);
-
-    ui->apply_changes_button->hide();
-    ui->apply_changes_label->hide();
-    ui->patch_installing_label->hide();
-    settings_backup_ = Settings::createSettingsBackup();
-    setActualParametersValues();
-}
-
-SettingsWidget::~SettingsWidget()
-{
-    delete combobox_scrolling_disabler;
-    delete scroller;
-    delete ui;
-}
-
-void SettingsWidget::setActualParametersValues()
-{
-    QString game_path = Settings::getValue("Lotro/game_path").toString();
-    if (game_path == "none") {
-        game_path = "Путь к файлам игры не выбран";
-    }
-    ui->game_folder_path->setText(game_path);
-
-
-    QString original_locale = Settings::getValue("Lotro/original_locale").toString();
-    int index = 0;
-
-    if (original_locale == "English")
-        index = 0;
-    if (original_locale == "DE")
-        index = 1;
-    if (original_locale == "FR")
-        index = 2;
-    ui->lotro_base_language_combobox->setCurrentIndex(index);
-
-    ui->skiprawdownload_checkbox->setChecked(Settings::getValue("Lotro/skip_raw_download").toBool());
-    ui->nosplashscreen_checkbox->setChecked(Settings::getValue("Lotro/no_splash_screen").toBool());
-
-    QString backup_status = Settings::getValue("Backup/installed").toBool() ? "Активна" : "Отсутствует";
-    ui->backup_status_value->setText(backup_status);
-    ui->backup_path_value->setText(QApplication::applicationDirPath() + Settings::getValue("Backup/path").toString());
-    QString backup_creation_time = Settings::getValue("Backup/creation_time").toString();
-    if (backup_creation_time == "none")
-        backup_creation_time = "-";
-    ui->backup_creation_time_value->setText(backup_creation_time);
-
-    ui->patch_texts_checkbox->setChecked(Settings::getValue("Components/texts_main").toBool());
-    ui->patch_items_checkbox->setChecked(Settings::getValue("Components/texts_items").toBool());
-    ui->patch_emotes_checkbox->setChecked(Settings::getValue("Components/texts_emotes").toBool());
-    ui->patch_maps_checkbox->setChecked(Settings::getValue("Components/maps").toBool());
-    ui->patch_loadscreens_checkbox->setChecked(Settings::getValue("Components/loadscreens").toBool());
-    ui->patch_textures_checkbox->setChecked(Settings::getValue("Components/textures").toBool());
-    ui->patch_sounds_checkbox->setChecked(Settings::getValue("Components/sounds").toBool());
-    ui->patch_video_checkbox->setChecked(Settings::getValue("Components/videos").toBool());
-    ui->micropatch_checkbox->setChecked(Settings::getValue("Components/micropatch").toBool());
-
-    int interface_scale = Settings::getValue("General/UI_scale").toInt();
-
-    int interface_scale_combobox_index = 0;
-    if (interface_scale == 50)
-        interface_scale_combobox_index = 0;
-    if (interface_scale == 75)
-        interface_scale_combobox_index = 1;
-    if (interface_scale == 100)
-        interface_scale_combobox_index = 2;
-    if (interface_scale == 125)
-        interface_scale_combobox_index = 3;
-    if (interface_scale == 150)
-        interface_scale_combobox_index = 4;
-    if (interface_scale == 175)
-        interface_scale_combobox_index = 5;
-    if (interface_scale == 200)
-        interface_scale_combobox_index = 6;
-
-    ui->interface_scale_combobox->setCurrentIndex(interface_scale_combobox_index);
-}
-
-void SettingsWidget::updateFontsSizes()
-{
-    ui->frame_title->setFont(trajan_10pt);
-    ui->group_label_1->setFont(trajan_9pt);
-    ui->group_label_2->setFont(trajan_9pt);
-    ui->group_label_3->setFont(trajan_9pt);
-    ui->group_label_4->setFont(trajan_9pt);
-
-    ui->patch_installing_label->setFont(crimson_12pt);
-    ui->apply_changes_button->setFont(trajan_10pt);
-
-    ui->sub_entry_1_title->setFont(garamond_11pt);
-    ui->sub_entry_2_title->setFont(garamond_11pt);
-    ui->sub_entry_3_title->setFont(garamond_11pt);
-    ui->sub_entry_4_title->setFont(garamond_11pt);
-
-    ui->backup_create_button->setFont(trajan_8pt);
-    ui->backup_restore_button->setFont(trajan_8pt);
-    ui->backup_remove_button->setFont(trajan_8pt);
-
-    ui->game_folder_label->setFont(crimson_11pt);
-    ui->game_folder_path->setFont(crimson_11pt);
-    ui->lotro_base_language_label->setFont(crimson_11pt);
-    ui->lotro_base_language_combobox->setFont(crimson_11pt);
-    ui->lotro_base_language_combobox->insertItem(ui->lotro_base_language_combobox->count(), ""); // is needed to invoke elements resize
-    ui->lotro_base_language_combobox->removeItem(ui->lotro_base_language_combobox->count() - 1);
-    ui->skiprawdownload_checkbox->setFont(crimson_11pt);
-    ui->nosplashscreen_checkbox->setFont(crimson_11pt);
-
-    ui->backup_status_label->setFont(crimson_11pt);
-    ui->backup_status_value->setFont(crimson_11pt);
-    ui->backup_creation_time_label->setFont(crimson_11pt);
-    ui->backup_creation_time_value->setFont(crimson_11pt);
-    ui->backup_path_label->setFont(crimson_11pt);
-    ui->backup_path_value->setFont(crimson_11pt);
-
-    ui->patch_emotes_checkbox->setFont(crimson_11pt);
-    ui->patch_items_checkbox->setFont(crimson_11pt);
-    ui->patch_loadscreens_checkbox->setFont(crimson_11pt);
-    ui->patch_maps_checkbox->setFont(crimson_11pt);
-    ui->patch_sounds_checkbox->setFont(crimson_11pt);
-    ui->patch_textures_checkbox->setFont(crimson_11pt);
-    ui->patch_video_checkbox->setFont(crimson_11pt);
-    ui->patch_texts_checkbox->setFont(crimson_11pt);
-
-    ui->micropatch_checkbox->setFont(crimson_11pt);
-    ui->interface_scale_label->setFont(crimson_11pt);
-    ui->interface_scale_combobox->setFont(crimson_11pt);
-    ui->interface_scale_combobox->insertItem(ui->interface_scale_combobox->count(), "250%"); // is needed to invoke elements resize
-    ui->interface_scale_combobox->removeItem(ui->interface_scale_combobox->count() - 1);
-
-    ui->texts_block_label->setFont(crimson_12pt);
-    ui->graphics_block_label->setFont(crimson_12pt);
-    ui->sounds_block_label->setFont(crimson_12pt);
-}
-
-void SettingsWidget::resizeEvent(QResizeEvent *)
-{
-    updateFontsSizes();
-    double coefficient = window_width / default_window_width;
-
-    ui->frame_title->move(QPoint(45, 33) * coefficient);
-    ui->frame_title->resize(QSize(201, 21) * coefficient);
-    ui->checkpoints_list->move(QPoint(25, 70) * coefficient);
-    ui->checkpoints_list->resize(QSize(265, 451) * coefficient);
-
-    ui->content_scroll_area->move(QPoint(310, 0) * coefficient);
-    ui->content_scroll_area->resize(QSize(671, 521) * coefficient);
-    ui->content_widget->setMinimumWidth(650 * coefficient);
-
-    ui->change_folder_button->setMinimumSize(QSize(36, 32) * coefficient);
-
-    ui->patch_texts_icon->setMinimumSize(QSize(80, 80) * coefficient);
-    ui->patch_graphics_icon->setMinimumSize(QSize(80, 80) * coefficient);
-    ui->patch_sounds_icon->setMinimumSize(QSize(80, 80) * coefficient);
-    ui->apply_changes_button->setMinimumSize(QSize(160, 60) * coefficient);
-}
-
-void SettingsWidget::onLotroManagerProcessChanged(PatchInstaller::Status status)
-{
-//    if (status.status != LOTRO_DAT::DatStatus::E_BACKUP_CREATING &&
-//            status.status != LOTRO_DAT::DatStatus::E_BACKUP_REMOVING &&
-//            status.status != LOTRO_DAT::DatStatus::E_BACKUP_RESTORING) {
-//        return;
-//    }
-
-//    QString operation;
-//    if (status.status == LOTRO_DAT::DatStatus::E_BACKUP_CREATING) {
-//        operation = "Создание копии";
-//    }
-//    if (status.status == LOTRO_DAT::DatStatus::E_BACKUP_REMOVING) {
-//        operation = "Удаление копии";
-//    }
-//    if (status.status == LOTRO_DAT::DatStatus::E_BACKUP_RESTORING) {
-//        operation = "Восстановление данных";
-//    }
-
-//    operation = operation + " " + QString::number(status.percentage, 'f', 1) + "%";
-//    ui->backup_status_value->setText(operation);
-}
-
-void SettingsWidget::onBackupSettingsInfoChanged()
-{
-    settings_backup_["Backup/installed"] = Settings::getValue("Backup/installed");
-    settings_backup_["Backup/path"] = Settings::getValue("Backup/path");
-    settings_backup_["Backup/creation_time"] = Settings::getValue("Backup/creation_time");
-
-    QString backup_status = Settings::getValue("Backup/installed").toBool() ? "Активна" : "Отсутствует";
-    ui->backup_status_value->setText(backup_status);
-
-    ui->backup_path_value->setText(QApplication::applicationDirPath() + Settings::getValue("Backup/path").toString());
-
-    QString backup_creation_time = Settings::getValue("Backup/creation_time").toString();
-    if (backup_creation_time == "none")
-        backup_creation_time = "-";
-    ui->backup_creation_time_value->setText(backup_creation_time);
-}
-
-void SettingsWidget::processParameterChange() {
-    if (!settings_changed_) {
-        settings_changed_ = true;
-        emit SettingsChanged();
-        ui->apply_changes_label->show();
-        ui->apply_changes_button->show();
-    }
-}
-
-void SettingsWidget::checkIfParametersWereReset() {
-    if (settings_changed_ && settings_backup_ == Settings::createSettingsBackup()) {
-        settings_changed_ = false;
-        emit SettingsReset();
-        ui->apply_changes_label->hide();
-        ui->apply_changes_button->hide();
-    }
-}
-
-void SettingsWidget::on_change_folder_button_clicked()
-{
-    QStringList known_paths = FileSystem::recognizeRegistryLotroPath();
-    QString template_path = known_paths.empty() ? "" : known_paths[0];
-    QString str = QFileDialog::getOpenFileName(0, "Расположение игры", template_path, "LotroLauncher.exe");
-
-    if (str.isEmpty()) {
-        return;
-    }
-
-    QString game_folder= str.replace("/LotroLauncher.exe", "").replace("\\", "/").replace("//", "/") + "/";
-
-    if (settings_backup_["Lotro/game_path"].toString() == game_folder) {
-        return;
-    }
-
-    processParameterChange();
-    settings_backup_["Lotro/game_path"] = game_folder;
-    ui->game_folder_path->setText(game_folder);
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_lotro_base_language_combobox_currentIndexChanged(int index)
-{
-    QString value = "English";
-
-    if (index == 0)
-        value = "English";
-    if (index == 1)
-        value = "DE";
-    if (index == 2)
-        value = "FR";
-
-    if (settings_backup_["Lotro/original_locale"].toString() == value) {
-        return;
-    }
-
-    processParameterChange();
-    settings_backup_["Lotro/original_locale"] = value;
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_skiprawdownload_checkbox_stateChanged(int arg1) {
-    if (arg1 == Qt::Checked) {
-        Settings::setValue("Lotro/skip_raw_download", true);
-        settings_backup_["Lotro/skip_raw_download"] = true;
-    }
-    if (arg1 == Qt::Unchecked) {
-        Settings::setValue("Lotro/skip_raw_download", false);
-        settings_backup_["Lotro/skip_raw_download"] = false;
-    }
-}
-
-void SettingsWidget::on_nosplashscreen_checkbox_stateChanged(int arg1)
-{
-    if (arg1 == Qt::Checked) {
-        Settings::setValue("Lotro/no_splash_screen", true);
-        settings_backup_["Lotro/no_splash_screen"] = true;
-    }
-    if (arg1 == Qt::Unchecked) {
-        Settings::setValue("Lotro/no_splash_screen", false);
-        settings_backup_["Lotro/no_splash_screen"] = false;
-    }
-}
-
-void SettingsWidget::on_backup_create_button_clicked()
-{
-    if (settings_changed_) {
-        QMessageBox::warning(nullptr, "Невозможно выполнить действие!", "Некоторые настройки были изменены. Чтобы создать резервную копию, примените или отмените изменения!");
-        return;
-    }
-
-    if (Settings::getValue("Backup/installed").toBool()) {
-        int result = QMessageBox::question(nullptr, "Подтвердите действие", "Резервная копия уже существует. Вы хотите перезаписать существующую копию?", QMessageBox::Yes, QMessageBox::No, QMessageBox::NoButton);
-        if (result != QMessageBox::Yes) {
-            return;
-        }
-    }
-
-//    QMetaObject::invokeMethod(legacy_patches_, "createBackup", Qt::QueuedConnection);
-}
-
-void SettingsWidget::on_backup_restore_button_clicked()
-{
-    if (!Settings::getValue("Backup/installed").toBool()) {
-        QMessageBox::warning(nullptr, "Невозможно выполнить действие.", "Резервная копия не найдена. Создайте резервную копию, чтобы иметь возможность восстановления данных.");
-        return;
-    }
-
-    if (settings_changed_) {
-        QMessageBox::warning(nullptr, "Невозможно выполнить действие.", "Некоторые настройки были изменены. Чтобы восстановить данные из резервной копии, примените или отмените изменения!");
-        return;
-    }
-
-//    QMetaObject::invokeMethod(legacy_patches_, "restoreFromBackup", Qt::QueuedConnection);
-}
-
-void SettingsWidget::on_backup_remove_button_clicked()
-{
-    if (Settings::getValue("Backup/installed").toBool()) {
-        int result = QMessageBox::question(nullptr, "Подтвердите действие", "Вы уверены, что хотите удалить существующую резервную копию?", QMessageBox::Yes, QMessageBox::No, QMessageBox::NoButton);
-        if (result != QMessageBox::Yes) {
-            return;
-        }
-    } else {
-        QMessageBox::information(nullptr, "Невозможно выполнить действие.", "Удаление невозможно: резервной копии не существует.");
-        return;
-    }
-
-//    QMetaObject::invokeMethod(legacy_patches_, "removeBackup", Qt::QueuedConnection);
-}
-
-void SettingsWidget::on_patch_texts_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_texts_checkbox->isChecked()) {
-        settings_backup_["Components/texts_main"] = true;
-    } else {
-        settings_backup_["Components/texts_main"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_items_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_items_checkbox->isChecked()) {
-        settings_backup_["Components/texts_items"] = true;
-    } else {
-        settings_backup_["Components/texts_items"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_emotes_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_emotes_checkbox->isChecked()) {
-        settings_backup_["Components/texts_emotes"] = true;
-    } else {
-        settings_backup_["Components/texts_emotes"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_maps_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_maps_checkbox->isChecked()) {
-        settings_backup_["Components/maps"] = true;
-    } else {
-        settings_backup_["Components/maps"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_textures_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_textures_checkbox->isChecked()) {
-        settings_backup_["Components/textures"] = true;
-    } else {
-        settings_backup_["Components/textures"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_loadscreens_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_loadscreens_checkbox->isChecked()) {
-        settings_backup_["Components/loadscreens"] = true;
-    } else {
-        settings_backup_["Components/loadscreens"] = false;
-    }
-    checkIfParametersWereReset();
-
-}
-
-void SettingsWidget::on_patch_sounds_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_sounds_checkbox->isChecked()) {
-        settings_backup_["Components/sounds"] = true;
-    } else {
-        settings_backup_["Components/sounds"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_video_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->patch_video_checkbox->isChecked()) {
-        settings_backup_["Components/videos"] = true;
-    } else {
-        settings_backup_["Components/videos"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_patch_force_apply_button_clicked()
-{
-    const auto isComponentActivated = [](QString component_name) -> bool {
-        return Settings::getValue("Components/" + component_name).toBool();
-    };
-
-    const bool texts_activated = (isComponentActivated("videos") || isComponentActivated("texts_main") || isComponentActivated("texts_items") || isComponentActivated("texts_emotes"));
-    const bool fonts_activated = (isComponentActivated("texts_main") || isComponentActivated("texts_items") || isComponentActivated("texts_emotes"));
-    const bool images_activated = isComponentActivated("maps");
-    const bool loadscreens_activated = isComponentActivated("loadscreens");
-    const bool textures_activated = isComponentActivated("textures");
-    const bool sounds_activated = isComponentActivated("sounds");
-    const bool videos_activated = isComponentActivated("videos");
-    const bool micropatch_activated = isComponentActivated("micropatch");
-
-    if (texts_activated)
-        Settings::setValue("DatabaseNeedInstall/text", true);
-    if (fonts_activated)
-        Settings::setValue("DatabaseNeedInstall/font", true);
-    if (images_activated)
-        Settings::setValue("DatabaseNeedInstall/image", true);
-    if (loadscreens_activated)
-        Settings::setValue("DatabaseNeedInstall/loadscreen", true);
-    if (textures_activated)
-        Settings::setValue("DatabaseNeedInstall/texture", true);
-    if (sounds_activated)
-        Settings::setValue("DatabaseNeedInstall/sound", true);
-    if (videos_activated)
-        Settings::setValue("DatabaseNeedInstall/video", true);
-    if (micropatch_activated)
-        Settings::setValue("DatabaseNeedInstall/micro", true);
-
-    QMetaObject::invokeMethod(&PatchDownloader::instance(), "startPatchDownloaderChain");
-}
-
-void SettingsWidget::on_micropatch_checkbox_clicked()
-{
-    processParameterChange();
-    if (ui->micropatch_checkbox->isChecked()) {
-        settings_backup_["Components/micropatch"] = true;
-    } else {
-        settings_backup_["Components/micropatch"] = false;
-    }
-    checkIfParametersWereReset();
-}
-
-void SettingsWidget::on_interface_scale_combobox_currentIndexChanged(const QString &arg1)
-{
-    MainWindow* window = qobject_cast<MainWindow*>(qApp->activeWindow());
-
-    if (!window) {
-        ui->interface_scale_combobox->setCurrentText(Settings::getValue("General/UI_scale").toString() + "%");
-        qDebug() << "CANNOT FIND MAIN WINDOW!!!";
-        return;
-    }
-
-    int value = arg1.left(arg1.length() - 1).toInt();
-    window->resize(default_window_width * value / 100, default_window_height * value / 100);
-
-    Settings::setValue("General/UI_scale", value);
-    settings_backup_["General/UI_scale"] = value;
-}
-
-void SettingsWidget::onPatchTotalOperationsStarted()
-{
-    patch_operations_running_++;
-    if (patch_operations_running_ == 1) {
-        ui->patch_installing_label->show();
-
-        ui->change_folder_button->setEnabled(false);
-        ui->lotro_base_language_combobox->setEnabled(false);
-
-        ui->backup_create_button->setEnabled(false);
-        ui->backup_restore_button->setEnabled(false);
-        ui->backup_remove_button->setEnabled(false);
-
-        ui->patch_texts_checkbox->setEnabled(false);
-        ui->patch_items_checkbox->setEnabled(false);
-        ui->patch_emotes_checkbox->setEnabled(false);
-        ui->patch_maps_checkbox->setEnabled(false);
-        ui->patch_textures_checkbox->setEnabled(false);
-        ui->patch_loadscreens_checkbox->setEnabled(false);
-        ui->patch_sounds_checkbox->setEnabled(false);
-        ui->patch_video_checkbox->setEnabled(false);
-        ui->patch_force_apply_button->setEnabled(false);
-        ui->micropatch_checkbox->setEnabled(false);
-    }
-}
-
-void SettingsWidget::onPatchTotalOperationsFinished()
-{
-    patch_operations_running_--;
-    if (patch_operations_running_ == 0) {
-        ui->patch_installing_label->hide();
-        settings_backup_ = Settings::createSettingsBackup();
-
-        ui->change_folder_button->setEnabled(true);
-        ui->lotro_base_language_combobox->setEnabled(true);
-
-        ui->backup_create_button->setEnabled(true);
-        ui->backup_restore_button->setEnabled(true);
-        ui->backup_remove_button->setEnabled(true);
-
-        ui->patch_texts_checkbox->setEnabled(true);
-        ui->patch_items_checkbox->setEnabled(true);
-        ui->patch_emotes_checkbox->setEnabled(true);
-        ui->patch_maps_checkbox->setEnabled(true);
-        ui->patch_textures_checkbox->setEnabled(true);
-        ui->patch_loadscreens_checkbox->setEnabled(true);
-        ui->patch_sounds_checkbox->setEnabled(true);
-        ui->patch_video_checkbox->setEnabled(true);
-        ui->patch_force_apply_button->setEnabled(true);
-        ui->micropatch_checkbox->setEnabled(true);
-    }
-}
-
-void SettingsWidget::on_apply_changes_button_clicked()
-{
-    Settings::restoreFromSettingsBackup(settings_backup_);
-    Settings::updatePatchComponentsDependencies();
-    settings_changed_ = false;
-    ui->apply_changes_label->hide();
-    ui->apply_changes_button->hide();
-    emit SettingsApplied();
-}
-

+ 0 - 188
src/Legacy/widgets/settingswidget.h

@@ -1,188 +0,0 @@
-#ifndef SettingsWidget_H
-#define SettingsWidget_H
-
-#include <QWidget>
-#include <QTimer>
-#include <QSettings>
-#include <QPropertyAnimation>
-#include <QPushButton>
-#include <QEvent>
-#include <QDebug>
-#include <QScrollArea>
-#include <QScrollBar>
-#include <QWheelEvent>
-
-#include "models/settings.h"
-#include "models/patchinstaller.h"
-
-namespace Ui {
-class SettingsWidget;
-}
-
-
-namespace SettingsWidgetPrivate {
-
-class ComboboxScrollingDisabler : public QObject {
-    Q_OBJECT
-
-protected:
-    bool eventFilter(QObject *, QEvent *event) override {
-        if (event->type() == QEvent::Wheel) {
-            event->ignore();
-            return true;
-        } else {
-            return false;
-        }
-    }
-};
-
-class SettingsTabsScroller : public QObject {
-public:
-    SettingsTabsScroller(QList<QWidget*> entries, QScrollArea* target_widget) : target_widget_(target_widget), current_entry_id_(0), entries_(std::move(entries)) {
-        scroll_entries_animation_ = new QPropertyAnimation(target_widget_->verticalScrollBar(), "value");
-        scroll_entries_animation_->setDuration(450);
-        scroll_entries_animation_->setEasingCurve(QEasingCurve::InOutQuart);
-    }
-
-    ~SettingsTabsScroller() {
-        scroll_entries_animation_->deleteLater();
-    }
-
-protected:
-    bool eventFilter(QObject *, QEvent *event) override {
-//        if (obj != target_widget_) {
-//            return false;
-//        }
-
-        if (event->type() == QEvent::Wheel) {
-            event->ignore();
-            QWheelEvent *wheel_event = (QWheelEvent*)(event);
-
-            int wheel_angle = wheel_event->angleDelta().y();
-
-            qDebug() << "SCROLL EVENT! " << wheel_event->pixelDelta() << "/" << wheel_event->angleDelta();
-
-            if (scroll_entries_animation_->state() == QPropertyAnimation::Running) {
-                return true;
-            }
-
-            if (wheel_angle < 0 && current_entry_id_ + 1 < entries_.size()) {
-                ++current_entry_id_;
-                scroll_entries_animation_->setStartValue(target_widget_->verticalScrollBar()->value());
-                scroll_entries_animation_->setEndValue(entries_[current_entry_id_]->y());
-                scroll_entries_animation_->start();
-                return true;
-            }
-
-            if (wheel_angle > 0 && current_entry_id_ - 1 >= 0) {
-                 --current_entry_id_;
-                 scroll_entries_animation_->setStartValue(target_widget_->verticalScrollBar()->value());
-                 scroll_entries_animation_->setEndValue(entries_[current_entry_id_]->y());
-                 scroll_entries_animation_->start();
-                 return true;
-            }
-
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-private:
-    QScrollArea* target_widget_;
-    int current_entry_id_;
-    QList<QWidget*> entries_;
-    QPropertyAnimation* scroll_entries_animation_;
-};
-}
-
-class SettingsWidget : public QWidget
-{
-    Q_OBJECT
-
-public:
-
-    explicit SettingsWidget(QWidget *parent = 0);
-
-    ~SettingsWidget();
-
-signals:
-    void SettingsChanged(); // Settings were changed so we should not do any actions until SettingsApplied() signal
-
-    void SettingsApplied(); // Need to re-initialise all environment and start updates check
-
-    void SettingsReset(); // Need to drop updates blockage, but do not re-initialize all environment
-
-public slots:
-    void setActualParametersValues();
-
-    void updateFontsSizes();
-
-protected:
-    void resizeEvent(QResizeEvent *event) override;
-
-private slots:
-    void onLotroManagerProcessChanged(PatchInstaller::Status status);
-
-    void onBackupSettingsInfoChanged();
-
-    void processParameterChange();
-
-    void checkIfParametersWereReset();
-
-    void on_interface_scale_combobox_currentIndexChanged(const QString &arg1);
-
-    void on_change_folder_button_clicked();
-
-    void on_lotro_base_language_combobox_currentIndexChanged(int index);
-
-    void onPatchTotalOperationsStarted();
-
-    void onPatchTotalOperationsFinished();
-
-    void on_skiprawdownload_checkbox_stateChanged(int arg1);
-
-    void on_nosplashscreen_checkbox_stateChanged(int arg1);
-
-    void on_backup_create_button_clicked();
-
-    void on_backup_restore_button_clicked();
-
-    void on_backup_remove_button_clicked();
-
-    void on_patch_texts_checkbox_clicked();
-
-    void on_patch_items_checkbox_clicked();
-
-    void on_patch_emotes_checkbox_clicked();
-
-    void on_patch_maps_checkbox_clicked();
-
-    void on_patch_textures_checkbox_clicked();
-
-    void on_patch_loadscreens_checkbox_clicked();
-
-    void on_patch_sounds_checkbox_clicked();
-
-    void on_patch_video_checkbox_clicked();
-
-    void on_patch_force_apply_button_clicked();
-
-    void on_micropatch_checkbox_clicked();
-
-    void on_apply_changes_button_clicked();
-
-
-private:
-    int patch_operations_running_ = 0;
-
-    Ui::SettingsWidget *ui = nullptr;
-
-    SettingsWidgetPrivate::ComboboxScrollingDisabler* combobox_scrolling_disabler = nullptr;
-    SettingsWidgetPrivate::SettingsTabsScroller* scroller = nullptr;
-
-    Settings::SettingsBackup settings_backup_;
-    bool settings_changed_ = false;
-};
-
-#endif // SettingsWidget_H

+ 0 - 1698
src/Legacy/widgets/settingswidget.ui

@@ -1,1698 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SettingsWidget</class>
- <widget class="QWidget" name="SettingsWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>1000</width>
-    <height>530</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <property name="styleSheet">
-   <string notr="true">QLabel, QRadioButton, QCheckBox {
-	color: white;
-}</string>
-  </property>
-  <widget class="QLabel" name="frame_title">
-   <property name="geometry">
-    <rect>
-     <x>45</x>
-     <y>33</y>
-     <width>201</width>
-     <height>21</height>
-    </rect>
-   </property>
-   <property name="font">
-    <font>
-     <family>Trajan Pro 3</family>
-     <pointsize>10</pointsize>
-     <kerning>false</kerning>
-    </font>
-   </property>
-   <property name="text">
-    <string>группы настроек</string>
-   </property>
-  </widget>
-  <widget class="QWidget" name="checkpoints_list" native="true">
-   <property name="geometry">
-    <rect>
-     <x>25</x>
-     <y>70</y>
-     <width>265</width>
-     <height>451</height>
-    </rect>
-   </property>
-   <layout class="QGridLayout" name="gridLayout_6">
-    <property name="leftMargin">
-     <number>20</number>
-    </property>
-    <property name="rightMargin">
-     <number>11</number>
-    </property>
-    <property name="bottomMargin">
-     <number>0</number>
-    </property>
-    <property name="horizontalSpacing">
-     <number>0</number>
-    </property>
-    <property name="verticalSpacing">
-     <number>15</number>
-    </property>
-    <item row="7" column="0">
-     <widget class="QWidget" name="apply_changes_button_widget" native="true">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="minimumSize">
-       <size>
-        <width>0</width>
-        <height>0</height>
-       </size>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_5">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <spacer name="horizontalSpacer">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>34</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item>
-        <widget class="QPushButton" name="apply_changes_button">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="minimumSize">
-          <size>
-           <width>160</width>
-           <height>60</height>
-          </size>
-         </property>
-         <property name="font">
-          <font>
-           <family>Trajan Pro 3</family>
-           <pointsize>11</pointsize>
-           <weight>50</weight>
-           <bold>false</bold>
-           <kerning>false</kerning>
-          </font>
-         </property>
-         <property name="autoFillBackground">
-          <bool>false</bool>
-         </property>
-         <property name="styleSheet">
-          <string notr="true">QPushButton#apply_changes_button { 
-	color: white;
-	border-image: url(:/buttons/button_big_normal.png);
-}
-
-QPushButton#apply_changes_button:hover {
-	color: white;
-	border-image: url(:/buttons/button_big_over.png);
-}
-
-QPushButton#apply_changes_button:pressed {
-	color: white;
-	border-image: url(:/buttons/button_big_pressed.png);
-}
-
-QPushButton#apply_changes_button:disabled {
-	color: white;
-	border-image: url(:/buttons/button_big_disabled.png);
-}
-</string>
-         </property>
-         <property name="text">
-          <string notr="true">  Применить  </string>
-         </property>
-         <property name="iconSize">
-          <size>
-           <width>0</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="default">
-          <bool>false</bool>
-         </property>
-         <property name="flat">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="horizontalSpacer_3">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>34</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="6" column="0">
-     <widget class="QLabel" name="patch_installing_label">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="styleSheet">
-       <string notr="true">color: red</string>
-      </property>
-      <property name="text">
-       <string>Выполняется установка русификации, изменение параметров недоступно</string>
-      </property>
-      <property name="alignment">
-       <set>Qt::AlignCenter</set>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-      <property name="textInteractionFlags">
-       <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-      </property>
-     </widget>
-    </item>
-    <item row="4" column="0">
-     <spacer name="verticalSpacer">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>60</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item row="2" column="0">
-     <widget class="QLabel" name="group_label_3">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="text">
-       <string>III. Выбор компонентов русификации</string>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-    <item row="3" column="0">
-     <widget class="QLabel" name="group_label_4">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="text">
-       <string>IV. Параметры Наследия</string>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-    <item row="0" column="0">
-     <widget class="QLabel" name="group_label_1">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="text">
-       <string>I. Параметры клиента игры</string>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-    <item row="1" column="0">
-     <widget class="QLabel" name="group_label_2">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="text">
-       <string>II. Параметры резервной копии</string>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-    <item row="5" column="0">
-     <widget class="QLabel" name="apply_changes_label">
-      <property name="font">
-       <font>
-        <family>Trajan Pro 3</family>
-        <pointsize>10</pointsize>
-       </font>
-      </property>
-      <property name="styleSheet">
-       <string notr="true">color: red</string>
-      </property>
-      <property name="text">
-       <string>Нажмите на кнопку &quot;Применить&quot;, чтобы изменения вступили в силу!</string>
-      </property>
-      <property name="alignment">
-       <set>Qt::AlignCenter</set>
-      </property>
-      <property name="wordWrap">
-       <bool>true</bool>
-      </property>
-      <property name="textInteractionFlags">
-       <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QScrollArea" name="content_scroll_area">
-   <property name="geometry">
-    <rect>
-     <x>310</x>
-     <y>0</y>
-     <width>671</width>
-     <height>521</height>
-    </rect>
-   </property>
-   <property name="mouseTracking">
-    <bool>true</bool>
-   </property>
-   <property name="styleSheet">
-    <string notr="true">QScrollArea {
-	border: 0px solid rgba(149, 149, 149, 155);
-	background: transparent;
-}
-
-QScrollBar:vertical {
-     border: 0px solid grey;
-     background: transparent;
-     width: 15px;
-     margin: 10px 5px 10px 0px;
- }
-
- QScrollBar::handle:vertical {
-	min-height: 10px;
-	background-color:rgba(0,0,0,80);
-	border-radius: 5px;
-	border: 1px solid #6d6867;
-
- }
- QScrollBar::add-line:vertical {
-     border: 0px solid grey;
-     background: transparent;
-     height: 1px;
-     subcontrol-position: bottom;
-     subcontrol-origin: margin;
- }
-
- QScrollBar::sub-line:vertical {
-     border: 0px solid grey;
-     background: transparent;
-     height: 1px;
-     subcontrol-position: top;
-     subcontrol-origin: margin;
- }
- QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
-     border: 0px;
-     width: 0px;
-     height: 0px;
-     background: transparent;
- }
-
- QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
-     background: none;
-	 height: 0px;
- }</string>
-   </property>
-   <property name="verticalScrollBarPolicy">
-    <enum>Qt::ScrollBarAlwaysOn</enum>
-   </property>
-   <property name="horizontalScrollBarPolicy">
-    <enum>Qt::ScrollBarAlwaysOff</enum>
-   </property>
-   <property name="widgetResizable">
-    <bool>true</bool>
-   </property>
-   <widget class="QWidget" name="content_widget">
-    <property name="geometry">
-     <rect>
-      <x>0</x>
-      <y>0</y>
-      <width>651</width>
-      <height>871</height>
-     </rect>
-    </property>
-    <property name="sizePolicy">
-     <sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding">
-      <horstretch>0</horstretch>
-      <verstretch>0</verstretch>
-     </sizepolicy>
-    </property>
-    <property name="maximumSize">
-     <size>
-      <width>651</width>
-      <height>16777215</height>
-     </size>
-    </property>
-    <property name="styleSheet">
-     <string notr="true">
-background: transparent;
-border: 0px;
-border-radius: 0px;
-</string>
-    </property>
-    <layout class="QVBoxLayout" name="verticalLayout_2">
-     <property name="spacing">
-      <number>11</number>
-     </property>
-     <property name="leftMargin">
-      <number>0</number>
-     </property>
-     <property name="topMargin">
-      <number>0</number>
-     </property>
-     <property name="rightMargin">
-      <number>0</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QWidget" name="sub_entry_1" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="styleSheet">
-        <string notr="true">QWidget#sub_entry_1{
-	background-color: rgba(31, 19, 7, 155);
-	border-radius: 5px;
-	border: 1px solid rgba(149, 149, 149, 155);
-    background-attachment: fixed;
-}</string>
-       </property>
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="verticalSpacing">
-         <number>10</number>
-        </property>
-        <item row="4" column="0">
-         <widget class="QCheckBox" name="nosplashscreen_checkbox">
-          <property name="font">
-           <font>
-            <family>Crimson Text</family>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>Пропускать заставочный экран при запуске игры</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="0">
-         <widget class="QLabel" name="sub_entry_1_title">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="font">
-           <font>
-            <family>EB Garamond</family>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>● ПАРАМЕТРЫ КЛИЕНТА ИГРЫ ●</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignCenter</set>
-          </property>
-          <property name="wordWrap">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QCheckBox" name="skiprawdownload_checkbox">
-          <property name="font">
-           <font>
-            <family>Crimson Text</family>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>Пропустить проверку видеороликов и экранов загрузки (ускоряет запуск игры)</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QWidget" name="widget_5" native="true">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>30</height>
-           </size>
-          </property>
-          <property name="font">
-           <font>
-            <pointsize>8</pointsize>
-           </font>
-          </property>
-          <layout class="QHBoxLayout" name="horizontalLayout_2">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="lotro_base_language_label">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="text">
-              <string>Какую версию игры локализовать?</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QComboBox" name="lotro_base_language_combobox">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::ClickFocus</enum>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">background: silver;
-color: black;
-border-radius: 3px;</string>
-             </property>
-             <property name="currentText">
-              <string>Английскую</string>
-             </property>
-             <property name="sizeAdjustPolicy">
-              <enum>QComboBox::AdjustToContentsOnFirstShow</enum>
-             </property>
-             <property name="frame">
-              <bool>true</bool>
-             </property>
-             <item>
-              <property name="text">
-               <string>Английскую</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>Немецкую</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>Французскую</string>
-              </property>
-             </item>
-            </widget>
-           </item>
-           <item>
-            <spacer name="horizontalSpacer_4">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QWidget" name="widget" native="true">
-          <layout class="QHBoxLayout" name="horizontalLayout">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="game_folder_label">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Расположение игры:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="game_folder_path">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>(не выбрано)</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QPushButton" name="change_folder_button">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>36</width>
-               <height>32</height>
-              </size>
-             </property>
-             <property name="cursor">
-              <cursorShape>PointingHandCursor</cursorShape>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::NoFocus</enum>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">border-image: url(:/buttons/folder.png);
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <widget class="QWidget" name="sub_entry_2" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="styleSheet">
-        <string notr="true">QWidget#sub_entry_2 {
-	background-color: rgba(31, 19, 7, 155);
-	border-radius: 5px;
-	border: 1px solid rgba(149, 149, 149, 155);
-    background-attachment: fixed;
-}</string>
-       </property>
-       <layout class="QGridLayout" name="gridLayout_5">
-        <property name="verticalSpacing">
-         <number>10</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="sub_entry_2_title">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="font">
-           <font>
-            <family>EB Garamond</family>
-            <pointsize>11</pointsize>
-            <weight>50</weight>
-            <bold>false</bold>
-            <kerning>false</kerning>
-           </font>
-          </property>
-          <property name="text">
-           <string>● ПАРАМЕТРЫ РЕЗЕРВНОЙ КОПИИ ●</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignCenter</set>
-          </property>
-          <property name="wordWrap">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QWidget" name="widget_6" native="true">
-          <property name="styleSheet">
-           <string notr="true">background:transparent;</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_8">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item row="1" column="0">
-            <widget class="QLabel" name="backup_creation_time_label">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Время создания:</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QLabel" name="backup_creation_time_value">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Активна</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QWidget" name="widget_2" native="true">
-          <property name="styleSheet">
-           <string notr="true">background:transparent;</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_3">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item row="0" column="0">
-            <widget class="QLabel" name="backup_status_label">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Статус копии:</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QLabel" name="backup_status_value">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Активна</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <widget class="QWidget" name="widget_8" native="true">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">background:transparent;</string>
-          </property>
-          <layout class="QHBoxLayout" name="horizontalLayout_4">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QPushButton" name="backup_create_button">
-             <property name="font">
-              <font>
-               <family>Trajan Pro 3</family>
-               <pointsize>8</pointsize>
-              </font>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::NoFocus</enum>
-             </property>
-             <property name="autoFillBackground">
-              <bool>false</bool>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">QPushButton {
-	color: black;
-    border: 2px solid #8f8f91;
-    border-radius: 6px;
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #f6f7fa, stop: 1 #dadbde);
-    min-width: 80px;
-}
- 
-QPushButton:pressed {
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #caccd3, stop: 1 #f6f7fa);
-}
- 
-QPushButton:flat {
-    border: none; /* no border for a flat push button */
-}
- 
-QPushButton:default {
-    border-color: navy; /* make the default button prominent */
-}</string>
-             </property>
-             <property name="text">
-              <string>Cоздать копию</string>
-             </property>
-             <property name="flat">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QPushButton" name="backup_restore_button">
-             <property name="font">
-              <font>
-               <family>EB Garamond</family>
-               <pointsize>9</pointsize>
-              </font>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::NoFocus</enum>
-             </property>
-             <property name="autoFillBackground">
-              <bool>false</bool>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">QPushButton {
-	color: black;
-    border: 2px solid #8f8f91;
-    border-radius: 6px;
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #f6f7fa, stop: 1 #dadbde);
-    min-width: 80px;
-}
- 
-QPushButton:pressed {
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #caccd3, stop: 1 #f6f7fa);
-}
- 
-QPushButton:flat {
-    border: none; /* no border for a flat push button */
-}
- 
-QPushButton:default {
-    border-color: navy; /* make the default button prominent */
-}</string>
-             </property>
-             <property name="text">
-              <string> Восстановить данные из копии </string>
-             </property>
-             <property name="flat">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QPushButton" name="backup_remove_button">
-             <property name="font">
-              <font>
-               <family>Trajan Pro 3</family>
-               <pointsize>8</pointsize>
-              </font>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::NoFocus</enum>
-             </property>
-             <property name="autoFillBackground">
-              <bool>false</bool>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">QPushButton {
-	color: black;
-    border: 2px solid #8f8f91;
-    border-radius: 6px;
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #f6f7fa, stop: 1 #dadbde);
-    min-width: 80px;
-}
- 
-QPushButton:pressed {
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #caccd3, stop: 1 #f6f7fa);
-}
- 
-QPushButton:flat {
-    border: none; /* no border for a flat push button */
-}
- 
-QPushButton:default {
-    border-color: navy; /* make the default button prominent */
-}</string>
-             </property>
-             <property name="text">
-              <string>Удалить копию</string>
-             </property>
-             <property name="flat">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QWidget" name="widget_7" native="true">
-          <property name="styleSheet">
-           <string notr="true">background:transparent;</string>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_7">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item row="1" column="0">
-            <widget class="QLabel" name="backup_path_label">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>Расположение:</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QLabel" name="backup_path_value">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">
-background-color: none;</string>
-             </property>
-             <property name="text">
-              <string>E:/Programming/SourceRepos/Legacy_v2/bin/Release/test/some_more_charactacters</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <widget class="QWidget" name="sub_entry_3" native="true">
-       <property name="styleSheet">
-        <string notr="true">QWidget#sub_entry_3 {
-	background-color: rgba(31, 19, 7, 155);
-	border-radius: 5px;
-	border: 1px solid rgba(149, 149, 149, 155);
-    background-attachment: fixed;
-}</string>
-       </property>
-       <layout class="QGridLayout" name="gridLayout_2">
-        <property name="verticalSpacing">
-         <number>10</number>
-        </property>
-        <item row="0" column="0" colspan="2">
-         <widget class="QLabel" name="sub_entry_3_title">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="font">
-           <font>
-            <family>EB Garamond</family>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>● ВЫБОР КОМПОНЕНТОВ РУСИФИКАЦИИ ●</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignCenter</set>
-          </property>
-          <property name="wordWrap">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="1">
-         <widget class="QWidget" name="patch_sounds_icon" native="true">
-          <property name="minimumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">border-image: url(:/patch_icons/zvuki-photo-normal.png);</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="QWidget" name="patch_graphics_icon" native="true">
-          <property name="minimumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">border-image: url(:/patch_icons/karty-photo-normal.png);</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <widget class="QWidget" name="sounds_block" native="true">
-          <layout class="QVBoxLayout" name="verticalLayout_4">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <property name="leftMargin">
-            <number>11</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="sounds_block_label">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>12</pointsize>
-              </font>
-             </property>
-             <property name="text">
-              <string>Озвучка</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_sounds_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Озвучка игровых персонажей</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_video_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Озвучка видеороликов (установка займёт много времени!)</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QWidget" name="patch_texts_icon" native="true">
-          <property name="minimumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>80</width>
-            <height>80</height>
-           </size>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">border-image: url(:/patch_icons/teksty-photo-normal.png);</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QWidget" name="texts_block" native="true">
-          <layout class="QVBoxLayout" name="verticalLayout">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="texts_block_label">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>12</pointsize>
-              </font>
-             </property>
-             <property name="text">
-              <string>Тексты</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_texts_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Основные тексты (интерфейс, задания и т.п.)</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_items_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Перевод предметов (отключите, если пользуетесь аукционом)</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_emotes_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Перевод эмоций </string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QWidget" name="graphics_block" native="true">
-          <layout class="QVBoxLayout" name="verticalLayout_3">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="graphics_block_label">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>12</pointsize>
-              </font>
-             </property>
-             <property name="text">
-              <string>Графика</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_maps_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Карты</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_textures_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Текстуры</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="patch_loadscreens_checkbox">
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-               <kerning>true</kerning>
-              </font>
-             </property>
-             <property name="text">
-              <string>Загрузочные экраны</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <widget class="QWidget" name="sub_entry_4" native="true">
-       <property name="styleSheet">
-        <string notr="true">QWidget#sub_entry_4 {
-	background-color: rgba(31, 19, 7, 155);
-	border-radius: 5px;
-	border: 1px solid rgba(149, 149, 149, 155);
-    background-attachment: fixed;
-}</string>
-       </property>
-       <layout class="QGridLayout" name="gridLayout_4">
-        <property name="verticalSpacing">
-         <number>10</number>
-        </property>
-        <item row="3" column="0">
-         <widget class="QWidget" name="widget_4" native="true">
-          <layout class="QHBoxLayout" name="horizontalLayout_3">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="interface_scale_label">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="text">
-              <string>Масштаб интерфейса:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QComboBox" name="interface_scale_combobox">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>80</width>
-               <height>0</height>
-              </size>
-             </property>
-             <property name="font">
-              <font>
-               <family>Crimson Text</family>
-               <pointsize>11</pointsize>
-              </font>
-             </property>
-             <property name="focusPolicy">
-              <enum>Qt::NoFocus</enum>
-             </property>
-             <property name="styleSheet">
-              <string notr="true">background: silver;
-color: black;
-border-radius: 3px;</string>
-             </property>
-             <property name="editable">
-              <bool>false</bool>
-             </property>
-             <property name="currentIndex">
-              <number>2</number>
-             </property>
-             <property name="sizeAdjustPolicy">
-              <enum>QComboBox::AdjustToContents</enum>
-             </property>
-             <item>
-              <property name="text">
-               <string>50%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>75%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>100%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>125%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>150%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>175%</string>
-              </property>
-             </item>
-             <item>
-              <property name="text">
-               <string>200%</string>
-              </property>
-             </item>
-            </widget>
-           </item>
-           <item>
-            <spacer name="horizontalSpacer_2">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="0" column="0">
-         <widget class="QLabel" name="sub_entry_4_title">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="font">
-           <font>
-            <family>EB Garamond</family>
-            <pointsize>10</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>● ПАРАМЕТРЫ НАСЛЕДИЯ ●</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignCenter</set>
-          </property>
-          <property name="wordWrap">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QCheckBox" name="micropatch_checkbox">
-          <property name="font">
-           <font>
-            <family>Crimson Text</family>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>Устанавливать самые свежие переводы (раньше появляются, 
-но могут содержать больше ошибок)</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QPushButton" name="patch_force_apply_button">
-          <property name="font">
-           <font>
-            <family>EB Garamond</family>
-            <pointsize>9</pointsize>
-           </font>
-          </property>
-          <property name="focusPolicy">
-           <enum>Qt::NoFocus</enum>
-          </property>
-          <property name="autoFillBackground">
-           <bool>false</bool>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">QPushButton {
-	color: black;
-    border: 2px solid #8f8f91;
-    border-radius: 6px;
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #f6f7fa, stop: 1 #dadbde);
-    min-width: 80px;
-}
- 
-QPushButton:pressed {
-    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                                      stop: 0 #caccd3, stop: 1 #f6f7fa);
-}
- 
-QPushButton:flat {
-    border: none; /* no border for a flat push button */
-}
- 
-QPushButton:default {
-    border-color: navy; /* make the default button prominent */
-}</string>
-          </property>
-          <property name="text">
-           <string>Переустановить все компоненты русификации</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-    </layout>
-   </widget>
-  </widget>
- </widget>
- <resources/>
- <connections/>
-</ui>