Source Code (Use browser search to find items of interest.)

Class Index

kdvi'KDVIMiniWidget (./kdegraphics/kdvi/kdvi_miniwidget.h:33)

class KDVIMiniWidget : public QSplitter
{
	Q_OBJECT

public:
	KDVIMiniWidget(char *fname=0, QWidget *parent=0,const char *name=0 );
	~KDVIMiniWidget();
        void		openFile(QString name);
        dviWindow*      window(){return(dviwin);}

public slots:
	void		filePrint();
	void		fileChanged();
	void		saveProperties(KConfig*);
	void		readProperties(KConfig*);

protected:
	void		resizeEvent( QResizeEvent* e );
	bool		eventFilter ( QObject *, QEvent *);
	void		closeEvent ( QCloseEvent * e );
private slots:
	void		viewFitPage();
	void		viewFitPageWidth();
	void		pageGoto();
	void		toggleMakePK();
	void		toggleShowPS();
//	void		helpAbout();
//	void		helpAboutQt();
        void            setPage(int p=0);
	void		pageActivated(const QString &);
	void		selectLarge();
	void		selectSmall();
	void		selectShrink(QPoint);
        void		selectShrink(int);
        void            updateMarkList();
//	void		selectResolution(const char *s);
signals:
        void            statusMessage(const QString &s);
private:
        void		message( const QString &s);
	void		makeToolBar2(QWidget *parent);
	void		applyPreferences();
	void		applyMakePK();
	void		applyShowPS();
	void		applyShowMenubar();
	void		applyShowButtons();
	void		applyShowScrollbars();
	void		applyShowStatusbar();
	void		applyVertToolbar();
	QBoxLayout *	vbl;
	QBoxLayout *	hbl;
	QGridLayout *	gl;
	void		readConfig();
	dviWindow *	dviwin;
	QFrame *	f;
	QFrame *	f2;
	QLabel *	msg;
	QLabel *	statusName;
	QString		dviName;
	int		largeShrink;
	int		smallShrink;
	int		basedpi;
	QString		mfmode, paper;
	int		makepk;
	KConfig *	config;
	QPopupMenu *	ssmenu;
	ScrollBox *	sbox;
	int		showPS;
	MarkList *	marklist;
	QFrame *	toolBar2;
	const char *	sndr;
	int		pannerValue;
};


kdvi'KDVIMiniWidget::KDVIMiniWidget() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:44)

KDVIMiniWidget::KDVIMiniWidget( char *fname, QWidget *parent, const char *name )
    : QSplitter(QSplitter::Horizontal, parent, name)
{
	msg = NULL;
        hbl = NULL;
        ssmenu = NULL;

	readConfig();

        // Create a dvi window

	dviwin = new dviWindow( basedpi, mfmode, paper, makepk,
                                this, "dviWindow" );
	connect( dviwin, SIGNAL(currentPage(int)), SLOT(setPage(int)) );
	connect( dviwin, SIGNAL(fileChanged()), SLOT(fileChanged()) );

        makeToolBar2(this);
        moveToLast(dviwin);


	QValueList<int> size;
	size << 10 << 90;
	setSizes(size);

        // Read config options
        applyPreferences();

        selectSmall();
        dviwin->installEventFilter( this );

        openFile(QString(fname));
}


kdvi'KDVIMiniWidget::~KDVIMiniWidget() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:77)

KDVIMiniWidget::~KDVIMiniWidget()
{
}


kdvi'KDVIMiniWidget::makeToolBar2() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:81)

