diff --git a/src/QupZilla.pro b/src/QupZilla.pro index b61095e7d..4ad3b0775 100644 --- a/src/QupZilla.pro +++ b/src/QupZilla.pro @@ -122,7 +122,8 @@ SOURCES += main.cpp\ tools/widget.cpp \ 3rdparty/squeezelabelv2.cpp \ 3rdparty/squeezelabelv1.cpp \ - tools/buttonwithmenu.cpp + tools/buttonwithmenu.cpp \ + navigation/locationbarsettings.cpp HEADERS += \ 3rdparty/qtwin.h \ @@ -205,7 +206,8 @@ HEADERS += \ tools/widget.h \ 3rdparty/squeezelabelv2.h \ 3rdparty/squeezelabelv1.h \ - tools/buttonwithmenu.h + tools/buttonwithmenu.h \ + navigation/locationbarsettings.h FORMS += \ preferences/autofillmanager.ui \ diff --git a/src/app/mainapplication.h b/src/app/mainapplication.h index f69455c3f..ad4d3d221 100644 --- a/src/app/mainapplication.h +++ b/src/app/mainapplication.h @@ -58,7 +58,7 @@ public: enum MessageType{ SetAdBlockIconEnabled, CheckPrivateBrowsing , ReloadSettings }; void loadSettings(); - void reloadSettings() { emit message(ReloadSettings, true); } + void reloadSettings() { loadSettings(); emit message(ReloadSettings, true); } bool restoreStateSlot(QupZilla* window); void makeNewWindow(bool tryRestore, const QUrl &startUrl=QUrl()); void addNewTab(const QUrl &url = QUrl()); diff --git a/src/app/qupzilla.cpp b/src/app/qupzilla.cpp index 07e9f7ce8..626b915ab 100644 --- a/src/app/qupzilla.cpp +++ b/src/app/qupzilla.cpp @@ -53,6 +53,7 @@ #include "adblockicon.h" #include "closedtabsmanager.h" #include "statusbarmessage.h" +#include "locationbarsettings.h" const QString QupZilla::VERSION = "1.0.0-b3"; //const QString QupZilla::BUILDTIME = QLocale(QLocale::English).toDateTime(__DATE__" "__TIME__, "MMM d yyyy hh:mm:ss").toString("MM/dd/yyyy hh:ss"); @@ -499,7 +500,7 @@ void QupZilla::receiveMessage(MainApplication::MessageType mes, bool state) case MainApplication::ReloadSettings: loadSettings(); m_tabWidget->loadSettings(); -// m_locationBar->loadSettings(); + LocationBarSettings::instance()->loadSettings(); break; default: @@ -934,15 +935,12 @@ void QupZilla::showBookmarksToolbar() void QupZilla::showBookmarksSideBar() { - bool saveToSettings = false; if (!m_sideBar) { m_sideBar = new SideBar(this); addDockWidget(Qt::LeftDockWidgetArea, m_sideBar); m_sideBar->showBookmarks(); - saveToSettings = true; } else if (m_actionShowBookmarksSideBar->isChecked()){ m_sideBar->showBookmarks(); - saveToSettings = true; } else { m_sideBar->close(); } diff --git a/src/navigation/locationbar.cpp b/src/navigation/locationbar.cpp index c1ce79f75..e5b26c976 100644 --- a/src/navigation/locationbar.cpp +++ b/src/navigation/locationbar.cpp @@ -28,14 +28,13 @@ #include "bookmarkicon.h" #include "progressbar.h" #include "statusbarmessage.h" +#include "locationbarsettings.h" LocationBar::LocationBar(QupZilla* mainClass) : LineEdit() - ,m_selectAllOnDoubleClick(false) - ,m_addComWithCtrl(false) - ,m_addCountryWithAlt(false) ,p_QupZilla(mainClass) ,m_webView(0) + ,m_locationBarSettings(LocationBarSettings::instance()) { m_siteIcon = new QToolButton(this); m_siteIcon->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); @@ -76,7 +75,6 @@ LocationBar::LocationBar(QupZilla* mainClass) setWidgetSpacing(0); this->setMinimumHeight(25); this->setMaximumHeight(25); - loadSettings(); m_locationCompleter = new LocationCompleter(); setCompleter(m_locationCompleter); @@ -97,15 +95,6 @@ LocationBar::LocationBar(QupZilla* mainClass) // setLeftMargin(m_siteIcon->sizeHint().width()+1); } -void LocationBar::loadSettings() -{ - QSettings settings(p_QupZilla->activeProfil()+"settings.ini", QSettings::IniFormat); - settings.beginGroup("AddressBar"); - m_selectAllOnDoubleClick = settings.value("SelectAllTextOnDoubleClick",true).toBool(); - m_addComWithCtrl = settings.value("AddComDomainWithCtrlKey",false).toBool(); - m_addCountryWithAlt = settings.value("AddCountryDomainWithAltKey",true).toBool(); -} - void LocationBar::urlEnter() { m_webView->setFocus(); @@ -263,7 +252,7 @@ void LocationBar::dropEvent(QDropEvent* event) void LocationBar::mouseDoubleClickEvent(QMouseEvent* event) { - if (event->button() == Qt::LeftButton && m_selectAllOnDoubleClick) + if (event->button() == Qt::LeftButton && m_locationBarSettings->selectAllOnDoubleClick) selectAll(); else QLineEdit::mouseDoubleClickEvent(event); @@ -278,9 +267,9 @@ void LocationBar::keyPressEvent(QKeyEvent *event) } QString localDomain = tr(".co.uk","Append domain name on ALT key = Should be different for every country"); - if (event->key() == Qt::Key_Control && m_addComWithCtrl && !text().endsWith(".com")) //Disabled for a while + if (event->key() == Qt::Key_Control && m_locationBarSettings->addComWithCtrl && !text().endsWith(".com")) //Disabled for a while setText(text().append(".com")); - if (event->key() == Qt::Key_Alt && m_addCountryWithAlt && !text().endsWith(localDomain) && !text().endsWith("/")) + if (event->key() == Qt::Key_Alt && m_locationBarSettings->addCountryWithAlt && !text().endsWith(localDomain) && !text().endsWith("/")) setText(text().append(localDomain)); QLineEdit::keyPressEvent(event); diff --git a/src/navigation/locationbar.h b/src/navigation/locationbar.h index b9daf924c..ef9042c19 100644 --- a/src/navigation/locationbar.h +++ b/src/navigation/locationbar.h @@ -38,6 +38,7 @@ class LocationCompleter; class ClickableLabel; class BookmarkIcon; class WebView; +class LocationBarSettings; class LocationBar : public LineEdit { Q_OBJECT @@ -47,8 +48,6 @@ public: void setWebView(WebView* view) { m_webView = view; } - void loadSettings(); - public slots: void showUrl(const QUrl &url, bool empty = true); @@ -77,12 +76,10 @@ private: ClickableLabel* m_rssIcon; QToolButton* m_siteIcon; - bool m_selectAllOnDoubleClick; - bool m_addComWithCtrl; - bool m_addCountryWithAlt; QupZilla* p_QupZilla; WebView* m_webView; LocationCompleter* m_locationCompleter; + LocationBarSettings* m_locationBarSettings; bool m_rssIconVisible; }; diff --git a/src/navigation/locationbarsettings.cpp b/src/navigation/locationbarsettings.cpp new file mode 100644 index 000000000..808aa04d7 --- /dev/null +++ b/src/navigation/locationbarsettings.cpp @@ -0,0 +1,28 @@ +#include "locationbarsettings.h" +#include "mainapplication.h" + +LocationBarSettings* LocationBarSettings::s_instance = 0; +bool LocationBarSettings::selectAllOnDoubleClick = false; +bool LocationBarSettings::addComWithCtrl = false; +bool LocationBarSettings::addCountryWithAlt = false; + +LocationBarSettings::LocationBarSettings() +{ + loadSettings(); +} + +LocationBarSettings* LocationBarSettings::instance() +{ + if (!s_instance) + s_instance = new LocationBarSettings(); + return s_instance; +} + +void LocationBarSettings::loadSettings() +{ + QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + settings.beginGroup("AddressBar"); + selectAllOnDoubleClick = settings.value("SelectAllTextOnDoubleClick",true).toBool(); + addComWithCtrl = settings.value("AddComDomainWithCtrlKey",false).toBool(); + addCountryWithAlt = settings.value("AddCountryDomainWithAltKey",true).toBool(); +} diff --git a/src/navigation/locationbarsettings.h b/src/navigation/locationbarsettings.h new file mode 100644 index 000000000..7e6adc3e2 --- /dev/null +++ b/src/navigation/locationbarsettings.h @@ -0,0 +1,22 @@ +#ifndef LOCATIONBARSETTINGS_H +#define LOCATIONBARSETTINGS_H + +#include + +class LocationBarSettings +{ +public: + LocationBarSettings(); + + static LocationBarSettings* instance(); + + static void loadSettings(); + static bool selectAllOnDoubleClick; + static bool addComWithCtrl; + static bool addCountryWithAlt; + +private: + static LocationBarSettings* s_instance; +}; + +#endif // LOCATIONBARSETTINGS_H diff --git a/src/preferences/preferences.cpp b/src/preferences/preferences.cpp index 1b5252c4d..ecc813d53 100644 --- a/src/preferences/preferences.cpp +++ b/src/preferences/preferences.cpp @@ -722,10 +722,9 @@ void Preferences::saveSettings() m_pluginsList->save(); mApp->cookieJar()->loadSettings(); mApp->history()->loadSettings(); - mApp->loadSettings(); + mApp->reloadSettings(); mApp->plugins()->c2f_saveSettings(); mApp->networkManager()->loadSettings(); - mApp->reloadSettings(); mApp->desktopNotifications()->loadSettings(); }