|
|
|
|
@ -1,24 +1,14 @@ |
|
|
|
|
#include "kdvi_view.h" |
|
|
|
|
#include "konq_progressproxy.h" |
|
|
|
|
//#include "konq_progressproxy.h"
|
|
|
|
|
#include "kdvi_miniwidget.h" |
|
|
|
|
#include <kinstance.h> |
|
|
|
|
#include <klocale.h> |
|
|
|
|
#include <kiconloader.h> |
|
|
|
|
#include <kio_job.h> |
|
|
|
|
#include <kio_cache.h> |
|
|
|
|
#include <kaction.h> |
|
|
|
|
#include <kurl.h> |
|
|
|
|
#include <kdebug.h> |
|
|
|
|
#include <qfile.h> |
|
|
|
|
|
|
|
|
|
#include <config.h> |
|
|
|
|
#ifdef HAVE_PATHS_H |
|
|
|
|
#include <paths.h> |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef _PATH_TMP |
|
|
|
|
#define _PATH_TMP "/tmp/" |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern "C"{ |
|
|
|
|
void *init_libkdvi() |
|
|
|
|
{ |
|
|
|
|
@ -43,7 +33,7 @@ KDVIFactory::~KDVIFactory() |
|
|
|
|
QObject* KDVIFactory::create(QObject *parent , const char *name , const char*, |
|
|
|
|
const QStringList & ) |
|
|
|
|
{ |
|
|
|
|
QObject *obj = new KDVIKonqView( (QWidget *)parent, name ); |
|
|
|
|
QObject *obj = new KDVIPart( (QWidget *)parent, name ); |
|
|
|
|
emit objectCreated( obj ); |
|
|
|
|
return obj; |
|
|
|
|
} |
|
|
|
|
@ -55,163 +45,85 @@ KInstance *KDVIFactory::instance() |
|
|
|
|
return s_instance; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
KDVIKonqView::KDVIKonqView( QWidget *parent, const char *name ) |
|
|
|
|
: BrowserView( parent, name ) |
|
|
|
|
KDVIPart::KDVIPart( QWidget *parent, const char *name ) |
|
|
|
|
: KParts::ReadOnlyPart( parent, name ) |
|
|
|
|
{ |
|
|
|
|
urlStr = ""; |
|
|
|
|
w = new KDVIMiniWidget(NULL, this ); |
|
|
|
|
setInstance( KDVIFactory::instance() ); |
|
|
|
|
w = new KDVIMiniWidget(NULL, parent ); |
|
|
|
|
dviWindow *dviwin = w->window(); |
|
|
|
|
jobId = 0; |
|
|
|
|
|
|
|
|
|
setWidget( w ); |
|
|
|
|
|
|
|
|
|
startAct = new KAction(i18n("Go to first page"), |
|
|
|
|
QIconSet(BarIcon("start", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(firstPage() ), this); |
|
|
|
|
0, dviwin, SLOT(firstPage() ), actionCollection(), "firstPage"); |
|
|
|
|
backAct = new KAction(i18n("Go to previous page"), |
|
|
|
|
QIconSet(BarIcon("back", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(prevPage() ), this); |
|
|
|
|
0, dviwin, SLOT(prevPage() ), actionCollection(), "prevPage"); |
|
|
|
|
forPageAct = new KAction(i18n("Go down then top of next page"), |
|
|
|
|
QIconSet(BarIcon("forwpage", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(goForward() ), this); |
|
|
|
|
0, dviwin, SLOT(goForward() ), actionCollection(), "goForward"); |
|
|
|
|
forwardAct = new KAction(i18n("Go to next page"), |
|
|
|
|
QIconSet(BarIcon("forward", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(nextPage() ), this); |
|
|
|
|
0, dviwin, SLOT(nextPage() ), actionCollection(), "nextPage"); |
|
|
|
|
finishAct = new KAction(i18n("Go to last page"), |
|
|
|
|
QIconSet(BarIcon("finish", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(lastPage() ), this); |
|
|
|
|
0, dviwin, SLOT(lastPage() ), actionCollection(), "lastPage"); |
|
|
|
|
zoomOutAct = new KAction(i18n("Decrease magnification"), |
|
|
|
|
QIconSet(BarIcon("viewmag-", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(nextShrink() ), this); |
|
|
|
|
0, dviwin, SLOT(nextShrink() ), actionCollection(), "nextShrink"); |
|
|
|
|
smallAct = new KAction(i18n("Small text"), |
|
|
|
|
QIconSet(BarIcon("smalltext", KDVIFactory::instance())) , |
|
|
|
|
0, w, SLOT(selectSmall() ), this); |
|
|
|
|
0, w, SLOT(selectSmall() ), actionCollection(), "selectSmall"); |
|
|
|
|
largeAct = new KAction(i18n("Large text"), |
|
|
|
|
QIconSet(BarIcon("largetext", KDVIFactory::instance())) , |
|
|
|
|
0, w, SLOT(selectLarge() ), this); |
|
|
|
|
0, w, SLOT(selectLarge() ), actionCollection(), "selectLarge"); |
|
|
|
|
zoomInAct = new KAction(i18n("Increase magnification"), |
|
|
|
|
QIconSet(BarIcon("viewmag+", KDVIFactory::instance())) , |
|
|
|
|
0, dviwin, SLOT(prevShrink() ), this); |
|
|
|
|
|
|
|
|
|
actions()->append(BrowserView::ViewAction(startAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(backAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(forPageAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(forwardAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(finishAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(zoomOutAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(smallAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(largeAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
actions()->append(BrowserView::ViewAction(zoomInAct, BrowserView::MenuEdit |
|
|
|
|
| BrowserView::ToolBar ) ); |
|
|
|
|
|
|
|
|
|
(void)new KDVIPrintingExtension( this ); |
|
|
|
|
|
|
|
|
|
connect(w, SIGNAL(statusMessage(const QString &)), this, |
|
|
|
|
SLOT(slotMessage(const QString &))); |
|
|
|
|
connect(w->window(), SIGNAL(statusChange(const QString &)), this, |
|
|
|
|
SLOT(slotMessage(const QString &))); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
KDVIKonqView::~KDVIKonqView() |
|
|
|
|
{ |
|
|
|
|
stop(); |
|
|
|
|
warning("In KDVIKonqView destructor"); |
|
|
|
|
KURL destURL(destStr); |
|
|
|
|
if(QFile::exists(destURL.path())) |
|
|
|
|
QFile::remove(destURL.path()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::openURL(const QString &url, bool, int, int) |
|
|
|
|
{ |
|
|
|
|
urlStr = url; |
|
|
|
|
KIOCachedJob *iojob = new KIOCachedJob; |
|
|
|
|
iojob->setGUImode(KIOJob::NONE); |
|
|
|
|
jobId = iojob->id(); |
|
|
|
|
connect(iojob, SIGNAL(sigFinished(int)), this, |
|
|
|
|
SLOT(slotFinished(int))); |
|
|
|
|
connect(iojob, SIGNAL(sigRedirection(int, const char *)), this, |
|
|
|
|
SLOT(slotRedirection(int, const char *))); |
|
|
|
|
connect(iojob, SIGNAL(sigError(int, int, const char *)), this, |
|
|
|
|
SLOT(slotError(int, int, const char *))); |
|
|
|
|
|
|
|
|
|
(void)new KonqProgressProxy( this, iojob ); |
|
|
|
|
destStr.sprintf("file:"_PATH_TMP"/kdvi%i", time( 0L )); |
|
|
|
|
iojob->copy(url.latin1(), destStr.latin1()); |
|
|
|
|
emit started(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QString KDVIKonqView::url() |
|
|
|
|
{ |
|
|
|
|
return urlStr; |
|
|
|
|
} |
|
|
|
|
0, dviwin, SLOT(prevShrink() ), actionCollection(), "prevShrink"); |
|
|
|
|
|
|
|
|
|
int KDVIKonqView::xOffset() |
|
|
|
|
{ |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int KDVIKonqView::yOffset() |
|
|
|
|
{ |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::stop() |
|
|
|
|
{ |
|
|
|
|
if (jobId){ |
|
|
|
|
KIOJob *job = KIOJob::find(jobId); |
|
|
|
|
if (job) |
|
|
|
|
job->kill(); |
|
|
|
|
jobId = 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
m_extension = new KDVIBrowserExtension( this ); |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::slotMessage(const QString &s) |
|
|
|
|
{ |
|
|
|
|
emit setStatusBarText(s); |
|
|
|
|
} |
|
|
|
|
connect(w, SIGNAL(statusMessage(const QString &)), |
|
|
|
|
m_extension, SIGNAL( setStatusBarText( const QString & ) ) ); |
|
|
|
|
connect(w->window(), SIGNAL(statusChange(const QString &)), |
|
|
|
|
m_extension, SIGNAL( setStatusBarText( const QString & ) ) ); |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::slotFinished( int ) |
|
|
|
|
{ |
|
|
|
|
setXMLFile( "kdvi_part.rc" ); |
|
|
|
|
|
|
|
|
|
KURL destURL(destStr); |
|
|
|
|
if(!QFile::exists(destURL.path())) |
|
|
|
|
warning("KDVIKonqView: dest file %s does not exist!", |
|
|
|
|
destURL.path().latin1()); |
|
|
|
|
else |
|
|
|
|
w->openFile(destURL.path()); |
|
|
|
|
jobId = 0; |
|
|
|
|
emit completed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::slotRedirection( int, const char *url ) |
|
|
|
|
KDVIPart::~KDVIPart() |
|
|
|
|
{ |
|
|
|
|
emit setLocationBarURL(QString(url)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::slotError( int, int, const char * ) |
|
|
|
|
bool KDVIPart::openFile() |
|
|
|
|
{ |
|
|
|
|
stop(); |
|
|
|
|
emit canceled(); |
|
|
|
|
if(!QFile::exists(m_file)) |
|
|
|
|
{ |
|
|
|
|
kDebugWarning("KDVIKonqView: dest file %s does not exist!", |
|
|
|
|
m_file.latin1()); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
w->openFile(m_file); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIKonqView::resizeEvent( QResizeEvent * ) |
|
|
|
|
/////////
|
|
|
|
|
KDVIBrowserExtension::KDVIBrowserExtension( KDVIPart *parent ) : |
|
|
|
|
KParts::BrowserExtension( parent, "KDVIBrowserExtension" ) |
|
|
|
|
{ |
|
|
|
|
w->setGeometry(0, 0, width(), height() ); |
|
|
|
|
emit enableAction( "print", true ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void KDVIPrintingExtension::print() |
|
|
|
|
void KDVIBrowserExtension::print() |
|
|
|
|
{ |
|
|
|
|
((KDVIKonqView *)parent())->miniWidget()->filePrint(); |
|
|
|
|
((KDVIPart *)parent())->miniWidget()->filePrint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "kdvi_view.moc" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|