<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,18 +12,19 @@
 class QMessageBox;
 class QPushButton;
 
-class CertificateErrorDialog
+class CertificateErrorDialog : public QObject
 {
-	public:
+	Q_OBJECT
+public:
 		CertificateErrorDialog(const QString&amp; title, const QString&amp; host, const QCA::Certificate&amp; cert, int result, QCA::Validity validity, const QString &amp;domainOverride, QString &amp;tlsOverrideDomain, QByteArray &amp;tlsOverrideCert);
-
-		QMessageBox* getMessageBox() {
-			return messageBox_;
-		}
+		~CertificateErrorDialog();
 
 		int exec();
-	
-	private:
+
+public slots:
+		void reject();
+
+private:
 		QMessageBox* messageBox_;
 		QPushButton* detailsButton_;
 		QPushButton* continueButton_;</diff>
      <filename>src/Certificates/CertificateErrorDialog.h</filename>
    </modified>
    <modified>
      <diff>@@ -186,8 +186,8 @@ bool CertificateHelpers::checkCertificate(QCA::TLS* tls, XMPP::QCATLSHandler *tl
 				result, tls-&gt;peerCertificateValidity(),
 				hostnameOverrideable, tlsOverrideDomain, tlsOverrideCert);
 		if (canceler) {
-			QObject::connect(canceler, SIGNAL(disconnected()), errorDialog.getMessageBox(), SLOT(reject()), Qt::AutoConnection);
-			QObject::connect(canceler, SIGNAL(reconnecting()), errorDialog.getMessageBox(), SLOT(reject()), Qt::AutoConnection);
+			QObject::connect(canceler, SIGNAL(disconnected()), &amp;errorDialog, SLOT(reject()), Qt::AutoConnection);
+			QObject::connect(canceler, SIGNAL(reconnecting()), &amp;errorDialog, SLOT(reject()), Qt::AutoConnection);
 		}
 		if (errorDialog.exec() == QDialog::Accepted) {
 			return true;</diff>
      <filename>src/Certificates/CertificateHelpers.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -528,14 +528,28 @@ void AccountModifyDlg::save()
 
 	acc.proxyID = pc-&gt;currentItem();
 
-	if(pa &amp;&amp; pa-&gt;isActive()) {
-		QMessageBox::information(this, tr(&quot;Warning&quot;), tr(&quot;This account is currently active, so certain changes may not take effect until the next login.&quot;));
-	}
-
-	if (pa)
+	if (pa) {
 		pa-&gt;setUserAccount(acc);
-	else 
+
+		if (pa-&gt;isActive()) {
+			QMessageBox messageBox(QMessageBox::Information, tr(&quot;Warning&quot;),
+			                       tr(&quot;This account is currently active, so certain changes may not take effect until the next login.&quot;),
+			                       QMessageBox::NoButton, this);
+			QPushButton* cancel = messageBox.addButton(tr(&quot;Reconnect &amp;Later&quot;), QMessageBox::RejectRole);
+			QPushButton* reconnect = messageBox.addButton(tr(&quot;Reconnect &amp;Now&quot;), QMessageBox::AcceptRole);
+			messageBox.setDefaultButton(reconnect);
+			messageBox.exec();
+			Q_UNUSED(cancel);
+			if (messageBox.clickedButton() == reconnect) {
+				XMPP::Status status = pa-&gt;status();
+				pa-&gt;setStatus(XMPP::Status::Offline);
+				pa-&gt;setStatus(status);
+			}
+		}
+	}
+	else {
 		psi-&gt;contactList()-&gt;createAccount(acc);
+	}
 
 	accept();
 }</diff>
      <filename>src/accountmodifydlg.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -186,9 +186,9 @@ ProfileManageDlg::ProfileManageDlg(const QString &amp;choose, QWidget *parent)
 
 	// setup signals
 	connect(pb_new, SIGNAL(clicked()), SLOT(slotProfileNew()));
-	// connect(pb_rename, SIGNAL(clicked()), SLOT(slotProfileRename()));
+	connect(pb_rename, SIGNAL(clicked()), SLOT(slotProfileRename()));
 	connect(pb_delete, SIGNAL(clicked()), SLOT(slotProfileDelete()));
-	connect(lbx_profiles, SIGNAL(highlighted(int)), SLOT(updateSelection()));
+	connect(lbx_profiles, SIGNAL(currentRowChanged(int)), SLOT(updateSelection()));
 
 	// load the listing
 	QStringList list = getProfilesList();</diff>
      <filename>src/profiledlg.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -1,145 +1,121 @@
-&lt;ui version=&quot;4.0&quot; stdsetdef=&quot;1&quot; &gt;
-  &lt;author&gt;&lt;/author&gt;
-  &lt;comment&gt;&lt;/comment&gt;
-  &lt;exportmacro&gt;&lt;/exportmacro&gt;
-  &lt;class&gt;ProfileManage&lt;/class&gt;
-  &lt;widget class=&quot;QDialog&quot; name=&quot;ProfileManage&quot; &gt;
-    &lt;property name=&quot;geometry&quot; &gt;
-      &lt;rect&gt;
-        &lt;x&gt;0&lt;/x&gt;
-        &lt;y&gt;0&lt;/y&gt;
-        &lt;width&gt;330&lt;/width&gt;
-        &lt;height&gt;254&lt;/height&gt;
-      &lt;/rect&gt;
-    &lt;/property&gt;
-    &lt;property name=&quot;windowTitle&quot; &gt;
-      &lt;string&gt;Manage Profiles&lt;/string&gt;
-    &lt;/property&gt;
-    &lt;layout class=&quot;QVBoxLayout&quot; &gt;
-      &lt;property name=&quot;margin&quot; &gt;
-        &lt;number&gt;11&lt;/number&gt;
-      &lt;/property&gt;
-      &lt;property name=&quot;spacing&quot; &gt;
-        &lt;number&gt;6&lt;/number&gt;
-      &lt;/property&gt;
-      &lt;item&gt;
-        &lt;layout class=&quot;QHBoxLayout&quot; &gt;
-          &lt;property name=&quot;margin&quot; &gt;
-            &lt;number&gt;0&lt;/number&gt;
-          &lt;/property&gt;
-          &lt;item&gt;
-            &lt;widget class=&quot;QListWidget&quot; name=&quot;lbx_profiles&quot; /&gt;
-          &lt;/item&gt;
-          &lt;item&gt;
-            &lt;layout class=&quot;QVBoxLayout&quot; &gt;
-              &lt;property name=&quot;margin&quot; &gt;
-                &lt;number&gt;0&lt;/number&gt;
-              &lt;/property&gt;
-              &lt;item&gt;
-                &lt;widget class=&quot;IconButton&quot; name=&quot;pb_new&quot; &gt;
-                  &lt;property name=&quot;text&quot; &gt;
-                    &lt;string&gt;&amp;amp;New&lt;/string&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;psiIconName&quot; stdset=&quot;0&quot; &gt;
-                    &lt;string&gt;psi/addContact&lt;/string&gt;
-                  &lt;/property&gt;
-                &lt;/widget&gt;
-              &lt;/item&gt;
-              &lt;item&gt;
-                &lt;widget class=&quot;IconButton&quot; name=&quot;pb_rename&quot; &gt;
-                  &lt;property name=&quot;text&quot; &gt;
-                    &lt;string&gt;&amp;amp;Rename&lt;/string&gt;
-                  &lt;/property&gt;
-                &lt;/widget&gt;
-              &lt;/item&gt;
-              &lt;item&gt;
-                &lt;spacer name=&quot;Spacer1&quot; &gt;
-                  &lt;property name=&quot;sizeHint&quot; &gt;
-                    &lt;size&gt;
-                      &lt;width&gt;20&lt;/width&gt;
-                      &lt;height&gt;48&lt;/height&gt;
-                    &lt;/size&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;sizeType&quot; &gt;
-                    &lt;enum&gt;Expanding&lt;/enum&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;orientation&quot; &gt;
-                    &lt;enum&gt;Vertical&lt;/enum&gt;
-                  &lt;/property&gt;
-                &lt;/spacer&gt;
-              &lt;/item&gt;
-              &lt;item&gt;
-                &lt;widget class=&quot;IconButton&quot; name=&quot;pb_delete&quot; &gt;
-                  &lt;property name=&quot;text&quot; &gt;
-                    &lt;string&gt;&amp;amp;Delete&lt;/string&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;psiIconName&quot; stdset=&quot;0&quot; &gt;
-                    &lt;string&gt;psi/remove&lt;/string&gt;
-                  &lt;/property&gt;
-                &lt;/widget&gt;
-              &lt;/item&gt;
-              &lt;item&gt;
-                &lt;spacer name=&quot;Spacer3&quot; &gt;
-                  &lt;property name=&quot;sizeHint&quot; &gt;
-                    &lt;size&gt;
-                      &lt;width&gt;20&lt;/width&gt;
-                      &lt;height&gt;47&lt;/height&gt;
-                    &lt;/size&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;sizeType&quot; &gt;
-                    &lt;enum&gt;Expanding&lt;/enum&gt;
-                  &lt;/property&gt;
-                  &lt;property name=&quot;orientation&quot; &gt;
-                    &lt;enum&gt;Vertical&lt;/enum&gt;
-                  &lt;/property&gt;
-                &lt;/spacer&gt;
-              &lt;/item&gt;
-            &lt;/layout&gt;
-          &lt;/item&gt;
-        &lt;/layout&gt;
-      &lt;/item&gt;
-      &lt;item&gt;
-        &lt;widget class=&quot;Line&quot; name=&quot;Line1&quot; &gt;
-          &lt;property name=&quot;frameShape&quot; &gt;
-            &lt;enum&gt;QFrame::HLine&lt;/enum&gt;
-          &lt;/property&gt;
-          &lt;property name=&quot;frameShadow&quot; &gt;
-            &lt;enum&gt;QFrame::Sunken&lt;/enum&gt;
-          &lt;/property&gt;
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;ui version=&quot;4.0&quot;&gt;
+ &lt;class&gt;ProfileManage&lt;/class&gt;
+ &lt;widget class=&quot;QDialog&quot; name=&quot;ProfileManage&quot;&gt;
+  &lt;property name=&quot;geometry&quot;&gt;
+   &lt;rect&gt;
+    &lt;x&gt;0&lt;/x&gt;
+    &lt;y&gt;0&lt;/y&gt;
+    &lt;width&gt;330&lt;/width&gt;
+    &lt;height&gt;254&lt;/height&gt;
+   &lt;/rect&gt;
+  &lt;/property&gt;
+  &lt;property name=&quot;windowTitle&quot;&gt;
+   &lt;string&gt;Manage Profiles&lt;/string&gt;
+  &lt;/property&gt;
+  &lt;layout class=&quot;QVBoxLayout&quot;&gt;
+   &lt;property name=&quot;margin&quot;&gt;
+    &lt;number&gt;11&lt;/number&gt;
+   &lt;/property&gt;
+   &lt;item&gt;
+    &lt;layout class=&quot;QHBoxLayout&quot;&gt;
+     &lt;item&gt;
+      &lt;widget class=&quot;QListWidget&quot; name=&quot;lbx_profiles&quot;/&gt;
+     &lt;/item&gt;
+     &lt;item&gt;
+      &lt;layout class=&quot;QVBoxLayout&quot;&gt;
+       &lt;item&gt;
+        &lt;widget class=&quot;IconButton&quot; name=&quot;pb_new&quot; native=&quot;true&quot;&gt;
+         &lt;property name=&quot;text&quot; stdset=&quot;0&quot;&gt;
+          &lt;string&gt;&amp;amp;Add&lt;/string&gt;
+         &lt;/property&gt;
+         &lt;property name=&quot;psiIconName&quot; stdset=&quot;0&quot;&gt;
+          &lt;string&gt;psi/addContact&lt;/string&gt;
+         &lt;/property&gt;
         &lt;/widget&gt;
-      &lt;/item&gt;
-      &lt;item&gt;
-        &lt;layout class=&quot;QHBoxLayout&quot; &gt;
-          &lt;property name=&quot;margin&quot; &gt;
-            &lt;number&gt;0&lt;/number&gt;
-          &lt;/property&gt;
-          &lt;item&gt;
-            &lt;spacer name=&quot;Spacer2&quot; &gt;
-              &lt;property name=&quot;sizeHint&quot; &gt;
-                &lt;size&gt;
-                  &lt;width&gt;244&lt;/width&gt;
-                  &lt;height&gt;20&lt;/height&gt;
-                &lt;/size&gt;
-              &lt;/property&gt;
-              &lt;property name=&quot;sizeType&quot; &gt;
-                &lt;enum&gt;Expanding&lt;/enum&gt;
-              &lt;/property&gt;
-              &lt;property name=&quot;orientation&quot; &gt;
-                &lt;enum&gt;Horizontal&lt;/enum&gt;
-              &lt;/property&gt;
-            &lt;/spacer&gt;
-          &lt;/item&gt;
-          &lt;item&gt;
-            &lt;widget class=&quot;IconButton&quot; name=&quot;pb_close&quot; &gt;
-              &lt;property name=&quot;text&quot; &gt;
-                &lt;string&gt;&amp;amp;Close&lt;/string&gt;
-              &lt;/property&gt;
-            &lt;/widget&gt;
-          &lt;/item&gt;
-        &lt;/layout&gt;
-      &lt;/item&gt;
+       &lt;/item&gt;
+       &lt;item&gt;
+        &lt;widget class=&quot;IconButton&quot; name=&quot;pb_rename&quot; native=&quot;true&quot;&gt;
+         &lt;property name=&quot;text&quot; stdset=&quot;0&quot;&gt;
+          &lt;string&gt;&amp;amp;Rename&lt;/string&gt;
+         &lt;/property&gt;
+        &lt;/widget&gt;
+       &lt;/item&gt;
+       &lt;item&gt;
+        &lt;widget class=&quot;IconButton&quot; name=&quot;pb_delete&quot; native=&quot;true&quot;&gt;
+         &lt;property name=&quot;text&quot; stdset=&quot;0&quot;&gt;
+          &lt;string&gt;Rem&amp;amp;ove&lt;/string&gt;
+         &lt;/property&gt;
+         &lt;property name=&quot;psiIconName&quot; stdset=&quot;0&quot;&gt;
+          &lt;string&gt;psi/remove&lt;/string&gt;
+         &lt;/property&gt;
+        &lt;/widget&gt;
+       &lt;/item&gt;
+       &lt;item&gt;
+        &lt;spacer name=&quot;Spacer3&quot;&gt;
+         &lt;property name=&quot;orientation&quot;&gt;
+          &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
+         &lt;/property&gt;
+         &lt;property name=&quot;sizeType&quot;&gt;
+          &lt;enum&gt;QSizePolicy::Expanding&lt;/enum&gt;
+         &lt;/property&gt;
+         &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot;&gt;
+          &lt;size&gt;
+           &lt;width&gt;20&lt;/width&gt;
+           &lt;height&gt;47&lt;/height&gt;
+          &lt;/size&gt;
+         &lt;/property&gt;
+        &lt;/spacer&gt;
+       &lt;/item&gt;
+      &lt;/layout&gt;
+     &lt;/item&gt;
     &lt;/layout&gt;
-  &lt;/widget&gt;
-  &lt;layoutdefault spacing=&quot;6&quot; margin=&quot;11&quot; /&gt;
-  &lt;pixmapfunction&gt;qPixmapFromMimeSource&lt;/pixmapfunction&gt;
+   &lt;/item&gt;
+   &lt;item&gt;
+    &lt;widget class=&quot;Line&quot; name=&quot;Line1&quot;&gt;
+     &lt;property name=&quot;frameShape&quot;&gt;
+      &lt;enum&gt;QFrame::HLine&lt;/enum&gt;
+     &lt;/property&gt;
+     &lt;property name=&quot;frameShadow&quot;&gt;
+      &lt;enum&gt;QFrame::Sunken&lt;/enum&gt;
+     &lt;/property&gt;
+    &lt;/widget&gt;
+   &lt;/item&gt;
+   &lt;item&gt;
+    &lt;widget class=&quot;QDialogButtonBox&quot; name=&quot;buttonBox&quot;&gt;
+     &lt;property name=&quot;standardButtons&quot;&gt;
+      &lt;set&gt;QDialogButtonBox::Close&lt;/set&gt;
+     &lt;/property&gt;
+    &lt;/widget&gt;
+   &lt;/item&gt;
+  &lt;/layout&gt;
+ &lt;/widget&gt;
+ &lt;layoutdefault spacing=&quot;6&quot; margin=&quot;11&quot;/&gt;
+ &lt;pixmapfunction&gt;qPixmapFromMimeSource&lt;/pixmapfunction&gt;
+ &lt;customwidgets&gt;
+  &lt;customwidget&gt;
+   &lt;class&gt;IconButton&lt;/class&gt;
+   &lt;extends&gt;QWidget&lt;/extends&gt;
+   &lt;header&gt;iconbutton.h&lt;/header&gt;
+  &lt;/customwidget&gt;
+ &lt;/customwidgets&gt;
+ &lt;resources/&gt;
+ &lt;connections&gt;
+  &lt;connection&gt;
+   &lt;sender&gt;buttonBox&lt;/sender&gt;
+   &lt;signal&gt;rejected()&lt;/signal&gt;
+   &lt;receiver&gt;ProfileManage&lt;/receiver&gt;
+   &lt;slot&gt;reject()&lt;/slot&gt;
+   &lt;hints&gt;
+    &lt;hint type=&quot;sourcelabel&quot;&gt;
+     &lt;x&gt;286&lt;/x&gt;
+     &lt;y&gt;229&lt;/y&gt;
+    &lt;/hint&gt;
+    &lt;hint type=&quot;destinationlabel&quot;&gt;
+     &lt;x&gt;229&lt;/x&gt;
+     &lt;y&gt;211&lt;/y&gt;
+    &lt;/hint&gt;
+   &lt;/hints&gt;
+  &lt;/connection&gt;
+ &lt;/connections&gt;
 &lt;/ui&gt;</diff>
      <filename>src/profilemanage.ui</filename>
    </modified>
    <modified>
      <diff>@@ -701,8 +701,15 @@ void PsiCon::changeProfile()
 {
 	ActiveProfiles::instance()-&gt;unsetThisProfile();
 	if(d-&gt;contactList-&gt;haveActiveAccounts()) {
-		QMessageBox::information(0, CAP(tr(&quot;Error&quot;)), tr(&quot;Please disconnect before changing the profile.&quot;));
-		return;
+		QMessageBox messageBox(QMessageBox::Information, CAP(tr(&quot;Error&quot;)), tr(&quot;Please disconnect before changing the profile.&quot;));
+		QPushButton* cancel = messageBox.addButton(QMessageBox::Cancel);
+		QPushButton* disconnect = messageBox.addButton(tr(&quot;&amp;Disconnect&quot;), QMessageBox::AcceptRole);
+		messageBox.setDefaultButton(disconnect);
+		messageBox.exec();
+		if (messageBox.clickedButton() == cancel)
+			return;
+
+		setStatusFromDialog(XMPP::Status::Offline, false);
 	}
 
 	quit(QuitProfile);</diff>
      <filename>src/psicon.cpp</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>909af08fe0fd826d9f1d6412d8c27c04ab2f40ed</id>
    </parent>
    <parent>
      <id>e60bd8f3260108f80560aff4728ad2994542e5d4</id>
    </parent>
  </parents>
  <author>
    <name>Maciek Niedzielski</name>
    <email>machekku@psi-im.org</email>
  </author>
  <url>http://github.com/mblsha/psi/commit/107faf0433a0ad8ecbfc91e28046613a752d0d31</url>
  <id>107faf0433a0ad8ecbfc91e28046613a752d0d31</id>
  <committed-date>2009-10-25T05:41:41-07:00</committed-date>
  <authored-date>2009-10-25T05:41:41-07:00</authored-date>
  <message>Merge branch 'master' of dev.psi-im.org:/home/psi/git/psi</message>
  <tree>0c74e70cc4bbbadb14625d01a48b21549e568997</tree>
  <committer>
    <name>Maciek Niedzielski</name>
    <email>machekku@psi-im.org</email>
  </committer>
</commit>
