aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/poi.cfg1
-rw-r--r--linux/makepkg/PKGBUILD2
-rw-r--r--src/lib/navigation/urllineedit.cpp6
-rw-r--r--src/mainwindow.cpp21
-rw-r--r--src/widgets/webviewtabbar.cpp10
-rw-r--r--src/widgets/webviewtabbar.h4
6 files changed, 29 insertions, 15 deletions
diff --git a/data/poi.cfg b/data/poi.cfg
index 0731ba2..0ec54f3 100644
--- a/data/poi.cfg
+++ b/data/poi.cfg
@@ -43,6 +43,7 @@ browser = {
// Profile settings
profile = {
path = "~/.config/smolbote/Profiles";
+ search = "https://duckduckgo.com/?q=$term&ia=web"
homepage = "about:blank";
newtab = "about:blank";
};
diff --git a/linux/makepkg/PKGBUILD b/linux/makepkg/PKGBUILD
index 0d9fc88..b506347 100644
--- a/linux/makepkg/PKGBUILD
+++ b/linux/makepkg/PKGBUILD
@@ -10,7 +10,7 @@ arch=('x86_64')
license=('GPL3')
depends=('qt5-base' 'qt5-webengine')
-makedepends=('git' 'qt5-tools' 'qbs')
+makedepends=('git' 'qt5-tools' 'qbs', 'libconfig', 'pkg-config')
source=("git+git://neueland.iserlohn-fortress.net/smolbote.git")
sha512sums=('SKIP')
diff --git a/src/lib/navigation/urllineedit.cpp b/src/lib/navigation/urllineedit.cpp
index c587f43..f40d240 100644
--- a/src/lib/navigation/urllineedit.cpp
+++ b/src/lib/navigation/urllineedit.cpp
@@ -80,7 +80,11 @@ UrlLineEdit::UrlLineEdit(QWidget *parent) :
// connect signals
connect(this, SIGNAL(textEdited(QString)), this, SLOT(showCompleter(QString)));
connect(this, &QLineEdit::returnPressed, [this]() {
- emit addressEntered(QUrl::fromUserInput(this->text()));
+ if(this->text().startsWith('#')) {
+ emit searchTermEntered(this->text().mid(1));
+ } else {
+ emit addressEntered(QUrl::fromUserInput(this->text()));
+ }
m_menu->hide();
this->clearFocus();
});
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 16e0ed0..3dbcbdf 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -44,7 +44,7 @@
MainWindow::MainWindow(std::shared_ptr<Configuration> config, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
- tabBar(new WebViewTabBar(nullptr, this)),
+ tabBar(new WebViewTabBar(config, nullptr, this)),
menuBar(new MainWindowMenuBar(config, this)),
m_addressBar(new UrlLineEdit(this)),
m_progressBar(new LoadingBar(this))
@@ -101,11 +101,13 @@ MainWindow::MainWindow(std::shared_ptr<Configuration> config, QWidget *parent) :
connect(m_addressBar, &UrlLineEdit::addressEntered, this, [&](const QUrl &url) {
tabBar->currentView()->load(url);
});
-// connect(m_addressBar, &AddressBar::searchTermEntered, this, [&](const QString &string) {
-// QString term = string.mid(1);
-// term.replace(' ', '+');
-// //tabBar->currentView()->load(QUrl::fromUserInput(browser->settings()->value("general.search").toString().replace("$term", term)));
-// });
+ connect(m_addressBar, &UrlLineEdit::searchTermEntered, this, [&](const QString &term) {
+ QString t = term;
+ t.replace(' ', '+');
+ QString url = QString::fromStdString(m_config->value<std::string>("profile.search").value());
+ url.replace("$term", t);
+ tabBar->currentView()->load(QUrl::fromUserInput(url));
+ });
connect(tabBar, SIGNAL(currentTabChanged(WebView*)), this, SLOT(handleTabChanged(WebView*)));
// loading bar
@@ -113,8 +115,13 @@ MainWindow::MainWindow(std::shared_ptr<Configuration> config, QWidget *parent) :
// shortcuts
QAction *focusAddressAction = new QAction(this);
+ focusAddressAction->setShortcut(QKeySequence(QString::fromStdString(m_config->value<std::string>("browser.shortcuts.focusAddress").value())));
//focusAddressAction->setShortcut(QKeySequence::fromString(browser->settings()->value("window.shortcuts.focusAddress").toString()));
- connect(focusAddressAction, SIGNAL(triggered(bool)), this, SLOT(focusAddress()));
+ //connect(focusAddressAction, SIGNAL(triggered(bool)), this, SLOT(focusAddress()));
+ connect(focusAddressAction, &QAction::triggered, this, [this]() {
+ m_addressBar->setFocus();
+ m_addressBar->selectAll();
+ });
addAction(focusAddressAction);
resize(m_config->value<int>("browser.window.width").value(), m_config->value<int>("browser.window.height").value());
diff --git a/src/widgets/webviewtabbar.cpp b/src/widgets/webviewtabbar.cpp
index 0baf68a..81851f3 100644
--- a/src/widgets/webviewtabbar.cpp
+++ b/src/widgets/webviewtabbar.cpp
@@ -22,10 +22,10 @@
#include <QAction>
#include <QContextMenuEvent>
#include <QMenu>
-
+#include <settings/configuration.h>
#include <QShortcut>
-WebViewTabBar::WebViewTabBar(WebEngineProfile *profile, QWidget *parent) :
+WebViewTabBar::WebViewTabBar(const std::shared_ptr<Configuration> &config, WebEngineProfile *profile, QWidget *parent) :
QTabBar(parent)
{
m_profile = profile;
@@ -39,19 +39,19 @@ WebViewTabBar::WebViewTabBar(WebEngineProfile *profile, QWidget *parent) :
connect(this, SIGNAL(tabMoved(int,int)), this, SLOT(updateVectorArrangement(int,int)));
QShortcut *tabCloseShortcut = new QShortcut(this);
- //tabCloseShortcut->setKey(QKeySequence::fromString(browser->settings()->value("window.shortcuts.tabClose").toString()));
+ tabCloseShortcut->setKey(QKeySequence(QString::fromStdString(config->value<std::string>("browser.shortcuts.tabClose").value())));
connect(tabCloseShortcut, &QShortcut::activated, [this]() {
this->removeTab(currentIndex());
});
QShortcut *tabLeftShortcut = new QShortcut(this);
- //tabLeftShortcut->setKey(QKeySequence::fromString(browser->settings()->value("window.shortcuts.tabLeft").toString()));
+ tabLeftShortcut->setKey(QKeySequence(QString::fromStdString(config->value<std::string>("browser.shortcuts.tabLeft").value())));
connect(tabLeftShortcut, &QShortcut::activated, [this]() {
this->setCurrentIndex(currentIndex()-1);
});
QShortcut *tabRightShortcut = new QShortcut(this);
- //tabRightShortcut->setKey(QKeySequence::fromString(browser->settings()->value("window.shortcuts.tabRight").toString()));
+ tabRightShortcut->setKey(QKeySequence(QString::fromStdString(config->value<std::string>("browser.shortcuts.tabRight").value())));
connect(tabRightShortcut, &QShortcut::activated, [this]() {
this->setCurrentIndex(currentIndex()+1);
});
diff --git a/src/widgets/webviewtabbar.h b/src/widgets/webviewtabbar.h
index d73608c..64bb6a2 100644
--- a/src/widgets/webviewtabbar.h
+++ b/src/widgets/webviewtabbar.h
@@ -24,13 +24,15 @@
#include <QTabBar>
#include "webengine/webview.h"
#include "webengine/webengineprofile.h"
+#include <memory>
+class Configuration;
class WebViewTabBar : public QTabBar
{
Q_OBJECT
public:
- explicit WebViewTabBar(WebEngineProfile *profile = nullptr, QWidget *parent = 0);
+ explicit WebViewTabBar(const std::shared_ptr<Configuration> &config, WebEngineProfile *profile = nullptr, QWidget *parent = 0);
~WebViewTabBar();
void setProfile(WebEngineProfile *profile);