void KDVIMiniWidget::makeToolBar2(QWidget *parent)
{
	QPixmap pm;

	toolBar2 = new QFrame( parent );

	QBoxLayout * gl = new QBoxLayout( toolBar2, QBoxLayout::Down );

	sbox = new ScrollBox( toolBar2 );
	connect( sbox, SIGNAL(valueChanged(QPoint)),
		 dviwin, SLOT(scroll(QPoint)) );
	connect( sbox, SIGNAL(button3Pressed()), dviwin, SLOT(nextPage()) );
	connect( sbox, SIGNAL(button2Pressed()), dviwin, SLOT(prevPage()) );
	connect( dviwin, SIGNAL(pageSizeChanged( QSize )),
		 sbox, SLOT(setPageSize( QSize )) );
	connect( dviwin, SIGNAL(viewSizeChanged( QSize )),
		 sbox, SLOT(setViewSize( QSize )) );
        connect( dviwin, SIGNAL(currentPosChanged( QPoint )),
                 sbox, SLOT(setViewPos( QPoint )) );
	sbox->setFixedSize(70,80);
	gl->addWidget( sbox );

  // Create a MarkList

	marklist = new MarkList( toolBar2 );
	connect( marklist, SIGNAL(selected(const QString &)),
		SLOT(pageActivated(const QString &)) );
        gl->addWidget( marklist );
        gl->activate();

        sbox->setPageSize( dviwin->pageSize() );
}


kdvi'KDVIMiniWidget::updateMarkList() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:114)

void KDVIMiniWidget::updateMarkList()
{
	QString s;
	marklist->setAutoUpdate( FALSE );
	marklist->clear();
	for (int i = dviwin->totalPages(); i>0; i--)
	{
		s.sprintf( "%4d", i );
		marklist->insertItem( s, 0 );
	}
	marklist->select(0);
	marklist->setAutoUpdate( TRUE );
	marklist->update();
}


// This avoids seg fault at destructor:


kdvi'KDVIMiniWidget::closeEvent() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:132)

void KDVIMiniWidget::closeEvent( QCloseEvent *e )
{
  QWidget::closeEvent(e);
  e->accept();
}



kdvi'KDVIMiniWidget::resizeEvent() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:139)

void KDVIMiniWidget::resizeEvent( QResizeEvent* e )
{
    QSplitter::resizeEvent( e );
	
    config->setGroup( "kdvi" );
    config->writeEntry( "Width", width() );
    config->writeEntry( "Height", height() );
}


kdvi'KDVIMiniWidget::eventFilter() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:148)

bool KDVIMiniWidget::eventFilter( QObject *obj , QEvent *e )
{
    if ( obj != dviwin || e->type() != QEvent::MouseButtonPress )
        return FALSE;
    QMouseEvent *me = (QMouseEvent*)e;
    if ( me->button() != RightButton )
        return FALSE;
    return TRUE;
}



kdvi'KDVIMiniWidget::openFile() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:159)

void KDVIMiniWidget::openFile( QString name)
{
	if ( name.isEmpty() )
		return;
        if (!QFileInfo(name).isReadable())
        {
            KMessageBox::sorry(this, i18n("Can't read file:\n") + name);
            return;
        }
        
        QDir::setCurrent( QFileInfo( name ).dirPath() );
        dviName = name.copy();
	message( i18n("Opening ") + name + " ...");

	dviwin->setFile( name );
        dviwin->repaint();
        setPage();
        updateMarkList();
	message( i18n("Opened ") + name );
}


kdvi'KDVIMiniWidget::filePrint() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:180)

void KDVIMiniWidget::filePrint()
{
	if (!dviName)
		return;

	print * printdlg = new print( this, "printdlg" );

        message( i18n("Print dialog is open") );
        printdlg->setFile( dviName );
        printdlg->setCurrentPage( dviwin->page(), dviwin->totalPages() );
        printdlg->setMarkList( marklist->markList() );
        printdlg->exec();
        message( "" );
        delete printdlg;
}


kdvi'KDVIMiniWidget::viewFitPage() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:196)

void KDVIMiniWidget::viewFitPage()
{
	resize( rect().size() + dviwin->pageSize() - dviwin->viewSize()	);
	resize( rect().size() + dviwin->pageSize() - dviwin->viewSize()	);
	resize( rect().size() + dviwin->pageSize() - dviwin->viewSize()	);

	message( i18n("View size fits page") );
}


kdvi'KDVIMiniWidget::viewFitPageWidth() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:205)

