Fixed #126.
This commit is contained in:
		
							parent
							
								
									47ae5a9a07
								
							
						
					
					
						commit
						5f4ec58454
					
				
					 9 changed files with 62 additions and 11 deletions
				
			
		| 
						 | 
					@ -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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue