void XmlConfigFile::read() { kdebugf(); QFile file; QDir backups(ggPath(), "kadu.conf.xml.backup.*", QDir::Name, QDir::Files); QStringList files("kadu.conf.xml"); files += backups.entryList(); bool fileOpened(false); foreach(const QString &fileName, files) { file.setFileName(ggPath(fileName)); fileOpened = file.open(QIODevice::ReadOnly); if (fileOpened && file.size() > 0) { kdebugm(KDEBUG_INFO, "configuration file %s opened!\n", qPrintable(file.fileName())); break; } if (fileOpened) // && file.size() == 0 { kdebugm(KDEBUG_INFO, "config file (%s) is empty, looking for backup\n", qPrintable(file.fileName())); file.close(); fileOpened = false; } else kdebugm(KDEBUG_INFO, "config file (%s) not opened, looking for backup\n", qPrintable(file.fileName())); }
void AvatarManager::avatarFetched(ContactAccountData *contactAccountData, const QByteArray &data) { Avatar &avatar = contactAccountData->avatar(); avatar.setLastUpdated(QDateTime::currentDateTime()); QPixmap pixmap; pixmap.loadFromData(data); avatar.setPixmap(pixmap); QString avatarFile = avatarFileName(avatar); avatar.setFileName(avatarFile); QDir avatarsDir(ggPath("avatars")); if (!avatarsDir.exists()) avatarsDir.mkpath(ggPath("avatars")); QFile file(avatarsDir.canonicalPath() + "/" + avatarFile); if (!file.open(QIODevice::WriteOnly)) return; file.write(data); file.close(); emit avatarUpdated(contactAccountData); }
bool MigrateFromOldVersion() { QDir dir(ggPath("ext_info")); if (dir.exists()) return false; dir.mkdir(ggPath("ext_info")); return true; }
void AdiumChatStyleEngine::loadTheme(const QString &styleName, const QString &variantName) { QDir dir; CurrentStyleName = styleName; StyleVariantName = variantName; BaseHref = ggPath() + "/syntax/chat/" + styleName + "/Contents/Resources/"; if (!dir.exists(BaseHref)) BaseHref = dataPath("kadu") + "/syntax/chat/" + styleName + "/Contents/Resources/"; IncomingHtml = readThemePart(BaseHref + "Incoming/Content.html"); if (QFile::exists(BaseHref + "Incoming/NextContent.html")) NextIncomingHtml = readThemePart(BaseHref + "Incoming/NextContent.html"); else NextIncomingHtml = IncomingHtml; if (QFile::exists(BaseHref + "Outgoing/Content.html")) OutgoingHtml = readThemePart(BaseHref + "Outgoing/Content.html"); else OutgoingHtml = IncomingHtml; if (QFile::exists(BaseHref + "Outgoing/NextContent.html")) NextOutgoingHtml = readThemePart(BaseHref + "Outgoing/NextContent.html"); else NextOutgoingHtml = OutgoingHtml; HeaderHtml = readThemePart(BaseHref + "Header.html"); FooterHtml = readThemePart(BaseHref + "Footer.html"); StatusHtml = readThemePart(BaseHref + "Status.html"); }
QString GaduChatImageService::saveImage(UinType sender, uint32_t size, uint32_t crc32, const QString &fileName, const char *data) { kdebugf(); QString path = ggPath("images"); kdebugm(KDEBUG_INFO, "Creating directory: %s\n", qPrintable(path)); if (!QDir().mkdir(path)) { kdebugm(KDEBUG_INFO, "Failed creating directory: %s\n", qPrintable(path)); return QString::null; } QString file_name = QString("%1-%2-%3-%4").arg(sender).arg(size).arg(crc32).arg(fileName); kdebugm(KDEBUG_INFO, "Saving image as file: %s\n", qPrintable(fileName)); SavedImage img; img.size = size; img.crc32 = crc32; img.fileName = path + '/' + fileName; QFile file(img.fileName); file.open(QIODevice::WriteOnly); file.write(data, size); file.close(); SavedImages.append(img); return img.fileName; }
Agent::Agent() : QObject(NULL, "agent") { kdebugf(); connect(gadu, SIGNAL(userStatusChangeIgnored(UinType)), this, SLOT(userFound(UinType))); // Main menu entry agentActionDescription = new ActionDescription( ActionDescription::TypeMainMenu, "agentAction", this, SLOT(resultsRequest()), "Agent", tr("Who has me on list") ); kadu->insertMenuActionDescription(0, agentActionDescription); if(config_file.readBoolEntry("Agent", "FirstTime", true)) { QFile listFile; listFile.setName(QString(ggPath("spy-unknownslist").ascii())); if(listFile.open(IO_ReadOnly)) { if(MessageBox::ask(tr("Agent has founded spy's unknown-users list. Do you want to append this list to agent module?"))) { QTextStream stream(&listFile); QString uin_str, date_str, line; bool ok; while (!stream.atEnd()) { UnknownUser user; bool isAlready = false; line = stream.readLine(); uin_str = line.section(',', 0, 0); date_str = line.section(',', 1, 1); unsigned int uin_int = uin_str.toUInt(&ok, 10); if(!ok) kdebugm(KDEBUG_PANIC, "Couldn't cast QString to int"); foreach(UnknownUser user, UnknownsList) { if (user.uin == uin_int) { isAlready = true; break; } } if (!isAlready) { user.uin = uin_int; user.date = QDate::fromString(date_str, Qt::ISODate); user.seq = 0; UnknownsList.append(user); } } } listFile.close(); }
QStringList AdiumChatStyleEngine::styleVariants(QString styleName) { QDir dir; QString styleBaseHref = ggPath() + "/syntax/chat/" + styleName + "/Contents/Resources/Variants/"; if (!dir.exists(styleBaseHref)) styleBaseHref = dataPath("kadu") + "/syntax/chat/" + styleName + "/Contents/Resources/Variants/"; dir.setPath(styleBaseHref); dir.setNameFilters(QStringList("*.css")); return dir.entryList(); }
void AdiumChatStyleEngine::prepareStylePreview(Preview *preview, QString styleName, QString variantName) { QDir dir; QString styleHref = ggPath() + "/syntax/chat/" + styleName + "/Contents/Resources/"; if (!dir.exists(styleHref)) styleHref = dataPath("kadu") + "/syntax/chat/" + styleName + "/Contents/Resources/"; QString incomingHtml = readThemePart(styleHref + "Incoming/Content.html"); QString outgoingHtml; if (QFile::exists(styleHref + "Outgoing/Content.html")) outgoingHtml = readThemePart(styleHref + "Outgoing/Content.html"); else outgoingHtml = incomingHtml; QString headerHtml = readThemePart(styleHref + "Header.html"); QString footerHtml = readThemePart(styleHref + "Footer.html"); if (preview->getObjectsToParse().count() != 2) return; MessageRenderInfo *message = dynamic_cast<MessageRenderInfo *>(preview->getObjectsToParse().at(0)); if (!message) return; Message msg = message->message(); QString styleBaseHtml = QString(xhtmlBase).arg(styleHref) .arg(replaceKeywords(msg.chat(), styleHref, headerHtml)) .arg(replaceKeywords(msg.chat(), styleHref, footerHtml)) .arg("Variants/" + variantName) .arg(ChatStylesManager::instance()->mainStyle()); preview->setHtml(styleBaseHtml); preview->page()->mainFrame()->evaluateJavaScript(jsCode); incomingHtml = replaceKeywords(msg.chat(), styleHref, incomingHtml, message); incomingHtml.replace("\n", " "); incomingHtml.prepend("<span>"); incomingHtml.append("</span>"); preview->page()->mainFrame()->evaluateJavaScript("kadu_appendNextMessage(\'"+ incomingHtml +"\')"); message = dynamic_cast<MessageRenderInfo *>(preview->getObjectsToParse().at(1)); outgoingHtml = replaceKeywords(msg.chat(), styleHref, outgoingHtml, message); outgoingHtml.replace("\n", " "); outgoingHtml.prepend("<span>"); outgoingHtml.append("</span>"); preview->page()->mainFrame()->evaluateJavaScript("kadu_appendNextMessage(\'"+ outgoingHtml +"\')"); }
KaduExtInfo::KaduExtInfo(bool migrate) :ExtInfo(extinfoPath("RExInfo.dat")), chatmenu(NULL), http(NULL), menuBirthday(false),menuNameDay(false) { kdebugf(); if (migrate) { extlist.loadFromFile(ggPath("RExInfo.dat")); extlist.saveToFile(); MessageBox::msg(tr("ext_info v") + QString(EXTINFO_VERSION) + tr(" was imported settings from previous version.")); } RegisterInConfigDialog(migrate); RegisterSignals(); Create5ChatButton(); onApplyConfigDialog(); if (checkUpdateStable || checkUpdateUnstable) checkForNewVersion(); connect(&timer, SIGNAL(timeout()), this, SLOT(checkAnniversary())); restartTimer(); kdebugf2(); }
void FileDescription::createDefaultConfiguration() { config_file.addVariable("FileDesc", "file", ggPath("description.txt")); config_file.addVariable("FileDesc", "forceDescr", true); config_file.addVariable("FileDesc", "allowOther", true); }
bool AdiumChatStyleEngine::removeStyle(const QString &styleName) { QDir dir(QString(ggPath() + "/syntax/chat/" + styleName)); return clearDirectory(dir.absolutePath()) && dir.cdUp() && dir.rmdir(styleName); }
QString KaduExtInfo::extinfoPath(const QString &filename) { return ggPath(QString("ext_info/") + filename); }