From 26b6d3b8ffd1071a615e95a2871096ae85dd6f93 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 10 Jun 2009 10:04:33 +0000 Subject: fixed resizing issues when having long comments: * embed the comment label inside a scrollarea * assure that the "add comment..."/"change comment..." link is always visible * assure that the maximum width of the meta data widget is set to the panel width (otherwise the panel would be increased in an unlimited way when having a text without spaces) CCMAIL: trueg@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=979621 --- src/panels/information/commentwidget.cpp | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'src/panels/information/commentwidget.cpp') diff --git a/src/panels/information/commentwidget.cpp b/src/panels/information/commentwidget.cpp index 586be63aa..93bbad84f 100644 --- a/src/panels/information/commentwidget.cpp +++ b/src/panels/information/commentwidget.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -39,7 +40,9 @@ public: void update(); void _k_slotEnableEditing(); - QLabel* label; + QLabel* commentLabel; + QScrollArea* scrollArea; + QLabel* commentLink; CommentEditWidget* edit; QString comment; @@ -51,11 +54,14 @@ private: void CommentWidget::Private::update() { + commentLabel->setText( comment ); if ( comment.isEmpty() ) { - label->setText( "

" + i18nc( "@label", "Add Comment..." ) + "" ); + scrollArea->hide(); + commentLink->setText( "

" + i18nc( "@label", "Add Comment..." ) + "" ); } else { - label->setText( "

" + comment + "

" + i18nc( "@label", "Change Comment..." ) + "" ); + scrollArea->show(); + commentLink->setText( "

" + i18nc( "@label", "Change Comment..." ) + "" ); } } @@ -77,13 +83,22 @@ CommentWidget::CommentWidget( QWidget* parent ) : QWidget( parent ), d( new Private( this ) ) { - d->label = new QLabel( this ); - d->label->setWordWrap( true ); + d->commentLabel = new QLabel( this ); + d->commentLabel->setWordWrap( true ); + + d->scrollArea = new QScrollArea( this ); + d->scrollArea->setWidget( d->commentLabel ); + d->scrollArea->setWidgetResizable( true ); + d->scrollArea->setFrameShape( QFrame::StyledPanel ); + + d->commentLink = new QLabel( this ); + QVBoxLayout* layout = new QVBoxLayout( this ); layout->setMargin( 0 ); - layout->addWidget( d->label ); + layout->addWidget( d->scrollArea ); + layout->addWidget( d->commentLink ); d->update(); - connect( d->label, SIGNAL( linkActivated( const QString& ) ), this, SLOT( _k_slotEnableEditing() ) ); + connect( d->commentLink, SIGNAL( linkActivated( const QString& ) ), this, SLOT( _k_slotEnableEditing() ) ); } -- cgit v1.3