From 752d5074141e2fe16231ab0cd0098a522276e8e4 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 20 Jun 2016 07:07:59 +0200 Subject: [PATCH] Fixed small bug when changing states of msgs via internal viewer. --- rssguard.pro | 1170 ++++++++--------- src/core/messagesmodel.cpp | 16 +- src/definitions/definitions.h | 4 +- src/gui/webbrowser.cpp | 10 +- src/gui/webbrowser.h | 2 +- src/gui/webviewer.cpp | 16 +- src/gui/webviewer.h | 8 +- .../{messagebrowserpage.cpp => webpage.cpp} | 10 +- .../{messagebrowserpage.h => webpage.h} | 13 +- 9 files changed, 629 insertions(+), 620 deletions(-) mode change 100644 => 100755 src/definitions/definitions.h mode change 100644 => 100755 src/gui/webviewer.h rename src/network-web/{messagebrowserpage.cpp => webpage.cpp} (81%) mode change 100644 => 100755 rename src/network-web/{messagebrowserpage.h => webpage.h} (76%) mode change 100644 => 100755 diff --git a/rssguard.pro b/rssguard.pro index 4f458f27b..51c23c2fe 100755 --- a/rssguard.pro +++ b/rssguard.pro @@ -1,585 +1,585 @@ -################################################################# -# -# This file is part of RSS Guard. -# -# Copyright (C) 2011-2016 by Martin Rotter -# -# RSS Guard is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# RSS Guard is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with RSS Guard. If not, see . -# -# -# This is RSS Guard compilation script for qmake. -# -# Usage: -# a) DEBUG build for testing. (out of source build type) -# cd ../build-dir -# qmake ../rssguard-dir/rssguard.pro -r CONFIG+=debug PREFIX=C:\Program Files\RSS Guard -# make -# make install -# -# b) RELEASE build for production use. (out of source build type) -# cd ../build-dir -# qmake ../rssguard-dir/rssguard.pro -r CONFIG+=release PREFIX=/usr INSTALL_ROOT=./app -# make -# make INSTALL_ROOT=./app install -# -# Variables: -# PREFIX - specifies parent folder structure under which installed files will really finally lie. -# !!! This is usually needed on Linux and its typical value would be "/usr". -# -# INSTALL_ROOT - specifies the folder under which compiled application data will be temporarily placed -# after the "make install" step. Note that this variable has different meaning from PREFIX which describes -# the final path and is usually "/usr". -# -# LRELEASE_EXECUTABLE - specifies the name/path of "lrelease" executable, defaults to "lrelease". -# -# Other information: -# - supports Windows, Linux, -# - Qt 5.6 and higher is required, -# - C++ 11 is required. -# -# Authors and contributors: -# - Martin Rotter (project leader), -# - Elbert Pol (huge OS/2-related contributions). -# -################################################################# - -TEMPLATE = app -TARGET = rssguard -DEFINES *= QT_USE_QSTRINGBUILDER - -message(rssguard: Welcome RSS Guard qmake script.) - -lessThan(QT_MAJOR_VERSION, 5)|lessThan(QT_MINOR_VERSION, 5) { - error(rssguard: At least Qt 5.7.0 is required.) -} - -APP_NAME = "RSS Guard" -APP_LOW_NAME = "rssguard" -APP_LOW_H_NAME = ".rssguard" -APP_AUTHOR = "Martin Rotter" -APP_COPYRIGHT = "(C) 2011-2016 $$APP_AUTHOR" -APP_VERSION = "3.3.0" -APP_LONG_NAME = "$$APP_NAME $$APP_VERSION" -APP_EMAIL = "rotter.martinos@gmail.com" -APP_URL = "http://bitbucket.org/skunkos/rssguard" -APP_URL_ISSUES = "http://bitbucket.org/skunkos/rssguard/issues" -APP_URL_ISSUES_NEW_GITHUB = "https://github.com/martinrotter/rssguard/issues/new" -APP_URL_ISSUES_NEW_BITBUCKET = "http://bitbucket.org/skunkos/rssguard/issues/new" -APP_URL_WIKI = "https://bitbucket.org/skunkos/rssguard/wiki/Home" -APP_USERAGENT = "RSS Guard/$$APP_VERSION (bitbucket.org/skunkos/rssguard)" -APP_DONATE_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=XMWPLPK893VH4" - -isEmpty(PREFIX) { - message(rssguard: PREFIX variable is not set. This might indicate error.) - - win32 { - PREFIX = $$OUT_PWD/app - } -} - -isEmpty(LRELEASE_EXECUTABLE) { - LRELEASE_EXECUTABLE = lrelease - message(rssguard: LRELEASE_EXECUTABLE variable is not set.) -} - -unix:!mac { - isEmpty(INSTALL_ROOT) { - message(rssguard: Variable INSTALL_ROOT is empty.) - } -} - -# Custom definitions. -DEFINES += APP_PREFIX=\"$$PREFIX\" -DEFINES += APP_VERSION=\"$$APP_VERSION\" -DEFINES += APP_NAME=\"$$APP_NAME\" -DEFINES += APP_LOW_NAME=\"$$APP_LOW_NAME\" -DEFINES += APP_LOW_H_NAME=\"$$APP_LOW_H_NAME\" -DEFINES += APP_LONG_NAME=\"$$APP_LONG_NAME\" -DEFINES += APP_AUTHOR=\"$$APP_AUTHOR\" -DEFINES += APP_EMAIL=\"$$APP_EMAIL\" -DEFINES += APP_URL=\"$$APP_URL\" -DEFINES += APP_URL_ISSUES=\"$$APP_URL_ISSUES\" -DEFINES += APP_URL_ISSUES_NEW_GITHUB=\"$$APP_URL_ISSUES_NEW_GITHUB\" -DEFINES += APP_URL_ISSUES_NEW_BITBUCKET=\"$$APP_URL_ISSUES_NEW_BITBUCKET\" -DEFINES += APP_URL_WIKI=\"$$APP_URL_WIKI\" -DEFINES += APP_USERAGENT=\"$$APP_USERAGENT\" -DEFINES += APP_DONATE_URL=\"$$APP_DONATE_URL\" -DEFINES += APP_SYSTEM_NAME=\"$$QMAKE_HOST.os\" -DEFINES += APP_SYSTEM_VERSION=\"$$QMAKE_HOST.arch\" - -CODECFORTR = UTF-8 -CODECFORSRC = UTF-8 - -exists(.git) { - APP_REVISION = $$system(git rev-parse --short HEAD) -} - -isEmpty(APP_REVISION) { - APP_REVISION = "-" -} - -DEFINES += APP_REVISION=\"$$APP_REVISION\" - -message(rssguard: RSS Guard version is: '$$APP_VERSION'.) -message(rssguard: Detected Qt version: '$$QT_VERSION'.) -message(rssguard: Build directory: '$$DESTDIR'.) -message(rssguard: Prefix directory: '$$PREFIX'.) -message(rssguard: Build revision: '$$APP_REVISION'.) -message(rssguard: lrelease executable name: '$$LRELEASE_EXECUTABLE'.) - -QT += core gui widgets webenginewidgets sql network xml printsupport -CONFIG *= c++11 debug_and_release warn_on -DEFINES *= QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS UNICODE _UNICODE -VERSION = $$APP_VERSION - -MOC_DIR = $$OUT_PWD/moc -RCC_DIR = $$OUT_PWD/rcc -UI_DIR = $$OUT_PWD/ui - -# Make needed tweaks for RC file getting generated on Windows. -win32 { - RC_ICONS = resources/graphics/rssguard.ico - QMAKE_TARGET_COMPANY = $$APP_AUTHOR - QMAKE_TARGET_DESCRIPTION = $$APP_NAME - QMAKE_TARGET_COPYRIGHT = $$APP_COPYRIGHT - QMAKE_TARGET_PRODUCT = $$APP_NAME -} - -HEADERS += src/core/feeddownloader.h \ - src/core/feedsmodel.h \ - src/core/feedsproxymodel.h \ - src/core/message.h \ - src/core/messagesmodel.h \ - src/core/messagesproxymodel.h \ - src/core/parsingfactory.h \ - src/definitions/definitions.h \ - src/dynamic-shortcuts/dynamicshortcuts.h \ - src/dynamic-shortcuts/dynamicshortcutswidget.h \ - src/dynamic-shortcuts/shortcutbutton.h \ - src/dynamic-shortcuts/shortcutcatcher.h \ - src/exceptions/applicationexception.h \ - src/exceptions/ioexception.h \ - src/gui/baselineedit.h \ - src/gui/basetoolbar.h \ - src/gui/colorlabel.h \ - src/gui/comboboxwithstatus.h \ - src/gui/dialogs/formabout.h \ - src/gui/dialogs/formaddaccount.h \ - src/gui/dialogs/formbackupdatabasesettings.h \ - src/gui/dialogs/formdatabasecleanup.h \ - src/gui/dialogs/formmain.h \ - src/gui/dialogs/formrestoredatabasesettings.h \ - src/gui/dialogs/formsettings.h \ - src/gui/dialogs/formupdate.h \ - src/gui/edittableview.h \ - src/gui/feedmessageviewer.h \ - src/gui/feedstoolbar.h \ - src/gui/feedsview.h \ - src/gui/labelwithstatus.h \ - src/gui/lineeditwithstatus.h \ - src/gui/messagebox.h \ - src/gui/messagessearchlineedit.h \ - src/gui/messagestoolbar.h \ - src/gui/messagesview.h \ - src/gui/plaintoolbutton.h \ - src/gui/squeezelabel.h \ - src/gui/statusbar.h \ - src/gui/styleditemdelegatewithoutfocus.h \ - src/gui/systemtrayicon.h \ - src/gui/tabbar.h \ - src/gui/tabcontent.h \ - src/gui/tabwidget.h \ - src/gui/timespinbox.h \ - src/gui/toolbareditor.h \ - src/gui/widgetwithstatus.h \ - src/miscellaneous/application.h \ - src/miscellaneous/autosaver.h \ - src/miscellaneous/databasecleaner.h \ - src/miscellaneous/databasefactory.h \ - src/miscellaneous/databasequeries.h \ - src/miscellaneous/debugging.h \ - src/miscellaneous/iconfactory.h \ - src/miscellaneous/iofactory.h \ - src/miscellaneous/localization.h \ - src/miscellaneous/mutex.h \ - src/miscellaneous/settings.h \ - src/miscellaneous/settingsproperties.h \ - src/miscellaneous/simplecrypt/simplecrypt.h \ - src/miscellaneous/skinfactory.h \ - src/miscellaneous/systemfactory.h \ - src/miscellaneous/textfactory.h \ - src/network-web/basenetworkaccessmanager.h \ - src/network-web/downloader.h \ - src/network-web/downloadmanager.h \ - src/network-web/networkfactory.h \ - src/network-web/silentnetworkaccessmanager.h \ - src/network-web/webfactory.h \ - src/qtsingleapplication/qtlocalpeer.h \ - src/qtsingleapplication/qtlockedfile.h \ - src/qtsingleapplication/qtsingleapplication.h \ - src/qtsingleapplication/qtsinglecoreapplication.h \ - src/services/abstract/accountcheckmodel.h \ - src/services/abstract/category.h \ - src/services/abstract/feed.h \ - src/services/abstract/gui/formfeeddetails.h \ - src/services/abstract/recyclebin.h \ - src/services/abstract/rootitem.h \ - src/services/abstract/serviceentrypoint.h \ - src/services/abstract/serviceroot.h \ - src/services/owncloud/definitions.h \ - src/services/owncloud/gui/formeditowncloudaccount.h \ - src/services/owncloud/gui/formowncloudfeeddetails.h \ - src/services/owncloud/network/owncloudnetworkfactory.h \ - src/services/owncloud/owncloudcategory.h \ - src/services/owncloud/owncloudfeed.h \ - src/services/owncloud/owncloudrecyclebin.h \ - src/services/owncloud/owncloudserviceentrypoint.h \ - src/services/owncloud/owncloudserviceroot.h \ - src/services/standard/gui/formstandardcategorydetails.h \ - src/services/standard/gui/formstandardfeeddetails.h \ - src/services/standard/gui/formstandardimportexport.h \ - src/services/standard/standardcategory.h \ - src/services/standard/standardfeed.h \ - src/services/standard/standardfeedsimportexportmodel.h \ - src/services/standard/standardserviceentrypoint.h \ - src/services/standard/standardserviceroot.h \ - src/services/tt-rss/definitions.h \ - src/services/tt-rss/gui/formeditaccount.h \ - src/services/tt-rss/gui/formttrssfeeddetails.h \ - src/services/tt-rss/network/ttrssnetworkfactory.h \ - src/services/tt-rss/ttrsscategory.h \ - src/services/tt-rss/ttrssfeed.h \ - src/services/tt-rss/ttrssrecyclebin.h \ - src/services/tt-rss/ttrssserviceentrypoint.h \ - src/services/tt-rss/ttrssserviceroot.h \ - src/network-web/messagebrowserpage.h \ - src/gui/webviewer.h \ - src/gui/webbrowser.h - -SOURCES += src/core/feeddownloader.cpp \ - src/core/feedsmodel.cpp \ - src/core/feedsproxymodel.cpp \ - src/core/message.cpp \ - src/core/messagesmodel.cpp \ - src/core/messagesproxymodel.cpp \ - src/core/parsingfactory.cpp \ - src/dynamic-shortcuts/dynamicshortcuts.cpp \ - src/dynamic-shortcuts/dynamicshortcutswidget.cpp \ - src/dynamic-shortcuts/shortcutbutton.cpp \ - src/dynamic-shortcuts/shortcutcatcher.cpp \ - src/exceptions/applicationexception.cpp \ - src/exceptions/ioexception.cpp \ - src/gui/baselineedit.cpp \ - src/gui/basetoolbar.cpp \ - src/gui/colorlabel.cpp \ - src/gui/comboboxwithstatus.cpp \ - src/gui/dialogs/formabout.cpp \ - src/gui/dialogs/formaddaccount.cpp \ - src/gui/dialogs/formbackupdatabasesettings.cpp \ - src/gui/dialogs/formdatabasecleanup.cpp \ - src/gui/dialogs/formmain.cpp \ - src/gui/dialogs/formrestoredatabasesettings.cpp \ - src/gui/dialogs/formsettings.cpp \ - src/gui/dialogs/formupdate.cpp \ - src/gui/edittableview.cpp \ - src/gui/feedmessageviewer.cpp \ - src/gui/feedstoolbar.cpp \ - src/gui/feedsview.cpp \ - src/gui/labelwithstatus.cpp \ - src/gui/lineeditwithstatus.cpp \ - src/gui/messagebox.cpp \ - src/gui/messagessearchlineedit.cpp \ - src/gui/messagestoolbar.cpp \ - src/gui/messagesview.cpp \ - src/gui/plaintoolbutton.cpp \ - src/gui/squeezelabel.cpp \ - src/gui/statusbar.cpp \ - src/gui/styleditemdelegatewithoutfocus.cpp \ - src/gui/systemtrayicon.cpp \ - src/gui/tabbar.cpp \ - src/gui/tabcontent.cpp \ - src/gui/tabwidget.cpp \ - src/gui/timespinbox.cpp \ - src/gui/toolbareditor.cpp \ - src/gui/widgetwithstatus.cpp \ - src/main.cpp \ - src/miscellaneous/application.cpp \ - src/miscellaneous/autosaver.cpp \ - src/miscellaneous/databasecleaner.cpp \ - src/miscellaneous/databasefactory.cpp \ - src/miscellaneous/databasequeries.cpp \ - src/miscellaneous/debugging.cpp \ - src/miscellaneous/iconfactory.cpp \ - src/miscellaneous/iofactory.cpp \ - src/miscellaneous/localization.cpp \ - src/miscellaneous/mutex.cpp \ - src/miscellaneous/settings.cpp \ - src/miscellaneous/simplecrypt/simplecrypt.cpp \ - src/miscellaneous/skinfactory.cpp \ - src/miscellaneous/systemfactory.cpp \ - src/miscellaneous/textfactory.cpp \ - src/network-web/basenetworkaccessmanager.cpp \ - src/network-web/downloader.cpp \ - src/network-web/downloadmanager.cpp \ - src/network-web/networkfactory.cpp \ - src/network-web/silentnetworkaccessmanager.cpp \ - src/network-web/webfactory.cpp \ - src/qtsingleapplication/qtlocalpeer.cpp \ - src/qtsingleapplication/qtlockedfile.cpp \ - src/qtsingleapplication/qtsingleapplication.cpp \ - src/qtsingleapplication/qtsinglecoreapplication.cpp \ - src/services/abstract/accountcheckmodel.cpp \ - src/services/abstract/category.cpp \ - src/services/abstract/feed.cpp \ - src/services/abstract/gui/formfeeddetails.cpp \ - src/services/abstract/recyclebin.cpp \ - src/services/abstract/rootitem.cpp \ - src/services/abstract/serviceentrypoint.cpp \ - src/services/abstract/serviceroot.cpp \ - src/services/owncloud/gui/formeditowncloudaccount.cpp \ - src/services/owncloud/gui/formowncloudfeeddetails.cpp \ - src/services/owncloud/network/owncloudnetworkfactory.cpp \ - src/services/owncloud/owncloudcategory.cpp \ - src/services/owncloud/owncloudfeed.cpp \ - src/services/owncloud/owncloudrecyclebin.cpp \ - src/services/owncloud/owncloudserviceentrypoint.cpp \ - src/services/owncloud/owncloudserviceroot.cpp \ - src/services/standard/gui/formstandardcategorydetails.cpp \ - src/services/standard/gui/formstandardfeeddetails.cpp \ - src/services/standard/gui/formstandardimportexport.cpp \ - src/services/standard/standardcategory.cpp \ - src/services/standard/standardfeed.cpp \ - src/services/standard/standardfeedsimportexportmodel.cpp \ - src/services/standard/standardserviceentrypoint.cpp \ - src/services/standard/standardserviceroot.cpp \ - src/services/tt-rss/gui/formeditaccount.cpp \ - src/services/tt-rss/gui/formttrssfeeddetails.cpp \ - src/services/tt-rss/network/ttrssnetworkfactory.cpp \ - src/services/tt-rss/ttrsscategory.cpp \ - src/services/tt-rss/ttrssfeed.cpp \ - src/services/tt-rss/ttrssrecyclebin.cpp \ - src/services/tt-rss/ttrssserviceentrypoint.cpp \ - src/services/tt-rss/ttrssserviceroot.cpp \ - src/network-web/messagebrowserpage.cpp \ - src/gui/webviewer.cpp \ - src/gui/webbrowser.cpp - -FORMS += \ - src/gui/toolbareditor.ui \ - src/network-web/downloaditem.ui \ - src/network-web/downloadmanager.ui \ - src/gui/dialogs/formabout.ui \ - src/gui/dialogs/formaddaccount.ui \ - src/gui/dialogs/formbackupdatabasesettings.ui \ - src/gui/dialogs/formdatabasecleanup.ui \ - src/gui/dialogs/formmain.ui \ - src/gui/dialogs/formrestoredatabasesettings.ui \ - src/gui/dialogs/formsettings.ui \ - src/gui/dialogs/formupdate.ui \ - src/services/abstract/gui/formfeeddetails.ui \ - src/services/owncloud/gui/formeditowncloudaccount.ui \ - src/services/standard/gui/formstandardcategorydetails.ui \ - src/services/standard/gui/formstandardimportexport.ui \ - src/services/tt-rss/gui/formeditaccount.ui \ - src/gui/webbrowser.ui - -TRANSLATIONS += localization/qtbase-cs_CZ.ts \ - localization/qtbase-da_DK.ts \ - localization/qtbase-de_DE.ts \ - localization/qtbase-fr_FR.ts \ - localization/qtbase-he_IL.ts \ - localization/qtbase-it_IT.ts \ - localization/qtbase-ja_JP.ts \ - localization/qtbase-sv_SE.ts \ - localization/rssguard-cs_CZ.ts \ - localization/rssguard-da_DK.ts \ - localization/rssguard-de_DE.ts \ - localization/rssguard-en_GB.ts \ - localization/rssguard-en_US.ts \ - localization/rssguard-fr_FR.ts \ - localization/rssguard-he_IL.ts \ - localization/rssguard-id_ID.ts \ - localization/rssguard-it_IT.ts \ - localization/rssguard-ja_JP.ts \ - localization/rssguard-lt_LT.ts \ - localization/rssguard-nl_NL.ts \ - localization/rssguard-pt_BR.ts \ - localization/rssguard-sv_SE.ts - -TRANSLATIONS_WO_QT += $$PWD/localization/rssguard-cs_CZ.ts \ - $$PWD/localization/rssguard-da_DK.ts \ - $$PWD/localization/rssguard-de_DE.ts \ - $$PWD/localization/rssguard-en_GB.ts \ - $$PWD/localization/rssguard-en_US.ts \ - $$PWD/localization/rssguard-fr_FR.ts \ - $$PWD/localization/rssguard-he_IL.ts \ - $$PWD/localization/rssguard-id_ID.ts \ - $$PWD/localization/rssguard-it_IT.ts \ - $$PWD/localization/rssguard-ja_JP.ts \ - $$PWD/localization/rssguard-lt_LT.ts \ - $$PWD/localization/rssguard-nl_NL.ts \ - $$PWD/localization/rssguard-pt_BR.ts \ - $$PWD/localization/rssguard-sv_SE.ts - -INCLUDEPATH += $$PWD/. \ - $$PWD/src \ - $$PWD/src/gui \ - $$PWD/src/gui/dialogs \ - $$PWD/src/dynamic-shortcuts - -TEXTS = resources/text/CHANGELOG \ - resources/text/COPYING_BSD \ - resources/text/COPYING_GNU_GPL - -# Make sure QM translations are generated. -lrelease.input = TRANSLATIONS -lrelease.output = $$OUT_PWD/l10n/${QMAKE_FILE_BASE}.qm -lrelease.commands = $$LRELEASE_EXECUTABLE -compress ${QMAKE_FILE_IN} -qm $$OUT_PWD/l10n/${QMAKE_FILE_BASE}.qm -lrelease.CONFIG += no_link target_predeps - -# Create new "make lupdate" target. -lupdate.target = lupdate -lupdate.commands = lupdate -no-obsolete $$shell_path($$PWD/rssguard.pro) -ts $$shell_path($$TRANSLATIONS_WO_QT) - -QMAKE_EXTRA_TARGETS += lupdate -QMAKE_EXTRA_COMPILERS += lrelease - -# Create new "make 7zip" target and "make zip" target. -win32 { - seven_zip.target = 7zip - seven_zip.commands = $$shell_path($$shell_quote($$PWD/resources/scripts/7za/7za.exe)) a -t7z $$TARGET-$$APP_VERSION-win32.7z $$shell_path($$PREFIX/*) - - zip.target = zip - zip.commands = $$shell_path($$shell_quote($$PWD/resources/scripts/7za/7za.exe)) a -tzip $$TARGET-$$APP_VERSION-win32.zip $$shell_path($$PREFIX/*) - - QMAKE_EXTRA_TARGETS += seven_zip zip -} - -unix:!mac { - seven_zip.target = 7zip - seven_zip.commands = 7za a -t7z $$TARGET-$$APP_VERSION-win32.7z $$shell_path($$INSTALL_ROOT/*) - - zip.target = zip - zip.commands = 7za a -tzip $$TARGET-$$APP_VERSION-win32.zip $$shell_path($$INSTALL_ROOT/*) - - QMAKE_EXTRA_TARGETS += seven_zip zip -} - -# Install all files on Windows. -win32 { - target.path = $$PREFIX - - misc_sql.files = resources/misc/*.sql - misc_sql.path = $$PREFIX/misc - - qt_dlls_root.files = resources/binaries/windows/qt5-msvc2013/*.dll - qt_dlls_root.path = $$quote($$PREFIX/) - - qt_exe_root.files = resources/binaries/windows/qt5-msvc2013/*.exe - qt_exe_root.path = $$quote($$PREFIX/) - - qt_dlls_bearer.files = resources/binaries/windows/qt5-msvc2013/bearer - qt_dlls_bearer.path = $$quote($$PREFIX/) - - qt_dlls_iconengines.files = resources/binaries/windows/qt5-msvc2013/iconengines - qt_dlls_iconengines.path = $$quote($$PREFIX/) - - qt_dlls_imageformats.files = resources/binaries/windows/qt5-msvc2013/imageformats - qt_dlls_imageformats.path = $$quote($$PREFIX/) - - qt_dlls_platforms.files = resources/binaries/windows/qt5-msvc2013/platforms/ - qt_dlls_platforms.path = $$quote($$PREFIX/) - - qt_dlls_sqldrivers.files = resources/binaries/windows/qt5-msvc2013/sqldrivers - qt_dlls_sqldrivers.path = $$quote($$PREFIX/) - - qt_dlls_translations.files = resources/binaries/windows/qt5-msvc2013/translations - qt_dlls_translations.path = $$quote($$PREFIX/) - - qt_dlls_resources.files = resources/binaries/windows/qt5-msvc2013/resources - qt_dlls_resources.path = $$quote($$PREFIX/) - - misc_icons.files = resources/graphics/misc - misc_icons.path = $$quote($$PREFIX/icons/) - - faenza.files = resources/graphics/Faenza - faenza.path = $$quote($$PREFIX/icons/) - - skins.files = resources/skins/base - skins.path = $$quote($$PREFIX/skins/) - - sql.files = resources/misc - sql.path = $$quote($$PREFIX/) - - feeds.files = resources/initial_feeds - feeds.path = $$quote($$PREFIX/) - - texts.files = $$TEXTS - texts.path = $$quote($$PREFIX/) - - ico.files = resources/graphics/$${TARGET}.ico - ico.path = $$quote($$PREFIX/) - - app_icon.files = resources/graphics/$${TARGET}.png - app_icon.path = $$quote($$PREFIX/) - - app_plain_icon.files = resources/graphics/$${TARGET}_plain.png - app_plain_icon.path = $$quote($$PREFIX/) - - translations.files = $$OUT_PWD/l10n - translations.path = $$quote($$PREFIX/) - - INSTALLS += target misc_sql qt_dlls_root qt_exe_root qt_dlls_bearer qt_dlls_iconengines \ - qt_dlls_imageformats qt_dlls_platforms qt_dlls_sqldrivers \ - qt_dlls_translations qt_dlls_resources misc_icons faenza skins \ - sql feeds texts ico app_icon app_plain_icon translations -} - -# Install all files on Linux. -unix:!mac { - target.path = $$PREFIX/bin - - # Install SQL initializers. - misc_sql.files = resources/misc/*.sql - misc_sql.path = $$quote($$PREFIX/share/$$TARGET/misc/) - - # Misc icons. - misc_icons.files = resources/graphics/misc - misc_icons.path = $$quote($$PREFIX/share/$$TARGET/icons/) - - # Initial feeds. - misc_feeds.files = resources/initial_feeds - misc_feeds.path = $$quote($$PREFIX/share/$$TARGET/) - - misc_icon.files = resources/graphics/$${TARGET}.png - misc_icon.path = $$quote($$PREFIX/share/pixmaps/) - - skins.files = resources/skins - skins.path = $$quote($$PREFIX/share/$$TARGET/) - - misc_plain_icon.files = resources/graphics/$${TARGET}_plain.png - misc_plain_icon.path = $$quote($$PREFIX/share/$$TARGET/icons/) - - misc_texts.files = $$TEXTS - misc_texts.path = $$quote($$PREFIX/share/$$TARGET/information/) - - desktop_file.files = resources/desktop/$${TARGET}.desktop - desktop_file.path = $$quote($$PREFIX/share/applications/) - - translations.files = $$OUT_PWD/l10n - translations.path = $$quote($$PREFIX/share/$$TARGET/) - - INSTALLS += target misc_sql misc_icons misc_feeds \ - misc_icon misc_plain_icon skins misc_texts desktop_file translations -} +################################################################# +# +# This file is part of RSS Guard. +# +# Copyright (C) 2011-2016 by Martin Rotter +# +# RSS Guard is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# RSS Guard is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with RSS Guard. If not, see . +# +# +# This is RSS Guard compilation script for qmake. +# +# Usage: +# a) DEBUG build for testing. (out of source build type) +# cd ../build-dir +# qmake ../rssguard-dir/rssguard.pro -r CONFIG+=debug PREFIX=C:\Program Files\RSS Guard +# make +# make install +# +# b) RELEASE build for production use. (out of source build type) +# cd ../build-dir +# qmake ../rssguard-dir/rssguard.pro -r CONFIG+=release PREFIX=/usr INSTALL_ROOT=./app +# make +# make INSTALL_ROOT=./app install +# +# Variables: +# PREFIX - specifies parent folder structure under which installed files will really finally lie. +# !!! This is usually needed on Linux and its typical value would be "/usr". +# +# INSTALL_ROOT - specifies the folder under which compiled application data will be temporarily placed +# after the "make install" step. Note that this variable has different meaning from PREFIX which describes +# the final path and is usually "/usr". +# +# LRELEASE_EXECUTABLE - specifies the name/path of "lrelease" executable, defaults to "lrelease". +# +# Other information: +# - supports Windows, Linux, +# - Qt 5.6 and higher is required, +# - C++ 11 is required. +# +# Authors and contributors: +# - Martin Rotter (project leader), +# - Elbert Pol (huge OS/2-related contributions). +# +################################################################# + +TEMPLATE = app +TARGET = rssguard +DEFINES *= QT_USE_QSTRINGBUILDER + +message(rssguard: Welcome RSS Guard qmake script.) + +lessThan(QT_MAJOR_VERSION, 5)|lessThan(QT_MINOR_VERSION, 5) { + error(rssguard: At least Qt 5.7.0 is required.) +} + +APP_NAME = "RSS Guard" +APP_LOW_NAME = "rssguard" +APP_LOW_H_NAME = ".rssguard" +APP_AUTHOR = "Martin Rotter" +APP_COPYRIGHT = "(C) 2011-2016 $$APP_AUTHOR" +APP_VERSION = "3.3.0" +APP_LONG_NAME = "$$APP_NAME $$APP_VERSION" +APP_EMAIL = "rotter.martinos@gmail.com" +APP_URL = "http://bitbucket.org/skunkos/rssguard" +APP_URL_ISSUES = "http://bitbucket.org/skunkos/rssguard/issues" +APP_URL_ISSUES_NEW_GITHUB = "https://github.com/martinrotter/rssguard/issues/new" +APP_URL_ISSUES_NEW_BITBUCKET = "http://bitbucket.org/skunkos/rssguard/issues/new" +APP_URL_WIKI = "https://bitbucket.org/skunkos/rssguard/wiki/Home" +APP_USERAGENT = "RSS Guard/$$APP_VERSION (bitbucket.org/skunkos/rssguard)" +APP_DONATE_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=XMWPLPK893VH4" + +isEmpty(PREFIX) { + message(rssguard: PREFIX variable is not set. This might indicate error.) + + win32 { + PREFIX = $$OUT_PWD/app + } +} + +isEmpty(LRELEASE_EXECUTABLE) { + LRELEASE_EXECUTABLE = lrelease + message(rssguard: LRELEASE_EXECUTABLE variable is not set.) +} + +unix:!mac { + isEmpty(INSTALL_ROOT) { + message(rssguard: Variable INSTALL_ROOT is empty.) + } +} + +# Custom definitions. +DEFINES += APP_PREFIX=\"$$PREFIX\" +DEFINES += APP_VERSION=\"$$APP_VERSION\" +DEFINES += APP_NAME=\"$$APP_NAME\" +DEFINES += APP_LOW_NAME=\"$$APP_LOW_NAME\" +DEFINES += APP_LOW_H_NAME=\"$$APP_LOW_H_NAME\" +DEFINES += APP_LONG_NAME=\"$$APP_LONG_NAME\" +DEFINES += APP_AUTHOR=\"$$APP_AUTHOR\" +DEFINES += APP_EMAIL=\"$$APP_EMAIL\" +DEFINES += APP_URL=\"$$APP_URL\" +DEFINES += APP_URL_ISSUES=\"$$APP_URL_ISSUES\" +DEFINES += APP_URL_ISSUES_NEW_GITHUB=\"$$APP_URL_ISSUES_NEW_GITHUB\" +DEFINES += APP_URL_ISSUES_NEW_BITBUCKET=\"$$APP_URL_ISSUES_NEW_BITBUCKET\" +DEFINES += APP_URL_WIKI=\"$$APP_URL_WIKI\" +DEFINES += APP_USERAGENT=\"$$APP_USERAGENT\" +DEFINES += APP_DONATE_URL=\"$$APP_DONATE_URL\" +DEFINES += APP_SYSTEM_NAME=\"$$QMAKE_HOST.os\" +DEFINES += APP_SYSTEM_VERSION=\"$$QMAKE_HOST.arch\" + +CODECFORTR = UTF-8 +CODECFORSRC = UTF-8 + +exists(.git) { + APP_REVISION = $$system(git rev-parse --short HEAD) +} + +isEmpty(APP_REVISION) { + APP_REVISION = "-" +} + +DEFINES += APP_REVISION=\"$$APP_REVISION\" + +message(rssguard: RSS Guard version is: '$$APP_VERSION'.) +message(rssguard: Detected Qt version: '$$QT_VERSION'.) +message(rssguard: Build directory: '$$DESTDIR'.) +message(rssguard: Prefix directory: '$$PREFIX'.) +message(rssguard: Build revision: '$$APP_REVISION'.) +message(rssguard: lrelease executable name: '$$LRELEASE_EXECUTABLE'.) + +QT += core gui widgets webenginewidgets sql network xml printsupport +CONFIG *= c++11 debug_and_release warn_on +DEFINES *= QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS UNICODE _UNICODE +VERSION = $$APP_VERSION + +MOC_DIR = $$OUT_PWD/moc +RCC_DIR = $$OUT_PWD/rcc +UI_DIR = $$OUT_PWD/ui + +# Make needed tweaks for RC file getting generated on Windows. +win32 { + RC_ICONS = resources/graphics/rssguard.ico + QMAKE_TARGET_COMPANY = $$APP_AUTHOR + QMAKE_TARGET_DESCRIPTION = $$APP_NAME + QMAKE_TARGET_COPYRIGHT = $$APP_COPYRIGHT + QMAKE_TARGET_PRODUCT = $$APP_NAME +} + +HEADERS += src/core/feeddownloader.h \ + src/core/feedsmodel.h \ + src/core/feedsproxymodel.h \ + src/core/message.h \ + src/core/messagesmodel.h \ + src/core/messagesproxymodel.h \ + src/core/parsingfactory.h \ + src/definitions/definitions.h \ + src/dynamic-shortcuts/dynamicshortcuts.h \ + src/dynamic-shortcuts/dynamicshortcutswidget.h \ + src/dynamic-shortcuts/shortcutbutton.h \ + src/dynamic-shortcuts/shortcutcatcher.h \ + src/exceptions/applicationexception.h \ + src/exceptions/ioexception.h \ + src/gui/baselineedit.h \ + src/gui/basetoolbar.h \ + src/gui/colorlabel.h \ + src/gui/comboboxwithstatus.h \ + src/gui/dialogs/formabout.h \ + src/gui/dialogs/formaddaccount.h \ + src/gui/dialogs/formbackupdatabasesettings.h \ + src/gui/dialogs/formdatabasecleanup.h \ + src/gui/dialogs/formmain.h \ + src/gui/dialogs/formrestoredatabasesettings.h \ + src/gui/dialogs/formsettings.h \ + src/gui/dialogs/formupdate.h \ + src/gui/edittableview.h \ + src/gui/feedmessageviewer.h \ + src/gui/feedstoolbar.h \ + src/gui/feedsview.h \ + src/gui/labelwithstatus.h \ + src/gui/lineeditwithstatus.h \ + src/gui/messagebox.h \ + src/gui/messagessearchlineedit.h \ + src/gui/messagestoolbar.h \ + src/gui/messagesview.h \ + src/gui/plaintoolbutton.h \ + src/gui/squeezelabel.h \ + src/gui/statusbar.h \ + src/gui/styleditemdelegatewithoutfocus.h \ + src/gui/systemtrayicon.h \ + src/gui/tabbar.h \ + src/gui/tabcontent.h \ + src/gui/tabwidget.h \ + src/gui/timespinbox.h \ + src/gui/toolbareditor.h \ + src/gui/widgetwithstatus.h \ + src/miscellaneous/application.h \ + src/miscellaneous/autosaver.h \ + src/miscellaneous/databasecleaner.h \ + src/miscellaneous/databasefactory.h \ + src/miscellaneous/databasequeries.h \ + src/miscellaneous/debugging.h \ + src/miscellaneous/iconfactory.h \ + src/miscellaneous/iofactory.h \ + src/miscellaneous/localization.h \ + src/miscellaneous/mutex.h \ + src/miscellaneous/settings.h \ + src/miscellaneous/settingsproperties.h \ + src/miscellaneous/simplecrypt/simplecrypt.h \ + src/miscellaneous/skinfactory.h \ + src/miscellaneous/systemfactory.h \ + src/miscellaneous/textfactory.h \ + src/network-web/basenetworkaccessmanager.h \ + src/network-web/downloader.h \ + src/network-web/downloadmanager.h \ + src/network-web/networkfactory.h \ + src/network-web/silentnetworkaccessmanager.h \ + src/network-web/webfactory.h \ + src/qtsingleapplication/qtlocalpeer.h \ + src/qtsingleapplication/qtlockedfile.h \ + src/qtsingleapplication/qtsingleapplication.h \ + src/qtsingleapplication/qtsinglecoreapplication.h \ + src/services/abstract/accountcheckmodel.h \ + src/services/abstract/category.h \ + src/services/abstract/feed.h \ + src/services/abstract/gui/formfeeddetails.h \ + src/services/abstract/recyclebin.h \ + src/services/abstract/rootitem.h \ + src/services/abstract/serviceentrypoint.h \ + src/services/abstract/serviceroot.h \ + src/services/owncloud/definitions.h \ + src/services/owncloud/gui/formeditowncloudaccount.h \ + src/services/owncloud/gui/formowncloudfeeddetails.h \ + src/services/owncloud/network/owncloudnetworkfactory.h \ + src/services/owncloud/owncloudcategory.h \ + src/services/owncloud/owncloudfeed.h \ + src/services/owncloud/owncloudrecyclebin.h \ + src/services/owncloud/owncloudserviceentrypoint.h \ + src/services/owncloud/owncloudserviceroot.h \ + src/services/standard/gui/formstandardcategorydetails.h \ + src/services/standard/gui/formstandardfeeddetails.h \ + src/services/standard/gui/formstandardimportexport.h \ + src/services/standard/standardcategory.h \ + src/services/standard/standardfeed.h \ + src/services/standard/standardfeedsimportexportmodel.h \ + src/services/standard/standardserviceentrypoint.h \ + src/services/standard/standardserviceroot.h \ + src/services/tt-rss/definitions.h \ + src/services/tt-rss/gui/formeditaccount.h \ + src/services/tt-rss/gui/formttrssfeeddetails.h \ + src/services/tt-rss/network/ttrssnetworkfactory.h \ + src/services/tt-rss/ttrsscategory.h \ + src/services/tt-rss/ttrssfeed.h \ + src/services/tt-rss/ttrssrecyclebin.h \ + src/services/tt-rss/ttrssserviceentrypoint.h \ + src/services/tt-rss/ttrssserviceroot.h \ + src/gui/webviewer.h \ + src/gui/webbrowser.h \ + src/network-web/webpage.h + +SOURCES += src/core/feeddownloader.cpp \ + src/core/feedsmodel.cpp \ + src/core/feedsproxymodel.cpp \ + src/core/message.cpp \ + src/core/messagesmodel.cpp \ + src/core/messagesproxymodel.cpp \ + src/core/parsingfactory.cpp \ + src/dynamic-shortcuts/dynamicshortcuts.cpp \ + src/dynamic-shortcuts/dynamicshortcutswidget.cpp \ + src/dynamic-shortcuts/shortcutbutton.cpp \ + src/dynamic-shortcuts/shortcutcatcher.cpp \ + src/exceptions/applicationexception.cpp \ + src/exceptions/ioexception.cpp \ + src/gui/baselineedit.cpp \ + src/gui/basetoolbar.cpp \ + src/gui/colorlabel.cpp \ + src/gui/comboboxwithstatus.cpp \ + src/gui/dialogs/formabout.cpp \ + src/gui/dialogs/formaddaccount.cpp \ + src/gui/dialogs/formbackupdatabasesettings.cpp \ + src/gui/dialogs/formdatabasecleanup.cpp \ + src/gui/dialogs/formmain.cpp \ + src/gui/dialogs/formrestoredatabasesettings.cpp \ + src/gui/dialogs/formsettings.cpp \ + src/gui/dialogs/formupdate.cpp \ + src/gui/edittableview.cpp \ + src/gui/feedmessageviewer.cpp \ + src/gui/feedstoolbar.cpp \ + src/gui/feedsview.cpp \ + src/gui/labelwithstatus.cpp \ + src/gui/lineeditwithstatus.cpp \ + src/gui/messagebox.cpp \ + src/gui/messagessearchlineedit.cpp \ + src/gui/messagestoolbar.cpp \ + src/gui/messagesview.cpp \ + src/gui/plaintoolbutton.cpp \ + src/gui/squeezelabel.cpp \ + src/gui/statusbar.cpp \ + src/gui/styleditemdelegatewithoutfocus.cpp \ + src/gui/systemtrayicon.cpp \ + src/gui/tabbar.cpp \ + src/gui/tabcontent.cpp \ + src/gui/tabwidget.cpp \ + src/gui/timespinbox.cpp \ + src/gui/toolbareditor.cpp \ + src/gui/widgetwithstatus.cpp \ + src/main.cpp \ + src/miscellaneous/application.cpp \ + src/miscellaneous/autosaver.cpp \ + src/miscellaneous/databasecleaner.cpp \ + src/miscellaneous/databasefactory.cpp \ + src/miscellaneous/databasequeries.cpp \ + src/miscellaneous/debugging.cpp \ + src/miscellaneous/iconfactory.cpp \ + src/miscellaneous/iofactory.cpp \ + src/miscellaneous/localization.cpp \ + src/miscellaneous/mutex.cpp \ + src/miscellaneous/settings.cpp \ + src/miscellaneous/simplecrypt/simplecrypt.cpp \ + src/miscellaneous/skinfactory.cpp \ + src/miscellaneous/systemfactory.cpp \ + src/miscellaneous/textfactory.cpp \ + src/network-web/basenetworkaccessmanager.cpp \ + src/network-web/downloader.cpp \ + src/network-web/downloadmanager.cpp \ + src/network-web/networkfactory.cpp \ + src/network-web/silentnetworkaccessmanager.cpp \ + src/network-web/webfactory.cpp \ + src/qtsingleapplication/qtlocalpeer.cpp \ + src/qtsingleapplication/qtlockedfile.cpp \ + src/qtsingleapplication/qtsingleapplication.cpp \ + src/qtsingleapplication/qtsinglecoreapplication.cpp \ + src/services/abstract/accountcheckmodel.cpp \ + src/services/abstract/category.cpp \ + src/services/abstract/feed.cpp \ + src/services/abstract/gui/formfeeddetails.cpp \ + src/services/abstract/recyclebin.cpp \ + src/services/abstract/rootitem.cpp \ + src/services/abstract/serviceentrypoint.cpp \ + src/services/abstract/serviceroot.cpp \ + src/services/owncloud/gui/formeditowncloudaccount.cpp \ + src/services/owncloud/gui/formowncloudfeeddetails.cpp \ + src/services/owncloud/network/owncloudnetworkfactory.cpp \ + src/services/owncloud/owncloudcategory.cpp \ + src/services/owncloud/owncloudfeed.cpp \ + src/services/owncloud/owncloudrecyclebin.cpp \ + src/services/owncloud/owncloudserviceentrypoint.cpp \ + src/services/owncloud/owncloudserviceroot.cpp \ + src/services/standard/gui/formstandardcategorydetails.cpp \ + src/services/standard/gui/formstandardfeeddetails.cpp \ + src/services/standard/gui/formstandardimportexport.cpp \ + src/services/standard/standardcategory.cpp \ + src/services/standard/standardfeed.cpp \ + src/services/standard/standardfeedsimportexportmodel.cpp \ + src/services/standard/standardserviceentrypoint.cpp \ + src/services/standard/standardserviceroot.cpp \ + src/services/tt-rss/gui/formeditaccount.cpp \ + src/services/tt-rss/gui/formttrssfeeddetails.cpp \ + src/services/tt-rss/network/ttrssnetworkfactory.cpp \ + src/services/tt-rss/ttrsscategory.cpp \ + src/services/tt-rss/ttrssfeed.cpp \ + src/services/tt-rss/ttrssrecyclebin.cpp \ + src/services/tt-rss/ttrssserviceentrypoint.cpp \ + src/services/tt-rss/ttrssserviceroot.cpp \ + src/gui/webviewer.cpp \ + src/gui/webbrowser.cpp \ + src/network-web/webpage.cpp + +FORMS += \ + src/gui/toolbareditor.ui \ + src/network-web/downloaditem.ui \ + src/network-web/downloadmanager.ui \ + src/gui/dialogs/formabout.ui \ + src/gui/dialogs/formaddaccount.ui \ + src/gui/dialogs/formbackupdatabasesettings.ui \ + src/gui/dialogs/formdatabasecleanup.ui \ + src/gui/dialogs/formmain.ui \ + src/gui/dialogs/formrestoredatabasesettings.ui \ + src/gui/dialogs/formsettings.ui \ + src/gui/dialogs/formupdate.ui \ + src/services/abstract/gui/formfeeddetails.ui \ + src/services/owncloud/gui/formeditowncloudaccount.ui \ + src/services/standard/gui/formstandardcategorydetails.ui \ + src/services/standard/gui/formstandardimportexport.ui \ + src/services/tt-rss/gui/formeditaccount.ui \ + src/gui/webbrowser.ui + +TRANSLATIONS += localization/qtbase-cs_CZ.ts \ + localization/qtbase-da_DK.ts \ + localization/qtbase-de_DE.ts \ + localization/qtbase-fr_FR.ts \ + localization/qtbase-he_IL.ts \ + localization/qtbase-it_IT.ts \ + localization/qtbase-ja_JP.ts \ + localization/qtbase-sv_SE.ts \ + localization/rssguard-cs_CZ.ts \ + localization/rssguard-da_DK.ts \ + localization/rssguard-de_DE.ts \ + localization/rssguard-en_GB.ts \ + localization/rssguard-en_US.ts \ + localization/rssguard-fr_FR.ts \ + localization/rssguard-he_IL.ts \ + localization/rssguard-id_ID.ts \ + localization/rssguard-it_IT.ts \ + localization/rssguard-ja_JP.ts \ + localization/rssguard-lt_LT.ts \ + localization/rssguard-nl_NL.ts \ + localization/rssguard-pt_BR.ts \ + localization/rssguard-sv_SE.ts + +TRANSLATIONS_WO_QT += localization/rssguard-cs_CZ.ts \ + localization/rssguard-da_DK.ts \ + localization/rssguard-de_DE.ts \ + localization/rssguard-en_GB.ts \ + localization/rssguard-en_US.ts \ + localization/rssguard-fr_FR.ts \ + localization/rssguard-he_IL.ts \ + localization/rssguard-id_ID.ts \ + localization/rssguard-it_IT.ts \ + localization/rssguard-ja_JP.ts \ + localization/rssguard-lt_LT.ts \ + localization/rssguard-nl_NL.ts \ + localization/rssguard-pt_BR.ts \ + localization/rssguard-sv_SE.ts + +INCLUDEPATH += $$PWD/. \ + $$PWD/src \ + $$PWD/src/gui \ + $$PWD/src/gui/dialogs \ + $$PWD/src/dynamic-shortcuts + +TEXTS = resources/text/CHANGELOG \ + resources/text/COPYING_BSD \ + resources/text/COPYING_GNU_GPL + +# Make sure QM translations are generated. +lrelease.input = TRANSLATIONS +lrelease.output = $$OUT_PWD/l10n/${QMAKE_FILE_BASE}.qm +lrelease.commands = $$LRELEASE_EXECUTABLE -compress ${QMAKE_FILE_IN} -qm $$OUT_PWD/l10n/${QMAKE_FILE_BASE}.qm +lrelease.CONFIG += no_link target_predeps + +# Create new "make lupdate" target. +lupdate.target = lupdate +lupdate.commands = lupdate -no-obsolete $$shell_path($$PWD/rssguard.pro) -ts $$shell_path($$TRANSLATIONS_WO_QT) + +QMAKE_EXTRA_TARGETS += lupdate +QMAKE_EXTRA_COMPILERS += lrelease + +# Create new "make 7zip" target and "make zip" target. +win32 { + seven_zip.target = 7zip + seven_zip.commands = $$shell_path($$shell_quote($$PWD/resources/scripts/7za/7za.exe)) a -t7z $$TARGET-$$APP_VERSION-win32.7z $$shell_path($$PREFIX/*) + + zip.target = zip + zip.commands = $$shell_path($$shell_quote($$PWD/resources/scripts/7za/7za.exe)) a -tzip $$TARGET-$$APP_VERSION-win32.zip $$shell_path($$PREFIX/*) + + QMAKE_EXTRA_TARGETS += seven_zip zip +} + +unix:!mac { + seven_zip.target = 7zip + seven_zip.commands = 7za a -t7z $$TARGET-$$APP_VERSION-win32.7z $$shell_path($$INSTALL_ROOT/*) + + zip.target = zip + zip.commands = 7za a -tzip $$TARGET-$$APP_VERSION-win32.zip $$shell_path($$INSTALL_ROOT/*) + + QMAKE_EXTRA_TARGETS += seven_zip zip +} + +# Install all files on Windows. +win32 { + target.path = $$PREFIX + + misc_sql.files = resources/misc/*.sql + misc_sql.path = $$PREFIX/misc + + qt_dlls_root.files = resources/binaries/windows/qt5-msvc2013/*.dll + qt_dlls_root.path = $$quote($$PREFIX/) + + qt_exe_root.files = resources/binaries/windows/qt5-msvc2013/*.exe + qt_exe_root.path = $$quote($$PREFIX/) + + qt_dlls_bearer.files = resources/binaries/windows/qt5-msvc2013/bearer + qt_dlls_bearer.path = $$quote($$PREFIX/) + + qt_dlls_iconengines.files = resources/binaries/windows/qt5-msvc2013/iconengines + qt_dlls_iconengines.path = $$quote($$PREFIX/) + + qt_dlls_imageformats.files = resources/binaries/windows/qt5-msvc2013/imageformats + qt_dlls_imageformats.path = $$quote($$PREFIX/) + + qt_dlls_platforms.files = resources/binaries/windows/qt5-msvc2013/platforms/ + qt_dlls_platforms.path = $$quote($$PREFIX/) + + qt_dlls_sqldrivers.files = resources/binaries/windows/qt5-msvc2013/sqldrivers + qt_dlls_sqldrivers.path = $$quote($$PREFIX/) + + qt_dlls_translations.files = resources/binaries/windows/qt5-msvc2013/translations + qt_dlls_translations.path = $$quote($$PREFIX/) + + qt_dlls_resources.files = resources/binaries/windows/qt5-msvc2013/resources + qt_dlls_resources.path = $$quote($$PREFIX/) + + misc_icons.files = resources/graphics/misc + misc_icons.path = $$quote($$PREFIX/icons/) + + faenza.files = resources/graphics/Faenza + faenza.path = $$quote($$PREFIX/icons/) + + skins.files = resources/skins/base + skins.path = $$quote($$PREFIX/skins/) + + sql.files = resources/misc + sql.path = $$quote($$PREFIX/) + + feeds.files = resources/initial_feeds + feeds.path = $$quote($$PREFIX/) + + texts.files = $$TEXTS + texts.path = $$quote($$PREFIX/) + + ico.files = resources/graphics/$${TARGET}.ico + ico.path = $$quote($$PREFIX/) + + app_icon.files = resources/graphics/$${TARGET}.png + app_icon.path = $$quote($$PREFIX/) + + app_plain_icon.files = resources/graphics/$${TARGET}_plain.png + app_plain_icon.path = $$quote($$PREFIX/) + + translations.files = $$OUT_PWD/l10n + translations.path = $$quote($$PREFIX/) + + INSTALLS += target misc_sql qt_dlls_root qt_exe_root qt_dlls_bearer qt_dlls_iconengines \ + qt_dlls_imageformats qt_dlls_platforms qt_dlls_sqldrivers \ + qt_dlls_translations qt_dlls_resources misc_icons faenza skins \ + sql feeds texts ico app_icon app_plain_icon translations +} + +# Install all files on Linux. +unix:!mac { + target.path = $$PREFIX/bin + + # Install SQL initializers. + misc_sql.files = resources/misc/*.sql + misc_sql.path = $$quote($$PREFIX/share/$$TARGET/misc/) + + # Misc icons. + misc_icons.files = resources/graphics/misc + misc_icons.path = $$quote($$PREFIX/share/$$TARGET/icons/) + + # Initial feeds. + misc_feeds.files = resources/initial_feeds + misc_feeds.path = $$quote($$PREFIX/share/$$TARGET/) + + misc_icon.files = resources/graphics/$${TARGET}.png + misc_icon.path = $$quote($$PREFIX/share/pixmaps/) + + skins.files = resources/skins + skins.path = $$quote($$PREFIX/share/$$TARGET/) + + misc_plain_icon.files = resources/graphics/$${TARGET}_plain.png + misc_plain_icon.path = $$quote($$PREFIX/share/$$TARGET/icons/) + + misc_texts.files = $$TEXTS + misc_texts.path = $$quote($$PREFIX/share/$$TARGET/information/) + + desktop_file.files = resources/desktop/$${TARGET}.desktop + desktop_file.path = $$quote($$PREFIX/share/applications/) + + translations.files = $$OUT_PWD/l10n + translations.path = $$quote($$PREFIX/share/$$TARGET/) + + INSTALLS += target misc_sql misc_icons misc_feeds \ + misc_icon misc_plain_icon skins misc_texts desktop_file translations +} diff --git a/src/core/messagesmodel.cpp b/src/core/messagesmodel.cpp index bf1e6cc2b..76647f9e7 100755 --- a/src/core/messagesmodel.cpp +++ b/src/core/messagesmodel.cpp @@ -93,7 +93,13 @@ bool MessagesModel::setMessageImportantById(int id, RootItem::Importance importa int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt(); if (found_id == id) { - return setData(index(i, MSG_DB_IMPORTANT_INDEX), important); + bool set = setData(index(i, MSG_DB_IMPORTANT_INDEX), important); + + if (set) { + emit dataChanged(index(i, 0), index(i, MSG_DB_CUSTOM_HASH_INDEX)); + } + + return set; } } @@ -280,7 +286,13 @@ bool MessagesModel::setMessageReadById(int id, RootItem::ReadStatus read) { int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt(); if (found_id == id) { - return setData(index(i, MSG_DB_READ_INDEX), read); + bool set = setData(index(i, MSG_DB_READ_INDEX), read); + + if (set) { + emit dataChanged(index(i, 0), index(i, MSG_DB_CUSTOM_HASH_INDEX)); + } + + return set; } } diff --git a/src/definitions/definitions.h b/src/definitions/definitions.h old mode 100644 new mode 100755 index 04b3e279f..fe0758b58 --- a/src/definitions/definitions.h +++ b/src/definitions/definitions.h @@ -79,8 +79,8 @@ #define INTERNAL_URL_MESSAGE "rssguard.message" #define INTERNAL_URL_BLANK "rssguard.blank" -#define INTERNAL_URL_HOST "rssguard" -#define INTERNAL_URL_MESSAGE_PORT "message" +#define INTERNAL_URL_MESSAGE_HOST "message" +#define INTERNAL_URL_BLANK_HOST "blank" #define FEED_INITIAL_OPML_PATTERN "feeds-%1.opml" diff --git a/src/gui/webbrowser.cpp b/src/gui/webbrowser.cpp index c2c6981d7..58794f384 100755 --- a/src/gui/webbrowser.cpp +++ b/src/gui/webbrowser.cpp @@ -87,21 +87,21 @@ void WebBrowser::loadMessage(const Message &message, RootItem *root) { loadMessages(QList() << message, root); } -void WebBrowser::receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change) { +void WebBrowser::receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change) { switch (change) { - case MessageBrowserPage::MarkRead: + case WebPage::MarkRead: markMessageAsRead(message_id, true); break; - case MessageBrowserPage::MarkUnread: + case WebPage::MarkUnread: markMessageAsRead(message_id, false); break; - case MessageBrowserPage::MarkStarred: + case WebPage::MarkStarred: switchMessageImportance(message_id, true); break; - case MessageBrowserPage::MarkUnstarred: + case WebPage::MarkUnstarred: switchMessageImportance(message_id, false); break; diff --git a/src/gui/webbrowser.h b/src/gui/webbrowser.h index e51a08ee8..e4a570632 100755 --- a/src/gui/webbrowser.h +++ b/src/gui/webbrowser.h @@ -49,7 +49,7 @@ class WebBrowser : public TabContent { void loadMessage(const Message &message, RootItem *root); private slots: - void receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change); + void receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change); signals: void markMessageRead(int id, RootItem::ReadStatus read); diff --git a/src/gui/webviewer.cpp b/src/gui/webviewer.cpp index da14d5877..32fb1f598 100755 --- a/src/gui/webviewer.cpp +++ b/src/gui/webviewer.cpp @@ -20,17 +20,21 @@ #include "miscellaneous/skinfactory.h" #include "miscellaneous/application.h" #include "definitions/definitions.h" -#include "network-web/messagebrowserpage.h" +#include "network-web/webpage.h" WebViewer::WebViewer(QWidget *parent) : QWebEngineView(parent) { - MessageBrowserPage *page = new MessageBrowserPage(this); + WebPage *page = new WebPage(this); - connect(page, &MessageBrowserPage::messageStatusChangeRequested, + connect(page, &WebPage::messageStatusChangeRequested, this, &WebViewer::messageStatusChangeRequested); setPage(page); } +void WebViewer::displayMessage() { + setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE)); +} + void WebViewer::loadMessages(const QList &messages) { Skin skin = qApp->skins()->currentSkin(); QString messages_layout; @@ -61,7 +65,7 @@ void WebViewer::loadMessages(const QList &messages) { bool previously_enabled = isEnabled(); setEnabled(false); - setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE)); + displayMessage(); setEnabled(previously_enabled); } @@ -72,7 +76,3 @@ void WebViewer::loadMessage(const Message &message) { void WebViewer::clear() { setHtml("", QUrl(INTERNAL_URL_BLANK)); } - -void WebViewer::assignMessageContents() { - setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE)); -} diff --git a/src/gui/webviewer.h b/src/gui/webviewer.h old mode 100644 new mode 100755 index ea755dd26..3e5e02b9b --- a/src/gui/webviewer.h +++ b/src/gui/webviewer.h @@ -21,7 +21,7 @@ #include #include "core/message.h" -#include "network-web/messagebrowserpage.h" +#include "network-web/webpage.h" class WebViewer : public QWebEngineView { @@ -31,15 +31,13 @@ class WebViewer : public QWebEngineView { explicit WebViewer(QWidget* parent = 0); public slots: + void displayMessage(); void loadMessages(const QList &messages); void loadMessage(const Message &message); void clear(); - private: - void assignMessageContents(); - signals: - void messageStatusChangeRequested(int message_id, MessageBrowserPage::MessageStatusChange change); + void messageStatusChangeRequested(int message_id, WebPage::MessageStatusChange change); private: QString m_messageContents; diff --git a/src/network-web/messagebrowserpage.cpp b/src/network-web/webpage.cpp old mode 100644 new mode 100755 similarity index 81% rename from src/network-web/messagebrowserpage.cpp rename to src/network-web/webpage.cpp index 9f9a62f54..82d3c6760 --- a/src/network-web/messagebrowserpage.cpp +++ b/src/network-web/webpage.cpp @@ -15,7 +15,7 @@ // You should have received a copy of the GNU General Public License // along with RSS Guard. If not, see . -#include "network-web/messagebrowserpage.h" +#include "network-web/webpage.h" #include "definitions/definitions.h" #include "gui/webviewer.h" @@ -24,14 +24,14 @@ #include -MessageBrowserPage::MessageBrowserPage(QObject *parent) : QWebEnginePage(parent) { +WebPage::WebPage(QObject *parent) : QWebEnginePage(parent) { } -WebViewer *MessageBrowserPage::view() const { +WebViewer *WebPage::view() const { return qobject_cast(QWebEnginePage::view()); } -void MessageBrowserPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) { +void WebPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) { if (securityOrigin.isEmpty()) { QStringList parts = msg.split(QL1C('-')); @@ -64,6 +64,6 @@ void MessageBrowserPage::javaScriptAlert(const QUrl &securityOrigin, const QStri } } -bool MessageBrowserPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) { +bool WebPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) { return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); } diff --git a/src/network-web/messagebrowserpage.h b/src/network-web/webpage.h old mode 100644 new mode 100755 similarity index 76% rename from src/network-web/messagebrowserpage.h rename to src/network-web/webpage.h index 210a43a8d..ad46a715c --- a/src/network-web/messagebrowserpage.h +++ b/src/network-web/webpage.h @@ -15,15 +15,15 @@ // You should have received a copy of the GNU General Public License // along with RSS Guard. If not, see . -#ifndef MESSAGEBROWSERPAGE_H -#define MESSAGEBROWSERPAGE_H +#ifndef WEBPAGE_H +#define WEBPAGE_H #include class WebViewer; -class MessageBrowserPage : public QWebEnginePage { +class WebPage : public QWebEnginePage { Q_OBJECT public: @@ -34,8 +34,7 @@ class MessageBrowserPage : public QWebEnginePage { MarkUnstarred }; - explicit MessageBrowserPage(QObject *parent = 0); - + explicit WebPage(QObject *parent = 0); WebViewer *view() const; @@ -44,7 +43,7 @@ class MessageBrowserPage : public QWebEnginePage { bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame); signals: - void messageStatusChangeRequested(int message_id, MessageBrowserPage::MessageStatusChange change); + void messageStatusChangeRequested(int message_id, WebPage::MessageStatusChange change); }; -#endif // MESSAGEBROWSERPAGE_H +#endif // WEBPAGE_H