diff --git a/ui/sidebar.cpp b/ui/sidebar.cpp --- a/ui/sidebar.cpp +++ b/ui/sidebar.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include "settings.h" @@ -425,7 +426,7 @@ QSplitter *splitter; QStackedWidget *stack; QWidget *sideContainer; - QLabel *sideTitle; + KSqueezedTextLabel *sideTitle; QVBoxLayout *vlay; QWidget *sideWidget; QWidget *bottomWidget; @@ -492,18 +493,17 @@ d->splitter->setChildrenCollapsible( false ); d->sideContainer = new QWidget( d->splitter ); - d->sideContainer->setMinimumWidth( 90 ); - d->sideContainer->setMaximumWidth( 600 ); d->vlay = new QVBoxLayout( d->sideContainer ); d->vlay->setMargin( 0 ); - d->sideTitle = new QLabel( d->sideContainer ); + d->sideTitle = new KSqueezedTextLabel( d->sideContainer ); d->vlay->addWidget( d->sideTitle ); QFont tf = d->sideTitle->font(); tf.setBold( true ); d->sideTitle->setFont( tf ); d->sideTitle->setMargin( 3 ); d->sideTitle->setIndent( 3 ); + d->sideTitle->setTextElideMode( Qt::ElideRight ); d->stack = new QStackedWidget( d->sideContainer ); d->vlay->addWidget( d->stack ); @@ -550,9 +550,19 @@ QList splitterSizes = Okular::Settings::splitterSizes(); if ( !splitterSizes.count() ) { - // the first time use 1/10 for the panel and 9/10 for the pageView - splitterSizes.push_back( 50 ); - splitterSizes.push_back( 500 ); + QFontMetrics fontMetrics( d->sideTitle->fontMetrics()); + int sideTitleWidth = 0; + Q_FOREACH ( SidebarItem* sbItem, d->pages ) + { + int w = fontMetrics.boundingRect( sbItem->text() ).width(); + if ( w > sideTitleWidth ) + sideTitleWidth = w; + } + + // the first time use ~1/5 for the panel and ~4/5 for the pageView + // (depending on language, sideTitleWidth equals ~100px) + splitterSizes.push_back( sideTitleWidth ); + splitterSizes.push_back( 500 - sideTitleWidth ); } d->splitter->setSizes( splitterSizes ); d->splitterSizesSet = true;