Ejemplo n.º 1
0
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()));
	}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
bool MigrateFromOldVersion()
{
    QDir dir(ggPath("ext_info"));
    if (dir.exists())
        return false;
    dir.mkdir(ggPath("ext_info"));
    return true;
}
Ejemplo n.º 4
0
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");
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
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();
		}
Ejemplo n.º 7
0
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(); 
}
Ejemplo n.º 8
0
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 +"\')");

}
Ejemplo n.º 9
0
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();
}
Ejemplo n.º 10
0
void FileDescription::createDefaultConfiguration()
{
	config_file.addVariable("FileDesc", "file", ggPath("description.txt"));
	config_file.addVariable("FileDesc", "forceDescr", true);
	config_file.addVariable("FileDesc", "allowOther", true);
}
Ejemplo n.º 11
0
bool AdiumChatStyleEngine::removeStyle(const QString &styleName)
{
	QDir dir(QString(ggPath() + "/syntax/chat/" + styleName));
	return clearDirectory(dir.absolutePath()) && dir.cdUp() && dir.rmdir(styleName);
}
Ejemplo n.º 12
0
QString KaduExtInfo::extinfoPath(const QString &filename)
{
    return ggPath(QString("ext_info/") + filename);
}