00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "tagwidget.h"
00023
00024 #include "autoqpointer_p.h"
00025 #include "kedittagsdialog_p.h"
00026
00027 #include <kicon.h>
00028 #include <klocale.h>
00029
00030 #include <QtGui/QHBoxLayout>
00031 #include <QtGui/QLabel>
00032 #include <QtGui/QToolButton>
00033
00034 TagWidget::TagWidget( QWidget *parent )
00035 : QWidget( parent )
00036 {
00037 QHBoxLayout *layout = new QHBoxLayout( this );
00038 mTagLabel = new QLabel;
00039 mTagLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
00040 layout->addWidget( mTagLabel );
00041
00042 mEditButton = new QToolButton;
00043 mEditButton->setText( QLatin1String( "..." ) );
00044 layout->addWidget( mEditButton, Qt::AlignRight );
00045
00046 layout->setStretch( 0, 10 );
00047
00048 connect( mEditButton, SIGNAL( clicked() ), SLOT( editTags() ) );
00049 }
00050
00051 TagWidget::~TagWidget()
00052 {
00053 }
00054
00055 void TagWidget::setTags( const QList<Nepomuk::Tag> &tags )
00056 {
00057 mTags = tags;
00058 updateView();
00059 }
00060
00061 QList<Nepomuk::Tag> TagWidget::tags() const
00062 {
00063 return mTags;
00064 }
00065
00066 void TagWidget::editTags()
00067 {
00068 AutoQPointer<KEditTagsDialog> dlg = new KEditTagsDialog( mTags, this );
00069 if ( dlg->exec() ) {
00070 mTags = dlg->tags();
00071 updateView();
00072 }
00073 }
00074
00075 void TagWidget::updateView()
00076 {
00077 QString text;
00078 foreach ( const Nepomuk::Tag &tag, mTags ) {
00079 const QString separator = (tag == mTags.last() ? QString() : QLatin1String( ", " ));
00080 text += tag.genericLabel() + separator;
00081 }
00082
00083 mTagLabel->setText( text );
00084 }
00085
00086 #include "tagwidget.h"