void KDVIMiniWidget::viewFitPageWidth()
{
	QSize s = rect().size();
	resize( s.width() + dviwin->pageSize().width() - dviwin->viewSize().width(),
		s.height() );

	message( i18n("View width fits page") );
}



kdvi'KDVIMiniWidget::pageGoto() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:215)

void KDVIMiniWidget::pageGoto()
{
	PageDialog dlg;
	connect( &dlg, SIGNAL(textEntered(const QString &)), SLOT(pageActivated(const QString &)) );
	dlg.show();
}


kdvi'KDVIMiniWidget::toggleMakePK() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:222)

void KDVIMiniWidget::toggleMakePK()
{
	makepk = !makepk;
        applyMakePK();
        message( makepk ? i18n("Missing PK-fonts will be generated"):
                 i18n("Missing PK-fonts will be logged to 'missfont.log'") );
}


kdvi'KDVIMiniWidget::applyMakePK() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:230)

void KDVIMiniWidget::applyMakePK()
{
	if ( makepk == dviwin->makePK() )
            return;
        dviwin->setMakePK( makepk );
        config->writeEntry( "MakePK", makepk );
}


kdvi'KDVIMiniWidget::toggleShowPS() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:238)

void KDVIMiniWidget::toggleShowPS()
{
	showPS = !showPS;
	applyShowPS();
	message( showPS ? i18n("Postcsript specials are rendered") :
		i18n("Postscript specials are not rendered") );
}


kdvi'KDVIMiniWidget::applyShowPS() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:246)

void KDVIMiniWidget::applyShowPS()
{
	if ( showPS == dviwin->showPS() )
		return;
	dviwin->setShowPS( showPS );
	config->writeEntry( "ShowPS", showPS );
}




kdvi'KDVIMiniWidget::pageActivated() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:256)

void KDVIMiniWidget::pageActivated( const QString & text)
{
	int pg = text.toInt();
	if (dviwin->page() != pg)
		dviwin->gotoPage( pg );
	dviwin->setFocus();
}



kdvi'KDVIMiniWidget::selectShrink() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:265)

void KDVIMiniWidget::selectShrink( QPoint p )
{
	sndr = sender()->name();
	if (!ssmenu)
	{
		ssmenu = new QPopupMenu;
		ssmenu->setMouseTracking( TRUE );
		connect( ssmenu, SIGNAL(activated(int)),
			 SLOT(selectShrink(int)) );
		QString s;
		for ( int i=1; i<=basedpi/20; i++ )
			ssmenu->insertItem( s.setNum( i ) );
	}
	ssmenu->popup( p - QPoint( 10, 10 ),
		(QString(sndr) == "largeButton" ? largeShrink : smallShrink) - 1 );
}


kdvi'KDVIMiniWidget::selectShrink() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:282)

void KDVIMiniWidget::selectShrink( int id )
{
	if ( QString(sndr) == "largeButton" )
	{
		dviwin->setShrink( id + 1 );
		largeShrink = dviwin->shrink();
		config->writeEntry( "LargeShrink", largeShrink );
		message(i18n("Large text button set to shrink factor ") +
					QString().setNum(largeShrink) );
	}
	else
	{
		dviwin->setShrink( id + 1 );
		smallShrink = dviwin->shrink();
		config->writeEntry( "SmallShrink", smallShrink );
		message(i18n("Small text button set to shrink factor ") +
					QString().setNum(smallShrink) );
	}
}


kdvi'KDVIMiniWidget::selectLarge() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:302)

void KDVIMiniWidget::selectLarge()
{
	dviwin->setShrink(largeShrink);
}


kdvi'KDVIMiniWidget::selectSmall() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:307)

void KDVIMiniWidget::selectSmall()
{
	dviwin->setShrink(smallShrink);
}


kdvi'KDVIMiniWidget::fileChanged() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:312)

void KDVIMiniWidget::fileChanged()
{
    message( i18n("File reloaded.") );
    if ( dviwin->totalPages() != marklist->count() )
        updateMarkList();
    setPage();
}


kdvi'KDVIMiniWidget::setPage() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:320)

void KDVIMiniWidget::setPage(int pg)
{
    if ( marklist )
        marklist->select( pg - 1 );
}



