Sisyphus
: 17 2019 | : 17500 | : 15287871
en ru br
ALT
S:0.9.12.2-alt1
5.1: 0.9.8-alt1.M51.1
www.altlinux.org/Changes

::
: scantailor

             Sources      Gear   Bugs and FR  Repocop 

: scantailor-alt-priority.patch



diff --git a/scantailor/MainWindow.cpp b/scantailor/MainWindow.cpp
index 114b1f5..44d07ee 100644
--- a/scantailor/MainWindow.cpp
+++ b/scantailor/MainWindow.cpp
@@ -86,6 +86,7 @@
 #include <QVBoxLayout>
 #include <QLayoutItem>
 #include <QScrollBar>
+#include <QSettings>
 #include <QPushButton>
 #include <QCheckBox>
 #include <QFileInfo>
@@ -126,9 +127,11 @@ MainWindow::MainWindow()
 	
 	setupUi(this);
 
-#if !defined(ENABLE_OPENGL)
+#if ( !defined(ENABLE_OPENGL) && !defined( Q_OS_LINUX))
 	// Right now the only setting is 3D acceleration, so get rid of
 	// the whole Settings dialog, if it's inaccessible.
+	// If it is Linux, we have another important option in Settings
+	// dialog - Worker thread priority.
 	actionSettings->setVisible(false);
 #endif
 
@@ -420,7 +423,23 @@ MainWindow::createBatchProcessingWidget()
 		tr("Beep when finished"), lower_panel
 	);
 	lower_layout->addWidget(m_pBeepOnBatchProcessingCompletion);
-	
+
+#if !defined( Q_OS_LINUX)
+    QHBoxLayout* priority_layout = new QHBoxLayout( lower_panel);
+    QComboBox * priority_selector = new QComboBox( lower_panel);
+    priority_selector->addItem( tr("Normal"));
+    priority_selector->addItem( tr("Low"));
+    priority_selector->addItem( tr("Lowest"));
+    priority_selector->addItem( tr("Idle"));
+
+    priority_selector->setCurrentIndex( 
+        QSettings().value("settings/worker_thread_priority", 3).toInt());
+
+    priority_layout->addWidget( priority_selector);
+    priority_layout->addWidget( new QLabel( 
+        tr("Batch processing priority"), lower_panel));
+	lower_layout->addLayout( priority_layout);
+#endif
 	layout->addWidget(stop_btn, 1, 1, Qt::AlignCenter);
 	layout->addWidget(lower_panel, 2, 0, 1, 3, Qt::AlignHCenter|Qt::AlignTop);
 	layout->setColumnStretch(0, 1);
@@ -429,6 +448,10 @@ MainWindow::createBatchProcessingWidget()
 	layout->setRowStretch(2, 1);
 	
 	connect(stop_btn, SIGNAL(clicked()), SLOT(stopBatchProcessing()));
+
+#if !defined( Q_OS_LINUX)
+	connect(priority_selector, SIGNAL(currentIndexChanged( int)), SLOT(prioritySelectionChanged( int)));
+#endif
 }
 
 void
@@ -953,6 +976,13 @@ MainWindow::stopBatchProcessing(MainAreaAction main_area)
 	}
 }
 
+
+void 
+MainWindow::prioritySelectionChanged( int selection)
+{
+    QSettings().setValue("settings/worker_thread_priority", selection);
+}
+
 void
 MainWindow::filterResult(BackgroundTaskPtr const& task, FilterResultPtr const& result)
 {
diff --git a/scantailor/MainWindow.h b/scantailor/MainWindow.h
index e41b48f..b68eb10 100644
--- a/scantailor/MainWindow.h
+++ b/scantailor/MainWindow.h
@@ -110,6 +110,8 @@ private slots:
 	void startBatchProcessing();
 	
 	void stopBatchProcessing(MainAreaAction main_area = LOAD_IMAGE);
+
+    void prioritySelectionChanged( int selection);
 	
 	void invalidateThumbnailSlot(PageId const& page_id);
 	
diff --git a/scantailor/SettingsDialog.cpp b/scantailor/SettingsDialog.cpp
index bad6152..8669160 100644
--- a/scantailor/SettingsDialog.cpp
+++ b/scantailor/SettingsDialog.cpp
@@ -20,6 +20,8 @@
 #include "SettingsDialog.h.moc"
 #include "OpenGLSupport.h"
 #include "config.h"
+
+#include <QMessageBox>
 #include <QSettings>
 #include <QVariant>
 
@@ -46,6 +48,12 @@ SettingsDialog::SettingsDialog(QWidget* parent)
 	}
 #endif
 
+#if defined( Q_OS_LINUX)
+    ui.workerThreadPriority->setToolTip( tr("Requires restart of the program ScanTailor"));
+#endif
+	ui.workerThreadPriority->setCurrentIndex( 
+		settings.value("settings/worker_thread_priority", 3).toInt());
+
 	connect(ui.buttonBox, SIGNAL(accepted()), SLOT(commitChanges()));
 }
 
@@ -60,4 +68,17 @@ SettingsDialog::commitChanges()
 #ifdef ENABLE_OPENGL
 	settings.setValue("settings/use_3d_acceleration", ui.use3DAcceleration->isChecked());
 #endif
+    if( settings.value("settings/worker_thread_priority", 3).toInt() 
+                  != ui.workerThreadPriority->currentIndex())
+    {
+	    settings.setValue("settings/worker_thread_priority", 
+		    ui.workerThreadPriority->currentIndex());
+
+#if defined( Q_OS_LINUX)
+        QMessageBox::information( this, tr("Priority"), 
+           tr("Batch processing priority will be\
+ adjusted only after restart of ScanTailor."));
+#endif
+    }
 }
+
diff --git a/scantailor/WorkerThread.cpp b/scantailor/WorkerThread.cpp
index 3a4a9fb..c334133 100644
--- a/scantailor/WorkerThread.cpp
+++ b/scantailor/WorkerThread.cpp
@@ -15,14 +15,19 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-
 #include "WorkerThread.h"
 #include "WorkerThread.h.moc"
 #include <QCoreApplication>
-#include <QThread>
 #include <QEvent>
+#include <QSettings>
+#include <QThread>
 #include <assert.h>
 
