Browse Source

Finished with graphics design of SettingsWidget

Ivan Arkhipov 5 years ago
parent
commit
5bcfc52fc3

+ 5 - 0
src/Legacy/constants.h

@@ -4,6 +4,8 @@
 const double default_window_width = 1000;
 const double default_window_width = 1000;
 const double default_window_height = 648;
 const double default_window_height = 648;
 //10   11   13   16   17   19   20
 //10   11   13   16   17   19   20
+const double default_pixels_in_14_pt = 23;//14;
+const double default_pixels_in_13_pt = 21;//14;
 const double default_pixels_in_12_pt = 20;//14;
 const double default_pixels_in_12_pt = 20;//14;
 const double default_pixels_in_11_pt = 19;//13;
 const double default_pixels_in_11_pt = 19;//13;
 const double default_pixels_in_10_pt = 17;//12;
 const double default_pixels_in_10_pt = 17;//12;
@@ -16,6 +18,9 @@ const double default_pixels_in_6_pt = 10;//7;
 extern double window_height;
 extern double window_height;
 extern double window_width;
 extern double window_width;
 
 
+
+extern int pixels_in_14_pt;
+extern int pixels_in_13_pt;
 extern int pixels_in_12_pt;
 extern int pixels_in_12_pt;
 extern int pixels_in_11_pt;
 extern int pixels_in_11_pt;
 extern int pixels_in_10_pt;
 extern int pixels_in_10_pt;

+ 2 - 0
src/Legacy/main.cpp

@@ -15,6 +15,8 @@ double window_height = 1000;
 double window_width = 648;
 double window_width = 648;
 
 
 //10   11   13   16   17   19   20
 //10   11   13   16   17   19   20
+int pixels_in_14_pt = 23;//14;
+int pixels_in_13_pt = 21;//14;
 int pixels_in_12_pt = 20;//14;
 int pixels_in_12_pt = 20;//14;
 int pixels_in_11_pt = 19;//13;
 int pixels_in_11_pt = 19;//13;
 int pixels_in_10_pt = 17;//12;
 int pixels_in_10_pt = 17;//12;

+ 2 - 0
src/Legacy/models/lotrodatmanager.cpp

@@ -13,10 +13,12 @@
 #include <fstream>
 #include <fstream>
 
 
 Q_DECLARE_METATYPE(LOTRO_DAT::DatLocaleManager::LOCALE)
 Q_DECLARE_METATYPE(LOTRO_DAT::DatLocaleManager::LOCALE)
+Q_DECLARE_METATYPE(QVector<QVariant>)
 
 
 LotroDatManager::LotroDatManager(QSettings* settings, PatchDownloader* downloader, QObject *parent) :
 LotroDatManager::LotroDatManager(QSettings* settings, PatchDownloader* downloader, QObject *parent) :
     QObject(parent), app_settings(settings), patch_downloader(downloader) {
     QObject(parent), app_settings(settings), patch_downloader(downloader) {
 
 
+    qRegisterMetaType<QVector<QVariant>>();
     qRegisterMetaType<LOTRO_DAT::DatLocaleManager::LOCALE>();
     qRegisterMetaType<LOTRO_DAT::DatLocaleManager::LOCALE>();
 }
 }
 
 

+ 3 - 2
src/Legacy/models/lotrodatmanager.h

@@ -22,9 +22,10 @@ public:
 
 
     bool NotPatched();
     bool NotPatched();
 
 
-    bool IsRusificationActive();
+// TODO:
+//    bool IsRusificationActive();
 
 
-    int getPercent();
+//    int getPercent();
 
 
 public slots:
 public slots:
     void InitialiseManager();
     void InitialiseManager();

+ 303 - 18
src/Legacy/widgets/aboutwidget.ui

@@ -6,8 +6,8 @@
    <rect>
    <rect>
     <x>0</x>
     <x>0</x>
     <y>0</y>
     <y>0</y>
-    <width>709</width>
-    <height>540</height>
+    <width>1000</width>
+    <height>538</height>
    </rect>
    </rect>
   </property>
   </property>
   <property name="windowTitle">
   <property name="windowTitle">
@@ -16,26 +16,311 @@
   <property name="styleSheet">
   <property name="styleSheet">
    <string notr="true">color: white;</string>
    <string notr="true">color: white;</string>
   </property>
   </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <property name="leftMargin">
-    <number>0</number>
+  <widget class="QLabel" name="order_label">
+   <property name="geometry">
+    <rect>
+     <x>45</x>
+     <y>33</y>
+     <width>201</width>
+     <height>21</height>
+    </rect>
    </property>
    </property>
-   <property name="topMargin">
-    <number>20</number>
+   <property name="font">
+    <font>
+     <family>Trajan Pro 3</family>
+     <pointsize>9</pointsize>
+     <kerning>false</kerning>
+    </font>
    </property>
    </property>
