This commit is contained in:
Martin Rotter 2016-03-18 07:01:39 +01:00
parent 47ae5a9a07
commit 5f4ec58454
9 changed files with 62 additions and 11 deletions

View file

@ -9,6 +9,7 @@ http://goo.gl/forms/GcvPYgS2a8
Added: Added:
▪ Opened web browser tabs now can be saved. (issue #126)
▪ Added experimental support for tweakable statusbar. (issue #158) ▪ Added experimental support for tweakable statusbar. (issue #158)
▪ Opening of download manager when new file download starts is now optional. (issue #165) ▪ Opening of download manager when new file download starts is now optional. (issue #165)

View file

@ -181,7 +181,7 @@ QModelIndexList MessagesProxyModel::match(const QModelIndex &start, int role,
} }
void MessagesProxyModel::sort(int column, Qt::SortOrder order) { void MessagesProxyModel::sort(int column, Qt::SortOrder order) {
// NOTE: Ignore here, sort is done elsewhere. // NOTE: Ignore here, sort is done elsewhere (server-side).
Q_UNUSED(column) Q_UNUSED(column)
Q_UNUSED(order) Q_UNUSED(order)
} }

View file

@ -410,6 +410,7 @@ void FormSettings::loadBrowser() {
m_ui->m_checkAutoLoadImages->setChecked(WebFactory::instance()->autoloadImages()); m_ui->m_checkAutoLoadImages->setChecked(WebFactory::instance()->autoloadImages());
m_ui->m_checkEnableJavascript->setChecked(WebFactory::instance()->javascriptEnabled()); m_ui->m_checkEnableJavascript->setChecked(WebFactory::instance()->javascriptEnabled());
m_ui->m_checkEnablePlugins->setChecked(WebFactory::instance()->pluginsEnabled()); m_ui->m_checkEnablePlugins->setChecked(WebFactory::instance()->pluginsEnabled());
m_ui->m_checkRememberOpenedTabs->setChecked(m_settings->value(GROUP(Browser), SETTING(Browser::RememberBrowserTabs)).toBool());
// Load settings of e-mail. // Load settings of e-mail.
m_ui->m_cmbExternalEmailPreset->addItem(tr("Mozilla Thunderbird"), QSL("-compose \"subject='%1',body='%2'\"")); m_ui->m_cmbExternalEmailPreset->addItem(tr("Mozilla Thunderbird"), QSL("-compose \"subject='%1',body='%2'\""));
@ -425,6 +426,7 @@ void FormSettings::saveBrowser() {
m_settings->setValue(GROUP(Browser), Browser::QueueTabs, m_ui->m_checkQueueTabs->isChecked()); m_settings->setValue(GROUP(Browser), Browser::QueueTabs, m_ui->m_checkQueueTabs->isChecked());
m_settings->setValue(GROUP(Browser), Browser::CustomExternalBrowserExecutable, m_ui->m_txtExternalBrowserExecutable->text()); m_settings->setValue(GROUP(Browser), Browser::CustomExternalBrowserExecutable, m_ui->m_txtExternalBrowserExecutable->text());
m_settings->setValue(GROUP(Browser), Browser::CustomExternalBrowserArguments, m_ui->m_txtExternalBrowserArguments->text()); m_settings->setValue(GROUP(Browser), Browser::CustomExternalBrowserArguments, m_ui->m_txtExternalBrowserArguments->text());
m_settings->setValue(GROUP(Browser), Browser::RememberBrowserTabs, m_ui->m_checkRememberOpenedTabs->isChecked());
// Save settings of e-mail. // Save settings of e-mail.
m_settings->setValue(GROUP(Browser), Browser::CustomExternalEmailExecutable, m_ui->m_txtExternalEmailExecutable->text()); m_settings->setValue(GROUP(Browser), Browser::CustomExternalEmailExecutable, m_ui->m_txtExternalEmailExecutable->text());

View file

@ -88,7 +88,7 @@
<item row="0" column="1"> <item row="0" column="1">
<widget class="QStackedWidget" name="m_stackedSettings"> <widget class="QStackedWidget" name="m_stackedSettings">
<property name="currentIndex"> <property name="currentIndex">
<number>3</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="m_pageGeneral"> <widget class="QWidget" name="m_pageGeneral">
<layout class="QFormLayout" name="formLayout_5"> <layout class="QFormLayout" name="formLayout_5">
@ -125,6 +125,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0">
<widget class="QCheckBox" name="m_checkRememberOpenedTabs">
<property name="text">
<string>Remember opened web browser tabs</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="m_pageDataStorage"> <widget class="QWidget" name="m_pageDataStorage">
@ -1366,7 +1373,7 @@ Authors of this application are NOT responsible for lost data.</string>
<item> <item>
<widget class="QTabWidget" name="m_tabFeedsMessages"> <widget class="QTabWidget" name="m_tabFeedsMessages">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="m_tabFeeds"> <widget class="QWidget" name="m_tabFeeds">
<attribute name="title"> <attribute name="title">
@ -1565,6 +1572,13 @@ Authors of this application are NOT responsible for lost data.</string>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="1">
<widget class="QCheckBox" name="m_checkOpenManagerWhenDownloadStarts">
<property name="text">
<string>Open download manager when new download is started</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox_3"> <widget class="QGroupBox" name="groupBox_3">
<property name="title"> <property name="title">
@ -1612,13 +1626,6 @@ Authors of this application are NOT responsible for lost data.</string>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<widget class="QCheckBox" name="m_checkOpenManagerWhenDownloadStarts">
<property name="text">
<string>Open download manager when new download is started</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>

View file

@ -153,11 +153,18 @@ void TabWidget::createConnections() {
void TabWidget::initializeTabs() { void TabWidget::initializeTabs() {
// Create widget for "Feeds" page and add it. // Create widget for "Feeds" page and add it.
m_feedMessageViewer = new FeedMessageViewer(this); m_feedMessageViewer = new FeedMessageViewer(this);
const int index_of_browser = addTab(static_cast<TabContent*>(m_feedMessageViewer), const int index_of_browser = addTab(m_feedMessageViewer,
QIcon(), QIcon(),
tr("Feeds"), tr("Feeds"),
TabBar::FeedReader); TabBar::FeedReader);
setTabToolTip(index_of_browser, tr("Browse your feeds and messages")); setTabToolTip(index_of_browser, tr("Browse your feeds and messages"));
if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::RememberBrowserTabs)).toBool()) {
foreach (const QString &url, qApp->settings()->value(GROUP(Browser), SETTING(Browser::OpenedBrowserTabs)).toString().split('##',
QString::SkipEmptyParts)) {
addBrowser(true, false, QUrl::fromUserInput(url));
}
}
} }
void TabWidget::setupIcons() { void TabWidget::setupIcons() {
@ -184,6 +191,25 @@ void TabWidget::setupIcons() {
m_btnAddTab->setIcon(qApp->icons()->fromTheme(QSL("list-add"))); m_btnAddTab->setIcon(qApp->icons()->fromTheme(QSL("list-add")));
} }
void TabWidget::quit() {
if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::RememberBrowserTabs)).toBool()) {
QStringList store_urls;
for (int i = 0; i < count(); i++) {
if (tabBar()->tabType(i) == TabBar::Closable) {
// We have tab with web browser.
QUrl url = widget(i)->webBrowser()->view()->url();
if (url.isValid() && !url.isEmpty()) {
store_urls.append(url.toString());
}
}
}
qApp->settings()->setValue(GROUP(Browser), Browser::OpenedBrowserTabs, store_urls.join(QSL("##")));
}
}
bool TabWidget::closeTab(int index) { bool TabWidget::closeTab(int index) {
if (tabBar()->tabType(index) == TabBar::Closable) { if (tabBar()->tabType(index) == TabBar::Closable) {
removeTab(index, true); removeTab(index, true);

View file

@ -75,6 +75,8 @@ class TabWidget : public QTabWidget {
return m_feedMessageViewer; return m_feedMessageViewer;
} }
void quit();
protected: protected:
// Creates necesary connections. // Creates necesary connections.
void createConnections(); void createConnections();

View file

@ -275,6 +275,7 @@ void Application::onAboutToQuit() {
system()->removeTrolltechJunkRegistryKeys(); system()->removeTrolltechJunkRegistryKeys();
#endif #endif
mainForm()->tabWidget()->quit();
mainForm()->tabWidget()->feedMessageViewer()->quit(); mainForm()->tabWidget()->feedMessageViewer()->quit();
database()->saveDatabase(); database()->saveDatabase();
mainForm()->saveSize(); mainForm()->saveSize();

View file

@ -271,6 +271,12 @@ DVALUE(bool) Browser::ImagesEnabledDef = true;
DKEY Browser::PluginsEnabled = "enable_plugins"; DKEY Browser::PluginsEnabled = "enable_plugins";
DVALUE(bool) Browser::PluginsEnabledDef = false; DVALUE(bool) Browser::PluginsEnabledDef = false;
DKEY Browser::RememberBrowserTabs = "remember_browser_tabs";
DVALUE(bool)Browser::RememberBrowserTabsDef = false;
DKEY Browser::OpenedBrowserTabs = "opened_browser_tabs";
DVALUE(QString)Browser::OpenedBrowserTabsDef = QString();
DKEY Browser::CustomExternalBrowserEnabled = "custom_external_browser"; DKEY Browser::CustomExternalBrowserEnabled = "custom_external_browser";
DVALUE(bool) Browser::CustomExternalBrowserEnabledDef = false; DVALUE(bool) Browser::CustomExternalBrowserEnabledDef = false;

View file

@ -302,6 +302,12 @@ namespace Browser {
KEY PluginsEnabled; KEY PluginsEnabled;
VALUE(bool) PluginsEnabledDef; VALUE(bool) PluginsEnabledDef;
KEY RememberBrowserTabs;
VALUE(bool)RememberBrowserTabsDef;
KEY OpenedBrowserTabs;
VALUE(QString)OpenedBrowserTabsDef;
KEY CustomExternalBrowserEnabled; KEY CustomExternalBrowserEnabled;
VALUE(bool) CustomExternalBrowserEnabledDef; VALUE(bool) CustomExternalBrowserEnabledDef;