summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/oscar/icq/icqreadaway.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/protocols/oscar/icq/icqreadaway.cpp')
-rw-r--r--kopete/protocols/oscar/icq/icqreadaway.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/kopete/protocols/oscar/icq/icqreadaway.cpp b/kopete/protocols/oscar/icq/icqreadaway.cpp
new file mode 100644
index 00000000..94cccafd
--- /dev/null
+++ b/kopete/protocols/oscar/icq/icqreadaway.cpp
@@ -0,0 +1,106 @@
+/*
+ icqreadaway.cpp - ICQ Protocol Plugin
+
+ Copyright (c) 2003 by Stefan Gehn <metz AT gehn.net>
+ Kopete (c) 2003 by the Kopete developers <kopete-devel@kde.org>
+
+ *************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ *************************************************************************
+*/
+
+#include "icqreadaway.h"
+
+#include "icqprotocol.h"
+#include "icqaccount.h"
+#include "icqcontact.h"
+
+#include <qvbox.h>
+
+#include <ktextbrowser.h>
+#include <klocale.h>
+#include <krun.h>
+
+#include <assert.h>
+
+
+ICQReadAway::ICQReadAway(ICQContact *c, QWidget *parent, const char* name)
+ : KDialogBase(parent, name, false, QString::null, Close | User1,
+ Close, false, i18n("&Fetch Again"))
+{
+ assert(c);
+
+ mAccount = static_cast<ICQAccount*>(c->account());
+ mContact = c;
+ setCaption(i18n("'%2' Message for %1").arg(c->displayName()).arg(c->onlineStatus().description()));
+
+ QVBox *mMainWidget = makeVBoxMainWidget();
+
+ awayMessageBrowser = new KTextBrowser(mMainWidget, "userInfoView");
+ awayMessageBrowser->setTextFormat(AutoText);
+ awayMessageBrowser->setNotifyClick(true);
+ awayMessageBrowser->setText(mContact->awayMessage());
+
+ QObject::connect(
+ awayMessageBrowser, SIGNAL(urlClick(const QString&)),
+ this, SLOT(slotUrlClicked(const QString&)));
+ QObject::connect(
+ awayMessageBrowser, SIGNAL(mailClick(const QString&, const QString&)),
+ this, SLOT(slotMailClicked(const QString&, const QString&)));
+
+ connect(this, SIGNAL(user1Clicked()),
+ this, SLOT(slotFetchAwayMessage()));
+ connect(this, SIGNAL(closeClicked()),
+ this, SLOT(slotCloseClicked()));
+
+ connect(c, SIGNAL(awayMessageChanged()),
+ this, SLOT(slotAwayMessageChanged()));
+
+ slotFetchAwayMessage();
+}
+
+void ICQReadAway::slotFetchAwayMessage()
+{
+ if(!mAccount->isConnected())
+ return;
+
+ awayMessageBrowser->setDisabled(true);
+ enableButton(User1,false);
+
+ mAccount->engine()->requestAwayMessage(mContact);
+
+ setCaption(i18n("Fetching '%2' Message for %1...").arg(mContact->displayName()).arg(mContact->onlineStatus().description()));
+} // END slotFetchAwayMessage()
+
+void ICQReadAway::slotAwayMessageChanged()
+{
+ setCaption(i18n("'%2' Message for %1").arg(mContact->displayName()).arg(mContact->onlineStatus().description()));
+ awayMessageBrowser->setText(mContact->awayMessage());
+
+ awayMessageBrowser->setDisabled(false);
+ enableButton(User1,true);
+
+} // END slotAwayMessageChanged()
+
+void ICQReadAway::slotCloseClicked()
+{
+ emit closing();
+}
+
+void ICQReadAway::slotUrlClicked(const QString &url)
+{
+ new KRun(KURL(url));
+}
+
+void ICQReadAway::slotMailClicked(const QString&, const QString &address)
+{
+ new KRun(KURL(address));
+}
+
+#include "icqreadaway.moc"
+// vim: set noet ts=4 sts=4 sw=4: