PrivacyDlg::PrivacyDlg(JabberAccount* acc, QWidget* parent) : KDialog(parent), acc_(acc) { QWidget * w = new QWidget (this); ui_.setupUi(w); setMainWidget (w); setAttribute(Qt::WA_DeleteOnClose); setCaption(i18n("%1: Privacy Lists", (acc->myself()->nickName() ) ) ); setButtons (KDialog::Close); ui_.lv_rules->setFocus (Qt::PopupFocusReason); PrivacyManager* manager = acc->client()->privacyManager(); connect(manager,SIGNAL(listsReceived(QString,QString,QStringList)),SLOT(updateLists(QString,QString,QStringList))); connect(manager,SIGNAL(listReceived(PrivacyList)),SLOT(refreshList(PrivacyList))); connect(manager,SIGNAL(listError()),SLOT(list_failed())); //connect(manager,SIGNAL(listNamesError()),SLOT(listNamesError())); //connect(manager,SIGNAL(listReceiveError()),SLOT(listReceiveError())); connect(ui_.cb_active,SIGNAL(activated(int)),SLOT(active_selected(int))); connect(ui_.cb_default,SIGNAL(activated(int)),SLOT(default_selected(int))); connect(ui_.cb_lists,SIGNAL(activated(int)),SLOT(list_selected(int))); connect(ui_.cb_lists,SIGNAL(currentIndexChanged(int)),SLOT(list_changed(int))); connect(manager,SIGNAL(changeActiveList_success()),SLOT(change_succeeded())); connect(manager,SIGNAL(changeActiveList_error()),SLOT(change_failed())); connect(manager,SIGNAL(changeDefaultList_success()),SLOT(change_succeeded())); connect(manager,SIGNAL(changeDefaultList_error()),SLOT(change_failed())); connect(manager,SIGNAL(changeList_success()),SLOT(changeList_succeeded())); connect(manager,SIGNAL(changeList_error()),SLOT(changeList_failed())); connect(ui_.pb_newList,SIGNAL(clicked()),SLOT(newList())); connect(ui_.pb_deleteList,SIGNAL(clicked()),SLOT(removeList())); connect(ui_.pb_add,SIGNAL(clicked()),SLOT(addRule())); connect(ui_.pb_edit,SIGNAL(clicked()),SLOT(editCurrentRule())); connect(ui_.pb_remove,SIGNAL(clicked()),SLOT(removeCurrentRule())); connect(ui_.pb_up,SIGNAL(clicked()),SLOT(moveCurrentRuleUp())); connect(ui_.pb_down,SIGNAL(clicked()),SLOT(moveCurrentRuleDown())); connect(ui_.pb_apply,SIGNAL(clicked()),SLOT(applyList())); ui_.pb_newList->setIcon(KIcon("list-add")); ui_.pb_deleteList->setIcon(KIcon("list-remove")); ui_.pb_add->setIcon(KIcon("list-add")); ui_.pb_remove->setIcon(KIcon("list-remove")); ui_.pb_up->setIcon(KIcon("arrow-up")); ui_.pb_down->setIcon(KIcon("arrow-down")); ui_.pb_edit->setIcon(KIcon("edit-rename")); ui_.pb_apply->setIcon(KIcon("dialog-ok-apply")); setWidgetsEnabled(false); // Disable all buttons ui_.pb_deleteList->setEnabled(false); setEditRuleEnabled(false); ui_.pb_add->setEnabled(false); ui_.pb_apply->setEnabled(false); // FIXME: Temporarily disabling auto-activate ui_.ck_autoActivate->hide(); manager->requestListNames(); }
PrivacyDlg::PrivacyDlg(const QString& account_name, PrivacyManager* manager, QWidget* parent) : QDialog(parent), manager_(manager) { ui_.setupUi(this); setAttribute(Qt::WA_DeleteOnClose); setWindowTitle(tr("%1: Privacy Lists").arg(account_name)); setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint); connect(manager_,SIGNAL(listsReceived(const QString&, const QString&, const QStringList&)),SLOT(updateLists(const QString&, const QString&, const QStringList&))); connect(manager_,SIGNAL(listReceived(const PrivacyList&)),SLOT(refreshList(const PrivacyList&))); connect(manager_,SIGNAL(listError()),SLOT(list_failed())); //connect(manager_,SIGNAL(listNamesError()),SLOT(listNamesError())); //connect(manager_,SIGNAL(listReceiveError()),SLOT(listReceiveError())); connect(ui_.cb_active,SIGNAL(activated(int)),SLOT(active_selected(int))); connect(ui_.cb_default,SIGNAL(activated(int)),SLOT(default_selected(int))); connect(ui_.cb_lists,SIGNAL(activated(int)),SLOT(list_selected(int))); connect(ui_.cb_lists,SIGNAL(currentIndexChanged(int)),SLOT(list_changed(int))); connect(manager_,SIGNAL(changeActiveList_success(QString)),SLOT(changeActiveList_succeeded(QString))); connect(manager_,SIGNAL(changeActiveList_error()),SLOT(change_failed())); connect(manager_,SIGNAL(changeDefaultList_success(QString)),SLOT(changeDefaultList_succeeded(QString))); connect(manager_,SIGNAL(changeDefaultList_error()),SLOT(change_failed())); connect(manager_,SIGNAL(changeList_success(QString)),SLOT(changeList_succeeded(QString))); connect(manager_,SIGNAL(changeList_error()),SLOT(changeList_failed())); connect(ui_.pb_newList,SIGNAL(clicked()),SLOT(newList())); connect(ui_.pb_deleteList,SIGNAL(clicked()),SLOT(removeList())); connect(ui_.pb_renameList,SIGNAL(clicked()),SLOT(renameList())); connect(ui_.pb_add,SIGNAL(clicked()),SLOT(addRule())); connect(ui_.pb_edit,SIGNAL(clicked()),SLOT(editCurrentRule())); connect(ui_.pb_remove,SIGNAL(clicked()),SLOT(removeCurrentRule())); connect(ui_.pb_up,SIGNAL(clicked()),SLOT(moveCurrentRuleUp())); connect(ui_.pb_down,SIGNAL(clicked()),SLOT(moveCurrentRuleDown())); connect(ui_.pb_apply,SIGNAL(clicked()),SLOT(applyList())); connect(ui_.buttonBox->button(QDialogButtonBox::Close),SIGNAL(clicked()),SLOT(close())); setWidgetsEnabled(false); // Disable all buttons ui_.pb_deleteList->setEnabled(false); setEditRuleEnabled(false); ui_.pb_add->setEnabled(false); ui_.pb_apply->setEnabled(false); // FIXME: Temporarily disabling auto-activate ui_.ck_autoActivate->hide(); manager_->requestListNames(); }
void AccountModifyDlg::init() { //connect(pa->psi(), SIGNAL(pgpToggled(bool)), SLOT(pgpToggled(bool))); if (pa) pa->dialogRegister(this); setWindowTitle(CAP(caption())); #ifndef Q_WS_MAC setWindowIcon(IconsetFactory::icon("psi/account").icon()); #endif le_pass->setEnabled(true); le_host->setEnabled(false); lb_host->setEnabled(false); le_port->setEnabled(false); lb_port->setEnabled(false); // FIXME: Temporarily removing security level settings ck_req_mutual->hide(); cb_security_level->hide(); lb_security_level->hide(); connect(pb_close, SIGNAL(clicked()), SLOT(reject())); connect(ck_host, SIGNAL(toggled(bool)), SLOT(hostToggled(bool))); connect(pb_key, SIGNAL(clicked()), SLOT(chooseKey())); connect(pb_keyclear, SIGNAL(clicked()), SLOT(clearKey())); connect(pb_save, SIGNAL(clicked()), SLOT(save())); connect(ck_automatic_resource, SIGNAL(toggled(bool)), le_resource, SLOT(setDisabled(bool))); connect(ck_automatic_resource, SIGNAL(toggled(bool)), lb_resource, SLOT(setDisabled(bool))); gb_pgp->setEnabled(false); if (pa) { connect(pb_vcard, SIGNAL(clicked()), SLOT(detailsVCard())); connect(pb_changepw, SIGNAL(clicked()), SLOT(detailsChangePW())); } else { pb_vcard->setEnabled(false); pb_changepw->setEnabled(false); } // Hide the name if necessary le_name->setText(acc.name); le_jid->setText(JIDUtil::accountToString(acc.jid,false)); cb_ssl->addItem(tr("Always"),UserAccount::SSL_Yes); cb_ssl->addItem(tr("When available"),UserAccount::SSL_Auto); cb_ssl->addItem(tr("Never"), UserAccount::SSL_No); cb_ssl->addItem(tr("Legacy SSL"), UserAccount::SSL_Legacy); cb_ssl->setCurrentIndex(cb_ssl->findData(acc.ssl)); connect(cb_ssl, SIGNAL(activated(int)), SLOT(sslActivated(int))); cb_plain->addItem(tr("Always"),ClientStream::AllowPlain); cb_plain->addItem(tr("Over encrypted connection"), ClientStream::AllowPlainOverTLS); cb_plain->addItem(tr("Never"), ClientStream::NoAllowPlain); cb_plain->setCurrentIndex(cb_plain->findData(acc.allow_plain)); if (acc.opt_pass) le_pass->setText(acc.pass); ck_host->setChecked(acc.opt_host); le_host->setText(acc.host); le_port->setText(QString::number(acc.port)); ck_req_mutual->setChecked(acc.req_mutual_auth); ck_legacy_ssl_probe->setChecked(acc.legacy_ssl_probe); ck_automatic_resource->setChecked(acc.opt_automatic_resource); le_resource->setText(acc.resource); le_priority->setText(QString::number(acc.priority)); connect(ck_custom_auth,SIGNAL(toggled(bool)), lb_authid, SLOT(setEnabled(bool))); connect(ck_custom_auth,SIGNAL(toggled(bool)), le_authid, SLOT(setEnabled(bool))); connect(ck_custom_auth,SIGNAL(toggled(bool)), lb_realm, SLOT(setEnabled(bool))); connect(ck_custom_auth,SIGNAL(toggled(bool)), le_realm, SLOT(setEnabled(bool))); ck_custom_auth->setChecked(acc.customAuth); le_authid->setText(acc.authid); le_realm->setText(acc.realm); ck_compress->setChecked(acc.opt_compress); ck_auto->setChecked(acc.opt_auto); ck_reconn->setChecked(acc.opt_reconn); ck_connectAfterSleep->setChecked(acc.opt_connectAfterSleep); ck_log->setChecked(acc.opt_log); ck_keepAlive->setChecked(acc.opt_keepAlive); le_dtProxy->setText(acc.dtProxy.full()); le_stunHost->setText(acc.stunHost); le_stunPort->setText(QString::number(acc.stunPort)); key = acc.pgpSecretKey; updateUserID(); PGPUtil::instance().clearPGPAvailableCache(); if(PGPUtil::instance().pgpAvailable()) { gb_pgp->setEnabled(true); } pc = psi->proxy()->createProxyChooser(tab_connection); replaceWidget(lb_proxychooser, pc); pc->setCurrentItem(acc.proxyID); // Security level cb_security_level->addItem(tr("None"),QCA::SL_None); cb_security_level->addItem(tr("Integrity"),QCA::SL_Integrity); cb_security_level->addItem(tr("Baseline"),QCA::SL_Baseline); cb_security_level->addItem(tr("High"),QCA::SL_High); cb_security_level->addItem(tr("Highest"),QCA::SL_Highest); cb_security_level->setCurrentIndex(cb_security_level->findData(acc.security_level)); // Name if(le_name->text().isEmpty()) le_name->setFocus(); else if(le_jid->text().isEmpty()) le_jid->setFocus(); else pb_save->setFocus(); // Privacy privacyInitialized = false; lb_customPrivacy->hide(); privacyBlockedModel.setSourceModel(&privacyModel); lv_blocked->setModel(&privacyBlockedModel); if (pa) { connect(pa->privacyManager(),SIGNAL(defaultListAvailable(const PrivacyList&)),SLOT(updateBlockedContacts(const PrivacyList&))); connect(pa->privacyManager(),SIGNAL(defaultListError()),SLOT(getDefaultList_error())); connect(pa->privacyManager(),SIGNAL(changeList_error()),SLOT(changeList_error())); connect(pa,SIGNAL(updatedActivity()),SLOT(updatePrivacyTab())); } connect(tab_main,SIGNAL(currentChanged(int)),SLOT(tabChanged(int))); connect(pb_privacy, SIGNAL(clicked()), SLOT(privacyClicked())); connect(pb_removeBlock, SIGNAL(clicked()), SLOT(removeBlockClicked())); connect(pb_addBlock, SIGNAL(clicked()), SLOT(addBlockClicked())); // FIXME: Temporarily disabling blocking pb_removeBlock->hide(); pb_addBlock->hide(); // QWhatsThis helpers cb_plain->setWhatsThis( tr("Normally, Psi logs in using the <i>digest</i> authentication " "method. Check this box to force a plain text login " "to the Jabber server. Use this option only if you have " "problems connecting with the normal login procedure, as it " "makes your connection potentially vulnerable to " "attacks.")); ck_auto->setWhatsThis( tr("Automatically login to this account on Psi startup. Useful if " "you have Psi automatically launched when an Internet " "connection is detected.")); ck_connectAfterSleep->setWhatsThis( tr("Makes Psi try to connect when the computer resumes " "after a sleep.")); ck_reconn->setWhatsThis( tr("Makes Psi try to reconnect if the connection was broken. " "Useful, if you have an unstable connection and have to " "reconnect often.")); ck_log->setWhatsThis( tr("Keep a log of message history. Disable this " "option if you want to conserve disk space or if you need " "maximum security.")); ck_keepAlive->setWhatsThis( tr("Sends so called \"Keep-alive\" packets periodically. " "It is useful if your connection is set to be " "automatically disconnected after a certain period of " "inactivity (for example, by your ISP) and you want to keep it " "up all the time.")); cb_ssl->setWhatsThis( tr("Check this option to use an encrypted SSL connection to " "the Jabber server. You may use this option if your " "server supports it and if you have the necessary QCA-OpenSSL " "plugin installed. For more information, check the " "Psi homepage.")); ck_compress->setWhatsThis( tr("Check this option to use a compressed connection to " "the Jabber server, if the server supports it.")); ck_host->setWhatsThis( tr("Use this option for manual configuration of your Jabber host " "if it is not the same as the host you are connecting to. This option is mostly useful " "if you have some sort of proxy route on your " "local machine (i.e. you connect to localhost), but your " "account is registered on an external server.")); le_resource->setWhatsThis( tr("You can have multiple clients connected to the Jabber server " "with your single account. Each login is distinguished by a \"resource\" " "name, which you can specify in this field.")); ck_custom_auth->setWhatsThis( tr("This option sets the user (and realm) you want to " "authenticate as. This overrides the Jabber ID you are logging in " "as.")); le_priority->setWhatsThis( tr("<p>You can have multiple clients connected to the Jabber " "server with your single account. In such a situation, " "the client with the highest priority (that is specified in " "this field) will be the one that will receive " "all incoming events.</p>" "<p>For example, if you have a permanent connection " "to the Internet at your work location, and have a dial-up at home, " "you can have your Jabber client permanently running at work " "with a low priority, and you can still use the same account " "from home, using a client with higher priority to " "temporary \"disable\" the lower priority client at work.</p>")); // Hiding of UI components if ((!pa && acc.name.isEmpty()) || PsiOptions::instance()->getOption("options.ui.account.single").toBool()) { le_name->hide(); lb_name->hide(); } if (!PsiOptions::instance()->getOption("options.account.domain").toString().isEmpty()) { lb_example->hide(); lb_jid->setText(tr("Username:"******"options.pgp.enable").toBool()) { gb_pgp->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.privacy.show").toBool()) tab_main->removeTab(tab_main->indexOf(tab_privacy)); if (!PsiOptions::instance()->getOption("options.ui.account.proxy.show").toBool()) { lb_proxy->hide(); lb_proxychooser->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.manual-host").toBool()) { ck_host->hide(); lb_host->hide(); le_host->hide(); lb_port->hide(); le_port->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.keepalive").toBool()) ck_keepAlive->hide(); if (!PsiOptions::instance()->getOption("options.ui.account.legacy-ssl-probe").toBool()) ck_legacy_ssl_probe->hide(); if (!PsiOptions::instance()->getOption("options.ui.account.security.show").toBool()) { lb_plain->hide(); cb_plain->hide(); ck_req_mutual->hide(); lb_security_level->hide(); cb_security_level->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.security.show").toBool() && !PsiOptions::instance()->getOption("options.ui.account.legacy-ssl-probe").toBool() && !PsiOptions::instance()->getOption("options.ui.account.keepalive").toBool() && !PsiOptions::instance()->getOption("options.ui.account.manual-host").toBool() && !PsiOptions::instance()->getOption("options.ui.account.proxy.show").toBool()) { tab_main->removeTab(tab_main->indexOf(tab_connection)); } if (!PsiOptions::instance()->getOption("options.ui.account.resource").toBool()) { ck_automatic_resource->hide(); lb_resource->hide(); le_resource->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.custom-authid").toBool()) { ck_custom_auth->hide(); lb_authid->hide(); le_authid->hide(); lb_realm->hide(); le_realm->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.priority").toBool()) { lb_priority->hide(); le_priority->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.data-proxy").toBool()) { lb_dtProxy->hide(); le_dtProxy->hide(); } if (!PsiOptions::instance()->getOption("options.ui.account.resource").toBool() && !PsiOptions::instance()->getOption("options.ui.account.priority").toBool() && !PsiOptions::instance()->getOption("options.ui.account.data-proxy").toBool()) { tab_main->removeTab(tab_main->indexOf(tab_misc)); } resize(minimumSizeHint()); }