ScreenTranslator/src/settings.h
Gres 0920ed1f40 Bundle multiple tesseract versions
Load them via C api and allow user to select which one to use.
2020-07-18 12:26:59 +03:00

82 lines
1.8 KiB
C++

#pragma once
#include "stfwd.h"
#include <QColor>
#include <QDateTime>
#include <QStringList>
#include <chrono>
enum class ResultMode { Widget, Tooltip };
struct Substitution {
QString source;
QString target;
};
using Substitutions = std::unordered_multimap<LanguageId, Substitution>;
enum class ProxyType { Disabled, System, Socks5, Http };
enum class TesseractVersion { Optimized, Compatible };
class Settings
{
public:
void save() const;
void load();
void saveLastUpdateCheck();
bool isPortable() const;
void setPortable(bool isPortable);
QString captureHotkey{"Ctrl+Alt+Z"};
QString repeatCaptureHotkey{"Ctrl+Alt+S"};
QString showLastHotkey{"Ctrl+Alt+X"};
QString clipboardHotkey{"Ctrl+Alt+C"};
QString captureLockedHotkey{"Ctrl+Alt+Q"};
bool showMessageOnStart{true};
bool runAtSystemStart{false};
ProxyType proxyType{ProxyType::System};
QString proxyHostName;
int proxyPort{8080};
QString proxyUser;
QString proxyPassword;
bool proxySavePassword{false};
int autoUpdateIntervalDays{0};
QDateTime lastUpdateCheck;
bool useHunspell{false};
QString hunspellDir;
Substitutions userSubstitutions;
bool useUserSubstitutions{true};
bool writeTrace{false};
QString tessdataPath;
QString sourceLanguage{"eng"};
TesseractVersion tesseractVersion{TesseractVersion::Optimized};
bool doTranslation{true};
bool ignoreSslErrors{false};
LanguageId targetLanguage{"rus"};
std::chrono::seconds translationTimeout{15};
QString translatorsDir;
QStringList translators{"google.js"};
ResultMode resultShowType{ResultMode::Widget}; // dialog
QString fontFamily;
int fontSize{11};
QColor fontColor{Qt::black};
QColor backgroundColor{Qt::lightGray};
bool showRecognized{true};
bool showCaptured{true};
private:
bool isPortable_{false};
};