connect(filteredModel(), SIGNAL(rowsInserted(QModelIndex, int, int)), SLOT(rowsInserted(QModelIndex, int, int)));
connect(ui.accountView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), SLOT(setWidgetStates()));
+ connect(ui.autoConnectAccount, SIGNAL(currentIndexChanged(int)), SLOT(widgetHasChanged()));
setWidgetStates();
}
QModelIndex idx = filteredModel()->mapFromSource(model()->accountIndex(s.autoConnectAccount()));
ui.autoConnectAccount->setCurrentIndex(idx.isValid() ? idx.row() : 0);
+ ui.autoConnectAccount->setProperty("storedValue", ui.autoConnectAccount->currentIndex());
setWidgetStates();
}
Client::coreAccountModel()->update(model());
Client::coreAccountModel()->save();
CoreAccountSettings s;
-}
-
-QVariant CoreAccountSettingsPage::loadAutoWidgetValue(const QString &widgetName) {
- if(widgetName == "autoConnectAccount") {
- CoreAccountSettings s;
- AccountId id = s.autoConnectAccount();
- if(!id.isValid())
- return QVariant();
- return id.toInt();
- }
- return SettingsPage::loadAutoWidgetValue(widgetName);
-}
-
-void CoreAccountSettingsPage::saveAutoWidgetValue(const QString &widgetName, const QVariant &v) {
- CoreAccountSettings s;
- if(widgetName == "autoConnectAccount") {
- AccountId id = filteredModel()->index(ui.autoConnectAccount->currentIndex(), 0).data(CoreAccountModel::AccountIdRole).value<AccountId>();
- s.setAutoConnectAccount(id);
- return;
- }
- SettingsPage::saveAutoWidgetValue(widgetName, v);
+ AccountId id = filteredModel()->index(ui.autoConnectAccount->currentIndex(), 0).data(CoreAccountModel::AccountIdRole).value<AccountId>();
+ s.setAutoConnectAccount(id);
+ ui.autoConnectAccount->setProperty("storedValue", ui.autoConnectAccount->currentIndex());
}
// TODO: Qt 4.6 - replace by proper rowsMoved() semantics
}
bool CoreAccountSettingsPage::testHasChanged() {
+ if(ui.autoConnectAccount->currentIndex() != ui.autoConnectAccount->property("storedValue").toInt())
+ return true;
if(!(*model() == *Client::coreAccountModel()))
return true;
void on_accountView_doubleClicked(const QModelIndex &index);
void setWidgetStates();
+ void widgetHasChanged();
void rowsAboutToBeRemoved(const QModelIndex &index, int start, int end);
void rowsInserted(const QModelIndex &index, int start, int end);
AccountId _lastAccountId, _lastAutoConnectId;
bool _standalone;
- virtual QVariant loadAutoWidgetValue(const QString &widgetName);
- virtual void saveAutoWidgetValue(const QString &widgetName, const QVariant &value);
-
void editAccount(const QModelIndex &);
- void widgetHasChanged();
bool testHasChanged();
inline QString settingsKey() const { return QString("CoreAccounts"); }