diff --git a/src/services/tt-rss/gui/formeditaccount.cpp b/src/services/tt-rss/gui/formeditaccount.cpp index 7ebe6d61f..36f543f9b 100755 --- a/src/services/tt-rss/gui/formeditaccount.cpp +++ b/src/services/tt-rss/gui/formeditaccount.cpp @@ -136,7 +136,7 @@ void FormEditAccount::onClickedOk() { if (m_editableRoot == NULL) { // We want to confirm newly created account. // So save new account into DB, setup its properties. - m_editableRoot = new TtRssServiceRoot(false); + m_editableRoot = new TtRssServiceRoot(); } m_editableRoot->network()->setUrl(m_ui->m_txtUrl->lineEdit()->text()); diff --git a/src/services/tt-rss/ttrssserviceroot.cpp b/src/services/tt-rss/ttrssserviceroot.cpp index afbd99ad2..be64c7dd3 100755 --- a/src/services/tt-rss/ttrssserviceroot.cpp +++ b/src/services/tt-rss/ttrssserviceroot.cpp @@ -26,14 +26,10 @@ #include -TtRssServiceRoot::TtRssServiceRoot(bool load_from_db, RootItem *parent) +TtRssServiceRoot::TtRssServiceRoot(RootItem *parent) : ServiceRoot(parent), m_network(new TtRssNetworkFactory) { setIcon(TtRssServiceEntryPoint().icon()); setCreationDate(QDateTime::currentDateTime()); - - if (load_from_db) { - loadFromDatabase(); - } } TtRssServiceRoot::~TtRssServiceRoot() { @@ -145,10 +141,21 @@ TtRssNetworkFactory *TtRssServiceRoot::network() const { void TtRssServiceRoot::saveToDatabase() { if (accountId() != NO_PARENT_CATEGORY) { // We are overwritting previously saved data. - // TODO: todo + QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); + QSqlQuery query(database); - updateTitle(); - itemChanged(QList() << this); + query.prepare("UPDATE TtRssAccounts " + "SET username = :username, password = :password, url = :url " + "WHERE id = :id;"); + query.bindValue(":username", m_network->username()); + query.bindValue(":password", m_network->password()); + query.bindValue(":url", m_network->url()); + query.bindValue(":id", accountId()); + + if (query.exec()) { + updateTitle(); + itemChanged(QList() << this); + } } else { // We are probably saving newly added account. diff --git a/src/services/tt-rss/ttrssserviceroot.h b/src/services/tt-rss/ttrssserviceroot.h index 5060b94f8..b57912c79 100755 --- a/src/services/tt-rss/ttrssserviceroot.h +++ b/src/services/tt-rss/ttrssserviceroot.h @@ -29,7 +29,7 @@ class TtRssServiceRoot : public ServiceRoot { Q_OBJECT public: - explicit TtRssServiceRoot(bool load_from_db, RootItem *parent = NULL); + explicit TtRssServiceRoot(RootItem *parent = NULL); virtual ~TtRssServiceRoot(); void start();