#include <QtGui/QTextEdit>
#include <QtGui/QLayout>
#include <QtGui/QCursor>
+#include <QtGui/QScrollArea>
#include <QtCore/QEvent>
#include <KLocale>
void update();
void _k_slotEnableEditing();
- QLabel* label;
+ QLabel* commentLabel;
+ QScrollArea* scrollArea;
+ QLabel* commentLink;
CommentEditWidget* edit;
QString comment;
void CommentWidget::Private::update()
{
+ commentLabel->setText( comment );
if ( comment.isEmpty() ) {
- label->setText( "<p align=center><a style=\"font-size:small;\" href=\"addComment\">" + i18nc( "@label", "Add Comment..." ) + "</a>" );
+ scrollArea->hide();
+ commentLink->setText( "<p align=center><a style=\"font-size:small;\" href=\"addComment\">" + i18nc( "@label", "Add Comment..." ) + "</a>" );
}
else {
- label->setText( "<p>" + comment + "<p align=center><a style=\"font-size:small;\" href=\"addComment\">" + i18nc( "@label", "Change Comment..." ) + "</a>" );
+ scrollArea->show();
+ commentLink->setText( "<p align=center><a style=\"font-size:small;\" href=\"addComment\">" + i18nc( "@label", "Change Comment..." ) + "</a>" );
}
}
: 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() ) );
}
const int maxWidth = event->size().width() - KDialog::spacingHint() * 4;
m_nameLabel->setMaximumWidth(maxWidth);
+ // The metadata widget also contains a text widget which may return
+ // a large preferred width.
+ if (m_metaDataWidget != 0) {
+ m_metaDataWidget->setMaximumWidth(maxWidth);
+ }
+
// try to increase the preview as large as possible
m_preview->setSizeHint(QSize(maxWidth, maxWidth));
m_urlCandidate = m_shownUrl; // reset the URL candidate if a resizing is done
// rating, comment and tags
m_metaDataWidget = new MetaDataWidget(this);
m_metaDataWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ m_metaDataWidget->setMaximumWidth(KIconLoader::SizeEnormous);
const bool showRating = InformationPanelSettings::showRating();
const bool showComment = InformationPanelSettings::showComment();