+#if defined( Q_OS_LINUX) // For Linux resetPriority
+#include <unistd.h>
+#include <sys/resource.h>
+#endif
+
 class WorkerThread::Dispatcher : public QObject
 {
 public:
@@ -46,6 +51,8 @@ protected:
 	virtual void run();
 	
 	virtual void customEvent(QEvent* event);
+protected:
+	void resetPriority();
 private:
 	WorkerThread& m_rOwner;
 	Dispatcher m_dispatcher;
@@ -168,17 +175,82 @@ WorkerThread::Impl::performTask(BackgroundTaskPtr const& task)
 void
 WorkerThread::Impl::run()
 {
+	resetPriority();
 	exec();
 }
 
 void
 WorkerThread::Impl::customEvent(QEvent* event)
 {
+#if !defined( Q_OS_LINUX)
+	resetPriority();
+#endif
 	TaskResultEvent* evt = dynamic_cast<TaskResultEvent*>(event);
 	assert(evt);
 	m_rOwner.emitTaskResult(evt->task(), evt->result());
 }
 
+#if defined( Q_OS_LINUX)
+int workerThreadPriorityToPOSIXNiceLevel(WorkerThread::Priority priority)
+{
+	switch (priority) {
+		case WorkerThread::Normal: 
+			return 0;
+		case WorkerThread::Low:
+			return 6;
+		case WorkerThread::Lowest:
+			return 12;
+		case WorkerThread::Idle:
+		default:
+			return 19;
+	}
+}
+#else
+QThread::Priority workerThreadPriorityToQThreadPriority(WorkerThread::Priority priority)
+{
+	switch (priority) {
+		case WorkerThread::Normal: 
+			return QThread::NormalPriority;
+		case WorkerThread::Low:
+			return QThread::LowPriority;
+		case WorkerThread::Lowest:
+			return QThread::LowestPriority;
+		case WorkerThread::Idle:
+		default:
+			return QThread::IdlePriority;
+	}
+}
+#endif
+
+// Different approach is required for Windows and Linux.
+// In Linux with nptl each thread is treated as an individual process.
+// Thus QThread can not adjust Thread Priority relatively to
+// the main thread of the process. So, we need to use regular
+// POSIX functions to adjust current thread priority.
+//
+// So, resetPriority in Linux! should be run only within Impl::run().
+void 
+WorkerThread::Impl::resetPriority()
+{
+	assert(isRunning());
+	
+	if(!isRunning()) {
+		return; // To avoid priority adjustment of the main thread in Linux!
+	}
+
+	WorkerThread::Priority priority = 
+		static_cast<WorkerThread::Priority>(
+			QSettings().value("settings/worker_thread_priority", 3).toInt());
+#if defined( Q_OS_LINUX)
+	// Changing the priority of CURRENT thread! Thus we should run resetPriority only from run() in Linux!
+	setpriority(PRIO_PROCESS, 0,
+		workerThreadPriorityToPOSIXNiceLevel(priority));
+#else
+	QThread::setPriority( 
+		workerThreadPriorityToQThreadPriority(priority));
+#endif
+}
+
 
 /*====================== WorkerThread::PerformTaskEvent ====================*/
 
@@ -199,3 +271,4 @@ WorkerThread::TaskResultEvent::TaskResultEvent(
 	m_ptrResult(result)
 {
 }
+
diff --git a/scantailor/WorkerThread.h b/scantailor/WorkerThread.h
index 4c239a6..979fe1e 100644
--- a/scantailor/WorkerThread.h
+++ b/scantailor/WorkerThread.h
@@ -30,6 +30,17 @@ class WorkerThread : public QObject
 	Q_OBJECT
 	DECLARE_NON_COPYABLE(WorkerThread)
 public:
+    // Numbers should be the same as indices
+    // in priority_selector ComboBox in 
+    // MainWindow::createBatchProcessingWidget!!!
+	enum Priority 
+	{
+		Normal = 0,
+		Low = 1,
+		Lowest = 2,
+		Idle = 3
+	};
+public:
 	WorkerThread(QObject* parent = 0);
 	
 	~WorkerThread();
diff --git a/scantailor/translations/scantailor_ru.ts b/scantailor/translations/scantailor_ru.ts
index 50ac203..403e4ac 100644
--- a/scantailor/translations/scantailor_ru.ts
+++ b/scantailor/translations/scantailor_ru.ts
@@ -2,24 +2,97 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="ru">
 <context>
+    <name>CrashReportDialog</name>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="14"/>
+        <source>Crash Report</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="20"/>
+        <source>Scan Tailor crashed.  That&apos;s usually caused by errors in the software.  You can help us find and fix the problem by submitting this crash report.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="30"/>
+        <source>Information to be sent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="63"/>
+        <source>If you have additional information, for example you know how to reproduce the crash, please provide it here.
+English or Russian please.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="71"/>
+        <source>If you are willing to provide further assistance to developers to help fix this problem, please provide your email address.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/ui/CrashReportDialog.ui" line="81"/>
+        <source>Email [optional]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="71"/>
+        <source>This file contains the internal state of the program when it crashed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="77"/>
+        <source>Dump file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="105"/>
+        <source>Sending ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="136"/>
+        <source>Unexpected response (code %1) from dispatcher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="161"/>
+        <source>Unexpected response from dispatcher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="221"/>
+        <source>Unexpected response (code %1) from the receiving side</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../crash_reporter/CrashReportDialog.cpp" line="227"/>
+        <source>Successfully sent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DeskewOptionsWidget</name>
     <message>
         <location filename="../filters/deskew/ui/DeskewOptionsWidget.ui" line="13"/>
+        <location filename="../filters/deskew/ui_DeskewOptionsWidget.h" line="119"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/deskew/ui/DeskewOptionsWidget.ui" line="19"/>
+        <location filename="../filters/deskew/ui_DeskewOptionsWidget.h" line="120"/>
         <source>Deskew</source>
         <translation>Компенсация наклона</translation>
     </message>
     <message>
         <location filename="../filters/deskew/ui/DeskewOptionsWidget.ui" line="40"/>
+        <location filename="../filters/deskew/ui_DeskewOptionsWidget.h" line="121"/>
         <source>Auto</source>
         <translation>Автоматически</translation>
     </message>
     <message>
         <location filename="../filters/deskew/ui/DeskewOptionsWidget.ui" line="56"/>
+        <location filename="../filters/deskew/ui_DeskewOptionsWidget.h" line="122"/>
         <source>Manual</source>
         <translation>Вручную</translation>
     </message>
@@ -36,16 +109,19 @@
     <name>ErrorWidget</name>
     <message>
         <location filename="../ui/ErrorWidget.ui" line="13"/>
+        <location filename="../ui_ErrorWidget.h" line="90"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/ErrorWidget.ui" line="54"/>
+        <location filename="../ui_ErrorWidget.h" line="92"/>
         <source>ImageLabel</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/ErrorWidget.ui" line="61"/>
+        <location filename="../ui_ErrorWidget.h" line="93"/>
         <source>TextLabel</source>
         <translation></translation>
     </message>
@@ -85,36 +161,43 @@
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="13"/>
+        <location filename="../ui_FixDpiDialog.h" line="159"/>
         <source>Fix DPI</source>
         <translation>Исправить DPI</translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="23"/>
+        <location filename="../ui_FixDpiDialog.h" line="160"/>
         <source>Tab 1</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="33"/>
+        <location filename="../ui_FixDpiDialog.h" line="161"/>
         <source>Tab 2</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="46"/>
+        <location filename="../ui_FixDpiDialog.h" line="162"/>
         <source>DPI</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="69"/>
+        <location filename="../ui_FixDpiDialog.h" line="165"/>
         <source>Custom</source>
         <translation>Особый</translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="90"/>
+        <location filename="../ui_FixDpiDialog.h" line="167"/>
         <source>x</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/FixDpiDialog.ui" line="113"/>
+        <location filename="../ui_FixDpiDialog.h" line="168"/>
         <source>Apply</source>
         <translation>Применить</translation>
     </message>
@@ -123,21 +206,25 @@
     <name>FixDpiSinglePageDialog</name>
     <message>
         <location filename="../ui/FixDpiSinglePageDialog.ui" line="13"/>
+        <location filename="../ui_FixDpiSinglePageDialog.h" line="124"/>
         <source>Fix DPI</source>
         <translation>Исправить DPI</translation>
     </message>
     <message>
         <location filename="../ui/FixDpiSinglePageDialog.ui" line="19"/>
+        <location filename="../ui_FixDpiSinglePageDialog.h" line="125"/>
         <source>DPI for %1</source>
         <translation>DPI для %1</translation>
     </message>
     <message>
         <location filename="../ui/FixDpiSinglePageDialog.ui" line="45"/>
+        <location filename="../ui_FixDpiSinglePageDialog.h" line="128"/>
         <source>Custom</source>
         <translation>Особый</translation>
     </message>
     <message>
         <location filename="../ui/FixDpiSinglePageDialog.ui" line="93"/>
+        <location filename="../ui_FixDpiSinglePageDialog.h" line="130"/>
         <source>x</source>
         <translation></translation>
     </message>
@@ -169,10 +256,6 @@
         <source>Use the mouse wheel or +/- to zoom.  When zoomed, dragging is possible.</source>
         <translation>Используйте колесо мыши для увеличения.  В увеличенном виде доступно перетаскивание.</translation>
     </message>
-    <message>
-        <source>Unrestricted dragging is possible by holding down the Shift key.</source>
-        <translation type="obsolete">Удерживая кнопку Shift, можно перетаскивать без ограничений.</translation>
-    </message>
 </context>
 <context>
     <name>LoadFileTask</name>
@@ -186,318 +269,310 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../MainWindow.cpp" line="1127"/>
-        <location filename="../MainWindow.cpp" line="1136"/>
-        <location filename="../MainWindow.cpp" line="1390"/>
-        <location filename="../MainWindow.cpp" line="1421"/>
-        <location filename="../MainWindow.cpp" line="1496"/>
+        <location filename="../MainWindow.cpp" line="1157"/>
+        <location filename="../MainWindow.cpp" line="1166"/>
+        <location filename="../MainWindow.cpp" line="1420"/>
+        <location filename="../MainWindow.cpp" line="1451"/>
+        <location filename="../MainWindow.cpp" line="1526"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1391"/>
-        <location filename="../MainWindow.cpp" line="1422"/>
+        <location filename="../MainWindow.cpp" line="1421"/>
+        <location filename="../MainWindow.cpp" line="1452"/>
         <source>Error saving the project file!</source>
         <translation>Ошибка при сохранении файла!</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="219"/>
-        <location filename="../MainWindow.cpp" line="483"/>
+        <location filename="../MainWindow.cpp" line="506"/>
+        <location filename="../ui_MainWindow.h" line="229"/>
         <source>Save Project</source>
         <translation>Сохранить проект</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="483"/>
+        <location filename="../MainWindow.cpp" line="506"/>
         <source>Save this project?</source>
         <translation>Сохранить этот проект?</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1040"/>
-        <location filename="../MainWindow.cpp" line="1108"/>
+        <location filename="../MainWindow.cpp" line="1070"/>
+        <location filename="../MainWindow.cpp" line="1138"/>
         <source>Scan Tailor Projects</source>
         <translation>Проекты Scan Tailor</translation>
     </message>
     <message>
-        <source>You can&apos;t output pages yet.
-First you need to process all of them with the &quot;Page Layout&quot; filter.</source>
-        <translation type="obsolete">Вывод невозможен, поскольку еще не известны итоговые размеры страниц.
-Для их определения, прогоните пакетную обработку на этапах &quot;Полезная Область&apos; или &quot;Макет страницы&quot;.</translation>
-    </message>
-    <message>
-        <location filename="../MainWindow.cpp" line="1319"/>
+        <location filename="../MainWindow.cpp" line="1349"/>
         <source>Unnamed</source>
         <translation>Без имени</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="20"/>
+        <location filename="../ui_MainWindow.h" line="227"/>
         <source>MainWindow</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="134"/>
+        <location filename="../ui_MainWindow.h" line="250"/>
         <source>Keep current page in view.</source>
         <translation>Держать текущую страницу в поле зрения.</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="214"/>
+        <location filename="../ui_MainWindow.h" line="228"/>
         <source>Debug</source>
         <translation>Режим отладки</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="222"/>
+        <location filename="../ui_MainWindow.h" line="230"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="227"/>
+        <location filename="../ui_MainWindow.h" line="231"/>
         <source>Save Project As ...</source>
         <translation>Сохранить проект как ...</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="232"/>
         <location filename="../ui/MainWindow.ui" line="281"/>
+        <location filename="../ui_MainWindow.h" line="232"/>
+        <location filename="../ui_MainWindow.h" line="242"/>
         <source>Next Page</source>
         <translation>Следующая страница</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="235"/>
+        <location filename="../ui_MainWindow.h" line="233"/>
         <source>PgDown</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="243"/>
         <location filename="../ui/MainWindow.ui" line="270"/>
+        <location filename="../ui_MainWindow.h" line="234"/>
+        <location filename="../ui_MainWindow.h" line="240"/>
         <source>Previous Page</source>
         <translation>Предыдущая страница</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="246"/>
+        <location filename="../ui_MainWindow.h" line="235"/>
         <source>PgUp</source>
         <translation></translation>
     </message>
     <message>
-        <source>Start Batch Processing</source>
-        <translation type="obsolete">Запустить пакетную обработку</translation>
-    </message>
-    <message>
-        <source>Stop Batch Processing</source>
-        <translation type="obsolete">Остановить пакетную обработку</translation>
-    </message>
-    <message>
         <location filename="../ui/MainWindow.ui" line="182"/>
+        <location filename="../ui_MainWindow.h" line="256"/>
         <source>Tools</source>
         <translation>Инструменты</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="190"/>
+        <location filename="../ui_MainWindow.h" line="257"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <source>Process</source>
-        <translation type="obsolete">Обработка</translation>
-    </message>
-    <message>
-        <location filename="../MainWindow.cpp" line="1288"/>
+        <location filename="../MainWindow.cpp" line="1318"/>
         <source>Output is not yet possible, as the final size of pages is not yet known.
 To determine it, run batch processing at &quot;Select Content&quot; or &quot;Page Layout&quot;.</source>
         <translation>Вывод невозможен, поскольку еще не известны итоговые размеры страниц.  Для их определения, прогоните пакетную обработку на этапах &quot;Полезная область&quot; или &quot;Макет страницы&quot;.</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1107"/>
+        <location filename="../MainWindow.cpp" line="1137"/>
         <source>Open Project</source>
         <translation>Открыть проект</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="420"/>
+        <location filename="../MainWindow.cpp" line="423"/>
         <source>Beep when finished</source>
         <translation>Звуковой сигнал по окончании</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="776"/>
+        <location filename="../MainWindow.cpp" line="430"/>
+        <source>Normal</source>
+        <translation>Нормальный</translation>
+    </message>
+    <message>
+        <location filename="../MainWindow.cpp" line="431"/>
+        <source>Low</source>
+        <translation>Низкий</translation>
+    </message>
+    <message>
+        <location filename="../MainWindow.cpp" line="432"/>
+        <source>Lowest</source>
+        <translation>Низший</translation>
+    </message>
+    <message>
+        <location filename="../MainWindow.cpp" line="433"/>
+        <source>Idle</source>
+        <translation>Фоновый</translation>
+    </message>
+    <message>
+        <location filename="../MainWindow.cpp" line="440"/>
+        <source>Batch processing priority</source>
+        <translation>Приоритет фоновой обработки</translation>
+    </message>
+    <message>
+        <location filename="../MainWindow.cpp" line="799"/>
         <source>Insert before ...</source>
         <translation>Вставить перед ...</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="779"/>
+        <location filename="../MainWindow.cpp" line="802"/>
         <source>Insert after ...</source>
         <translation>Вставить после ...</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="785"/>
+        <location filename="../MainWindow.cpp" line="808"/>
         <source>Remove from project ...</source>
         <translation>Удалить из проекта ...</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="802"/>
+        <location filename="../MainWindow.cpp" line="825"/>
         <source>Insert here ...</source>
         <translation>Вставить сюда ...</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1128"/>
+        <location filename="../MainWindow.cpp" line="1158"/>
         <source>Unable to open the project file.</source>
         <translation>Не удалось открыть файл проекта.</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1137"/>
+        <location filename="../MainWindow.cpp" line="1167"/>
         <source>The project file is broken.</source>
         <translation>Файл проекта поврежден.</translation>
     </message>
     <message>
-        <source>Unable to interpret the project file.</source>
-        <translation type="obsolete">Не удалось импортировать проект.</translation>
-    </message>
-    <message>
-        <location filename="../MainWindow.cpp" line="1324"/>
+        <location filename="../MainWindow.cpp" line="1354"/>
         <source>%1 - Scan Tailor %2</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1469"/>
+        <location filename="../MainWindow.cpp" line="1499"/>
         <source>File to insert</source>
         <translation>Вставить файл</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1475"/>
+        <location filename="../MainWindow.cpp" line="1505"/>
         <source>Images not in project (%1)</source>
         <translation>Изображения не в проекте (%1)</translation>
     </message>
     <message>
-        <location filename="../MainWindow.cpp" line="1497"/>
+        <location filename="../MainWindow.cpp" line="1527"/>
         <source>Error opening the image file.</source>
         <translation>Ошибка при открытии файла изображения.</translation>
     </message>
     <message>
-        <source>%1 (page %2)</source>
-        <translation type="obsolete">%1 (страницы %2)</translation>
-    </message>
-    <message>
-        <location filename="../MainWindow.cpp" line="1537"/>
+        <location filename="../MainWindow.cpp" line="1567"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <source>Unable to delete file:
-%1</source>
-        <translation type="obsolete">Невозможно удалить файл:
-%1</translation>
-    </message>
-    <message>
         <location filename="../ui/MainWindow.ui" line="254"/>
+        <location filename="../ui_MainWindow.h" line="236"/>
         <source>New Project ...</source>
         <translation>Новый проект ...</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="257"/>
+        <location filename="../ui_MainWindow.h" line="237"/>
         <source>Ctrl+N</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="262"/>
+        <location filename="../ui_MainWindow.h" line="238"/>
         <source>Open Project ...</source>
         <translation>Открыть проект ...</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="265"/>
+        <location filename="../ui_MainWindow.h" line="239"/>
         <source>Ctrl+O</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="160"/>
+        <location filename="../ui_MainWindow.h" line="254"/>
         <source>Use PgUp, PgDown or Q, W to navigate between pages.</source>
         <translation>Страницы можно листать с помощью PgUp и PgDown, а также Q и W.</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="273"/>
+        <location filename="../ui_MainWindow.h" line="241"/>
         <source>Q</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="284"/>
+        <location filename="../ui_MainWindow.h" line="243"/>
         <source>W</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="292"/>
+        <location filename="../ui_MainWindow.h" line="244"/>
         <source>Close Project</source>
         <translation>Закрыть проект</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="295"/>
+        <location filename="../ui_MainWindow.h" line="245"/>
         <source>Ctrl+W</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="300"/>
+        <location filename="../ui_MainWindow.h" line="246"/>
         <source>Quit</source>
         <translation>Выход</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="303"/>
+        <location filename="../ui_MainWindow.h" line="247"/>
         <source>Ctrl+Q</source>
         <translation></translation>
     </message>
     <message>
-        <source>Keep the current page in view.</source>
-        <translation type="obsolete">Автоматически переходить к выбранной странице.</translation>
-    </message>
-    <message>
-        <source>Scroll to a selected page automatically.</source>
-        <translation type="obsolete">Автоматически переходить к выбранной странице.</translation>
-    </message>
-    <message>
-        <source>Thumbnail list auto-scrolling.</source>
-        <translation type="obsolete">Автопрокрутка ленты предпросмотра.</translation>
-    </message>
-    <message>
-        <location filename="../MainWindow.cpp" line="412"/>
+        <location filename="../MainWindow.cpp" line="415"/>
         <source>Stop batch processing</source>
         <translation>Остановить пакетную обработку</translation>
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="308"/>
+        <location filename="../ui_MainWindow.h" line="248"/>
         <source>Settings ...</source>
         <translation>Настройки ...</translation>
     </message>
 </context>
 <context>
-    <name>NewOpenProjectDialog</name>
-    <message>
-        <source>New Project</source>
-        <translation type="obsolete">Новый проект</translation>
-    </message>
-    <message>
-        <source>Open Project</source>
-        <translation type="obsolete">Открыть проект</translation>
-    </message>
-</context>
-<context>
     <name>NewOpenProjectPanel</name>
     <message>
         <location filename="../ui/NewOpenProjectPanel.ui" line="19"/>
+        <location filename="../ui_NewOpenProjectPanel.h" line="103"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <source>New Project</source>
-        <translation type="obsolete">Новый проект</translation>
-    </message>
-    <message>
-        <source>Open Project</source>
-        <translation type="obsolete">Открыть проект</translation>
-    </message>
-    <message>
         <location filename="../ui/NewOpenProjectPanel.ui" line="103"/>
+        <location filename="../ui_NewOpenProjectPanel.h" line="106"/>
         <source>Recent Projects</source>
         <translation>Недавние проекты</translation>
     </message>
     <message>
         <location filename="../ui/NewOpenProjectPanel.ui" line="52"/>
+        <location filename="../ui_NewOpenProjectPanel.h" line="104"/>
         <source>New Project ...</source>
         <translation>Новый проект ...</translation>
     </message>
     <message>
         <location filename="../ui/NewOpenProjectPanel.ui" line="78"/>
+        <location filename="../ui_NewOpenProjectPanel.h" line="105"/>
         <source>Open Project ...</source>
         <translation>Открыть проект ...</translation>
     </message>
@@ -506,31 +581,37 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
     <name>OrientationApplyDialog</name>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="17"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="211"/>
         <source>Fix Orientation</source>
         <translation>Исправление ориентации</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="23"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="212"/>
         <source>Apply to</source>
         <translation>Применить</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="29"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="213"/>
         <source>This page only (already applied)</source>
         <translation>Только к этой странице (уже применено)</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="39"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="214"/>
         <source>All pages</source>
         <translation>Ко всем страницам</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="46"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="215"/>
         <source>This page and the following ones</source>
         <translation>К этой странице и всем последующим</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="71"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="216"/>
         <source>Every other page</source>
         <extracomment>All odd or even pages, depending on the current page being odd or even.</extracomment>
         <translation>К каждой второй странице</translation>
@@ -538,67 +619,67 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="101"/>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="206"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="217"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="221"/>
         <source>The current page will be included.</source>
         <translation>Текущая страница будет включена в список.</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="125"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="218"/>
         <source>Selected pages</source>
         <translation>К выбранным страницам</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="155"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="219"/>
         <source>Use Ctrl+Click / Shift+Click to select multiple pages.</source>
         <translation>Используйте Ctrl+Клик / Shift+Клик для выбора группы страниц.</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationApplyDialog.ui" line="176"/>
+        <location filename="../filters/fix_orientation/ui_OrientationApplyDialog.h" line="220"/>
         <source>Every other selected page</source>
         <translation>К каждой второй выбранной странице</translation>
     </message>
-    <message>
-        <source>Every page in range</source>
-        <translation type="obsolete">Ко всем страницам в диапазоне</translation>
-    </message>
-    <message>
-        <source>Every other page in range</source>
-        <translation type="obsolete">К каждой второй странице в диапазоне</translation>
-    </message>
-    <message>
-        <source>Range</source>
-        <translation type="obsolete">Диапазон</translation>
-    </message>
 </context>
 <context>
     <name>OrientationOptionsWidget</name>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="13"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="173"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="19"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="174"/>
         <source>Rotate</source>
         <translation>Поворот</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="40"/>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="56"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="175"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="176"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="142"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="178"/>
         <source>Reset</source>
         <translation>Сброс</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="167"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="179"/>
         <source>Scope</source>
         <translation>Область применения</translation>
     </message>
     <message>
         <location filename="../filters/fix_orientation/ui/OrientationOptionsWidget.ui" line="188"/>
+        <location filename="../filters/fix_orientation/ui_OrientationOptionsWidget.h" line="180"/>
         <source>Apply to ...</source>
         <translation>Применить к ...</translation>
     </message>
@@ -606,45 +687,44 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
 <context>
     <name>OutputApplyColorsDialog</name>
     <message>
-        <source>Apply Colors</source>
-        <translation type="obsolete">Применить режим вывода</translation>
-    </message>
-    <message>
-        <source>Scope</source>
-        <translation type="obsolete">Примененить</translation>
-    </message>
-    <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="23"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="132"/>
         <source>Apply to</source>
         <translation>Применить</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="29"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="133"/>
         <source>This page only (already applied)</source>
         <translation>Только к этой странице (уже применено)</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="39"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="134"/>
         <source>All pages</source>
         <translation>Ко всем страницам</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="46"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="135"/>
         <source>This page and the following ones</source>
         <translation>К этой странице и всем последующим</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="62"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="136"/>
         <source>Selected pages</source>
         <translation>К выбранным страницам</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="95"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="137"/>
         <source>Use Ctrl+Click / Shift+Click to select multiple pages.</source>
         <translation>Используйте Ctrl+Клик / Shift+Клик для выбора группы страниц.</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputApplyColorsDialog.ui" line="17"/>
+        <location filename="../filters/output/ui_OutputApplyColorsDialog.h" line="131"/>
         <source>Apply Mode</source>
         <translation>Применить режим вывода</translation>
     </message>
@@ -653,45 +733,49 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
     <name>OutputChangeDpiDialog</name>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="23"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="160"/>
         <source>DPI</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="68"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="161"/>
         <source>Scope</source>
         <translation>Применить</translation>
     </message>
     <message>
-        <source>This page only (already applied)</source>
-        <translation type="obsolete">Только к этой странице (уже применено)</translation>
-    </message>
-    <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="91"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="164"/>
         <source>This page and the following ones</source>
         <translation>К этой странице и всем последующим</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="107"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="165"/>
         <source>Selected pages</source>
         <translation>К выбранным страницам</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="140"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="166"/>
         <source>Use Ctrl+Click / Shift+Click to select multiple pages.</source>
         <translation>Используйте Ctrl+Клик / Shift+Клик для выбора группы страниц.</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="74"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="162"/>
         <source>This page only</source>
         <translation>Только к этой странице</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="84"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="163"/>
         <source>All pages</source>
         <translation>Ко всем страницам</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputChangeDpiDialog.ui" line="17"/>
+        <location filename="../filters/output/ui_OutputChangeDpiDialog.h" line="159"/>
         <source>Apply Output Resolution</source>
         <translation>Применить разрешение вывода</translation>
     </message>
@@ -700,37 +784,45 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
     <name>OutputOptionsWidget</name>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="14"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="377"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="20"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="378"/>
         <source>Output Resolution (DPI)</source>
         <translation>Разрешение вывода (DPI)</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="78"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="380"/>
         <source>Change ...</source>
         <translation>Изменить ...</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="281"/>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="393"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="388"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="394"/>
         <source>No despeckling</source>
         <translation>Не удалять пятна</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="303"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="390"/>
         <source>Dewarp</source>
         <translation>Устранение геометрических искажений</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="369"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="392"/>
         <source>Despeckling</source>
         <translation>Удаление пятен</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="418"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="398"/>
         <source>Cautious despeckling</source>
         <translation>Осторожное удаление пятен</translation>
     </message>
@@ -738,67 +830,59 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="421"/>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="447"/>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="473"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="400"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="404"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="408"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="444"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="402"/>
         <source>Normal despeckling</source>
         <translation>Обычное удаление пятен</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="470"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="406"/>
         <source>Aggressive despeckling</source>
         <translation>Аггрессивное удаление пятен</translation>
     </message>
     <message>
-        <source>Colors</source>
-        <translation type="obsolete">Режим</translation>
-    </message>
-    <message>
-        <source>Light</source>
-        <translation type="obsolete">Светлый</translation>
-    </message>
-    <message>
-        <source>Dark</source>
-        <translation type="obsolete">Темный</translation>
-    </message>
-    <message>
-        <source>B/W Threshold</source>
-        <translation type="obsolete">Черно-белый порог</translation>
-    </message>
-    <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="344"/>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="526"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="391"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="409"/>
         <source>Apply To ...</source>
         <translation>Применить к ...</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="103"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="381"/>
         <source>Mode</source>
         <translation>Режим</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="169"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="382"/>
         <source>White margins</source>
         <translation>Белые поля</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="176"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="383"/>
         <source>Equalize illumination</source>
         <translation>Выровнять освещение</translation>
     </message>
     <message>
-        <source>Despeckle</source>
-        <translation type="obsolete">Удалять пятна</translation>
-    </message>
-    <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="237"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="384"/>
         <source>Thinner</source>
         <translation>Тоньше</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/OutputOptionsWidget.ui" line="269"/>
+        <location filename="../filters/output/ui_OutputOptionsWidget.h" line="386"/>
         <source>Thicker</source>
         <translation>Жирнее</translation>
     </message>
@@ -806,36 +890,38 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
 <context>
     <name>PageLayoutApplyDialog</name>
     <message>
-        <source>Scope</source>
-        <translation type="obsolete">Применить</translation>
-    </message>
-    <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="20"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="131"/>
         <source>Apply to</source>
         <translation>Применить</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="26"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="132"/>
         <source>This page only (already applied)</source>
         <translation>Только к этой странице (уже применено)</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="36"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="133"/>
         <source>All pages</source>
         <translation>Ко всем страницам</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="43"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="134"/>
         <source>This page and the following ones</source>
         <translation>К этой странице и всем последующим</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="59"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="135"/>
         <source>Selected pages</source>
         <translation>К выбранным страницам</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutApplyDialog.ui" line="92"/>
+        <location filename="../filters/page_layout/ui_PageLayoutApplyDialog.h" line="136"/>
         <source>Use Ctrl+Click / Shift+Click to select multiple pages.</source>
         <translation>Используйте Ctrl+Клик / Shift+Клик для выбора группы страниц.</translation>
     </message>
@@ -844,26 +930,31 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
     <name>PageLayoutOptionsWidget</name>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="13"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="461"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="19"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="462"/>
         <source>Margins</source>
         <translation>Поля</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="41"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="465"/>
         <source>Millimeters (mm)</source>
         <translation>Миллиметры (mm)</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="46"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="466"/>
         <source>Inches (in)</source>
         <translation>Дюймы (in)</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="86"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="468"/>
         <source>Top</source>
         <translation>Сверху</translation>
     </message>
@@ -879,73 +970,79 @@ To determine it, run batch processing at &quot;Select Content&quot; or &quot;Pag
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="463"/>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="486"/>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="509"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="469"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="472"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="477"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="478"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="479"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="480"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="481"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="482"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="483"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="484"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="485"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="114"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="470"/>
         <source>Bottom</source>
         <translation>Снизу</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="131"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="471"/>
         <source>Left</source>
         <translation>Слева</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="172"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="473"/>
         <source>Right</source>
         <translation>Справа</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="231"/>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="564"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="474"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="486"/>
         <source>Apply To ...</source>
         <translation>Применить к ...</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="256"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="475"/>
         <source>Alignment</source>
         <translation>Выравнивание</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="277"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="476"/>
         <source>Align with other pages</source>
         <translation>Выровнять с другими страницами</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="604"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="488"/>
         <source>Go to the widest page.</source>
         <translation>Перейти к самой широкой странице.</translation>
     </message>
     <message>
-        <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;widest_page&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;Widest Page&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;widest_page&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;Самая широкая страница&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="647"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="492"/>
         <source>Go to the tallest page.</source>
         <translation>Перейти к самой высокой странице.</translation>
     </message>
     <message>
-        <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;tallest_page&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;Tallest Page&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;tallest_page&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;Самая высокая страница&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="607"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="490"/>
         <source>Widest Page</source>
         <translation>Самая широкая страница</translation>
     </message>
     <message>
         <location filename="../filters/page_layout/ui/PageLayoutOptionsWidget.ui" line="650"/>
+        <location filename="../filters/page_layout/ui_PageLayoutOptionsWidget.h" line="494"/>
         <source>Tallest Page</source>
         <translation>Самая высокая страница</translation>
     </message>
@@ -954,55 +1051,61 @@ p, li { white-space: pre-wrap; }
     <name>PageSplitModeDialog</name>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="17"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="177"/>
         <source>Split Pages</source>
         <translation>Разрезание страниц</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="63"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="178"/>
         <source>Mode</source>
         <translation>Тип разреза</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="69"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="179"/>
         <source>Auto</source>
         <translation>Автоматически</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="79"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="180"/>
         <source>Manual</source>
         <translation>Вручную</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="89"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="181"/>
         <source>Scope</source>
         <translation>Применить</translation>
     </message>
     <message>
-        <source>This page only (already applied)</source>
-        <translation type="obsolete">Только к этой странице (уже применено)</translation>
-    </message>
-    <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="112"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="184"/>
         <source>This page and the following ones</source>
         <translation>К этой странице и всем последующим</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="128"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="185"/>
         <source>Selected pages</source>
         <translation>К выбранным страницам</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="161"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="186"/>
         <source>Use Ctrl+Click / Shift+Click to select multiple pages.</source>
         <translation>Используйте Ctrl+Клик / Shift+Клик для выбора группы страниц.</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="95"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="182"/>
         <source>This page only</source>
         <translation>Только к этой странице</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitModeDialog.ui" line="105"/>
+        <location filename="../filters/page_split/ui_PageSplitModeDialog.h" line="183"/>
         <source>All pages</source>
         <translation>Ко всем страницам</translation>
     </message>
@@ -1011,36 +1114,43 @@ p, li { white-space: pre-wrap; }
     <name>PageSplitOptionsWidget</name>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="20"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="257"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="26"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="258"/>
         <source>Page Layout</source>
         <translation>Тип разреза</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="134"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="259"/>
         <source>?</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="159"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="260"/>
         <source>Change ...</source>
         <translation>Изменить ...</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="184"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="261"/>
         <source>Split Line</source>
         <translation>Разделительная линия</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="214"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="262"/>
         <source>Auto</source>
         <translation>Автоматически</translation>
     </message>
     <message>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="230"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="263"/>
         <source>Manual</source>
         <translation>Вручную</translation>
     </message>
@@ -1048,6 +1158,9 @@ p, li { white-space: pre-wrap; }
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="283"/>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="306"/>
         <location filename="../filters/page_split/ui/PageSplitOptionsWidget.ui" line="326"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="264"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="265"/>
+        <location filename="../filters/page_split/ui_PageSplitOptionsWidget.h" line="266"/>
         <source>...</source>
         <translation></translation>
     </message>
@@ -1057,12 +1170,14 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="20"/>
         <location filename="../ProjectFilesDialog.cpp" line="334"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="207"/>
         <source>Input Directory</source>
         <translation>Директория ввода</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="43"/>
         <location filename="../ProjectFilesDialog.cpp" line="354"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="209"/>
         <source>Output Directory</source>
         <translation>Директория вывода</translation>
     </message>
@@ -1122,28 +1237,35 @@ You should remove them from the project.</source>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="14"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="206"/>
         <source>Project Files</source>
         <translation>Файлы проекта</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="33"/>
         <location filename="../ui/ProjectFilesDialog.ui" line="52"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="208"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="210"/>
         <source>Browse</source>
         <translation>Обзор</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="64"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="211"/>
         <source>Files Not In Project</source>
         <translation>Файлы не в проекте</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="77"/>
         <location filename="../ui/ProjectFilesDialog.ui" line="159"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="212"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="228"/>
         <source>Select All</source>
         <translation>Выбрать все</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="102"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="214"/>
         <source>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -1152,11 +1274,13 @@ p, li { white-space: pre-wrap; }
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="108"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="219"/>
         <source>&gt;&gt;</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="115"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="221"/>
         <source>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -1165,21 +1289,25 @@ p, li { white-space: pre-wrap; }
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="121"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="226"/>
         <source>&lt;&lt;</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="143"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="227"/>
         <source>Files In Project</source>
         <translation>Файлы в проекте</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="171"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="229"/>
         <source>Right to left layout (for Hebrew and Arabic)</source>
         <translation>Система письменности справа-налево (для Иврита или Арабского)</translation>
     </message>
     <message>
         <location filename="../ui/ProjectFilesDialog.ui" line="178"/>
+        <location filename="../ui_ProjectFilesDialog.h" line="230"/>
         <source>Fix DPIs, even if they look OK</source>
         <translation>Править DPI, даже если они выглядят нормальными</translation>
     </message>
@@ -1187,61 +1315,33 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>ProjectOpeningContext</name>
     <message>
-        <source>Open Project</source>
-        <translation type="obsolete">Открыть проект</translation>
-    </message>
-    <message>
-        <source>Scan Tailor Projects</source>
-        <translation type="obsolete">Проекты Scan Tailor</translation>
-    </message>
-    <message>
         <location filename="../ProjectOpeningContext.cpp" line="51"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
     <message>
-        <source>Unable to open the project file.</source>
-        <translation type="obsolete">Не удалось открыть файл проекта.</translation>
-    </message>
-    <message>
-        <source>The project file is broken.</source>
-        <translation type="obsolete">Файл проекта поврежден.</translation>
-    </message>
-    <message>
         <location filename="../ProjectOpeningContext.cpp" line="52"/>
         <source>Unable to interpret the project file.</source>
         <translation>Не удалось импортировать проект.</translation>
     </message>
 </context>
 <context>
-    <name>RemoveFileDialog</name>
-    <message>
-        <source>Remove File</source>
-        <translation type="obsolete">Удалить файл</translation>
-    </message>
-    <message>
-        <source>Remove %1 from project?</source>
-        <translation type="obsolete">Удалить %1 из проекта?</translation>
-    </message>
-    <message>
-        <source>Also delete the file from disk</source>
-        <translation type="obsolete">Удалить его также и с диска</translation>
-    </message>
-</context>
-<context>
     <name>RemovePagesDialog</name>
     <message>
         <location filename="../ui/RemovePagesDialog.ui" line="14"/>
+        <location filename="../ui_RemovePagesDialog.h" line="76"/>
         <source>Remove Pages</source>
         <translation>Удалить страницы</translation>
     </message>
     <message>
         <location filename="../ui/RemovePagesDialog.ui" line="20"/>
+        <location filename="../ui_RemovePagesDialog.h" line="77"/>
         <source>Remove %1 page(s) from project?</source>
         <translation>Удалить %1 страниц из проекта?</translation>
     </message>
     <message>
         <location filename="../ui/RemovePagesDialog.ui" line="33"/>
+        <location filename="../ui_RemovePagesDialog.h" line="78"/>
         <source>Files will remain on disk</source>
         <translation>Файлы останутся на диске</translation>
     </message>
@@ -1250,21 +1350,25 @@ p, li { white-space: pre-wrap; }
     <name>SelectContentOptionsWidget</name>
     <message>
         <location filename="../filters/select_content/ui/SelectContentOptionsWidget.ui" line="13"/>
+        <location filename="../filters/select_content/ui_SelectContentOptionsWidget.h" line="88"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../filters/select_content/ui/SelectContentOptionsWidget.ui" line="19"/>
+        <location filename="../filters/select_content/ui_SelectContentOptionsWidget.h" line="89"/>
         <source>Content Box</source>
         <translation>Полезная область</translation>
     </message>
     <message>
         <location filename="../filters/select_content/ui/SelectContentOptionsWidget.ui" line="38"/>
+        <location filename="../filters/select_content/ui_SelectContentOptionsWidget.h" line="90"/>
         <source>Auto</source>
         <translation>Автоматически</translation>
     </message>
     <message>
         <location filename="../filters/select_content/ui/SelectContentOptionsWidget.ui" line="54"/>
+        <location filename="../filters/select_content/ui_SelectContentOptionsWidget.h" line="91"/>
         <source>Manual</source>
         <translation>Вручную</translation>
     </message>
@@ -1272,25 +1376,72 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>SettingsDialog</name>
     <message>
-        <location filename="../SettingsDialog.cpp" line="36"/>
+        <location filename="../SettingsDialog.cpp" line="38"/>
         <source>Compiled without OpenGL support.</source>
         <translation>Собрано без поддержки OpenGL.</translation>
     </message>
     <message>
-        <location filename="../SettingsDialog.cpp" line="41"/>
+        <location filename="../SettingsDialog.cpp" line="43"/>
         <source>Your hardware / driver don&apos;t provide the necessary features.</source>
         <translation>Ваше железо или драйвер не поддерживают необходимого функционала.</translation>
     </message>
     <message>
+        <location filename="../SettingsDialog.cpp" line="52"/>
+        <source>Requires restart of the program ScanTailor</source>
+        <translation>Требуется перезапуск программы ScanTailor</translation>
+    </message>
+    <message>
+        <location filename="../SettingsDialog.cpp" line="77"/>
+        <source>Priority</source>
+        <translation>Приоритет</translation>
+    </message>
+    <message>
+        <location filename="../SettingsDialog.cpp" line="78"/>
+        <source>Batch processing priority will be adjusted only after restart of ScanTailor.</source>
+        <translation>Приоритет фоновой обработки будет изменён только после перезапуска программы ScanTailor.</translation>
+    </message>
+    <message>
         <location filename="../ui/SettingsDialog.ui" line="14"/>
+        <location filename="../ui_SettingsDialog.h" line="88"/>
         <source>Settings</source>
         <translation>Настройки</translation>
     </message>
     <message>
         <location filename="../ui/SettingsDialog.ui" line="20"/>
+        <location filename="../ui_SettingsDialog.h" line="89"/>
         <source>Use 3D acceleration for user interface</source>
         <translation>Использовать 3D ускорение для интерфейса пользователя</translation>
     </message>
+    <message>
+        <location filename="../ui/SettingsDialog.ui" line="30"/>
+        <location filename="../ui_SettingsDialog.h" line="92"/>
+        <source>Normal</source>
+        <translation>Нормальный</translation>
+    </message>
+    <message>
+        <location filename="../ui/SettingsDialog.ui" line="35"/>
+        <location filename="../ui_SettingsDialog.h" line="93"/>
+        <source>Low</source>
+        <translation>Низкий</translation>
+    </message>
+    <message>
+        <location filename="../ui/SettingsDialog.ui" line="40"/>
+        <location filename="../ui_SettingsDialog.h" line="94"/>
+        <source>Lowest</source>
+        <translation>Низший</translation>
+    </message>
+    <message>
+        <location filename="../ui/SettingsDialog.ui" line="45"/>
+        <location filename="../ui_SettingsDialog.h" line="95"/>
+        <source>Idle</source>
+        <translation>Фоновый</translation>
+    </message>
+    <message>
+        <location filename="../ui/SettingsDialog.ui" line="53"/>
+        <location filename="../ui_SettingsDialog.h" line="97"/>
+        <source>Batch processing priority</source>
+        <translation>Приоритет фоновой обработки</translation>
+    </message>
 </context>
 <context>
     <name>StageListView</name>
@@ -1376,21 +1527,25 @@ p, li { white-space: pre-wrap; }
     <name>ZonePropertiesDialog</name>
     <message>
         <location filename="../filters/output/ui/ZonePropertiesDialog.ui" line="14"/>
+        <location filename="../filters/output/ui_ZonePropertiesDialog.h" line="79"/>
         <source>Zone Properties</source>
         <translation>Свойства зоны</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/ZonePropertiesDialog.ui" line="20"/>
+        <location filename="../filters/output/ui_ZonePropertiesDialog.h" line="80"/>
         <source>Subtract from all layers</source>
         <translation>Вычесть из всех слоев</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/ZonePropertiesDialog.ui" line="27"/>
+        <location filename="../filters/output/ui_ZonePropertiesDialog.h" line="81"/>
         <source>Add to auto layer</source>
         <translation>Добавить к авто-слою</translation>
     </message>
     <message>
         <location filename="../filters/output/ui/ZonePropertiesDialog.ui" line="34"/>
+        <location filename="../filters/output/ui_ZonePropertiesDialog.h" line="82"/>
         <source>Subtract from auto layer</source>
         <translation>Вычесть из авто-слоя</translation>
     </message>
@@ -1427,18 +1582,6 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>fix_orientation::ApplyDialog</name>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Ошибка</translation>
-    </message>
-    <message>
-        <source>Range is required.</source>
-        <translation type="obsolete">Требуется указать диапазон.</translation>
-    </message>
-    <message>
-        <source>Page %1 (the current page) must be inside the range.</source>
-        <translation type="obsolete">Страница %1 (текущая страница) должна быть внутри диапазона.</translation>
-    </message>
-    <message>
         <location filename="../filters/fix_orientation/ApplyDialog.cpp" line="52"/>
         <source>Can&apos;t do: more that one group is selected.</source>
         <translation>Невозможно: выбрано несколько групп страниц.</translation>
@@ -1462,14 +1605,6 @@ p, li { white-space: pre-wrap; }
         <translation>Ошибка</translation>
     </message>
     <message>
-        <source>Horizontal DPI is not set.</source>
-        <translation type="obsolete">Горизонтальный DPI не установлен.</translation>
-    </message>
-    <message>
-        <source>Vertical DPI is not set.</source>
-        <translation type="obsolete">Вертикальный DPI не установлен. </translation>
-    </message>
-    <message>
         <location filename="../filters/output/ChangeDpiDialog.cpp" line="140"/>
         <source>DPI is too low!</source>
         <translation>DPI слишком низкий!</translation>
@@ -1506,10 +1641,6 @@ p, li { white-space: pre-wrap; }
         <translation>Черно-белый</translation>
     </message>
     <message>
-        <source>Bitonal</source>
-        <translation type="obsolete">Двухтоновый</translation>
-    </message>
-    <message>
         <location filename="../filters/output/OptionsWidget.cpp" line="62"/>
         <source>Color / Grayscale</source>
         <translation>Цветной / Серый</translation>
@@ -1526,66 +1657,6 @@ p, li { white-space: pre-wrap; }
     </message>
 </context>
 <context>
-    <name>output::PictureZoneEditor::ContextMenuHandler</name>
-    <message>
-        <source>Properties</source>
-        <translation type="obsolete">Свойства</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">Удалить</translation>
-    </message>
-    <message>
-        <source>Delete confirmation</source>
-        <translation type="obsolete">Подтверждение удаления</translation>
-    </message>
-    <message>
-        <source>Really delete this zone?</source>
-        <translation type="obsolete">Действительно удалить эту зону?</translation>
-    </message>
-</context>
-<context>
-    <name>output::PictureZoneEditor::DefaultState</name>
-    <message>
-        <source>Drag the vertex.</source>
-        <translation type="obsolete">Вершину можно перетаскивать.</translation>
-    </message>
-    <message>
-        <source>Click to create a new vertex here.</source>
-        <translation type="obsolete">Кликните для создания новой вершины.</translation>
-    </message>
-    <message>
-        <source>Right click to edit zone properties.</source>
-        <translation type="obsolete">Правый клик для редактирования свойств зоны.</translation>
-    </message>
-    <message>
-        <source>Click to start creating a new picture zone.</source>
-        <translation type="obsolete">Кликните чтобы начать создание новой зоны.</translation>
-    </message>
-</context>
-<context>
-    <name>output::PictureZoneEditor::SplineCreationState</name>
-    <message>
-        <source>Finish the zone by connecting its start and end points.</source>
-        <translation type="obsolete">Закончите зону, соединив начало с концом.</translation>
-    </message>
-    <message>
-        <source>At least 3 edges are required. ESC to discard this zone.</source>
-        <translation type="obsolete">Нужно как минимум 3 ребра.  ESC для отмены создания зоны.</translation>
-    </message>
-</context>
-<context>
-    <name>output::PictureZoneEditor::VertexDragHandler</name>
-    <message>
-        <source>Merge these two vertices.</source>
-        <translation type="obsolete">Объединить эти две вершины.</translation>
-    </message>
-    <message>
-        <source>Move the vertex to one of its neighbors to merge them.</source>
-        <translation type="obsolete">Придвиньте вершину к одной из соседних вершин, чтобы объеденить их.</translation>
-    </message>
-</context>
-<context>
     <name>output::Task::UiUpdater</name>
     <message>
         <location filename="../filters/output/Task.cpp" line="410"/>
@@ -1653,14 +1724,6 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>page_split::ImageView</name>
     <message>
-        <source>Drag this handle to skew the line.</source>
-        <translation type="obsolete">Тяните эту рукоятку чтобы наклонить линию.</translation>
-    </message>
-    <message>
-        <source>This line can be dragged.</source>
-        <translation type="obsolete">Это линию можно перетаскивать мышкой.</translation>
-    </message>
-    <message>
         <location filename="../filters/page_split/ImageView.cpp" line="51"/>
         <source>Drag the line or the handles.</source>
         <translation>Тяните линию или рукоятки.</translation>
@@ -1669,14 +1732,6 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>page_split::OptionsWidget</name>
     <message>
-        <source>This page only</source>
-        <translation type="obsolete">Только для этой страницы</translation>
-    </message>
-    <message>
-        <source>All pages</source>
-        <translation type="obsolete">Для всех страниц</translation>
-    </message>
-    <message>
         <location filename="../filters/page_split/OptionsWidget.cpp" line="130"/>
         <location filename="../filters/page_split/OptionsWidget.cpp" line="236"/>
         <location filename="../filters/page_split/OptionsWidget.cpp" line="332"/>
diff --git a/scantailor/ui/SettingsDialog.ui b/scantailor/ui/SettingsDialog.ui
index e6c5db9..9cbd9c8 100644
--- a/scantailor/ui/SettingsDialog.ui
+++ b/scantailor/ui/SettingsDialog.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>395</width>
-    <height>183</height>
+    <width>337</width>
+    <height>148</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -22,6 +22,41 @@
     </widget>
    </item>
    <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QComboBox" name="workerThreadPriority">
+       <item>
+        <property name="text">
+         <string>Normal</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Low</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Lowest</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Idle</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Batch processing priority</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
 
: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
: Michael Shigorin