diff --git a/CMakeLists.txt b/CMakeLists.txt
index f1c258832..3f05cfdc8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -188,6 +188,7 @@ set(APP_SOURCES
src/gui/tabwidget.cpp
src/gui/tabbar.cpp
src/gui/tabcontent.cpp
+ src/gui/cornerbutton.cpp
# CORE sources.
src/core/debugging.cpp
@@ -230,6 +231,7 @@ set(APP_HEADERS
src/gui/tabwidget.h
src/gui/tabbar.h
src/gui/tabcontent.h
+ src/gui/cornerbutton.h
# CORE headers.
src/core/settings.h
@@ -306,7 +308,7 @@ include_directories (
${CMAKE_CURRENT_BINARY_DIR}/src
)
-# Setup compilation.
+# Setup compilation for Qt 5.
if(${USE_QT_5})
if(WIN32)
add_executable(${EXE_NAME} WIN32
@@ -335,6 +337,7 @@ if(${USE_QT_5})
WebKit
WebKitWidgets
)
+# Setup compilation for Qt 4.
else(${USE_QT_5})
add_executable(${EXE_NAME} WIN32
${APP_SOURCES}
@@ -415,13 +418,13 @@ add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
if(${USE_QT_5})
add_custom_target(lupdate
${Qt5Core_QMAKE_EXECUTABLE} -project -o ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
- COMMAND ${Qt5_LUPDATE_EXECUTABLE} -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
+ COMMAND ${Qt5_LUPDATE_EXECUTABLE} -no-obsolete -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
else(${USE_QT_5})
add_custom_target(lupdate
${QT_QMAKE_EXECUTABLE} -project -o ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
- COMMAND ${QT_LUPDATE_EXECUTABLE} -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
+ COMMAND ${QT_LUPDATE_EXECUTABLE} -no-obsolete -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_CURRENT_BINARY_DIR}/${APP_LOW_NAME}.pro
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
endif(${USE_QT_5})
diff --git a/localization/rssguard_cs.ts b/localization/rssguard_cs.ts
index 6f762a5b5..090da7b76 100644
--- a/localization/rssguard_cs.ts
+++ b/localization/rssguard_cs.ts
@@ -43,6 +43,34 @@
Image
Obrázek
+
+ Open link in new tab
+ Otevřít odkaz v novém panelu
+
+
+ Open this hyperlink in new tab
+ Otevřít tento odkaz v novém panelu
+
+
+ Follow link
+ Přejít
+
+
+ Open the hyperlink in this tab
+ Otevřít tento odkaz v tomto panelu
+
+
+ Open image in new tab
+ Otevřít obrázek v novém panelu
+
+
+ Open this image in this tab
+ Otevřít tento obrázek v novém panelu
+
+
+ Hyperlink
+ Hypertextový odkaz
+
FormAbout
@@ -99,12 +127,16 @@
<b>%8</b><br><b>Verze:</b> %1 (OS při sestavování %2 verze CMake %3)<br><b>Revize:</b> %4<br><b>Datum sestavení:</b> %5<br><b>Qt:</b> %6 (při kompilaci %7)<br>
- <body>Authors and contributors:<ul><li>Martin Rotter (<a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail.com</a>) (author of RSS Guard)</li><li>snakebite & tiheum (authors of KFaenza/Faenza icon theme)</li><li>Digia Plc (author of QtSingleApplication component)</li><li>Artem Galichkin (<a href="mailto://doomer3d@gmail.com">doomer3d@gmail.com</a>) (author of original QKeySequenceWidget component)</li></ul></body>
-
+ Thanks to page is available only in English language.
+ Poděkování je k dispozici pouze v anglickém jazyce.
- <body>RSS Guard is a (very) tiny feed reader.<br><br>This software is distributed under the terms of GNU General Public License, version 3.<br><br>Contacts:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~website</li></ul>You can obtain source code for RSS Guard from its website.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
- <body>RSS Guard je (velmi) jednoduchá čtečka kanálů.<br><br>Tento software je šířen pod licencí GNU General Public, verze 3.<br><br>Kontakty:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~webová stránka</li></ul>Zdrojové kódy aplikace RSS Guard lze získat na její webové stránce.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
+ Authors information not found.
+ Informace o autorech nebyly nalezeny.
+
+
+ <body>RSS Guard is a (very) tiny feed reader.<br><br>This software is distributed under the terms of GNU General Public License, version 3.<br><br>Contacts:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~website</li></ul>You can obtain source code for RSS Guard from its website.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
+ <body>RSS Guard je (velmi) jednoduchá čtečka kanálů.<br><br>Tento software je šířen pod podmínkami licence GNU General Public License, verze 3.<br><br>Kontakty:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~web</li></ul>Zdrojový kód pro RSS Guard lze získat z jeho webu.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
@@ -149,18 +181,6 @@
&Fullscreen mode
&Režime celé obrazovky
-
- Feeds
- Kanály
-
-
- Browser your feeds and messages
- Procházej své kanály a zprávy
-
-
- Web browser
- Webový prohlížeč
-
FormSettings
@@ -312,102 +332,112 @@
Http
-
- Language of Qonverter was changed. Note that changes will take effect on next Qonverter start.
- Jazyk
-
Do you want to restart now?
-
+ Chcete restartovat nyní?
Language changed
-
+ Jazyk změněn
Problem with RSS Guard restart
-
+ Problém s restartem
(not supported on this platform)
-
+ (na této platformě nepodporováno)
Tray area && notifications
-
+ Notifikační oblast
Disable
-
+ Zakázat
Enable
-
+ Povolit
Tabs
-
+ Panely
Close tabs with
-
+ Zavírat panely pomocí
Left mouse button double-click
-
+ Levého tlačítka myši
Middle mouse button single-click
-
+ Prostředního tlačítka myši
Open new tabs with left mouse button double-click on tab bar
-
+ Otevírat nové panely poklepáním na panelový pruh
Enable mouse gestures
-
+ Povolit gesta myši
- Mouse gestures work with right mouse button. Possible gestures are:
+ Web browser & proxy
+ Webový prohlížeč & proxy
+
+
+ Language of RSS Guard was changed. Note that changes will take effect on next Qonverter start.
+ Jazyk RSS Guardu byl změnen. Změn se projeví až po restartu aplikace.
+
+
+ RSS Guard couldn't be restarted, please restart it manually for changes to take effect.
+ RSS Guard nemohl být restartován, prosím restartuje jej ručně.
+
+
+ Disable (Tray icon is not available.)
+ Zakázat (Notifikační ikona není k dispozici.)
+
+
+ Mouse gestures work with middle mouse button. Possible gestures are:
<ul>
<li>previous web page (drag mouse left)</li>
<li>next web page (drag mouse right)</li>
<li>reload current web page (drag mouse up)</li>
<li>open new web browser tab (drag mouse down)</li>
</ul>
-
+ Gesta myši funguji s prostředním tlačítkem myši. Gesta jsou:
+<ul>
+<li>zpět (táhnout myší vlevo)</li>
+<li>vpřed (táhnout myší vpravo)</li>
+<li>obnovit (táhnout myší nahoru)</li>
+<li>otevřít nový panel (táhnout myší dolů)</li>
+</ul>
- Web browser & proxy
-
+ Queue new tabs (with hyperlinks) after the active tab
+ Zařadit nově otevíraný panel za ten aktuální
- Language of RSS Guard was changed. Note that changes will take effect on next Qonverter start.
-
-
-
- RSS Guard couldn't be restarted, please restart it manually for changes to take effect.
-
-
-
- Disable (Tray icon is not available.)
-
+ no icon theme
+ žádné téma ikon
FormWelcome
Welcome
-
+ Vítejte
Welcome to RSS Guard
-
+ Vítá Vás RSS Guard
- <html><head/><body><p>RSS Guard is a (very) easy feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
-
+ <html><head/><body><p>RSS Guard is a (very) easy-to-use feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
+ <html><head/><body><p>RSS Guard je (velmi) jednoduchá čtečka kanálů. Podporuje všechny rozšířené formáty, včetně RSS, ATOM a RDF.</p><p>Ujistěte se, že projdete všechny funkce této aplikace. Pokud chcete nahlásit chybu nebo chcete v programu mít novou vlastnost, pak vyplňte <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">hlášení o chybě</span></a>.</p><p>RSS Guard může být přeložen do libovolného jazyka. Kontaktujte <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">autora</span></a> v případě zájmu o překlad.</p><p><br/></p></body></html>
@@ -438,22 +468,37 @@
rotter.martinos@gmail.com
+
+ TabWidget
+
+ Feeds
+ Kanály
+
+
+ Browse your feeds and messages
+ Procházet kanály a zprávy
+
+
+ Web browser
+ Webový prohlížeč
+
+
TrayIconMenu
Close opened modal dialogs first.
-
+ Nejdříve ukončete otevřené modální dialogy.
WebBrowser
Navigation panel
-
+ Navigační panel
Back
-
+ Zpět
Go back
@@ -461,7 +506,7 @@
Forward
- Zpět
+ Vpřed
Go forward
@@ -477,11 +522,11 @@
Stop
-
+ Zastavit
Stop web page loading
-
+ Zastavit načítání aktuální webové stránky
diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts
index 1a4028c24..1d527b282 100644
--- a/localization/rssguard_en.ts
+++ b/localization/rssguard_en.ts
@@ -43,6 +43,34 @@
Image
+
+ Open link in new tab
+
+
+
+ Open this hyperlink in new tab
+
+
+
+ Follow link
+
+
+
+ Open the hyperlink in this tab
+
+
+
+ Open image in new tab
+
+
+
+ Open this image in this tab
+
+
+
+ Hyperlink
+
+
FormAbout
@@ -99,11 +127,15 @@
- <body>Authors and contributors:<ul><li>Martin Rotter (<a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail.com</a>) (author of RSS Guard)</li><li>snakebite & tiheum (authors of KFaenza/Faenza icon theme)</li><li>Digia Plc (author of QtSingleApplication component)</li><li>Artem Galichkin (<a href="mailto://doomer3d@gmail.com">doomer3d@gmail.com</a>) (author of original QKeySequenceWidget component)</li></ul></body>
+ Thanks to page is available only in English language.
- <body>RSS Guard is a (very) tiny feed reader.<br><br>This software is distributed under the terms of GNU General Public License, version 3.<br><br>Contacts:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~website</li></ul>You can obtain source code for RSS Guard from its website.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
+ Authors information not found.
+
+
+
+ <body>RSS Guard is a (very) tiny feed reader.<br><br>This software is distributed under the terms of GNU General Public License, version 3.<br><br>Contacts:<ul><li><a href="mailto://rotter.martinos@gmail.com">rotter.martinos@gmail</a> ~email</li><li><a href="http://www.rssguard.sf.net">www.rssguard.sf.net</a> ~website</li></ul>You can obtain source code for RSS Guard from its website.<br><br><br>Copyright © 2011-%1 Martin Rotter</body>
@@ -149,18 +181,6 @@
&Fullscreen mode
-
- Feeds
-
-
-
- Browser your feeds and messages
-
-
-
- Web browser
-
-
FormSettings
@@ -364,16 +384,6 @@
Enable mouse gestures
-
- Mouse gestures work with right mouse button. Possible gestures are:
-<ul>
-<li>previous web page (drag mouse left)</li>
-<li>next web page (drag mouse right)</li>
-<li>reload current web page (drag mouse up)</li>
-<li>open new web browser tab (drag mouse down)</li>
-</ul>
-
-
Web browser & proxy
@@ -390,6 +400,24 @@
Disable (Tray icon is not available.)
+
+ Mouse gestures work with middle mouse button. Possible gestures are:
+<ul>
+<li>previous web page (drag mouse left)</li>
+<li>next web page (drag mouse right)</li>
+<li>reload current web page (drag mouse up)</li>
+<li>open new web browser tab (drag mouse down)</li>
+</ul>
+
+
+
+ Queue new tabs (with hyperlinks) after the active tab
+
+
+
+ no icon theme
+
+
FormWelcome
@@ -402,7 +430,7 @@
- <html><head/><body><p>RSS Guard is a (very) easy feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
+ <html><head/><body><p>RSS Guard is a (very) easy-to-use feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
@@ -434,6 +462,21 @@
rotter.martinos@gmail.com
+
+ TabWidget
+
+ Feeds
+
+
+
+ Browse your feeds and messages
+
+
+
+ Web browser
+
+
+
TrayIconMenu
diff --git a/src/gui/cornerbutton.cpp b/src/gui/cornerbutton.cpp
new file mode 100644
index 000000000..87a666eac
--- /dev/null
+++ b/src/gui/cornerbutton.cpp
@@ -0,0 +1,10 @@
+#include "gui/cornerbutton.h"
+
+
+CornerButton::CornerButton(QWidget *parent) : QPushButton(parent) {
+ setToolTip(tr("Open new tab"));
+}
+
+CornerButton::~CornerButton() {
+ qDebug("Destroying CornerButton instance.");
+}
diff --git a/src/gui/cornerbutton.h b/src/gui/cornerbutton.h
new file mode 100644
index 000000000..0447178d3
--- /dev/null
+++ b/src/gui/cornerbutton.h
@@ -0,0 +1,19 @@
+#ifndef CORNERBUTTON_H
+#define CORNERBUTTON_H
+
+#include
+
+
+class CornerButton : public QPushButton {
+ Q_OBJECT
+
+ public:
+ explicit CornerButton(QWidget *parent = 0);
+ virtual ~CornerButton();
+
+ signals:
+
+ public slots:
+};
+
+#endif // CORNERBUTTON_H
diff --git a/src/gui/formwelcome.ui b/src/gui/formwelcome.ui
index 5a81a84e6..4c401f0ed 100644
--- a/src/gui/formwelcome.ui
+++ b/src/gui/formwelcome.ui
@@ -80,7 +80,7 @@
-
- <html><head/><body><p>RSS Guard is a (very) easy feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
+ <html><head/><body><p>RSS Guard is a (very) easy-to-use feed reader. It supports all major feed formats, including RSS, ATOM and RDF.</p><p>Make sure you explore all available features. If you find a bug or if you want to propose new feature, then create new <a href="https://sourceforge.net/p/rssguard/tickets"><span style=" text-decoration: underline; color:#0000ff;">issue report</span></a>.</p><p>RSS Guard can be translated to any language. Contact its <a href="mailto:rotter.martinos@gmail.com"><span style=" text-decoration: underline; color:#0000ff;">author</span></a> in case of your interest.</p><p><br/></p></body></html>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
diff --git a/src/gui/tabbar.h b/src/gui/tabbar.h
index 2cc8938c3..b7df755e7 100644
--- a/src/gui/tabbar.h
+++ b/src/gui/tabbar.h
@@ -29,8 +29,7 @@ class TabBar : public QTabBar {
signals:
// Emmited if empty space on tab bar is double clicked.
- void emptySpaceDoubleClicked();
-
+ void emptySpaceDoubleClicked();
};
#endif // TABBAR_H
diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp
index 4f3ceed8f..c766c91c4 100644
--- a/src/gui/tabwidget.cpp
+++ b/src/gui/tabwidget.cpp
@@ -1,5 +1,6 @@
#include
#include
+#include
#include "core/defs.h"
#include "core/settings.h"
@@ -7,10 +8,12 @@
#include "gui/tabbar.h"
#include "gui/iconthemefactory.h"
#include "gui/webbrowser.h"
+#include "gui/cornerbutton.h"
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) {
setTabBar(new TabBar(this));
+ setupCornerButton();
createConnections();
}
@@ -18,7 +21,15 @@ TabWidget::~TabWidget() {
qDebug("Destroying TabWidget instance.");
}
+void TabWidget::setupCornerButton() {
+ m_cornerButton = new CornerButton(this);
+ m_cornerButton->setFlat(true);
+ m_cornerButton->setIcon(IconThemeFactory::getInstance()->fromTheme("list-add"));
+ setCornerWidget(m_cornerButton);
+}
+
void TabWidget::createConnections() {
+ connect(m_cornerButton, SIGNAL(clicked()), this, SLOT(addEmptyBrowser()));
connect(tabBar(), SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
connect(tabBar(), SIGNAL(emptySpaceDoubleClicked()),
this, SLOT(addEmptyBrowser()));
@@ -60,6 +71,9 @@ void TabWidget::setupIcons() {
}
}
}
+
+ // Setup corner button icon.
+ m_cornerButton->setIcon(IconThemeFactory::getInstance()->fromTheme("list-add"));
}
void TabWidget::closeTab(int index) {
diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h
index 90c160982..d7d1a01fc 100644
--- a/src/gui/tabwidget.h
+++ b/src/gui/tabwidget.h
@@ -8,6 +8,8 @@
#include "gui/tabcontent.h"
+class CornerButton;
+
class TabWidget : public QTabWidget {
Q_OBJECT
@@ -41,6 +43,9 @@ class TabWidget : public QTabWidget {
protected:
// Creates necesary connections.
void createConnections();
+
+ // Sets up properties of custom corner button.
+ void setupCornerButton();
public slots:
// Closes tab with given index and deletes contained widget.
@@ -57,6 +62,9 @@ class TabWidget : public QTabWidget {
int addBrowser(bool move_after_current,
bool make_active,
const QUrl &initial_url = QUrl());
+
+ private:
+ CornerButton *m_cornerButton;
};
#endif // TABWIDGET_H