MsgJournal::MsgJournal(MsgEdit *parent, Message *msg) : QObject(parent) { m_client = msg->client(); m_edit = parent; m_wnd = new MsgJournalWnd(m_edit); connect(m_wnd, SIGNAL(finished()), this, SLOT(frameDestroyed())); m_edit->m_layout->insertWidget(0, m_wnd); m_wnd->show(); JournalMessage *m = static_cast<JournalMessage*>(msg); m_ID = m->getID(); m_oldID = m->id(); m_time = m->getTime(); m_wnd->edtSubj->setText(m->getSubject()); m_wnd->cmbSecurity->setCurrentIndex(m->getPrivate()); Contact *contact = getContacts()->contact(msg->contact()); if (contact){ clientData *data; ClientDataIterator it(contact->clientData); while ((data = ++it) != NULL){ if ((m_client.isEmpty() && (data->Sign.toULong() == LIVEJOURNAL_SIGN)) || (m_client == it.client()->dataName(data))){ LiveJournalClient *client = static_cast<LiveJournalClient*>(it.client()); for (unsigned i = 1; i < client->getMoods(); i++){ const QString mood = client->getMood(i); if (mood.isEmpty()) continue; QString s = mood; QString ts = i18n(mood); if (s != ts){ s += " ("; s += ts; s += ")"; } m_wnd->cmbMood->insertItem(INT_MAX,s); } m_wnd->cmbMood->setCurrentIndex(static_cast<JournalMessage*>(msg)->getMood()); m_wnd->cmbMood->setMinimumSize(m_wnd->cmbMood->sizeHint()); break; } } } m_wnd->cmbComment->setCurrentIndex(m->getComments()); QString text = msg->getRichText(); if (!text.isEmpty()){ m_edit->m_edit->setText(text); m_edit->m_edit->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); CorePlugin *core = GET_CorePlugin(); if ((msg->getBackground() != msg->getForeground()) && !core->property("OwnColors").toBool()){ m_edit->m_edit->setBackground(msg->getBackground()); m_edit->m_edit->setForeground(msg->getForeground(), true); } } connect(m_edit->m_edit, SIGNAL(emptyChanged(bool)), this, SLOT(emptyChanged(bool))); emptyChanged(m_edit->m_edit->isEmpty()); m_edit->m_edit->setParam(m_edit); }
bool ForwardPlugin::processEvent(Event *e) { if (e->type() == eEventMessageReceived){ EventMessage *em = static_cast<EventMessage*>(e); Message *msg = em->msg(); if (msg->type() == MessageStatus) return false; QString text = msg->getPlainText(); if (text.isEmpty()) return false; if (msg->type() == MessageSMS){ SMSMessage *sms = static_cast<SMSMessage*>(msg); QString phone = sms->getPhone(); bool bMyPhone; SIM::PropertyHubPtr data = getContacts()->getUserData("forward"); bMyPhone = ContactList::cmpPhone(phone, data->value("Phone").toString()); if (!bMyPhone){ Group *grp; ContactList::GroupIterator it; while ((grp = ++it) != NULL){ data = grp->getUserData("forward", false); if (data && !data->value("Phone").toString().isEmpty()){ bMyPhone = ContactList::cmpPhone(phone, data->value("Phone").toString()); break; } } } if (!bMyPhone){ Contact *contact; ContactList::ContactIterator it; while ((contact = ++it) != NULL){ data = contact->getUserData("forward", false); if (data && !data->value("Phone").toString().isEmpty()) { bMyPhone = ContactList::cmpPhone(phone, data->value("Phone").toString()); break; } } } if (bMyPhone){ int n = text.indexOf(": "); if (n > 0){ QString name = text.left(n); QString msg_text = text.mid(n + 2); Contact *contact; ContactList::ContactIterator it; while ((contact = ++it) != NULL){ if (contact->getName() == name){ Message *msg = new Message(MessageGeneric); msg->setContact(contact->id()); msg->setText(msg_text); void *data; ClientDataIterator it(contact->clientData); while ((data = ++it) != NULL){ if (it.client()->send(msg, data)) break; } if (data == NULL) delete msg; return true; } } } } } Contact *contact = getContacts()->contact(msg->contact()); if (contact == NULL) return false; SIM::PropertyHubPtr data = contact->getUserData("forward"); if (!data || data->value("Key").toString().isEmpty()) return false; CorePlugin *core = GET_CorePlugin(); unsigned status = core->getManualStatus(); if ((status == STATUS_AWAY) || (status == STATUS_NA)){ text = contact->getName() + ": " + text; unsigned flags = MESSAGE_NOHISTORY; if (data->value("Send1st").toBool()) flags |= MESSAGE_1ST_PART; if (data->value("Translit").toBool()) flags |= MESSAGE_TRANSLIT; SMSMessage *m = new SMSMessage; m->setPhone(data->value("Phone").toString()); m->setText(text); m->setFlags(flags); unsigned i; for (i = 0; i < getContacts()->nClients(); i++){ Client *client = getContacts()->getClient(i); if (client->send(m, NULL)) break; } if (i >= getContacts()->nClients()) delete m; } } return false; }
QWidget *ShortcutsPlugin::getMainWindow() { CorePlugin *core = GET_CorePlugin(); return core->getMainWindow(); }
QWidget *DockPlugin::getMainWindow() { CorePlugin *core = GET_CorePlugin(); return core->getMainWindow(); }