New release announcement.
This commit is contained in:
parent
406c1257fa
commit
9106c422b9
@ -545,7 +545,7 @@ if(WIN32)
|
|||||||
# set(APP_DLLS_QT4_MSVC2013
|
# set(APP_DLLS_QT4_MSVC2013
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/libeay32.dll
|
# resources/binaries/windows/deployment/qt4-msvc2013/libeay32.dll
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/msvcp120.dll
|
# resources/binaries/windows/deployment/qt4-msvc2013/msvcp120.dll
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/msvcr120.dll
|
# resourcegit coms/binaries/windows/deployment/qt4-msvc2013/msvcr120.dll
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/QtCore4.dll
|
# resources/binaries/windows/deployment/qt4-msvc2013/QtCore4.dll
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/QtGui4.dll
|
# resources/binaries/windows/deployment/qt4-msvc2013/QtGui4.dll
|
||||||
# resources/binaries/windows/deployment/qt4-msvc2013/QtNetwork4.dll
|
# resources/binaries/windows/deployment/qt4-msvc2013/QtNetwork4.dll
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
<body>
|
<body>
|
||||||
|
<center><h2>2.3.1</h2></center>
|
||||||
|
Fixed:
|
||||||
|
<ul>
|
||||||
|
<li>Many minor fixes, mainly code cleanup and refactoring.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
<center><h2>2.3.0</h2></center>
|
<center><h2>2.3.0</h2></center>
|
||||||
|
|
||||||
Fixed:
|
Fixed:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<releases>
|
<releases>
|
||||||
<release version="2.2.0">
|
<release version="2.3.0">
|
||||||
<url platform="x86" os="Windows">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-2.2.0-win32.exe</url>
|
<url platform="x86" os="Windows">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-2.3.0-win32.exe</url>
|
||||||
</release>
|
</release>
|
||||||
</releases>
|
</releases>
|
@ -176,7 +176,7 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed, int current,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::onFeedUpdatesFinished() {
|
void FeedMessageViewer::onFeedUpdatesFinished() {
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
qApp->mainForm()->statusBar()->clearProgressFeeds();
|
qApp->mainForm()->statusBar()->clearProgressFeeds();
|
||||||
m_messagesView->reloadSelections(1);
|
m_messagesView->reloadSelections(1);
|
||||||
}
|
}
|
||||||
@ -367,7 +367,7 @@ void FeedMessageViewer::initializeViews() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::vacuumDatabase() {
|
void FeedMessageViewer::vacuumDatabase() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
// Lock was not obtained because
|
// Lock was not obtained because
|
||||||
// it is used probably by feed updater or application
|
// it is used probably by feed updater or application
|
||||||
// is quitting.
|
// is quitting.
|
||||||
@ -391,7 +391,7 @@ void FeedMessageViewer::vacuumDatabase() {
|
|||||||
this);
|
this);
|
||||||
}
|
}
|
||||||
|
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::refreshVisualProperties() {
|
void FeedMessageViewer::refreshVisualProperties() {
|
||||||
|
@ -166,7 +166,7 @@ void FeedsView::loadExpandedStates() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::updateAllFeeds() {
|
void FeedsView::updateAllFeeds() {
|
||||||
if (qApp->closeLock()->tryLock()) {
|
if (qApp->feedUpdateLock()->tryLock()) {
|
||||||
emit feedsUpdateRequested(allFeeds());
|
emit feedsUpdateRequested(allFeeds());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -184,7 +184,7 @@ void FeedsView::updateAllFeedsOnStartup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::updateSelectedFeeds() {
|
void FeedsView::updateSelectedFeeds() {
|
||||||
if (qApp->closeLock()->tryLock()) {
|
if (qApp->feedUpdateLock()->tryLock()) {
|
||||||
emit feedsUpdateRequested(selectedFeeds());
|
emit feedsUpdateRequested(selectedFeeds());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -195,7 +195,7 @@ void FeedsView::updateSelectedFeeds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::executeNextAutoUpdate() {
|
void FeedsView::executeNextAutoUpdate() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
qDebug("Delaying scheduled feed auto-updates for one minute due to another running update.");
|
qDebug("Delaying scheduled feed auto-updates for one minute due to another running update.");
|
||||||
|
|
||||||
// Cannot update, quit.
|
// Cannot update, quit.
|
||||||
@ -219,7 +219,7 @@ void FeedsView::executeNextAutoUpdate() {
|
|||||||
|
|
||||||
if (feeds_for_update.isEmpty()) {
|
if (feeds_for_update.isEmpty()) {
|
||||||
// No feeds are scheduled for update now, unlock the master lock.
|
// No feeds are scheduled for update now, unlock the master lock.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Request update for given feeds.
|
// Request update for given feeds.
|
||||||
@ -253,7 +253,7 @@ void FeedsView::clearAllFeeds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::addNewCategory() {
|
void FeedsView::addNewCategory() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
// Lock was not obtained because
|
// Lock was not obtained because
|
||||||
// it is used probably by feed updater or application
|
// it is used probably by feed updater or application
|
||||||
// is quitting.
|
// is quitting.
|
||||||
@ -270,7 +270,7 @@ void FeedsView::addNewCategory() {
|
|||||||
delete form_pointer.data();
|
delete form_pointer.data();
|
||||||
|
|
||||||
// Changes are done, unlock the update master lock.
|
// Changes are done, unlock the update master lock.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::editCategory(FeedsModelCategory *category) {
|
void FeedsView::editCategory(FeedsModelCategory *category) {
|
||||||
@ -282,7 +282,7 @@ void FeedsView::editCategory(FeedsModelCategory *category) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::addNewFeed() {
|
void FeedsView::addNewFeed() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
// Lock was not obtained because
|
// Lock was not obtained because
|
||||||
// it is used probably by feed updater or application
|
// it is used probably by feed updater or application
|
||||||
// is quitting.
|
// is quitting.
|
||||||
@ -299,7 +299,7 @@ void FeedsView::addNewFeed() {
|
|||||||
delete form_pointer.data();
|
delete form_pointer.data();
|
||||||
|
|
||||||
// Changes are done, unlock the update master lock.
|
// Changes are done, unlock the update master lock.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::editFeed(FeedsModelFeed *feed) {
|
void FeedsView::editFeed(FeedsModelFeed *feed) {
|
||||||
@ -347,7 +347,7 @@ void FeedsView::receiveMessageCountsChange(MessagesModel::MessageMode mode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::editSelectedItem() {
|
void FeedsView::editSelectedItem() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
// Lock was not obtained because
|
// Lock was not obtained because
|
||||||
// it is used probably by feed updater or application
|
// it is used probably by feed updater or application
|
||||||
// is quitting.
|
// is quitting.
|
||||||
@ -370,11 +370,11 @@ void FeedsView::editSelectedItem() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Changes are done, unlock the update master lock.
|
// Changes are done, unlock the update master lock.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::deleteSelectedItem() {
|
void FeedsView::deleteSelectedItem() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
// Lock was not obtained because
|
// Lock was not obtained because
|
||||||
// it is used probably by feed updater or application
|
// it is used probably by feed updater or application
|
||||||
// is quitting.
|
// is quitting.
|
||||||
@ -390,7 +390,7 @@ void FeedsView::deleteSelectedItem() {
|
|||||||
|
|
||||||
if (!current_index.isValid()) {
|
if (!current_index.isValid()) {
|
||||||
// Changes are done, unlock the update master lock and exit.
|
// Changes are done, unlock the update master lock and exit.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ void FeedsView::deleteSelectedItem() {
|
|||||||
tr("You are about to delete selected feed or category."), tr("Do you really want to delete selected item?"),
|
tr("You are about to delete selected feed or category."), tr("Do you really want to delete selected item?"),
|
||||||
QString(), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) == QMessageBox::No) {
|
QString(), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) == QMessageBox::No) {
|
||||||
// User changed his mind.
|
// User changed his mind.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ void FeedsView::deleteSelectedItem() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Changes are done, unlock the update master lock.
|
// Changes are done, unlock the update master lock.
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::markSelectedFeedsReadStatus(int read) {
|
void FeedsView::markSelectedFeedsReadStatus(int read) {
|
||||||
|
@ -448,7 +448,7 @@ void FormMain::showAbout() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FormMain::showUpdates() {
|
void FormMain::showUpdates() {
|
||||||
if (!qApp->closeLock()->tryLock()) {
|
if (!qApp->feedUpdateLock()->tryLock()) {
|
||||||
if (SystemTrayIcon::isSystemTrayActivated()) {
|
if (SystemTrayIcon::isSystemTrayActivated()) {
|
||||||
qApp->trayIcon()->showMessage(tr("Cannot check for updates"),
|
qApp->trayIcon()->showMessage(tr("Cannot check for updates"),
|
||||||
tr("You cannot check for updates because feed update is ongoing."),
|
tr("You cannot check for updates because feed update is ongoing."),
|
||||||
@ -468,7 +468,7 @@ void FormMain::showUpdates() {
|
|||||||
form_update.data()->exec();
|
form_update.data()->exec();
|
||||||
delete form_update.data();
|
delete form_update.data();
|
||||||
|
|
||||||
qApp->closeLock()->unlock();
|
qApp->feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormMain::showWiki() {
|
void FormMain::showWiki() {
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
Application::Application(const QString &id, int &argc, char **argv)
|
Application::Application(const QString &id, int &argc, char **argv)
|
||||||
: QtSingleApplication(id, argc, argv),
|
: QtSingleApplication(id, argc, argv),
|
||||||
m_closeLock(NULL), m_userActions(QList<QAction*>()), m_mainForm(NULL),
|
m_updateFeedsLock(NULL), m_userActions(QList<QAction*>()), m_mainForm(NULL),
|
||||||
m_trayIcon(NULL), m_settings(NULL), m_system(NULL), m_skins(NULL),
|
m_trayIcon(NULL), m_settings(NULL), m_system(NULL), m_skins(NULL),
|
||||||
m_localization(NULL), m_icons(NULL), m_database(NULL), m_downloadManager(NULL), m_shouldRestart(false) {
|
m_localization(NULL), m_icons(NULL), m_database(NULL), m_downloadManager(NULL), m_shouldRestart(false) {
|
||||||
connect(this, SIGNAL(aboutToQuit()), this, SLOT(onAboutToQuit()));
|
connect(this, SIGNAL(aboutToQuit()), this, SLOT(onAboutToQuit()));
|
||||||
@ -41,7 +41,7 @@ Application::Application(const QString &id, int &argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Application::~Application() {
|
Application::~Application() {
|
||||||
delete m_closeLock;
|
delete m_updateFeedsLock;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QAction*> Application::userActions() {
|
QList<QAction*> Application::userActions() {
|
||||||
@ -188,9 +188,8 @@ void Application::onSaveState(QSessionManager &manager) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Application::onAboutToQuit() {
|
void Application::onAboutToQuit() {
|
||||||
// Make sure that we obtain close lock
|
// Make sure that we obtain close lock BEFORE even trying to quit the application.
|
||||||
// BEFORE even trying to quit the application.
|
bool locked_safely = feedUpdateLock()->tryLock(CLOSE_LOCK_TIMEOUT);
|
||||||
bool locked_safely = closeLock()->tryLock(CLOSE_LOCK_TIMEOUT);
|
|
||||||
|
|
||||||
processEvents();
|
processEvents();
|
||||||
|
|
||||||
@ -209,7 +208,7 @@ void Application::onAboutToQuit() {
|
|||||||
qDebug("Close lock was obtained safely.");
|
qDebug("Close lock was obtained safely.");
|
||||||
|
|
||||||
// We locked the lock to exit peacefully, unlock it to avoid warnings.
|
// We locked the lock to exit peacefully, unlock it to avoid warnings.
|
||||||
closeLock()->unlock();
|
feedUpdateLock()->unlock();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Request for write lock timed-out. This means
|
// Request for write lock timed-out. This means
|
||||||
|
@ -110,12 +110,12 @@ class Application : public QtSingleApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Access to application-wide close lock.
|
// Access to application-wide close lock.
|
||||||
inline QMutex *closeLock() {
|
inline QMutex *feedUpdateLock() {
|
||||||
if (m_closeLock == NULL) {
|
if (m_updateFeedsLock == NULL) {
|
||||||
m_closeLock = new QMutex();
|
m_updateFeedsLock = new QMutex();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_closeLock;
|
return m_updateFeedsLock;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline FormMain *mainForm() {
|
inline FormMain *mainForm() {
|
||||||
@ -188,7 +188,7 @@ class Application : public QtSingleApplication {
|
|||||||
// But of user decides to close the application (in other words,
|
// But of user decides to close the application (in other words,
|
||||||
// tries to lock the lock for writing), then no other
|
// tries to lock the lock for writing), then no other
|
||||||
// action will be allowed to lock for reading.
|
// action will be allowed to lock for reading.
|
||||||
QMutex *m_closeLock;
|
QMutex *m_updateFeedsLock;
|
||||||
QList<QAction*> m_userActions;
|
QList<QAction*> m_userActions;
|
||||||
FormMain *m_mainForm;
|
FormMain *m_mainForm;
|
||||||
SystemTrayIcon *m_trayIcon;
|
SystemTrayIcon *m_trayIcon;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user