You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
6.3 KiB
205 lines
6.3 KiB
|
|
#include "logviewer.h"
|
|
#include "logger.h"
|
|
|
|
#include <tqlayout.h>
|
|
#include <tqstring.h>
|
|
#include <tqheader.h>
|
|
#include <tqcolor.h>
|
|
|
|
#include <klocale.h>
|
|
#include <kiconloader.h>
|
|
#include <klistview.h>
|
|
#include <kpushbutton.h>
|
|
#include <kurl.h>
|
|
//#include <kdebug.h>
|
|
|
|
// ### soundkonverter 0.4: make sub items for the output
|
|
|
|
LogViewerItem::LogViewerItem( KListView* parent, LogViewerItem* after, TQString label1 )
|
|
: KListViewItem( parent, after, label1 )
|
|
{
|
|
converting = false;
|
|
}
|
|
|
|
LogViewerItem::LogViewerItem( LogViewerItem* parent, LogViewerItem* after, TQString label1 )
|
|
: KListViewItem( parent, after, label1 )
|
|
{
|
|
converting = false;
|
|
}
|
|
|
|
LogViewerItem::~LogViewerItem()
|
|
{}
|
|
|
|
void LogViewerItem::paintCell( TQPainter *p, const TQColorGroup &cg, int column, int width, int tqalignment )
|
|
{
|
|
// NOTE calculate the red color
|
|
|
|
TQColorGroup _cg( cg );
|
|
TQColor c;
|
|
|
|
if( isSelected() && converting ) {
|
|
_cg.setColor( TQColorGroup::Highlight, TQColor( 215, 62, 62 ) );
|
|
TQListViewItem::paintCell( p, _cg, column, width, tqalignment );
|
|
return;
|
|
}
|
|
else if( converting && column != listView()->sortColumn() ) {
|
|
_cg.setColor( TQColorGroup::Base, TQColor( 255, 234, 234 ) );
|
|
TQListViewItem::paintCell( p, _cg, column, width, tqalignment );
|
|
return;
|
|
}
|
|
else if( converting && column == listView()->sortColumn() ) {
|
|
_cg.setColor( TQColorGroup::Base, TQColor( 247, 227, 227 ) );
|
|
TQListViewItem::paintCell( p, _cg, column, width, tqalignment );
|
|
return;
|
|
}
|
|
|
|
KListViewItem::paintCell( p, _cg, column, width, tqalignment );
|
|
}
|
|
|
|
|
|
LogViewerList::LogViewerList( TQWidget* parent, const char* name )
|
|
: KListView( parent, name )
|
|
{}
|
|
|
|
LogViewerList::~LogViewerList()
|
|
{}
|
|
|
|
|
|
LogViewer::LogViewer( Logger* _logger, TQWidget *parent, const char *name, bool modal, WFlags f )
|
|
: KDialog( parent, name, modal, f )
|
|
{
|
|
logger = _logger;
|
|
connect( logger, TQT_SIGNAL(removedProcess(int)),
|
|
this, TQT_SLOT(processRemoved(int))
|
|
);
|
|
connect( logger, TQT_SIGNAL(updateProcess(int)),
|
|
this, TQT_SLOT(updateProcess(int))
|
|
);
|
|
|
|
// create an icon loader object for loading icons
|
|
KIconLoader* iconLoader = new KIconLoader();
|
|
|
|
setCaption( i18n("Log Viewer") );
|
|
resize( 600, 400 );
|
|
setIcon( iconLoader->loadIcon("view_text",KIcon::Small) );
|
|
|
|
TQGridLayout *grid = new TQGridLayout( this, 4, 1, 11, 6 );
|
|
|
|
lLogs = new LogViewerList( this, "lLogs" );
|
|
lLogs->addColumn( i18n("Job/File") );
|
|
//lLogs->setSelectionMode( TQListView::Extended );
|
|
//lLogs->setAllColumnsShowFocus( true );
|
|
lLogs->setResizeMode( TQListView::LastColumn );
|
|
lLogs->setSorting( -1 );
|
|
lLogs->setRootIsDecorated( true );
|
|
lLogs->header()->setClickEnabled( false );
|
|
grid->addWidget( lLogs, 0, 0 );
|
|
|
|
TQHBoxLayout *buttonBox = new TQHBoxLayout();
|
|
grid->addLayout( buttonBox, 3, 0 );
|
|
|
|
pReload = new KPushButton(iconLoader->loadIcon("reload",KIcon::Small), i18n("Reload"), this, "pReload" );
|
|
buttonBox->addWidget( pReload );
|
|
connect( pReload, TQT_SIGNAL(clicked()),
|
|
this, TQT_SLOT(refillLogs())
|
|
);
|
|
|
|
buttonBox->addStretch();
|
|
|
|
pOk = new KPushButton(iconLoader->loadIcon("exit",KIcon::Small), i18n("Close"), this, "pOk" );
|
|
pOk->setFocus();
|
|
buttonBox->addWidget( pOk );
|
|
connect( pOk, TQT_SIGNAL(clicked()),
|
|
this, TQT_SLOT(accept())
|
|
);
|
|
|
|
// delete the icon loader object
|
|
delete iconLoader;
|
|
|
|
refillLogs();
|
|
}
|
|
|
|
LogViewer::~LogViewer()
|
|
{}
|
|
|
|
void LogViewer::refillLogs()
|
|
{
|
|
LogViewerItem *parent = 0, *last = 0;
|
|
|
|
lLogs->clear();
|
|
TQValueList<LoggerItem*> logs = logger->getLogs();
|
|
for( TQValueList<LoggerItem*>::Iterator a = logs.begin(); a != logs.end(); ++a ) {
|
|
parent = new LogViewerItem( lLogs, parent, KURL::decode_string((*a)->filename).replace("%2f","/").replace("%%","%") + " - " + TQString::number((*a)->id) );
|
|
parent->converting = !(*a)->completed;
|
|
//parent->setOpen( true );
|
|
last = 0;
|
|
for( TQStringList::Iterator b = (*a)->data.begin(); b != (*a)->data.end(); ++b ) {
|
|
last = new LogViewerItem( parent, last, *b );
|
|
last->setMultiLinesEnabled( true );
|
|
last->converting = !(*a)->completed;
|
|
}
|
|
}
|
|
}
|
|
|
|
void LogViewer::processRemoved( int id )
|
|
{
|
|
LoggerItem* item = logger->getLog( id ); // this is ok, because the item still exists.
|
|
// it will be deleted after is function is completed
|
|
|
|
TQListViewItem* it = lLogs->firstChild();
|
|
|
|
while( it != 0 ) {
|
|
if( it->text(0) == KURL::decode_string(item->filename).replace("%2f","/").replace("%%","%") + " - " + TQString::number(item->id) ) {
|
|
delete it;
|
|
return;
|
|
}
|
|
it = it->nextSibling();
|
|
}
|
|
}
|
|
|
|
void LogViewer::updateProcess( int id )
|
|
{
|
|
LoggerItem* item = logger->getLog( id );
|
|
|
|
LogViewerItem* it = lLogs->firstChild();
|
|
|
|
LogViewerItem *lastItem = 0, *oldItem = 0;
|
|
|
|
while( it != 0 ) {
|
|
if( it->text(0) == KURL::decode_string(item->filename).replace("%2f","/").replace("%%","%") + " - " + TQString::number(item->id) ) {
|
|
LogViewerItem *a = it->firstChild(), *b;
|
|
while( a != 0 ) {
|
|
b = a->nextSibling();
|
|
delete a;
|
|
a = b;
|
|
}
|
|
it->converting = !item->completed;
|
|
LogViewerItem* last = 0;
|
|
for( TQStringList::Iterator b = item->data.begin(); b != item->data.end(); ++b ) {
|
|
last = new LogViewerItem( (LogViewerItem*)it, last, *b );
|
|
last->setMultiLinesEnabled( true );
|
|
}
|
|
return;
|
|
}
|
|
it = it->nextSibling();
|
|
}
|
|
|
|
LogViewerItem *parent = 0;
|
|
|
|
// get the last list view item
|
|
for( TQListViewItem* it = lLogs->firstChild(); it != 0; it = it->nextSibling() ) {
|
|
lastItem = (LogViewerItem*)it;
|
|
}
|
|
|
|
parent = new LogViewerItem( lLogs, lastItem, KURL::decode_string(item->filename).replace("%2f","/").replace("%%","%") + " - " + TQString::number(item->id) );
|
|
parent->converting = !item->completed;
|
|
LogViewerItem* last = 0;
|
|
for( TQStringList::Iterator b = item->data.begin(); b != item->data.end(); ++b ) {
|
|
last = new LogViewerItem( parent, last, *b );
|
|
last->setMultiLinesEnabled( true );
|
|
}
|
|
}
|
|
|
|
|