kdvi'KDVIMiniWidget::message() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:327)

void KDVIMiniWidget::message( const QString &s )
{
    emit statusMessage(s);
}



kdvi'KDVIMiniWidget::readConfig() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:333)

void KDVIMiniWidget::readConfig()
{
	QString s;
	config = KDVIFactory::instance()->config();
        config->setGroup( "kdvi" );

	pannerValue = config->readNumEntry( "Separator" );
	if (!pannerValue)
		config->writeEntry( "Separator", pannerValue = 80 );
	
	showPS = config->readNumEntry( "ShowPS" );

	smallShrink = config->readNumEntry( "SmallShrink" );
	if (!smallShrink)
		config->writeEntry( "SmallShrink", smallShrink = 7 );

	largeShrink = config->readNumEntry( "LargeShrink" );
	if (!largeShrink)
		config->writeEntry( "LargeShrink", largeShrink = 3 );

	int width = config->readNumEntry( "Width" );
	if (!width)
		width = 500;

	int height = config->readNumEntry( "Height" );
	if (!height)
		height = 450;
	resize( width, height );
}


kdvi'KDVIMiniWidget::saveProperties() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:363)

void KDVIMiniWidget::saveProperties(KConfig *config )
{
	config->writeEntry( "FileName", dviName );
	config->writeEntry( "Page", dviwin->page() );
	config->writeEntry( "Shrink", dviwin->shrink() );
	config->writeEntry( "Pos.x", dviwin->currentPos().x() );
	config->writeEntry( "Pos.y", dviwin->currentPos().y() );
}



kdvi'KDVIMiniWidget::readProperties() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:373)

void KDVIMiniWidget::readProperties(KConfig *config)
{
	QString file = config->readEntry("FileName");
	if ( file.isNull() )
		return;
	openFile( file );
	int page = config->readNumEntry( "Page", 1 );
        dviwin->gotoPage( page );
        setPage(page);
	dviwin->setShrink( config->readNumEntry( "Shrink" ) );
	dviwin->scroll( QPoint( config->readNumEntry( "Pos.x" ),
				config->readNumEntry( "Pos.y" ) ) );
}


kdvi'KDVIMiniWidget::applyPreferences() (./kdegraphics/kdvi/kdvi_miniwidget.cpp:387)

void KDVIMiniWidget::applyPreferences()
{
	QString s;
	config->setGroup( "kdvi" );

	s = config->readEntry( "FontPath" );
	if ( !s.isEmpty() && s != dviwin->fontPath() )
		dviwin->setFontPath( s );

	basedpi = config->readNumEntry( "BaseResolution" );
	if ( basedpi <= 0 )
		config->writeEntry( "BaseResolution", basedpi = 300 );
	if ( basedpi != dviwin->resolution() )
		dviwin->setResolution( basedpi );

	mfmode =  config->readEntry( "MetafontMode" );
	if ( mfmode.isNull() )
		config->writeEntry( "MetafontMode", mfmode = "/" );
	if ( mfmode != dviwin->metafontMode() )
		dviwin->setMetafontMode( mfmode );

	paper = config->readEntry( "Paper" );
	if ( paper.isNull() )
		config->writeEntry( "Paper", paper = "A4" );
	if ( paper != dviwin->paper() )
		dviwin->setPaper( paper );

	s = config->readEntry( "Gamma" );
	if ( !s.isEmpty() && s.toFloat() != dviwin->gamma() )
		dviwin->setGamma( s.toFloat() );

	makepk = config->readNumEntry( "MakePK" );
	applyMakePK();

	showPS = config->readNumEntry( "ShowPS" );
	applyShowPS();
	
	dviwin->setAntiAlias( config->readNumEntry( "PS Anti Alias", 1 ) );

	smallShrink = config->readNumEntry( "SmallShrink" );
	if (!smallShrink) smallShrink = 6;

	largeShrink = config->readNumEntry( "LargeShrink" );
	if (!largeShrink) largeShrink = 2;

	message(i18n("Preferences applied"));
}