-   <property name="rightMargin">
-    <number>0</number>
+   <property name="text">
+    <string>НАСЛЕДИЕ v 2.0.0</string>
    </property>
    </property>
-   <property name="bottomMargin">
-    <number>0</number>
+  </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>
    </property>
-   <property name="horizontalSpacing">
-    <number>0</number>
-   </property>
-   <property name="verticalSpacing">
-    <number>10</number>
-   </property>
-  </layout>
+   <layout class="QGridLayout" name="gridLayout">
+    <item row="0" column="0" colspan="3">
+     <widget class="QPushButton" name="create_backup_button">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="autoFillBackground">
+       <bool>false</bool>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">QPushButton {
+background-color:rgba(0,0,0,100);
+border-radius: 5px;
+border: 1px solid qlineargradient(spread:reflect, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(33, 24, 12, 255), stop:0.5 rgba(126, 97, 61, 255), stop:1 rgba(33, 24, 1, 255));
+}
+ 
+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>
+    <item row="2" column="0" colspan="3">
+     <widget class="QPushButton" name="create_backup_button_3">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="autoFillBackground">
+       <bool>false</bool>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">QPushButton {
+background-color:rgba(0,0,0,100);
+border-radius: 5px;
+border: 1px solid qlineargradient(spread:reflect, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(33, 24, 12, 255), stop:0.5 rgba(126, 97, 61, 255), stop:1 rgba(33, 24, 1, 255));
+}
+ 
+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>
+    <item row="1" column="0" colspan="3">
+     <widget class="QPushButton" name="create_backup_button_2">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="autoFillBackground">
+       <bool>false</bool>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">QPushButton {
+background-color:rgba(0,0,0,100);
+border-radius: 5px;
+border: 1px solid qlineargradient(spread:reflect, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(33, 24, 12, 255), stop:0.5 rgba(126, 97, 61, 255), stop:1 rgba(33, 24, 1, 255));
+}
+ 
+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>
+    <item row="3" column="0" colspan="3">
+     <widget class="QPushButton" name="create_backup_button_4">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="autoFillBackground">
+       <bool>false</bool>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">QPushButton {
+background-color:rgba(0,0,0,100);
+border-radius: 5px;
+border: 1px solid qlineargradient(spread:reflect, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(33, 24, 12, 255), stop:0.5 rgba(126, 97, 61, 255), stop:1 rgba(33, 24, 1, 255));
+}
+ 
+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>
+    <item row="4" column="0" colspan="3">
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>240</width>
+        <height>136</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="6" column="0" colspan="2">
+     <widget class="QLabel" name="label_3">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="text">
+       <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Клиентская часть: &lt;br/&gt;&lt;span style=&quot; font-family:'Aniron'; color:#00ff00;&quot;&gt;Endevir&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+      </property>
+      <property name="alignment">
+       <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+      </property>
+      <property name="wordWrap">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="5" column="0" colspan="3">
+     <widget class="QLabel" name="label_2">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>10</pointsize>
+       </font>
+      </property>
+      <property name="text">
+       <string>Powered by:</string>
+      </property>
+      <property name="wordWrap">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="8" column="0" colspan="2">
+     <widget class="QLabel" name="label_8">
+      <property name="font">
+       <font>
+        <family>Trajan Pro 3</family>
+        <pointsize>8</pointsize>
+       </font>
+      </property>
+      <property name="text">
+       <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Серверная часть: &lt;br/&gt;&lt;span style=&quot; font-family:'Aniron'; color:#00aaff;&quot;&gt;Coder&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+      </property>
+      <property name="alignment">
+       <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+      </property>
+      <property name="wordWrap">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="8" column="2">
+     <widget class="QLabel" name="label_7">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="minimumSize">
+       <size>
+        <width>50</width>
+        <height>50</height>
+       </size>
+      </property>
+      <property name="font">
+       <font>
+        <family>AngryBirds</family>
+        <pointsize>7</pointsize>
+       </font>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">border-image: url(:/characters/coder_av.png);</string>
+      </property>
+      <property name="text">
+       <string/>
+      </property>
+      <property name="wordWrap">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="6" column="2">
+     <widget class="QLabel" name="label_9">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="minimumSize">
+       <size>
+        <width>50</width>
+        <height>50</height>
+       </size>
+      </property>
+      <property name="font">
+       <font>
+        <family>Aniron</family>
+        <pointsize>7</pointsize>
+       </font>
+      </property>
+      <property name="styleSheet">
+       <string notr="true">border-image: url(:/characters/endevir_av.jpg);</string>
+      </property>
+      <property name="text">
+       <string/>
+      </property>
+      <property name="wordWrap">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
  </widget>
  </widget>
  <resources/>
  <resources/>
  <connections/>
  <connections/>

+ 2 - 2
src/Legacy/widgets/helpwidget.cpp

@@ -25,8 +25,8 @@ void HelpWidget::handleContentScrolling(int value)
     if (scrollAreaContentsAnimation && scrollAreaContentsAnimation->state() == QAbstractAnimation::Running)
     if (scrollAreaContentsAnimation && scrollAreaContentsAnimation->state() == QAbstractAnimation::Running)
         return;
         return;
 
 
-    qDebug() << "VALUE CHANGED: " << value << ui->content_scroll_area->verticalScrollBar()->maximum();
-    QPushButton* new_active_entry = ui->menuentry_2;
+//    qDebug() << "VALUE CHANGED: " << value << ui->content_scroll_area->verticalScrollBar()->maximum();
+    QPushButton* new_active_entry = ui->menuentry_1;
     if (value >= ui->sub_entry_1->y() + ui->sub_entry_1->height() * 2 / 3)
     if (value >= ui->sub_entry_1->y() + ui->sub_entry_1->height() * 2 / 3)
         new_active_entry = ui->menuentry_2;
         new_active_entry = ui->menuentry_2;
     if (value >= ui->sub_entry_2->y() + ui->sub_entry_2->height() * 2 / 3)
     if (value >= ui->sub_entry_2->y() + ui->sub_entry_2->height() * 2 / 3)

+ 74 - 18
src/Legacy/widgets/helpwidget.ui

@@ -93,7 +93,7 @@ QPushButton:default {
 }</string>
 }</string>
       </property>
       </property>
       <property name="text">
       <property name="text">
-       <string>♦ Установка русификации</string>
+       <string>♦ Как русифицировать?</string>
       </property>
       </property>
       <property name="flat">
       <property name="flat">
        <bool>true</bool>
        <bool>true</bool>
@@ -136,7 +136,7 @@ QPushButton:default {
 }</string>
 }</string>
       </property>
       </property>
       <property name="text">
       <property name="text">
-       <string>♦ Обновление игры</string>
+       <string>♦ Как обновлять игру?</string>
       </property>
       </property>
       <property name="flat">
       <property name="flat">
        <bool>true</bool>
        <bool>true</bool>
@@ -179,7 +179,7 @@ QPushButton:default {
 }</string>
 }</string>
       </property>
       </property>
       <property name="text">
       <property name="text">
-       <string>♦ Исправление ошибок</string>
+       <string>♦ Произошла ошибка?</string>
       </property>
       </property>
       <property name="flat">
       <property name="flat">
        <bool>true</bool>
        <bool>true</bool>
@@ -222,7 +222,7 @@ QPushButton:default {
 }</string>
 }</string>
       </property>
       </property>
       <property name="text">
       <property name="text">
-       <string>♦ Использование плагинов</string>
+       <string>♦ Плагины и русификация</string>
       </property>
       </property>
       <property name="flat">
       <property name="flat">
        <bool>true</bool>
        <bool>true</bool>
@@ -265,7 +265,7 @@ QPushButton:default {
 }</string>
 }</string>
       </property>
       </property>
       <property name="text">
       <property name="text">
-       <string>♦ Обратиться за помощью</string>
+       <string>♦ Где попросить помощи?</string>
       </property>
       </property>
       <property name="flat">
       <property name="flat">
        <bool>true</bool>
        <bool>true</bool>
@@ -438,16 +438,14 @@ QPushButton#game_button:pressed {
    </property>
    </property>
    <property name="styleSheet">
    <property name="styleSheet">
     <string notr="true">QScrollArea {
     <string notr="true">QScrollArea {
-	background-color: rgba(31, 19, 7, 155);
-	border-radius: 5px;
-	border: 1px solid rgba(149, 149, 149, 155);
-    background-attachment: fixed;
+	border: 0px solid rgba(149, 149, 149, 155);
+	background: transparent;
 }
 }
 
 
 QScrollBar:vertical {
 QScrollBar:vertical {
      border: 0px solid grey;
      border: 0px solid grey;
      background: transparent;
      background: transparent;
-     width: 0px;
+     width: 15px;
      margin: 10px 5px 10px 0px;
      margin: 10px 5px 10px 0px;
  }
  }
 
 
