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.
131 lines
4.1 KiB
131 lines
4.1 KiB
#include "kdvi_view.h" |
|
//#include "konq_progressproxy.h" |
|
#include "kdvi_miniwidget.h" |
|
#include <kinstance.h> |
|
#include <klocale.h> |
|
#include <kiconloader.h> |
|
#include <kaction.h> |
|
#include <kurl.h> |
|
#include <kdebug.h> |
|
#include <qfile.h> |
|
|
|
extern "C"{ |
|
void *init_libkdvi() |
|
{ |
|
return new KDVIFactory; |
|
} |
|
}; |
|
|
|
KInstance *KDVIFactory::s_instance = 0L; |
|
|
|
KDVIFactory::KDVIFactory() |
|
{ |
|
} |
|
|
|
KDVIFactory::~KDVIFactory() |
|
{ |
|
if ( s_instance ) |
|
delete s_instance; |
|
|
|
s_instance = 0; |
|
} |
|
|
|
QObject* KDVIFactory::create(QObject *parent , const char *name , const char*, |
|
const QStringList & ) |
|
{ |
|
QObject *obj = new KDVIPart( (QWidget *)parent, name ); |
|
emit objectCreated( obj ); |
|
return obj; |
|
} |
|
|
|
KInstance *KDVIFactory::instance() |
|
{ |
|
if ( !s_instance ) |
|
s_instance = new KInstance( "kdvi" ); |
|
return s_instance; |
|
} |
|
|
|
KDVIPart::KDVIPart( QWidget *parent, const char *name ) |
|
: KParts::ReadOnlyPart( parent, name ) |
|
{ |
|
setInstance( KDVIFactory::instance() ); |
|
w = new KDVIMiniWidget(NULL, parent ); |
|
// Clicking on it should make it active (required by KParts) |
|
w->setFocusPolicy( QWidget::ClickFocus ); |
|
|
|
dviWindow *dviwin = w->window(); |
|
setWidget( w ); |
|
|
|
startAct = new KAction(i18n("Go to first page"), |
|
QIconSet(BarIcon("start", KDVIFactory::instance())) , |
|
0, dviwin, SLOT(firstPage() ), actionCollection(), "firstPage"); |
|
backAct = new KAction(i18n("Go to previous page"), |
|
QIconSet(BarIcon("back", KDVIFactory::instance())) , |
|
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() ), actionCollection(), "goForward"); |
|
forwardAct = new KAction(i18n("Go to next page"), |
|
QIconSet(BarIcon("forward", KDVIFactory::instance())) , |
|
0, dviwin, SLOT(nextPage() ), actionCollection(), "nextPage"); |
|
finishAct = new KAction(i18n("Go to last page"), |
|
QIconSet(BarIcon("finish", KDVIFactory::instance())) , |
|
0, dviwin, SLOT(lastPage() ), actionCollection(), "lastPage"); |
|
zoomOutAct = new KAction(i18n("Decrease magnification"), |
|
QIconSet(BarIcon("viewmag-", KDVIFactory::instance())) , |
|
0, dviwin, SLOT(nextShrink() ), actionCollection(), "nextShrink"); |
|
smallAct = new KAction(i18n("Small text"), |
|
QIconSet(BarIcon("smalltext", KDVIFactory::instance())) , |
|
0, w, SLOT(selectSmall() ), actionCollection(), "selectSmall"); |
|
largeAct = new KAction(i18n("Large text"), |
|
QIconSet(BarIcon("largetext", KDVIFactory::instance())) , |
|
0, w, SLOT(selectLarge() ), actionCollection(), "selectLarge"); |
|
zoomInAct = new KAction(i18n("Increase magnification"), |
|
QIconSet(BarIcon("viewmag+", KDVIFactory::instance())) , |
|
0, dviwin, SLOT(prevShrink() ), actionCollection(), "prevShrink"); |
|
|
|
m_extension = new KDVIBrowserExtension( this ); |
|
|
|
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 & ) ) ); |
|
|
|
setXMLFile( "kdvi_part.rc" ); |
|
|
|
} |
|
|
|
KDVIPart::~KDVIPart() |
|
{ |
|
} |
|
|
|
bool KDVIPart::openFile() |
|
{ |
|
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; |
|
} |
|
} |
|
|
|
///////// |
|
KDVIBrowserExtension::KDVIBrowserExtension( KDVIPart *parent ) : |
|
KParts::BrowserExtension( parent, "KDVIBrowserExtension" ) |
|
{ |
|
emit enableAction( "print", true ); |
|
} |
|
|
|
void KDVIBrowserExtension::print() |
|
{ |
|
((KDVIPart *)parent())->miniWidget()->filePrint(); |
|
} |
|
|
|
|
|
#include "kdvi_view.moc" |
|
|
|
|