fix width calculation to work on plastique, oxygen and windows styles, tahnks to boemman for the tipts

svn path=/trunk/KDE/kdegraphics/okular/; revision=761052
This commit is contained in:
Albert Astals Cid 2008-01-13 23:27:31 +00:00
parent 929ba8c53b
commit 048ca1d519

View file

@ -17,6 +17,8 @@
#include <qimage.h>
#include <qlabel.h>
#include <qpainter.h>
#include <qstyle.h>
#include <qstyleoption.h>
#include <qtooltip.h>
#include <qvalidator.h>
#include <qapplication.h>
@ -435,7 +437,9 @@ void PresentationWidget::paintEvent( QPaintEvent * pe )
sp.setHorizontalPolicy( QSizePolicy::Minimum );
m_pagesEdit->setSizePolicy( sp );
QFontMetrics fm( m_pagesEdit->font() );
m_pagesEdit->setMaximumWidth( fm.width( QString::number( m_document->pages() ) ) * 2 );
QStyleOptionFrame option;
option.initFrom(m_pagesEdit);
m_pagesEdit->setMaximumWidth( fm.width( QString::number( m_document->pages() ) ) + 2 * style()->pixelMetric(QStyle::PM_DefaultFrameWidth, &option, m_pagesEdit) + 4 ); // the 4 comes from 2*horizontalMargin, horizontalMargin being a define in qlineedit.cpp
QIntValidator *validator = new QIntValidator( 1, m_document->pages(), m_pagesEdit );
m_pagesEdit->setValidator( validator );
m_topBar->addWidget( m_pagesEdit );