diff options
Diffstat (limited to 'src/panels/information/commentwidget.cpp')
| -rw-r--r-- | src/panels/information/commentwidget.cpp | 106 |
1 files changed, 5 insertions, 101 deletions
diff --git a/src/panels/information/commentwidget.cpp b/src/panels/information/commentwidget.cpp index 23f79dfb1..63d8a1dc3 100644 --- a/src/panels/information/commentwidget.cpp +++ b/src/panels/information/commentwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 by Sebastian Trueg <[email protected]> * + * Copyright (C) 2009 by Peter Penz <[email protected]> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -17,111 +17,15 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include "commentwidget.h" +#include "commentwidget_p.h" -#include <QtGui/QLabel> -#include <QtGui/QTextEdit> -#include <QtGui/QLayout> -#include <QtGui/QCursor> -#include <QtCore/QEvent> - -#include <KLocale> - - -class CommentWidget::Private -{ -public: - Private( CommentWidget* parent ) - : q( parent ) { - } - - void update(); - void _k_slotEnableEditing(); - - QTextEdit* textEdit; - QLabel* addComment; - - QString comment; - -private: - CommentWidget* q; -}; - - -void CommentWidget::Private::update() +CommentWidget::CommentWidget(QWidget* parent) : + QWidget(parent) { - textEdit->setText( comment ); - const bool hasComment = !comment.isEmpty(); - textEdit->setVisible(hasComment); - addComment->setVisible(!hasComment); } - -void CommentWidget::Private::_k_slotEnableEditing() -{ - textEdit->show(); - textEdit->setFocus(); - addComment->hide(); -} - - - -CommentWidget::CommentWidget( QWidget* parent ) - : QWidget( parent ), - d( new Private( this ) ) -{ - d->textEdit = new QTextEdit( this ); - d->textEdit->installEventFilter( this ); - d->textEdit->setMinimumHeight( 100 ); - d->textEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Ignored); - - d->addComment = new QLabel( this ); - d->addComment->setText( "<p align=center><a style=\"font-size:small;\" href=\"addComment\">" + i18nc( "@label", "Add Comment..." ) + "</a>" ); - - QVBoxLayout* layout = new QVBoxLayout( this ); - layout->setMargin( 0 ); - layout->addWidget( d->textEdit ); - layout->addWidget( d->addComment ); - d->update(); - connect( d->addComment, SIGNAL( linkActivated( const QString& ) ), this, SLOT( _k_slotEnableEditing() ) ); -} - - CommentWidget::~CommentWidget() { - delete d; -} - - -void CommentWidget::setComment( const QString& comment ) -{ - d->comment = comment; - d->update(); -} - - -QString CommentWidget::comment() const -{ - return d->comment; -} - - -QString CommentWidget::editorText() const -{ - return d->textEdit->toPlainText(); -} - -bool CommentWidget::eventFilter( QObject* watched, QEvent* event ) -{ - if ( watched == d->textEdit && event->type() == QEvent::FocusOut ) { - const QString currentComment = editorText(); - if ( currentComment != d->comment ) { - d->comment = currentComment; - emit commentChanged( currentComment ); - } - d->update(); - } - return QWidget::eventFilter( watched, event ); } -#include "commentwidget.moc" +#include "commentwidget_p.moc" |
