diff --git a/kdvi.cpp b/kdvi.cpp index b04750afb..ad7081e76 100644 --- a/kdvi.cpp +++ b/kdvi.cpp @@ -31,10 +31,12 @@ #include "pushbutton.h" #include "prefs.h" #include "version.h" +#include #include #include #include +#include enum {ID_STAT_SHRINK, ID_STAT_PAGE, ID_STAT_MSG, ID_STAT_XY}; enum {ID_OPT_PK = 3, ID_OPT_PS, ID_OPT_MB, ID_OPT_BB, ID_OPT_TB, ID_OPT_SB, ID_OPT_SC }; @@ -53,56 +55,45 @@ kdvi::kdvi( char *fname, QWidget *, const char *name ) setMinimumSize( 400, 60 ); setCaption( kapp->getCaption() ); tipgroup = new QToolTipGroup( this, "TipGroup" ); - connect( tipgroup, SIGNAL(showTip(const QString &)), SLOT(showTip(const QString &)) ); + connect( tipgroup, SIGNAL(showTip(const QString &)), + SLOT(showTip(const QString &)) ); connect( tipgroup, SIGNAL(removeTip()), SLOT(removeTip()) ); // Create KPanner for toolBar2 and dviwindow - kpan = new QSplitter( QSplitter::Vertical, this, "splitter"); - QValueList sizes; - size << 90 << 10; - kpan->setSizes(sizes); + kpan = new QSplitter( QSplitter::Horizontal, this, "splitter"); + setView( kpan, TRUE ); setFrameBorderWidth( 4 ); - kpan->setAbsSeparator( pannerValue ); - connect( kpan, SIGNAL(positionChanged()), SLOT(pannerChanged()) ); - + // Create a dvi window dviwin = new dviWindow( basedpi, mfmode, paper, makepk, - kpan->child1(), "dviWindow" ); + kpan, "dviWindow" ); connect( dviwin, SIGNAL(currentPage(int)), SLOT(setPage(int)) ); connect( dviwin, SIGNAL(shrinkChanged(int)), SLOT(shrinkChanged(int)) ); connect( dviwin, SIGNAL(fileChanged()), SLOT(fileChanged()) ); connect( dviwin, SIGNAL(statusChange(const QString &)), SLOT(showTip(const QString &)) ); connect( dviwin, SIGNAL(setPoint(QPoint)), SLOT(showPoint(QPoint)) ); + + // Create a menubar - // Create a menubar - - menuBar = NULL; makeMenuBar(); - // Create toolbars - - toolBar = NULL; + // Create toolbars makeButtons(); - makeToolBar2( kpan->child0() ); + makeToolBar2( kpan ); - // Create a statusbar + kpan->moveToLast(dviwin); + + // Create a statusbar - statusBar = NULL; makeStatusBar( i18n("No document") ); - // Lay out widgets - - QBoxLayout *l; - l = new QBoxLayout( kpan->child0(), QBoxLayout::LeftToRight ); - l->addWidget( toolBar2 ); - l->activate(); - l = new QBoxLayout( kpan->child1(), QBoxLayout::LeftToRight ); - l->addWidget( dviwin ); - l->activate(); + QValueList size; + size << 10 << 90; + kpan->setSizes(size); // Create RMB menu @@ -122,7 +113,7 @@ kdvi::kdvi( char *fname, QWidget *, const char *name ) bindKeys(); updateMenuAccel(); - setAcceptDrop(true); + setAcceptDrops(true); // Read config options @@ -137,22 +128,14 @@ kdvi::kdvi( char *fname, QWidget *, const char *name ) kdvi::~kdvi() { - if ( toolBar ) delete toolBar; - if ( statusBar ) delete statusBar; - if ( menuBar ) delete menuBar; } // This avoids seg fault at destructor: void kdvi::closeEvent( QCloseEvent *e ) { - if ( toolBar ) delete toolBar; - toolBar = NULL; - if ( statusBar ) delete statusBar; - statusBar = NULL; - if ( menuBar ) delete menuBar; - menuBar = NULL; - e->accept(); + KTopLevelWidget::closeEvent(e); + e->accept(); } static QPopupMenu *m_f, *m_v, *m_p, *m_o, *m_h; @@ -161,10 +144,6 @@ static int m_fn, m_fo, m_fr, m_fp, m_fx, m_vi, m_vo, m_vf, m_vw, m_vr, m_pp, m_p void kdvi::makeMenuBar() { - if (menuBar) delete menuBar; - menuBar = new KMenuBar( this ); - CHECK_PTR( menuBar ); - QPopupMenu *p = new QPopupMenu; CHECK_PTR( p ); @@ -182,7 +161,7 @@ void kdvi::makeMenuBar() m_fx = p->insertItem( i18n("E&xit"), this, SLOT(fileExit())); m_f = p; - menuBar->insertItem( i18n("&File"), p, -2 ); + menuBar()->insertItem( i18n("&File"), p, -2 ); p = new QPopupMenu; CHECK_PTR( p ); @@ -194,7 +173,7 @@ void kdvi::makeMenuBar() m_vr = p->insertItem( i18n("&Redraw page"), dviwin, SLOT(drawPage()) ); m_v = p; - menuBar->insertItem( i18n("&View"), p, -2 ); + menuBar()->insertItem( i18n("&View"), p, -2 ); p = new QPopupMenu; CHECK_PTR( p ); @@ -205,7 +184,7 @@ void kdvi::makeMenuBar() m_pg = p->insertItem( i18n("&Go to ..."), this, SLOT(pageGoto()) ); m_p = p; - menuBar->insertItem( i18n("&Page"), p, -2 ); + menuBar()->insertItem( i18n("&Page"), p, -2 ); p = new QPopupMenu; CHECK_PTR( p ); @@ -229,10 +208,10 @@ void kdvi::makeMenuBar() p->setItemChecked( m_ol, !hideScrollbars ); m_o = p; - menuBar->insertItem( i18n("&Options"), p, -2 ); + menuBar()->insertItem( i18n("&Options"), p, -2 ); optionsmenu = p; - menuBar->insertSeparator(); + menuBar()->insertSeparator(); QPopupMenu *help = kapp->getHelpMenu(true, i18n("DVI Viewer") + " " + KDVI_VERSION @@ -241,39 +220,33 @@ void kdvi::makeMenuBar() m_h = help; m_hc = help->idAt(0); - menuBar->insertItem( i18n("&Help"), help ); - if ( hideMenubar ) menuBar->hide(); - setMenu( menuBar ); + menuBar()->insertItem( i18n("&Help"), help ); + if ( hideMenubar ) menuBar()->hide(); } void kdvi::makeButtons() { QPixmap pm; - if ( toolBar ) delete toolBar; - - toolBar = new KToolBar( this ); - -#define I(f,o,s,h) toolBar->insertButton( KGlobal::iconLoader()->loadIcon(f),\ +#define I(f,o,s,h) toolBar()->insertButton( KGlobal::iconLoader()->loadIcon(f),\ 0, SIGNAL(clicked()), o, SLOT(s()), TRUE, h); I( "fileopen.xpm", this, fileOpen, i18n("Open document ...") ) I( "reload.xpm", dviwin, drawPage, i18n("Reload document") ) I( "fileprint.xpm", this, filePrint, i18n("Print ...") ) - toolBar->insertSeparator(); + toolBar()->insertSeparator(); I( "start.xpm", dviwin, firstPage, i18n("Go to first page") ) I( "back.xpm", dviwin, prevPage, i18n("Go to previous page") ) I( "forwpage.xpm", dviwin, goForward, i18n("Go down then top of next page") ) I( "forward.xpm", dviwin, nextPage, i18n("Go to next page") ) I( "finish.xpm", dviwin, lastPage, i18n("Go to last page") ) - toolBar->insertSeparator(); + toolBar()->insertSeparator(); I( "viewmag-.xpm", dviwin, nextShrink, i18n("Decrease magnification") ) I( "smalltext.xpm", this, selectSmall, i18n("Small text") ) I( "largetext.xpm", this, selectLarge, i18n("Large text") ) I( "viewmag+.xpm", dviwin, prevShrink, i18n("Increase magnification") ) #undef I - addToolBar( toolBar ); } void kdvi::makeToolBar2(QWidget *parent) @@ -316,18 +289,15 @@ void kdvi::makeStatusBar( QString ) { QPixmap pm; - if ( statusBar ) delete statusBar; - statusBar = new KStatusBar( this ); - statusBar->setInsertOrder( KStatusBar::RightToLeft ); - statusBar->insertItem(i18n("X:0000, Y:0000 "), ID_STAT_XY); - statusBar->changeItem("", ID_STAT_XY); - statusBar->insertItem(i18n("Shrink: xx"), ID_STAT_SHRINK); - statusBar->changeItem("", ID_STAT_SHRINK); - statusBar->insertItem(i18n("Page: xxxx / xxxx"), ID_STAT_PAGE); - statusBar->changeItem("", ID_STAT_PAGE); - statusBar->insertItem("", ID_STAT_MSG); - - setStatusBar( statusBar ); + statusBar()->setInsertOrder( KStatusBar::RightToLeft ); + statusBar()->insertItem(i18n("X:0000, Y:0000 "), ID_STAT_XY); + statusBar()->changeItem("", ID_STAT_XY); + statusBar()->insertItem(i18n("Shrink: xx"), ID_STAT_SHRINK); + statusBar()->changeItem("", ID_STAT_SHRINK); + statusBar()->insertItem(i18n("Page: xxxx / xxxx"), ID_STAT_PAGE); + statusBar()->changeItem("", ID_STAT_PAGE); + statusBar()->insertItem("", ID_STAT_MSG); + } @@ -748,8 +718,10 @@ void kdvi::toggleShowMenubar() void kdvi::applyShowMenubar() { - if ( hideMenubar ) menuBar->hide(); - else menuBar->show(); + if ( hideMenubar ) + menuBar()->hide(); + else + menuBar()->show(); optionsmenu->setItemChecked( optionsmenu->idAt(ID_OPT_MB), !hideMenubar ); config->writeEntry( "HideMenubar", hideMenubar ); @@ -780,16 +752,17 @@ void kdvi::toggleVertToolbar() void kdvi::applyVertToolbar() { +#warning TODO Finish QSplitter port if (vertToolbar) { - kpan->setLimits(0,0); - kpan->setAbsSeparator(pannerValue); + // kpan->setLimits(0,0); + // kpan->setAbsSeparator(pannerValue); } else { - if (kpan->getAbsSeparator()) - kpan->setAbsSeparator(0); - kpan->setLimits(0,1); + // if (kpan->getAbsSeparator()) + // kpan->setAbsSeparator(0); + // kpan->setLimits(0,1); } optionsmenu->setItemChecked( optionsmenu->idAt(ID_OPT_TB), vertToolbar ); config->writeEntry( "VertToolbar", vertToolbar ); @@ -843,18 +816,6 @@ void kdvi::helpAboutQt() } */ -void kdvi::pannerChanged() -{ - int i = kpan->getAbsSeparator(); - if ( i>1 ) - config->writeEntry( "Separator", pannerValue = i ); - else - { - vertToolbar = 0; - applyVertToolbar(); - } -} - void kdvi::pageActivated( const QString & text) { int pg = text.toInt(); @@ -871,7 +832,7 @@ void kdvi::setPage( int pg ) if (!pg) return; str.setNum( pg ); str = i18n("Page: ") + str + i18n(" / ") + QString().setNum(dviwin->totalPages()); - statusBar->changeItem( str, ID_STAT_PAGE ); + statusBar()->changeItem( str, ID_STAT_PAGE ); if ( marklist ) marklist->select( pg - 1 ); @@ -927,7 +888,7 @@ void kdvi::selectSmall() void kdvi::shrinkChanged(int s) { QString t = i18n("Shrink: %1").arg( s ); - statusBar->changeItem( t, ID_STAT_SHRINK); + statusBar()->changeItem( t, ID_STAT_SHRINK); } void kdvi::fileChanged() @@ -950,7 +911,7 @@ void kdvi::removeTip( ) void kdvi::message( const QString &s ) { - statusBar->changeItem( s, ID_STAT_MSG ); + statusBar()->changeItem( s, ID_STAT_MSG ); } void kdvi::showPoint( QPoint p ) @@ -960,7 +921,7 @@ void kdvi::showPoint( QPoint p ) x = int(x * f), y = int(y * f); QString s; s.sprintf( "X:%4d, Y:%4d", x, y ); - statusBar->changeItem( s, ID_STAT_XY ); + statusBar()->changeItem( s, ID_STAT_XY ); } @@ -1001,11 +962,12 @@ void kdvi::readConfig() } -void kdvi::dropEvent( QDropEvent * dropZone ) +void kdvi::dropEvent( QDropEvent * event ) { - QStrList & list = dropZone->getURLList(); + QStrList list; + QUriDrag::decode(event, list); - char *s; + const char *s; for ( s = list.first(); s != 0L; s = list.next() ) { diff --git a/kdvi.h b/kdvi.h index 104d826c4..7c45f40ca 100644 --- a/kdvi.h +++ b/kdvi.h @@ -75,7 +75,6 @@ private slots: void helpContents(); // void helpAbout(); // void helpAboutQt(); - void pannerChanged(); void pageActivated(const QString &); void setPage(int p=0); void selectLarge(); @@ -113,9 +112,6 @@ private: void newWindow( const char *name=0 ); void readConfig(); dviWindow * dviwin; - KMenuBar * menuBar; - KToolBar * toolBar; - KStatusBar * statusBar; QFrame * f; QFrame * f2; QLabel * msg;