Account initial starting is now delayed after main form construction, better now. Also some more stuff.
This commit is contained in:
parent
683517948d
commit
11dfe67b4a
6 changed files with 21 additions and 11 deletions
|
@ -70,7 +70,7 @@ FeedsModel::FeedsModel(QObject *parent)
|
||||||
|
|
||||||
connect(m_autoUpdateTimer, SIGNAL(timeout()), this, SLOT(executeNextAutoUpdate()));
|
connect(m_autoUpdateTimer, SIGNAL(timeout()), this, SLOT(executeNextAutoUpdate()));
|
||||||
|
|
||||||
loadActivatedServiceAccounts();
|
//loadActivatedServiceAccounts();
|
||||||
updateAutoUpdateStatus();
|
updateAutoUpdateStatus();
|
||||||
|
|
||||||
if (qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateOnStartup)).toBool()) {
|
if (qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateOnStartup)).toBool()) {
|
||||||
|
@ -82,6 +82,10 @@ FeedsModel::FeedsModel(QObject *parent)
|
||||||
FeedsModel::~FeedsModel() {
|
FeedsModel::~FeedsModel() {
|
||||||
qDebug("Destroying FeedsModel instance.");
|
qDebug("Destroying FeedsModel instance.");
|
||||||
|
|
||||||
|
foreach (ServiceRoot *account, serviceRoots()) {
|
||||||
|
account->stop();
|
||||||
|
}
|
||||||
|
|
||||||
// Delete all model items.
|
// Delete all model items.
|
||||||
delete m_rootItem;
|
delete m_rootItem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,6 +151,9 @@ class FeedsModel : public QAbstractItemModel {
|
||||||
// Adds given service root account.
|
// Adds given service root account.
|
||||||
bool addServiceAccount(ServiceRoot *root);
|
bool addServiceAccount(ServiceRoot *root);
|
||||||
|
|
||||||
|
// Loads feed/categories from the database.
|
||||||
|
void loadActivatedServiceAccounts();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
// Checks if new parent node is different from one used by original node.
|
// Checks if new parent node is different from one used by original node.
|
||||||
// If it is, then it reassigns original_node to new parent.
|
// If it is, then it reassigns original_node to new parent.
|
||||||
|
@ -221,9 +224,6 @@ class FeedsModel : public QAbstractItemModel {
|
||||||
// which are suitable as IN clause for SQL queries.
|
// which are suitable as IN clause for SQL queries.
|
||||||
QStringList textualFeedIds(const QList<Feed*> &feeds);
|
QStringList textualFeedIds(const QList<Feed*> &feeds);
|
||||||
|
|
||||||
// Loads feed/categories from the database.
|
|
||||||
void loadActivatedServiceAccounts();
|
|
||||||
|
|
||||||
RootItem *m_rootItem;
|
RootItem *m_rootItem;
|
||||||
QList<QString> m_headerData;
|
QList<QString> m_headerData;
|
||||||
QList<QString> m_tooltipData;
|
QList<QString> m_tooltipData;
|
||||||
|
|
|
@ -103,8 +103,6 @@ void FeedMessageViewer::loadSize() {
|
||||||
Settings *settings = qApp->settings();
|
Settings *settings = qApp->settings();
|
||||||
int default_msg_section_size = m_messagesView->header()->defaultSectionSize();
|
int default_msg_section_size = m_messagesView->header()->defaultSectionSize();
|
||||||
|
|
||||||
m_feedsView->loadExpandedStates();
|
|
||||||
|
|
||||||
// Restore offsets of splitters.
|
// Restore offsets of splitters.
|
||||||
m_feedSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterFeeds)).toString().toLocal8Bit()));
|
m_feedSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterFeeds)).toString().toLocal8Bit()));
|
||||||
m_messageSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterMessages)).toString().toLocal8Bit()));
|
m_messageSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterMessages)).toString().toLocal8Bit()));
|
||||||
|
|
|
@ -121,6 +121,10 @@ int main(int argc, char *argv[]) {
|
||||||
QTimer::singleShot(STARTUP_UPDATE_DELAY, application.system(), SLOT(checkForUpdatesOnStartup()));
|
QTimer::singleShot(STARTUP_UPDATE_DELAY, application.system(), SLOT(checkForUpdatesOnStartup()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load activated accounts.
|
||||||
|
qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->loadActivatedServiceAccounts();
|
||||||
|
qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->loadExpandedStates();
|
||||||
|
|
||||||
// Setup single-instance behavior.
|
// Setup single-instance behavior.
|
||||||
QObject::connect(&application, SIGNAL(messageReceived(QString)), &application, SLOT(processExecutionMessage(QString)));
|
QObject::connect(&application, SIGNAL(messageReceived(QString)), &application, SLOT(processExecutionMessage(QString)));
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,8 @@ class ServiceRoot : public RootItem {
|
||||||
|
|
||||||
// Start/stop services.
|
// Start/stop services.
|
||||||
// Start method is called when feed model gets initialized OR after user adds new service.
|
// Start method is called when feed model gets initialized OR after user adds new service.
|
||||||
|
// Account should synchronously initialize its children (load them from DB is recommended
|
||||||
|
// here).
|
||||||
//
|
//
|
||||||
// Stop method is called just before application exits OR when
|
// Stop method is called just before application exits OR when
|
||||||
// user explicitly deletes existing service instance.
|
// user explicitly deletes existing service instance.
|
||||||
|
@ -79,8 +81,6 @@ class ServiceRoot : public RootItem {
|
||||||
// and then use method QSqlTableModel::setFilter(....).
|
// and then use method QSqlTableModel::setFilter(....).
|
||||||
// NOTE: It would be more preferable if all messages are downloaded
|
// NOTE: It would be more preferable if all messages are downloaded
|
||||||
// right when feeds are updated.
|
// right when feeds are updated.
|
||||||
// TODO: toto možná udělat asynchronně, zobrazit
|
|
||||||
// "loading" dialog přes view a toto zavolat, nasledně signalovat
|
|
||||||
virtual bool loadMessagesForItem(RootItem *item, QSqlTableModel *model) = 0;
|
virtual bool loadMessagesForItem(RootItem *item, QSqlTableModel *model) = 0;
|
||||||
|
|
||||||
// Called BEFORE this read status update (triggered by user in message list) is stored in DB,
|
// Called BEFORE this read status update (triggered by user in message list) is stored in DB,
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
#include "miscellaneous/settings.h"
|
#include "miscellaneous/settings.h"
|
||||||
#include "gui/dialogs/formmain.h"
|
#include "gui/dialogs/formmain.h"
|
||||||
|
#include "network-web/networkfactory.h"
|
||||||
#include "services/tt-rss/ttrssserviceentrypoint.h"
|
#include "services/tt-rss/ttrssserviceentrypoint.h"
|
||||||
#include "services/tt-rss/ttrssfeed.h"
|
#include "services/tt-rss/ttrssfeed.h"
|
||||||
#include "services/tt-rss/ttrsscategory.h"
|
#include "services/tt-rss/ttrsscategory.h"
|
||||||
|
@ -44,16 +45,19 @@ TtRssServiceRoot::~TtRssServiceRoot() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TtRssServiceRoot::start() {
|
void TtRssServiceRoot::start() {
|
||||||
// TODO: posunout starty rootů až je okno uděláno
|
|
||||||
loadFromDatabase();
|
loadFromDatabase();
|
||||||
|
|
||||||
// TODO: pokud tady není nic načteno, tak
|
if (childCount() == 0) {
|
||||||
// syncIn
|
// TODO: pokud tady není nic načteno, tak
|
||||||
|
// syncIn
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TtRssServiceRoot::stop() {
|
void TtRssServiceRoot::stop() {
|
||||||
QNetworkReply::NetworkError error;
|
QNetworkReply::NetworkError error;
|
||||||
m_network->logout(error);
|
m_network->logout(error);
|
||||||
|
|
||||||
|
qDebug("Stopping Tiny Tiny RSS account, logging out with result '%d'.", (int) error);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString TtRssServiceRoot::code() {
|
QString TtRssServiceRoot::code() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue