- : QDialog(parent)
-{
- ui.setupUi(this);
-
- _account = acct;
-
- ui.hostName->setText(acct.hostName());
- ui.port->setValue(acct.port());
- ui.accountName->setText(acct.accountName());
- ui.user->setText(acct.user());
- ui.password->setText(acct.password());
- ui.rememberPassword->setChecked(acct.storePassword());
- ui.useProxy->setChecked(acct.useProxy());
- ui.proxyHostName->setText(acct.proxyHostName());
- ui.proxyPort->setValue(acct.proxyPort());
- ui.proxyType->setCurrentIndex(acct.proxyType() == QNetworkProxy::Socks5Proxy ? 0 : 1);
- ui.proxyUser->setText(acct.proxyUser());
- ui.proxyPassword->setText(acct.proxyPassword());
-
- if(acct.accountId().isValid())
- setWindowTitle(tr("Edit Core Account"));
- else
- setWindowTitle(tr("Add Core Account"));
-}
-
-CoreAccount CoreAccountEditDlg::account() {
- _account.setAccountName(ui.accountName->text().trimmed());
- _account.setHostName(ui.hostName->text().trimmed());
- _account.setPort(ui.port->value());
- _account.setUser(ui.user->text().trimmed());
- _account.setPassword(ui.password->text());
- _account.setStorePassword(ui.rememberPassword->isChecked());
- _account.setUseProxy(ui.useProxy->isChecked());
- _account.setProxyHostName(ui.proxyHostName->text().trimmed());
- _account.setProxyPort(ui.proxyPort->value());
- _account.setProxyType(ui.proxyType->currentIndex() == 0 ? QNetworkProxy::Socks5Proxy : QNetworkProxy::HttpProxy);
- _account.setProxyUser(ui.proxyUser->text().trimmed());
- _account.setProxyPassword(ui.proxyPassword->text());
- return _account;
-}
-
-void CoreAccountEditDlg::setWidgetStates() {
- bool ok = !ui.accountName->text().trimmed().isEmpty()
- && !ui.user->text().trimmed().isEmpty()
- && !ui.hostName->text().isEmpty();
- ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(ok);
-}
-
-void CoreAccountEditDlg::on_hostName_textChanged(const QString &text) {
- Q_UNUSED(text);
- setWidgetStates();
-}
-
-void CoreAccountEditDlg::on_accountName_textChanged(const QString &text) {
- Q_UNUSED(text);
- setWidgetStates();
-}
-
-void CoreAccountEditDlg::on_user_textChanged(const QString &text) {
- Q_UNUSED(text)
- setWidgetStates();
+ : QDialog(parent)
+{
+ ui.setupUi(this);
+
+ _account = acct;
+
+ ui.hostName->setText(acct.hostName());
+ ui.port->setValue(acct.port());
+ ui.accountName->setText(acct.accountName());
+ ui.user->setText(acct.user());
+ ui.password->setText(acct.password());
+ ui.rememberPassword->setChecked(acct.storePassword());
+ ui.useProxy->setChecked(acct.useProxy());
+ ui.proxyHostName->setText(acct.proxyHostName());
+ ui.proxyPort->setValue(acct.proxyPort());
+ ui.proxyType->setCurrentIndex(acct.proxyType() == QNetworkProxy::Socks5Proxy ? 0 : 1);
+ ui.proxyUser->setText(acct.proxyUser());
+ ui.proxyPassword->setText(acct.proxyPassword());
+
+ if (acct.accountId().isValid())
+ setWindowTitle(tr("Edit Core Account"));
+ else
+ setWindowTitle(tr("Add Core Account"));
+}
+
+
+CoreAccount CoreAccountEditDlg::account()
+{
+ _account.setAccountName(ui.accountName->text().trimmed());
+ _account.setHostName(ui.hostName->text().trimmed());
+ _account.setPort(ui.port->value());
+ _account.setUser(ui.user->text().trimmed());
+ _account.setPassword(ui.password->text());
+ _account.setStorePassword(ui.rememberPassword->isChecked());
+ _account.setUseProxy(ui.useProxy->isChecked());
+ _account.setProxyHostName(ui.proxyHostName->text().trimmed());
+ _account.setProxyPort(ui.proxyPort->value());
+ _account.setProxyType(ui.proxyType->currentIndex() == 0 ? QNetworkProxy::Socks5Proxy : QNetworkProxy::HttpProxy);
+ _account.setProxyUser(ui.proxyUser->text().trimmed());
+ _account.setProxyPassword(ui.proxyPassword->text());
+ return _account;
+}
+
+
+void CoreAccountEditDlg::setWidgetStates()
+{
+ bool ok = !ui.accountName->text().trimmed().isEmpty()
+ && !ui.user->text().trimmed().isEmpty()
+ && !ui.hostName->text().isEmpty();
+ ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(ok);
+}
+
+
+void CoreAccountEditDlg::on_hostName_textChanged(const QString &text)
+{
+ Q_UNUSED(text);
+ setWidgetStates();
+}
+
+
+void CoreAccountEditDlg::on_accountName_textChanged(const QString &text)
+{
+ Q_UNUSED(text);
+ setWidgetStates();
+}
+
+
+void CoreAccountEditDlg::on_user_textChanged(const QString &text)
+{
+ Q_UNUSED(text)
+ setWidgetStates();
+}
+
+
+/*****************************************************************************************
+ * FilteredCoreAccountModel
+ *****************************************************************************************/
+
+FilteredCoreAccountModel::FilteredCoreAccountModel(CoreAccountModel *model, QObject *parent) : QSortFilterProxyModel(parent)
+{
+ _internalAccount = model->internalAccount();
+ setSourceModel(model);
+}
+
+
+bool FilteredCoreAccountModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+ if (Quassel::runMode() == Quassel::Monolithic)
+ return true;
+
+ if (!_internalAccount.isValid())
+ return true;
+
+ return _internalAccount != sourceModel()->index(source_row, 0, source_parent).data(CoreAccountModel::AccountIdRole).value<AccountId>();