/***************************************************************************
* Copyright (C) 2003 by Sylvain Joyeux *
* sylvain.joyeux@m4x.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 "parsers.h"
#include "../apt.h"
#include %1 \n\t\n\t\t"),
html_attribute_classed(" \n");
// Converts the special chars in orig into its HTML equivalents
static QString text2html(const QString& orig)
{ QString ret(orig);
ret = ret.replace("<(?!a href)", "<");
//ret = ret.replace( QRegExp("\n"), "%2 \n\t\n\t\t"),
html_attribute_end("\n\t \n
\n");
return ret;
}
static void close_indent(int indent, QString& buffer)
{
if (buffer.isEmpty()) return;
if (indent)
buffer += "\n\t\t";
}
static void close_item(int indent, QString& buffer)
{
if (buffer.isEmpty()) return;
close_indent(indent, buffer);
buffer += html_attribute_end;
}
static void close_table(const QString& version, int indent, QString& buffer)
{
if (buffer.isEmpty()) return;
close_item(indent, buffer);
buffer = version + "\n" + buffer + "
\n";
}
static QString version_header_link(const KURL& url, const QString& name)
{ return QString("\t" + name + "\n"); }
namespace Parsers
{
Show::Show(const QString& package, const QString& installed_version, bool act)
: m_package(package), m_installed(installed_version), m_act(false)
{
m_act = act;
}
void Show::operator() (AptProtocol* slave, const QString& tag, const QString& value)
{
// Since we want to show the version first, we should wait for it
// before sending anything
static QString version;
static QString buffer;
static QString attribute;
static int indent;
static bool multiline = false;
static bool first_line = false, new_paragraph = true;
if (tag == "begin" || tag == "package" || tag == "end")
{
if (multiline && !new_paragraph)
buffer += "
"; new_paragraph = false; } } buffer += text2html(QString(value).replace(QRegExp("(http://\\S+)"),QString("\\1"))); } else if (tag == "package_link") buffer += "buildURL("show", value).htmlURL() + "\">" + value + ""; } }