1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
/***************************************************************************
aboutinfo.cpp - description
-------------------
begin : Sun Mar 17 2002
copyright : (C) 2002 by Vladimir Shutoff
email : vovan@shutoff.ru
***************************************************************************/
/***************************************************************************
* *
* 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 "aboutinfo.h"
#include "icqclient.h"
#include "textshow.h"
using namespace SIM;
AboutInfo::AboutInfo(QWidget *parent, ICQUserData *data, unsigned contact, ICQClient *client)
: AboutInfoBase(parent)
{
m_data = data;
m_client = client;
if (m_data)
edtAbout->setReadOnly(true);
m_contact = contact;
fill();
}
void AboutInfo::apply()
{
}
void AboutInfo::apply(Client *client, void *_data)
{
if (client != m_client)
return;
ICQUserData *data = m_client->toICQUserData((SIM::clientData*)_data); // FIXME unsafe type conversion
data->About.str() = edtAbout->text();
}
bool AboutInfo::processEvent(Event *e)
{
if (e->type() == eEventContact){
EventContact *ec = static_cast<EventContact*>(e);
if(ec->action() != EventContact::eChanged)
return false;
Contact *contact = ec->contact();
if (contact->clientData.have(m_data))
fill();
}
if ((e->type() == eEventClientChanged) && (m_data == 0)){
EventClientChanged *ecc = static_cast<EventClientChanged*>(e);
if (ecc->client() == m_client)
fill();
}
return false;
}
void AboutInfo::fill()
{
ICQUserData *data = m_data;
if (data == NULL) data = &m_client->data.owner;
if (data->Uin.toULong()){
edtAbout->setTextFormat(QTextEdit::PlainText);
edtAbout->setText(data->About.str());
}else{
edtAbout->setTextFormat(QTextEdit::RichText);
edtAbout->setText(data->About.str());
if (m_data == NULL)
edtAbout->showBar();
}
}
#ifndef NO_MOC_INCLUDES
#include "aboutinfo.moc"
#endif
|