diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-02-15 16:38:45 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-02-15 10:48:07 +0100 |
| commit | 4805c389a7650d85064a3e959936defb8e16968f (patch) | |
| tree | a31615f64ee0cc8abf9804c1aa435f501e80b981 /src | |
| parent | 22c4fb946f5868e48361ebbef6d0dd378087d5ec (diff) | |
| download | kristall-4805c389a7650d85064a3e959936defb8e16968f.tar.gz | |
Added search engine preference
Diffstat (limited to 'src')
| -rw-r--r-- | src/browsertab.cpp | 15 | ||||
| -rw-r--r-- | src/dialogs/settingsdialog.cpp | 11 | ||||
| -rw-r--r-- | src/dialogs/settingsdialog.hpp | 2 | ||||
| -rw-r--r-- | src/dialogs/settingsdialog.ui | 77 | ||||
| -rw-r--r-- | src/kristall.hpp | 1 | ||||
| -rw-r--r-- | src/main.cpp | 2 |
6 files changed, 77 insertions, 31 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp index 57d04b1..20289ae 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -304,8 +304,19 @@ void BrowserTab::on_url_bar_returnPressed() else { // Use the text as a search query. - static const QString search_engine = "gemini://gus.guru/search?%1"; - url = QUrl{QString(search_engine).arg(this->ui->url_bar->text())}; + if (kristall::options.search_engine.isEmpty() || + !kristall::options.search_engine.contains("%1")) + { + QMessageBox::warning(this, + "Kristall", + "No search engine is configured.\n" + "Please configure one in the settings to allow searching via the URL bar.\n\n" + "See the Help menu for additional information." + ); + return; + } + url = QUrl{QString(kristall::options.search_engine) + .arg(this->ui->url_bar->text())}; } } diff --git a/src/dialogs/settingsdialog.cpp b/src/dialogs/settingsdialog.cpp index 252c7a6..c164171 100644 --- a/src/dialogs/settingsdialog.cpp +++ b/src/dialogs/settingsdialog.cpp @@ -218,6 +218,12 @@ void SettingsDialog::setOptions(const GenericSettings &options) this->ui->start_page->setText(this->current_options.start_page); + this->ui->search_engine->clear(); + this->ui->search_engine->setEditText(this->current_options.search_engine); + this->ui->search_engine->addItem("gemini://geminispace.info/search?%1"); + this->ui->search_engine->addItem("gemini://gus.guru/search?%1"); + this->ui->search_engine->addItem("gemini://houston.coder.town/search?%1"); + if(this->current_options.gophermap_display == GenericSettings::PlainText) { this->ui->gophermap_text->setChecked(true); } else { @@ -670,6 +676,11 @@ void SettingsDialog::on_start_page_textChanged(const QString &start_page) this->current_options.start_page = start_page; } +void SettingsDialog::on_search_engine_currentTextChanged(const QString &search_engine) +{ + this->current_options.search_engine = search_engine; +} + void SettingsDialog::on_ui_theme_currentIndexChanged(int index) { this->current_options.theme = Theme(this->ui->ui_theme->itemData(index).toInt()); diff --git a/src/dialogs/settingsdialog.hpp b/src/dialogs/settingsdialog.hpp index d515242..748d118 100644 --- a/src/dialogs/settingsdialog.hpp +++ b/src/dialogs/settingsdialog.hpp @@ -112,6 +112,8 @@ private slots: void on_start_page_textChanged(const QString &arg1); + void on_search_engine_currentTextChanged(const QString &arg1); + void on_ui_theme_currentIndexChanged(int index); void on_ui_density_currentIndexChanged(int index); diff --git a/src/dialogs/settingsdialog.ui b/src/dialogs/settingsdialog.ui index a88285e..058c64d 100644 --- a/src/dialogs/settingsdialog.ui +++ b/src/dialogs/settingsdialog.ui @@ -52,6 +52,7 @@ <item row="1" column="1"> <widget class="QComboBox" name="ui_density"/> </item> + <item row="2" column="0"> <widget class="QLabel" name="label_14"> <property name="text"> @@ -67,13 +68,30 @@ </widget> </item> <item row="3" column="0"> + <widget class="QLabel" name="label_40"> + <property name="text"> + <string>Search engine:</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QComboBox" name="search_engine"> + <property name="editable"> + <bool>true</bool> + </property> + <property name="placeholderText"> + <string>Enter URL with '%1' in place of query</string> + </property> + </widget> + </item> + <item row="4" column="0"> <widget class="QLabel" name="label_16"> <property name="text"> <string>Enabled Protocols</string> </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QCheckBox" name="enable_gemini"> @@ -118,14 +136,14 @@ </item> </layout> </item> - <item row="4" column="0"> + <item row="5" column="0"> <widget class="QLabel" name="label_19"> <property name="text"> <string>Text Rendering</string> </property> </widget> </item> - <item row="4" column="1"> + <item row="5" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_5"> <item> <widget class="QRadioButton" name="fancypants_on"> @@ -152,14 +170,14 @@ </item> </layout> </item> - <item row="5" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="label_18"> <property name="text"> <string>Enable text highlights</string> </property> </widget> </item> - <item row="5" column="1"> + <item row="6" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> <widget class="QRadioButton" name="texthl_on"> @@ -186,14 +204,14 @@ </item> </layout> </item> - <item row="6" column="0"> + <item row="7" column="0"> <widget class="QLabel" name="label_20"> <property name="text"> <string>Gopher Map</string> </property> </widget> </item> - <item row="6" column="1"> + <item row="7" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> <widget class="QRadioButton" name="gophermap_icon"> @@ -220,14 +238,14 @@ </item> </layout> </item> - <item row="7" column="0"> + <item row="8" column="0"> <widget class="QLabel" name="label_22"> <property name="text"> <string>Unknown Scheme</string> </property> </widget> </item> - <item row="7" column="1"> + <item row="8" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_7"> <item> <widget class="QRadioButton" name="scheme_os_default"> @@ -251,14 +269,14 @@ </item> </layout> </item> - <item row="8" column="0"> + <item row="9" column="0"> <widget class="QLabel" name="label_23"> <property name="text"> <string>Hidden files in file:// directories</string> </property> </widget> </item> - <item row="8" column="1"> + <item row="9" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_8"> <item> <widget class="QRadioButton" name="show_hidden_files"> @@ -282,14 +300,14 @@ </item> </layout> </item> - <item row="9" column="0"> + <item row="10" column="0"> <widget class="QLabel" name="label_24"> <property name="text"> <string>URL bar highlights</string> </property> </widget> </item> - <item row="9" column="1"> + <item row="10" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_9"> <item> <widget class="QRadioButton" name="urlbarhl_fancy"> @@ -313,7 +331,7 @@ </item> </layout> </item> - <item row="10" column="0"> + <item row="11" column="0"> <widget class="QLabel" name="label_39"> <property name="text"> <string>Use typographer's quotes</string> @@ -323,7 +341,7 @@ </property> </widget> </item> - <item row="10" column="1"> + <item row="11" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_10"> <item> <widget class="QRadioButton" name="fancyquotes_on"> @@ -347,38 +365,38 @@ </item> </layout> </item> - <item row="11" column="0"> + <item row="12" column="0"> <widget class="QLabel" name="label_26"> <property name="text"> <string>Max. Number of Redirections</string> </property> </widget> </item> - <item row="11" column="1"> + <item row="12" column="1"> <widget class="QSpinBox" name="max_redirects"> <property name="value"> <number>5</number> </property> </widget> </item> - <item row="12" column="0"> + <item row="13" column="0"> <widget class="QLabel" name="label_27"> <property name="text"> <string>Redirection Handling</string> </property> </widget> </item> - <item row="12" column="1"> + <item row="13" column="1"> <widget class="QComboBox" name="redirection_mode"/> </item> - <item row="13" column="0"> + <item row="14" column="0"> <widget class="QLabel" name="label_28"> <property name="text"> <string>Network Timeout</string> </property> </widget> </item> - <item row="13" column="1"> + <item row="14" column="1"> <widget class="QSpinBox" name="network_timeout"> <property name="suffix"> <string> ms</string> @@ -391,14 +409,14 @@ </property> </widget> </item> - <item row="14" column="0"> + <item row="15" column="0"> <widget class="QLabel" name="label_29"> <property name="text"> <string>Additional toolbar buttons</string> </property> </widget> </item> - <item row="14" column="1"> + <item row="15" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_99"> <item> <widget class="QCheckBox" name="enable_home_btn"> @@ -416,7 +434,7 @@ </item> </layout> </item> - <item row="15" column="0"> + <item row="16" column="0"> <widget class="QLabel" name="label_30"> <property name="text"> <string>Total cache size limit</string> @@ -426,7 +444,7 @@ </property> </widget> </item> - <item row="15" column="1"> + <item row="16" column="1"> <widget class="QSpinBox" name="cache_limit"> <property name="suffix"> <string> KiB</string> @@ -440,7 +458,7 @@ </widget> </item> - <item row="16" column="0"> + <item row="17" column="0"> <widget class="QLabel" name="label_31"> <property name="text"> <string>Cached item size threshold</string> @@ -450,7 +468,7 @@ </property> </widget> </item> - <item row="16" column="1"> + <item row="17" column="1"> <widget class="QSpinBox" name="cache_threshold"> <property name="suffix"> <string> KiB</string> @@ -464,7 +482,7 @@ </widget> </item> - <item row="17" column="0"> + <item row="18" column="0"> <widget class="QLabel" name="label_31"> <property name="text"> <string>Cached item life</string> @@ -474,7 +492,7 @@ </property> </widget> </item> - <item row="17" column="1"> + <item row="18" column="1"> <widget class="QSpinBox" name="cache_life"> <property name="suffix"> <string> minutes</string> @@ -1319,6 +1337,7 @@ <tabstop>ui_theme</tabstop> <tabstop>ui_density</tabstop> <tabstop>start_page</tabstop> + <tabstop>search_engine</tabstop> <tabstop>enable_gemini</tabstop> <tabstop>enable_gopher</tabstop> <tabstop>enable_finger</tabstop> diff --git a/src/kristall.hpp b/src/kristall.hpp index 6dcf3ee..08b9d0f 100644 --- a/src/kristall.hpp +++ b/src/kristall.hpp @@ -51,6 +51,7 @@ struct GenericSettings }; QString start_page = "about:favourites"; + QString search_engine = "gemini://geminispace.info/search?%1"; Theme theme = Theme::light; UIDensity ui_density = UIDensity::compact; TextDisplay text_display = FormattedText; diff --git a/src/main.cpp b/src/main.cpp index 05bc5e7..09975bb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -331,6 +331,7 @@ void GenericSettings::load(QSettings &settings) { network_timeout = settings.value("network_timeout", 5000).toInt(); start_page = settings.value("start_page", "about:favourites").toString(); + search_engine = settings.value("search_engine", "gemini://geminispace.info/search?%1").toString(); if(settings.value("text_display", "fancy").toString() == "plain") text_display = PlainText; @@ -380,6 +381,7 @@ void GenericSettings::load(QSettings &settings) void GenericSettings::save(QSettings &settings) const { settings.setValue("start_page", this->start_page); + settings.setValue("search_engine", this->search_engine); settings.setValue("text_display", (text_display == FormattedText) ? "fancy" : "plain"); settings.setValue("text_decoration", enable_text_decoration); QString theme_name = "os_default"; |
