New release announcement.

This commit is contained in:
Martin Rotter 2015-05-02 08:02:25 +02:00
parent 406c1257fa
commit 9106c422b9
8 changed files with 40 additions and 34 deletions

View File

@ -545,7 +545,7 @@ if(WIN32)
# set(APP_DLLS_QT4_MSVC2013
# resources/binaries/windows/deployment/qt4-msvc2013/libeay32.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/QtGui4.dll
# resources/binaries/windows/deployment/qt4-msvc2013/QtNetwork4.dll

View File

@ -1,4 +1,11 @@
<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>
Fixed:

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<releases>
<release version="2.2.0">
<url platform="x86" os="Windows">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-2.2.0-win32.exe</url>
<release version="2.3.0">
<url platform="x86" os="Windows">https://bitbucket.org/skunkos/rssguard/downloads/rssguard-2.3.0-win32.exe</url>
</release>
</releases>
</releases>

View File

@ -176,7 +176,7 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed, int current,
}
void FeedMessageViewer::onFeedUpdatesFinished() {
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
qApp->mainForm()->statusBar()->clearProgressFeeds();
m_messagesView->reloadSelections(1);
}
@ -367,7 +367,7 @@ void FeedMessageViewer::initializeViews() {
}
void FeedMessageViewer::vacuumDatabase() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
// Lock was not obtained because
// it is used probably by feed updater or application
// is quitting.
@ -391,7 +391,7 @@ void FeedMessageViewer::vacuumDatabase() {
this);
}
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FeedMessageViewer::refreshVisualProperties() {

View File

@ -166,7 +166,7 @@ void FeedsView::loadExpandedStates() {
}
void FeedsView::updateAllFeeds() {
if (qApp->closeLock()->tryLock()) {
if (qApp->feedUpdateLock()->tryLock()) {
emit feedsUpdateRequested(allFeeds());
}
else {
@ -184,7 +184,7 @@ void FeedsView::updateAllFeedsOnStartup() {
}
void FeedsView::updateSelectedFeeds() {
if (qApp->closeLock()->tryLock()) {
if (qApp->feedUpdateLock()->tryLock()) {
emit feedsUpdateRequested(selectedFeeds());
}
else {
@ -195,7 +195,7 @@ void FeedsView::updateSelectedFeeds() {
}
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.");
// Cannot update, quit.
@ -219,7 +219,7 @@ void FeedsView::executeNextAutoUpdate() {
if (feeds_for_update.isEmpty()) {
// No feeds are scheduled for update now, unlock the master lock.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
else {
// Request update for given feeds.
@ -253,7 +253,7 @@ void FeedsView::clearAllFeeds() {
}
void FeedsView::addNewCategory() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
// Lock was not obtained because
// it is used probably by feed updater or application
// is quitting.
@ -270,7 +270,7 @@ void FeedsView::addNewCategory() {
delete form_pointer.data();
// Changes are done, unlock the update master lock.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FeedsView::editCategory(FeedsModelCategory *category) {
@ -282,7 +282,7 @@ void FeedsView::editCategory(FeedsModelCategory *category) {
}
void FeedsView::addNewFeed() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
// Lock was not obtained because
// it is used probably by feed updater or application
// is quitting.
@ -299,7 +299,7 @@ void FeedsView::addNewFeed() {
delete form_pointer.data();
// Changes are done, unlock the update master lock.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FeedsView::editFeed(FeedsModelFeed *feed) {
@ -347,7 +347,7 @@ void FeedsView::receiveMessageCountsChange(MessagesModel::MessageMode mode,
}
void FeedsView::editSelectedItem() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
// Lock was not obtained because
// it is used probably by feed updater or application
// is quitting.
@ -370,11 +370,11 @@ void FeedsView::editSelectedItem() {
}
// Changes are done, unlock the update master lock.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FeedsView::deleteSelectedItem() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
// Lock was not obtained because
// it is used probably by feed updater or application
// is quitting.
@ -390,7 +390,7 @@ void FeedsView::deleteSelectedItem() {
if (!current_index.isValid()) {
// Changes are done, unlock the update master lock and exit.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
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?"),
QString(), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) == QMessageBox::No) {
// User changed his mind.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
return;
}
@ -415,7 +415,7 @@ void FeedsView::deleteSelectedItem() {
}
// Changes are done, unlock the update master lock.
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FeedsView::markSelectedFeedsReadStatus(int read) {

View File

@ -448,7 +448,7 @@ void FormMain::showAbout() {
}
void FormMain::showUpdates() {
if (!qApp->closeLock()->tryLock()) {
if (!qApp->feedUpdateLock()->tryLock()) {
if (SystemTrayIcon::isSystemTrayActivated()) {
qApp->trayIcon()->showMessage(tr("Cannot check for updates"),
tr("You cannot check for updates because feed update is ongoing."),
@ -468,7 +468,7 @@ void FormMain::showUpdates() {
form_update.data()->exec();
delete form_update.data();
qApp->closeLock()->unlock();
qApp->feedUpdateLock()->unlock();
}
void FormMain::showWiki() {

View File

@ -32,7 +32,7 @@
Application::Application(const QString &id, int &argc, char **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_localization(NULL), m_icons(NULL), m_database(NULL), m_downloadManager(NULL), m_shouldRestart(false) {
connect(this, SIGNAL(aboutToQuit()), this, SLOT(onAboutToQuit()));
@ -41,7 +41,7 @@ Application::Application(const QString &id, int &argc, char **argv)
}
Application::~Application() {
delete m_closeLock;
delete m_updateFeedsLock;
}
QList<QAction*> Application::userActions() {
@ -188,9 +188,8 @@ void Application::onSaveState(QSessionManager &manager) {
}
void Application::onAboutToQuit() {
// Make sure that we obtain close lock
// BEFORE even trying to quit the application.
bool locked_safely = closeLock()->tryLock(CLOSE_LOCK_TIMEOUT);
// Make sure that we obtain close lock BEFORE even trying to quit the application.
bool locked_safely = feedUpdateLock()->tryLock(CLOSE_LOCK_TIMEOUT);
processEvents();
@ -209,7 +208,7 @@ void Application::onAboutToQuit() {
qDebug("Close lock was obtained safely.");
// We locked the lock to exit peacefully, unlock it to avoid warnings.
closeLock()->unlock();
feedUpdateLock()->unlock();
}
else {
// Request for write lock timed-out. This means

View File

@ -110,12 +110,12 @@ class Application : public QtSingleApplication {
}
// Access to application-wide close lock.
inline QMutex *closeLock() {
if (m_closeLock == NULL) {
m_closeLock = new QMutex();
inline QMutex *feedUpdateLock() {
if (m_updateFeedsLock == NULL) {
m_updateFeedsLock = new QMutex();
}
return m_closeLock;
return m_updateFeedsLock;
}
inline FormMain *mainForm() {
@ -188,7 +188,7 @@ class Application : public QtSingleApplication {
// But of user decides to close the application (in other words,
// tries to lock the lock for writing), then no other
// action will be allowed to lock for reading.
QMutex *m_closeLock;
QMutex *m_updateFeedsLock;
QList<QAction*> m_userActions;
FormMain *m_mainForm;
SystemTrayIcon *m_trayIcon;