diff options
author | 2021-04-09 10:25:02 +0530 | |
---|---|---|
committer | 2021-04-09 10:25:02 +0530 | |
commit | 0f80232fff079a0f91765b32a539fe370d3ca84f (patch) | |
tree | 3ffcbc9d7357882d8cf9e4a5d962e3e7e8a9fbe6 | |
parent | a8dc0f54ab92b0450984ca8929f783fe456ea23b (diff) | |
download | whatsie-0f80232fff079a0f91765b32a539fe370d3ca84f.tar.gz whatsie-0f80232fff079a0f91765b32a539fe370d3ca84f.zip |
spellcheck impl
-rw-r--r-- | src/settingswidget.cpp | 76 | ||||
-rw-r--r-- | src/settingswidget.h | 9 | ||||
-rw-r--r-- | src/settingswidget.ui | 161 |
3 files changed, 212 insertions, 34 deletions
diff --git a/src/settingswidget.cpp b/src/settingswidget.cpp index 4a735b8..fe91502 100644 --- a/src/settingswidget.cpp +++ b/src/settingswidget.cpp @@ -2,6 +2,7 @@ #include "ui_settingswidget.h" #include <QMessageBox> +#include "mainwindow.h" extern QString defaultUserAgentStr; @@ -22,6 +23,7 @@ SettingsWidget::SettingsWidget(QWidget *parent, QString engineCachePath, QString ui->autoPlayMediaCheckBox->setChecked(settings.value("autoPlayMedia",false).toBool()); ui->themeComboBox->setCurrentText(utils::toCamelCase(settings.value("windowTheme","light").toString())); ui->userAgentLineEdit->setText(settings.value("useragent",defaultUserAgentStr).toString()); + ui->enableSpellCheck->setChecked(settings.value("sc_enabled",true).toBool()); this->setCurrentPasswordText("Current Password: <i>" +QByteArray::fromBase64(settings.value("asdfg").toString().toUtf8())+"</i>"); @@ -36,10 +38,53 @@ SettingsWidget::~SettingsWidget() delete ui; } +void SettingsWidget::loadDictionaries(QStringList dictionaries) +{ + // set up supported spellcheck dictionaries + QStringList ui_dictionary_names; + foreach(QString dictionary_name, dictionaries) { + ui_dictionary_names.append(dictionary_name); + } + ui_dictionary_names.sort(); + //add to ui + ui->dictComboBox->blockSignals(true); + foreach(QString dict_name, ui_dictionary_names) { + ui->dictComboBox->addItem(dict_name); + } + ui->dictComboBox->blockSignals(false); + + // load settings for spellcheck dictionary + QString dictionary_name = settings.value("sc_dict","en-US").toString(); + int pos = ui->dictComboBox->findText(dictionary_name); + if (pos == -1) { + pos = ui->dictComboBox->findText("en-US"); + if (pos == -1) { + pos = 0; + } + } + ui->dictComboBox->setCurrentIndex(pos); +} + void SettingsWidget::refresh() { ui->cacheSize->setText(utils::refreshCacheSize(cachePath())); ui->cookieSize->setText(utils::refreshCacheSize(persistentStoragePath())); + + //update dict settings at runtime + // load settings for spellcheck dictionary + QString dictionary_name = settings.value("sc_dict","en-US").toString(); + int pos = ui->dictComboBox->findText(dictionary_name); + if (pos == -1) { + pos = ui->dictComboBox->findText("en-US"); + if (pos == -1) { + pos = 0; + } + } + ui->dictComboBox->setCurrentIndex(pos); + + //enable disable spell check + ui->enableSpellCheck->setChecked(settings.value("sc_enabled",true).toBool()); + } void SettingsWidget::updateDefaultUAButton(const QString engineUA) @@ -212,3 +257,34 @@ void SettingsWidget::on_applock_checkbox_toggled(bool checked) emit init_lock(); } } + +void SettingsWidget::on_dictComboBox_currentIndexChanged(const QString &arg1) +{ + settings.setValue("sc_dict",arg1); + emit dictChanged(arg1); +} + +void SettingsWidget::on_enableSpellCheck_toggled(bool checked) +{ + settings.setValue("sc_enabled",checked); + emit spellCheckChanged(checked); +} + +void SettingsWidget::on_showShortcutsButton_clicked() +{ + QWidget *sheet = new QWidget(this); + sheet->setWindowTitle(QApplication::applicationName()+" | Global shortcuts"); + sheet->setWindowFlag(Qt::Sheet); + + QVBoxLayout *layout = new QVBoxLayout(sheet); + sheet->setLayout(layout); + auto *w = qobject_cast<MainWindow*>(parent()); + if(w != 0){ + foreach (QAction *action, w->actions()) { + QLabel *label = new QLabel(action->text()+" | "+action->shortcut().toString(),sheet); + layout->addWidget(label); + } + } + sheet->setAttribute(Qt::WA_DeleteOnClose); + sheet->show(); +} diff --git a/src/settingswidget.h b/src/settingswidget.h index 640f294..e126930 100644 --- a/src/settingswidget.h +++ b/src/settingswidget.h @@ -22,6 +22,8 @@ signals: void autoPlayMediaToggled(const bool checked); void userAgentChanged(QString userAgentStr); void init_lock(); + void dictChanged(QString dict); + void spellCheckChanged(bool checked); public: explicit SettingsWidget(QWidget *parent = nullptr,QString engineCachePath = "", QString enginePersistentStoragePath = ""); @@ -32,6 +34,7 @@ public slots: void updateDefaultUAButton(const QString engineUA); void appLockSetChecked(bool checked); void setCurrentPasswordText(QString str); + void loadDictionaries(QStringList dictionaries); private slots: QString cachePath(); QString persistentStoragePath(); @@ -61,6 +64,12 @@ private slots: void on_applock_checkbox_toggled(bool checked); + void on_dictComboBox_currentIndexChanged(const QString &arg1); + + void on_enableSpellCheck_toggled(bool checked); + + void on_showShortcutsButton_clicked(); + private: Ui::SettingsWidget *ui; QString engineCachePath,enginePersistentStoragePath; diff --git a/src/settingswidget.ui b/src/settingswidget.ui index 1e8b647..aec1dfe 100644 --- a/src/settingswidget.ui +++ b/src/settingswidget.ui @@ -104,64 +104,78 @@ background:transparent; <string>General settings</string> </property> <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0"> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QCheckBox" name="notificationCheckBox"> + <item row="1" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <item> + <widget class="QCheckBox" name="enableSpellCheck"> <property name="text"> - <string>Disable Notifications PopUp</string> + <string>Enable Spell Checker</string> </property> </widget> </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="muteAudioCheckBox"> - <property name="text"> - <string>Mute Audio</string> + <item> + <widget class="Line" name="line"> + <property name="minimumSize"> + <size> + <width>1</width> + <height>0</height> + </size> </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QCheckBox" name="autoPlayMediaCheckBox"> - <property name="text"> - <string>Disable Auto Playback of Media</string> + <property name="maximumSize"> + <size> + <width>1</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: rgba(63, 129, 216, 48);</string> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> </property> </widget> </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="disableVideosCheckBox"> + <item> + <widget class="QLabel" name="label_8"> <property name="text"> - <string>Disable loading videos</string> + <string>SpellChecker Language</string> </property> </widget> </item> + <item> + <widget class="QComboBox" name="dictComboBox"/> + </item> </layout> </item> - <item row="5" column="0"> - <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item row="4" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout"> <item> - <widget class="QLabel" name="label_2"> + <widget class="QLabel" name="label"> <property name="text"> - <string>Theme</string> + <string>Close button action</string> </property> </widget> </item> <item> - <widget class="QComboBox" name="themeComboBox"> + <widget class="QComboBox" name="closeButtonActionComboBox"> <item> <property name="text"> - <string>Dark</string> + <string>Minimize to tray</string> </property> </item> <item> <property name="text"> - <string>Light</string> + <string>Quit Application</string> </property> </item> </widget> </item> </layout> </item> - <item row="6" column="0"> + <item row="7" column="0"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> <widget class="QLabel" name="label_4"> @@ -197,32 +211,64 @@ background:transparent; </item> </layout> </item> - <item row="3" column="0"> - <layout class="QHBoxLayout" name="horizontalLayout"> + <item row="6" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> - <widget class="QLabel" name="label"> + <widget class="QLabel" name="label_2"> <property name="text"> - <string>Default close button action</string> + <string>Theme</string> </property> </widget> </item> <item> - <widget class="QComboBox" name="closeButtonActionComboBox"> + <widget class="QComboBox" name="themeComboBox"> <item> <property name="text"> - <string>Minimize to tray</string> + <string>Dark</string> </property> </item> <item> <property name="text"> - <string>Quit Application</string> + <string>Light</string> </property> </item> </widget> </item> </layout> </item> - <item row="4" column="0"> + <item row="0" column="0"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QCheckBox" name="notificationCheckBox"> + <property name="text"> + <string>Disable Notifications PopUp</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="muteAudioCheckBox"> + <property name="text"> + <string>Mute Audio from Page</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="autoPlayMediaCheckBox"> + <property name="text"> + <string>Disable Auto Playback of Media</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="disableVideosCheckBox"> + <property name="text"> + <string>Disable loading videos</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="0"> <layout class="QHBoxLayout" name="horizontalLayout_4"> <property name="topMargin"> <number>0</number> @@ -246,6 +292,53 @@ background:transparent; </item> </layout> </item> + <item row="2" column="0"> + <widget class="Line" name="line_2"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>1</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>1</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: rgba(63, 129, 216, 48);</string> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="5" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <item> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>Global App shortcuts</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="showShortcutsButton"> + <property name="text"> + <string>Show</string> + </property> + <property name="icon"> + <iconset resource="icons.qrc"> + <normaloff>:/icons/eye-line.png</normaloff>:/icons/eye-line.png</iconset> + </property> + </widget> + </item> + </layout> + </item> </layout> </widget> </item> |