@@ -492,9 +490,9 @@ QScrollBar:vertical {
     <property name="geometry">
     <property name="geometry">
      <rect>
      <rect>
       <x>0</x>
       <x>0</x>
-      <y>0</y>
-      <width>649</width>
-      <height>1150</height>
+      <y>-719</y>
+      <width>636</width>
+      <height>1160</height>
      </rect>
      </rect>
     </property>
     </property>
     <property name="sizePolicy">
     <property name="sizePolicy">
@@ -511,8 +509,31 @@ border-radius: 0px;
 </string>
 </string>
     </property>
     </property>
     <layout class="QVBoxLayout" name="verticalLayout_2">
     <layout class="QVBoxLayout" name="verticalLayout_2">
+     <property name="spacing">
+      <number>15</number>
+     </property>
+     <property name="leftMargin">
+      <number>0</number>
+     </property>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>10</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
+     </property>
      <item>
      <item>
       <widget class="QWidget" name="sub_entry_1" native="true">
       <widget class="QWidget" name="sub_entry_1" native="true">
+       <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">
        <layout class="QGridLayout" name="gridLayout">
         <item row="0" column="0">
         <item row="0" column="0">
          <widget class="QLabel" name="label_6">
          <widget class="QLabel" name="label_6">
@@ -523,7 +544,9 @@ border-radius: 0px;
            </font>
            </font>
           </property>
           </property>
           <property name="text">
           <property name="text">
-           <string>SUB_ENTRY_1 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.</string>
+           <string>SUB_ENTRY_1
+Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.
+Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.</string>
           </property>
           </property>
           <property name="wordWrap">
           <property name="wordWrap">
            <bool>true</bool>
            <bool>true</bool>
@@ -535,6 +558,14 @@ border-radius: 0px;
      </item>
      </item>
      <item>
      <item>
       <widget class="QWidget" name="sub_entry_2" native="true">
       <widget class="QWidget" name="sub_entry_2" native="true">
+       <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">
        <layout class="QGridLayout" name="gridLayout_5">
         <item row="0" column="0">
         <item row="0" column="0">
          <widget class="QLabel" name="label_7">
          <widget class="QLabel" name="label_7">
@@ -545,7 +576,8 @@ border-radius: 0px;
            </font>
            </font>
           </property>
           </property>
           <property name="text">
           <property name="text">
-           <string>SUB_ENTRY_2 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.</string>
+           <string>SUB_ENTRY_2 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.
+Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.</string>
           </property>
           </property>
           <property name="wordWrap">
           <property name="wordWrap">
            <bool>true</bool>
            <bool>true</bool>
@@ -557,6 +589,14 @@ border-radius: 0px;
      </item>
      </item>
      <item>
      <item>
       <widget class="QWidget" name="sub_entry_3" native="true">
       <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">
        <layout class="QGridLayout" name="gridLayout_2">
         <item row="0" column="0">
         <item row="0" column="0">
          <widget class="QLabel" name="label_8">
          <widget class="QLabel" name="label_8">
@@ -567,7 +607,7 @@ border-radius: 0px;
            </font>
            </font>
           </property>
           </property>
           <property name="text">
           <property name="text">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_3 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_3 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.\nТоварищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           </property>
           <property name="wordWrap">
           <property name="wordWrap">
            <bool>true</bool>
            <bool>true</bool>
@@ -579,6 +619,14 @@ border-radius: 0px;
      </item>
      </item>
      <item>
      <item>
       <widget class="QWidget" name="sub_entry_4" native="true">
       <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">
        <layout class="QGridLayout" name="gridLayout_4">
         <item row="0" column="0">
         <item row="0" column="0">
          <widget class="QLabel" name="label_9">
          <widget class="QLabel" name="label_9">
@@ -589,7 +637,7 @@ border-radius: 0px;
            </font>
            </font>
           </property>
           </property>
           <property name="text">
           <property name="text">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_4 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_4 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.\nТоварищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           </property>
           <property name="wordWrap">
           <property name="wordWrap">
            <bool>true</bool>
            <bool>true</bool>
@@ -601,6 +649,14 @@ border-radius: 0px;
      </item>
      </item>
      <item>
      <item>
       <widget class="QWidget" name="sub_entry_5" native="true">
       <widget class="QWidget" name="sub_entry_5" native="true">
+       <property name="styleSheet">
+        <string notr="true">QWidget#sub_entry_5{
+	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_3">
        <layout class="QGridLayout" name="gridLayout_3">
         <item row="0" column="0">
         <item row="0" column="0">
          <widget class="QLabel" name="label_10">
          <widget class="QLabel" name="label_10">
@@ -611,7 +667,7 @@ border-radius: 0px;
            </font>
            </font>
           </property>
           </property>
           <property name="text">
           <property name="text">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_5 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;SUB_ENTRY_5 Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.\nТоварищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Равным образом постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения дальнейших направлений развития. Значимость этих проблем настолько очевидна, что сложившаяся структура организации способствует подготовки и реализации соответствующий условий активизации.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           </property>
           <property name="wordWrap">
           <property name="wordWrap">
            <bool>true</bool>
            <bool>true</bool>

+ 12 - 10
src/Legacy/widgets/mainwindow.cpp

@@ -25,8 +25,10 @@ MainWindow::MainWindow(QWidget *parent) :
     QMainWindow(parent, Qt::Window | Qt::FramelessWindowHint),
     QMainWindow(parent, Qt::Window | Qt::FramelessWindowHint),
     ui(new Ui::MainWindow), menuHoverWidget(nullptr), menuHoverWidgetAnimation(nullptr)
     ui(new Ui::MainWindow), menuHoverWidget(nullptr), menuHoverWidgetAnimation(nullptr)
 {
 {
-    setObjectName("ApplicationMainWindow");
+//    setObjectName("ApplicationMainWindow");
     ui->setupUi(this);
     ui->setupUi(this);
+    ui->centralWidget->setStyleSheet(styleSheet());
+
     currently_active_entry = ui->menuentry_1;
     currently_active_entry = ui->menuentry_1;
     currently_hover_entry = nullptr;
     currently_hover_entry = nullptr;
 
 
@@ -64,8 +66,6 @@ MainWindow::MainWindow(QWidget *parent) :
     ui->content_layout->addWidget(help_widget);
     ui->content_layout->addWidget(help_widget);
     ui->content_layout->addWidget(about_widget);
     ui->content_layout->addWidget(about_widget);
 
 
-    ui->centralWidget->setStyleSheet("");
-
     hideAllContentWidgets();
     hideAllContentWidgets();
     status_widget->show();
     status_widget->show();
 
 
@@ -126,13 +126,15 @@ void MainWindow::resizeEvent(QResizeEvent * event)
     window_width = width;
     window_width = width;
     window_height = height;
     window_height = height;
 
 
-    pixels_in_12_pt = floor(default_pixels_in_12_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
-    pixels_in_11_pt = floor(default_pixels_in_11_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
-    pixels_in_10_pt = floor(default_pixels_in_10_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
-    pixels_in_9_pt = floor(default_pixels_in_9_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
-    pixels_in_8_pt = floor(default_pixels_in_8_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
-    pixels_in_7_pt = floor(default_pixels_in_7_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
-    pixels_in_6_pt = floor(default_pixels_in_6_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
+    pixels_in_14_pt = round(default_pixels_in_14_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
+    pixels_in_13_pt = round(default_pixels_in_13_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
+    pixels_in_12_pt = round(default_pixels_in_12_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
+    pixels_in_11_pt = round(default_pixels_in_11_pt * window_width * dpi / (default_window_width * default_dpi)+ 0.0001);
+    pixels_in_10_pt = round(default_pixels_in_10_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
+    pixels_in_9_pt = round(default_pixels_in_9_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
+    pixels_in_8_pt = round(default_pixels_in_8_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
+    pixels_in_7_pt = round(default_pixels_in_7_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
+    pixels_in_6_pt = round(default_pixels_in_6_pt * window_width * dpi / (default_window_width * default_dpi) + 0.0001);
 
 
 //    qDebug() << "AAAAAAAAAAAAAA: " << pixels_in_6_pt << " " << pixels_in_7_pt << " " << pixels_in_8_pt << " " << pixels_in_9_pt << " " << pixels_in_10_pt << " " << pixels_in_11_pt << " " << pixels_in_12_pt;
 //    qDebug() << "AAAAAAAAAAAAAA: " << pixels_in_6_pt << " " << pixels_in_7_pt << " " << pixels_in_8_pt << " " << pixels_in_9_pt << " " << pixels_in_10_pt << " " << pixels_in_11_pt << " " << pixels_in_12_pt;
 
 

+ 157 - 5
src/Legacy/widgets/settingswidget.cpp

@@ -1,33 +1,185 @@
 #include "widgets/settingswidget.h"
 #include "widgets/settingswidget.h"
 #include "widgets/mainwindow.h"
 #include "widgets/mainwindow.h"
-#include "ui_SettingsWidget.h"
+#include "ui_settingswidget.h"
 #include "models/filesystem.h"
 #include "models/filesystem.h"
 #include "models/lotrodatmanager.h"
 #include "models/lotrodatmanager.h"
+#include "models/patchdownloader.h"
+#include "constants.h"
 
 
 #include <QDebug>
 #include <QDebug>
 #include <QScrollBar>
 #include <QScrollBar>
 #include <QFileDialog>
 #include <QFileDialog>
 #include <QMetaObject>
 #include <QMetaObject>
 
 
-
 SettingsWidget::SettingsWidget(QSettings* settings, PatchDownloader* patch_downloader, LotroDatManager* lotro_dat_manager, QWidget *parent) :
 SettingsWidget::SettingsWidget(QSettings* settings, PatchDownloader* patch_downloader, LotroDatManager* lotro_dat_manager, QWidget *parent) :
     QWidget(parent), app_settings(settings), patch_updater(patch_downloader), lotro_manager(lotro_dat_manager),
     QWidget(parent), app_settings(settings), patch_updater(patch_downloader), lotro_manager(lotro_dat_manager),
     ui(new Ui::SettingsWidget)
     ui(new Ui::SettingsWidget)
 {
 {
     ui->setupUi(this);
     ui->setupUi(this);
+    for (int i = 1; i <= 4; ++i)
+        setStatusToBlock(i, E_ERROR);
+
+    combobox_scrolling_disabler = new SettingsWidgetPrivate::ComboboxScrollingDisabler();
+
+    ui->lotro_base_language_combobox->installEventFilter(combobox_scrolling_disabler);
+    ui->interface_scale_combobox->installEventFilter(combobox_scrolling_disabler);
+
+    connect(patch_downloader, &PatchDownloader::checkForUpdatesStarted, this, &SettingsWidget::handleCheckForUpdatesStarted, Qt::QueuedConnection);
+    connect(patch_downloader, &PatchDownloader::checkForUpdatesFinished, this, &SettingsWidget::handleCheckForUpdatesFinished, Qt::QueuedConnection);
+    connect(lotro_manager, &LotroDatManager::processStarted, this, &SettingsWidget::handleLotroManagerStarted);
+    connect(lotro_manager, &LotroDatManager::processFinished, this, &SettingsWidget::handleLotroManagerFinished);
+
 }
 }
 
 
 SettingsWidget::~SettingsWidget()
 SettingsWidget::~SettingsWidget()
 {
 {
+    delete combobox_scrolling_disabler;
     delete ui;
     delete ui;
 }
 }
 
 
-void SettingsWidget::on_interface_scale_combobox_common_currentIndexChanged(const QString &arg1)
+void SettingsWidget::updateFontsSizes()
+{
+    QFont trajan_9pt = ui->frame_title->font();
+    trajan_9pt.setPixelSize(pixels_in_9_pt);
+
+    ui->frame_title->setFont(trajan_9pt);
+    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);
+
+    QFont trajan_8pt = ui->sub_entry_1_tip->font();
+    trajan_8pt.setPixelSize(pixels_in_8_pt);
+
+    ui->sub_entry_1_tip->setFont(trajan_8pt);
+    ui->sub_entry_2_tip->setFont(trajan_8pt);
+    ui->sub_entry_3_tip->setFont(trajan_8pt);
+
+    ui->backup_create_button->setFont(trajan_8pt);
+    ui->backup_restore_button->setFont(trajan_8pt);
+    ui->backup_remove_button->setFont(trajan_8pt);
+    ui->reinstall_rusification_button->setFont(trajan_8pt);
+
+    QFont trajan_11pt = ui->sub_entry_1_title->font();
+    trajan_11pt.setPixelSize(pixels_in_11_pt);
+
+    ui->sub_entry_1_title->setFont(trajan_11pt);
+    ui->sub_entry_2_title->setFont(trajan_11pt);
+    ui->sub_entry_3_title->setFont(trajan_11pt);
+    ui->sub_entry_4_title->setFont(trajan_11pt);
+
+    ui->patch_apply_button->setFont(trajan_11pt);
+
+    QFont garamond_11pt = ui->game_folder_label->font();
+    garamond_11pt.setPixelSize(pixels_in_11_pt);
+
+    ui->game_folder_label->setFont(garamond_11pt);
+    ui->game_folder_path->setFont(garamond_11pt);
+    ui->lotro_base_language_label->setFont(garamond_11pt);
+    ui->lotro_base_language_combobox->setFont(garamond_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(garamond_11pt);
+    ui->nosplashscreen_checkbox->setFont(garamond_11pt);
+    ui->backup_status_label->setFont(garamond_11pt);
+    ui->backup_status_value->setFont(garamond_11pt);
+    ui->backup_creation_time_label->setFont(garamond_11pt);
+    ui->backup_creation_time_value->setFont(garamond_11pt);
+    ui->backup_path_label->setFont(garamond_11pt);
+    ui->backup_path_value->setFont(garamond_11pt);
+
+    ui->patch_emotes_checkbox->setFont(garamond_11pt);
+    ui->patch_fonts_checkbox->setFont(garamond_11pt);
+    ui->patch_items_checkbox->setFont(garamond_11pt);
+    ui->patch_loadscreens_checkbox->setFont(garamond_11pt);
+    ui->patch_maps_checkbox->setFont(garamond_11pt);
+    ui->patch_sounds_checkbox->setFont(garamond_11pt);
+    ui->patch_textures_checkbox->setFont(garamond_11pt);
+    ui->patch_video_checkbox->setFont(garamond_11pt);
+    ui->patch_texts_checkbox->setFont(garamond_11pt);
+
+    ui->micropatch_checkbox->setFont(garamond_11pt);
+    ui->interface_scale_label->setFont(garamond_11pt);
+    ui->interface_scale_combobox->setFont(garamond_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);
+    QFont garamond_13pt = ui->texts_block_label->font();
+    garamond_13pt.setPixelSize(pixels_in_13_pt);
+
+
+    ui->texts_block_label->setFont(garamond_13pt);
+    ui->graphics_block_label->setFont(garamond_13pt);
+    ui->sounds_block_label->setFont(garamond_13pt);
+}
+
+void SettingsWidget::setStatusToBlock(int block_id, SettingsWidget::E_STATUS status)
+{
+    QWidget* widget = ui->checkpoints_list->findChild<QWidget*>("group_status_icon_" + QString::number(block_id));
+    if (!widget)
+        return;
+
+    if (status == E_NONE)
+        widget->setStyleSheet("");
+    if (status == E_OK)
+        widget->setStyleSheet("border-image: url(:/status/ok_icon.png);");
+    if (status == E_WARNING)
+        widget->setStyleSheet("border-image: url(:/status/alert_icon.png);");
+    if (status == E_ERROR)
+        widget->setStyleSheet("border-image: url(:/status/error_icon.png);");
+}
+
+void SettingsWidget::resizeEvent(QResizeEvent *event)
+{
+    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, 321) * coefficient);
+    ui->content_scroll_area->move(QPoint(310, 0) * coefficient);
+    ui->content_scroll_area->resize(QSize(671, 521) * coefficient);
+
+    ui->group_status_icon_1->setMinimumSize(QSize(25, 25) * coefficient);
+    ui->group_status_icon_2->setMinimumSize(QSize(25, 25) * coefficient);
+    ui->group_status_icon_3->setMinimumSize(QSize(25, 25) * coefficient);
+    ui->group_status_icon_4->setMinimumSize(QSize(25, 25) * 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->patch_apply_button->setMinimumHeight(double(55) * coefficient);
+}
+
+void SettingsWidget::handleLotroManagerStarted(QString, QVector<QVariant>)
+{
+
+}
+
+void SettingsWidget::handleLotroManagerFinished(QString, QVector<QVariant>)
+{
+
+}
+
+void SettingsWidget::handleCheckForUpdatesStarted()
+{
+
+}
+
+void SettingsWidget::handleCheckForUpdatesFinished()
+{
+
+}
+
+void SettingsWidget::on_interface_scale_combobox_currentIndexChanged(const QString &arg1)
 {
 {
     MainWindow* window = qobject_cast<MainWindow*>(qApp->activeWindow());
     MainWindow* window = qobject_cast<MainWindow*>(qApp->activeWindow());
 
 
     if (!window) {
     if (!window) {
-        ui->interface_scale_combobox_common->setCurrentText(app_settings->value("general/ui_scale", 100).toString() + "%");
+        ui->interface_scale_combobox->setCurrentText(app_settings->value("general/ui_scale", 100).toString() + "%");
         qDebug() << "CANNOT FIND MAIN WINDOW!!!";
         qDebug() << "CANNOT FIND MAIN WINDOW!!!";
         return;
         return;
     }
     }
@@ -52,7 +204,7 @@ void SettingsWidget::on_change_folder_button_clicked()
     QMetaObject::invokeMethod(lotro_manager, "InitialiseManager", Qt::QueuedConnection);
     QMetaObject::invokeMethod(lotro_manager, "InitialiseManager", Qt::QueuedConnection);
 }
 }
 
 
-void SettingsWidget::on_lotro_language_combobox_currentIndexChanged(int index)
+void SettingsWidget::on_lotro_base_language_combobox_currentIndexChanged(int index)
 {
 {
     QString value = "";
     QString value = "";
     if (index == 0)
     if (index == 0)

+ 43 - 2
src/Legacy/widgets/settingswidget.h

@@ -6,6 +6,8 @@
 #include <QSettings>
 #include <QSettings>
 #include <QPropertyAnimation>
 #include <QPropertyAnimation>
 #include <QPushButton>
 #include <QPushButton>
+#include <QEvent>
+#include <QDebug>
 
 
 namespace Ui {
 namespace Ui {
 class SettingsWidget;
 class SettingsWidget;
@@ -14,23 +16,61 @@ class SettingsWidget;
 class PatchDownloader;
 class PatchDownloader;
 class LotroDatManager;
 class LotroDatManager;
 
 
+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 SettingsWidget : public QWidget
 class SettingsWidget : public QWidget
 {
 {
     Q_OBJECT
     Q_OBJECT
 
 
 public:
 public:
+
     explicit SettingsWidget(QSettings* settings, PatchDownloader* patch_downloader, LotroDatManager* lotro_dat_manager, QWidget *parent = 0);
     explicit SettingsWidget(QSettings* settings, PatchDownloader* patch_downloader, LotroDatManager* lotro_dat_manager, QWidget *parent = 0);
 
 
     ~SettingsWidget();
     ~SettingsWidget();
 
 
+    enum E_STATUS {
+        E_NONE = 0,
+        E_ERROR = -2,
+        E_WARNING = -1,
+        E_OK = 1
+    };
+
+public slots:
+    void updateFontsSizes();
+    void setStatusToBlock(int block_id, E_STATUS status);
+
+protected:
+    void resizeEvent(QResizeEvent *event) override;
 
 
 private slots:
 private slots:
 
 
-    void on_interface_scale_combobox_common_currentIndexChanged(const QString &arg1);
+    void handleLotroManagerStarted(QString, QVector<QVariant>);
+
+    void handleLotroManagerFinished(QString, QVector<QVariant>);
+
+    void handleCheckForUpdatesStarted();
+
+    void handleCheckForUpdatesFinished();
+
+    void on_interface_scale_combobox_currentIndexChanged(const QString &arg1);
 
 
     void on_change_folder_button_clicked();
     void on_change_folder_button_clicked();
 
 
-    void on_lotro_language_combobox_currentIndexChanged(int index);
+    void on_lotro_base_language_combobox_currentIndexChanged(int index);
 
 
 private:
 private:
     QSettings* app_settings;
     QSettings* app_settings;
@@ -38,6 +78,7 @@ private:
     LotroDatManager* lotro_manager;
     LotroDatManager* lotro_manager;
 
 
     Ui::SettingsWidget *ui;
     Ui::SettingsWidget *ui;
+    SettingsWidgetPrivate::ComboboxScrollingDisabler* combobox_scrolling_disabler;
 };
 };
 
 
 #endif // SettingsWidget_H
 #endif // SettingsWidget_H

File diff suppressed because it is too large
+ 342 - 289
src/Legacy/widgets/settingswidget.ui


+ 25 - 13
src/Legacy/widgets/statuswidget.ui

@@ -169,10 +169,13 @@ border-image: url(:/characters/galadriel_with_text.png);
     <property name="font">
     <property name="font">
      <font>
      <font>
       <family>Trajan Pro 3</family>
       <family>Trajan Pro 3</family>
-      <pointsize>11</pointsize>
+      <pointsize>12</pointsize>
       <italic>true</italic>
       <italic>true</italic>
      </font>
      </font>
     </property>
     </property>
+    <property name="styleSheet">
+     <string/>
+    </property>
     <property name="text">
     <property name="text">
      <string>Кликните по еженедельному коду, чтобы скопировать его в буфер обмена</string>
      <string>Кликните по еженедельному коду, чтобы скопировать его в буфер обмена</string>
     </property>
     </property>
@@ -195,12 +198,12 @@ border-image: url(:/characters/galadriel_with_text.png);
     <property name="font">
     <property name="font">
      <font>
      <font>
       <family>Trajan Pro 3</family>
       <family>Trajan Pro 3</family>
-      <pointsize>11</pointsize>
+      <pointsize>12</pointsize>
       <italic>true</italic>
       <italic>true</italic>
      </font>
      </font>
     </property>
     </property>
     <property name="styleSheet">
     <property name="styleSheet">
-     <string notr="true">o</string>
+     <string notr="true"/>
     </property>
     </property>
     <property name="text">
     <property name="text">
      <string>Кликайте по заголовку новости, чтобы открыть её в браузере</string>
      <string>Кликайте по заголовку новости, чтобы открыть её в браузере</string>
@@ -224,10 +227,13 @@ border-image: url(:/characters/galadriel_with_text.png);
     <property name="font">
     <property name="font">
      <font>
      <font>
       <family>Trajan Pro 3</family>
       <family>Trajan Pro 3</family>
-      <pointsize>11</pointsize>
+      <pointsize>12</pointsize>
       <italic>false</italic>
       <italic>false</italic>
      </font>
      </font>
     </property>
     </property>
+    <property name="styleSheet">
+     <string/>
+    </property>
     <property name="text">
     <property name="text">
      <string>Еженедельный код успешно скопирован в буфер обмена!</string>
      <string>Еженедельный код успешно скопирован в буфер обмена!</string>
     </property>
     </property>
@@ -241,7 +247,7 @@ border-image: url(:/characters/galadriel_with_text.png);
    <widget class="QWidget" name="patches_status" native="true">
    <widget class="QWidget" name="patches_status" native="true">
     <property name="geometry">
     <property name="geometry">
      <rect>
      <rect>
-      <x>70</x>
+      <x>80</x>
       <y>30</y>
       <y>30</y>
       <width>371</width>
       <width>371</width>
       <height>101</height>
       <height>101</height>
@@ -260,6 +266,12 @@ border-image: url(:/characters/galadriel_with_text.png);
      <property name="bottomMargin">
      <property name="bottomMargin">
       <number>0</number>
       <number>0</number>
      </property>
      </property>
+     <property name="horizontalSpacing">
+      <number>7</number>
+     </property>
+     <property name="verticalSpacing">
+      <number>5</number>
+     </property>
      <item row="0" column="0">
      <item row="0" column="0">
       <widget class="QLabel" name="texts_label">
       <widget class="QLabel" name="texts_label">
        <property name="sizePolicy">
        <property name="sizePolicy">
@@ -271,7 +283,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -284,7 +296,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -303,7 +315,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -316,7 +328,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -335,7 +347,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -348,7 +360,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -367,7 +379,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">
@@ -380,7 +392,7 @@ border-image: url(:/characters/galadriel_with_text.png);
        <property name="font">
        <property name="font">
         <font>
         <font>
          <family>Trajan Pro 3</family>
          <family>Trajan Pro 3</family>
-         <pointsize>9</pointsize>
+         <pointsize>8</pointsize>
         </font>
         </font>
        </property>
        </property>
        <property name="text">
        <property name="text">

Some files were not shown because too many files changed in this diff