[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeprint
From: Andreas Pakulat <apaku () gmx ! de>
Date: 2007-06-15 0:24:20
Message-ID: 1181867060.460713.6494.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 675754 by apaku:
K3Process->KProcess
M +17 -13 posterpreview.cpp
M +4 -4 posterpreview.h
--- trunk/KDE/kdelibs/kdeprint/posterpreview.cpp #675753:675754
@@ -20,7 +20,7 @@
#include "posterpreview.h"
#include <kdebug.h>
-#include <k3process.h>
+#include <kprocess.h>
#include <kprinter.h>
#include <klocale.h>
#include <kglobalsettings.h>
@@ -61,9 +61,9 @@
void PosterPreview::init()
{
- m_process = new K3Process;
- connect( m_process, SIGNAL( receivedStderr( K3Process*, char*, int ) ), SLOT( \
slotProcessStderr( K3Process*, char*, int ) ) );
- connect( m_process, SIGNAL( processExited( K3Process* ) ), SLOT( slotProcessExited( \
K3Process* ) ) ); + m_process = new KProcess;
+ connect( m_process, SIGNAL( readyReadStandardError() ), SLOT( slotProcessStderr() ) \
); + connect( m_process, SIGNAL( finished( int, QProcess::ExitStatus ) ), SLOT( \
slotProcessExited() ) );
m_cols = m_rows = m_pw = m_ph = m_mw = m_mh = 0;
m_dirty = false;
@@ -99,10 +99,13 @@
// (m_mediasize is empty - it shouldn't be!)
m_buffer = "";
- m_process->clearArguments();
+ delete m_process;
+ m_process = new KProcess;
*m_process << "poster" << "-F" << "-m" + m_mediasize << "-p" + m_postersize
<< "-c" + QString::number( m_cutmargin ) + '%';
- if ( !m_process->start( K3Process::NotifyOnExit, K3Process::Stderr ) )
+ m_process->setOutputChannelMode( KProcess::OnlyStderrChannel );
+ m_process->start();
+ if ( !m_process->waitForFinished() )
{
m_rows = m_cols = 0;
m_dirty = false;
@@ -124,15 +127,15 @@
QString txt = i18n( "Poster preview not available. Either the <b>poster</b> "
"executable is not properly installed, or you don't have "
"the required version; available at http://printing.kde.org/downloads/." );
-
+
QTextDocument doc;
doc.setHtml( m_buffer.isEmpty() ? txt : m_buffer.prepend( "<pre>" ).append( \
"</pre>" ) );
-
+
doc.setPageSize( size() );
QAbstractTextDocumentLayout::PaintContext ctx = \
QAbstractTextDocumentLayout::PaintContext(); ctx.clip = rect();
doc.documentLayout()->draw( & painter, ctx );
-
+
m_boundingrect = QRect();
}
else
@@ -215,14 +218,15 @@
}
}
-void PosterPreview::slotProcessStderr( K3Process*, char *buf, int len )
+void PosterPreview::slotProcessStderr()
{
- m_buffer.append( QByteArray( buf, len ) );
+ m_buffer.append( QString::fromLocal8Bit( m_process->readAllStandardError() ) );
}
-void PosterPreview::slotProcessExited( K3Process* )
+void PosterPreview::slotProcessExited()
{
- if ( m_process->normalExit() && m_process->exitStatus() == 0 )
+ if ( m_process->exitStatus() == QProcess::NormalExit
+ && m_process->exitCode() == 0 )
parseBuffer();
else
m_rows = m_cols = 0;
--- trunk/KDE/kdelibs/kdeprint/posterpreview.h #675753:675754
@@ -23,7 +23,7 @@
#include <QtGui/QFrame>
#include <QtCore/QList>
-class K3Process;
+class KProcess;
class PosterPreview : public QFrame
{
@@ -55,15 +55,15 @@
void emitSelectedPages();
protected Q_SLOTS:
- void slotProcessStderr( K3Process*, char*, int );
- void slotProcessExited( K3Process* );
+ void slotProcessStderr();
+ void slotProcessExited();
private:
int m_rows, m_cols;
int m_pw, m_ph; // page size
int m_mw, m_mh; // cur margins
QRect m_posterbb; // poster bounding box (without any margin)
- K3Process *m_process;
+ KProcess *m_process;
QString m_buffer;
QString m_postersize, m_mediasize;
int m_cutmargin;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic