22 #include "dateeditwidget.h"
24 #include "kdatepickerpopup_p.h"
26 #include <kdatepicker.h>
31 #include <QtGui/QContextMenuEvent>
32 #include <QtGui/QHBoxLayout>
33 #include <QtGui/QLabel>
34 #include <QtGui/QToolButton>
36 DateView::DateView( QWidget *parent )
39 setTextInteractionFlags( Qt::TextSelectableByMouse );
40 setFrameShape( QFrame::Panel );
41 setFrameShadow( QFrame::Sunken );
44 void DateView::contextMenuEvent( QContextMenuEvent *event )
46 if ( text().isEmpty() )
50 menu.addAction( i18n(
"Remove" ),
this, SLOT(emitSignal()) );
52 menu.exec( event->globalPos() );
55 void DateView::emitSignal()
60 DateEditWidget::DateEditWidget( Type type, QWidget *parent )
61 : QWidget( parent ), mReadOnly( false )
63 QHBoxLayout *layout =
new QHBoxLayout(
this );
64 layout->setMargin( 0 );
67 layout->addWidget( mView );
69 mClearButton =
new QToolButton;
70 if ( layoutDirection() == Qt::LeftToRight )
71 mClearButton->setIcon( KIcon( QLatin1String(
"edit-clear-locationbar-rtl" ) ) );
73 mClearButton->setIcon( KIcon( QLatin1String(
"edit-clear-locationbar-ltr" ) ) );
74 layout->addWidget( mClearButton );
76 mSelectButton =
new QToolButton;
77 mSelectButton->setPopupMode( QToolButton::InstantPopup );
79 case General: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-day" ) ) );
break;
80 case Birthday: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-birthday" ) ) );
break;
81 case Anniversary: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-wedding-anniversary" ) ) );
break;
84 layout->addWidget( mSelectButton );
87 mSelectButton->setMenu( mMenu );
89 connect( mClearButton, SIGNAL(clicked()), SLOT(resetDate()) );
90 connect( mMenu, SIGNAL(dateChanged(QDate)), SLOT(dateSelected(QDate)) );
91 connect( mView, SIGNAL(resetDate()), SLOT(resetDate()) );
96 DateEditWidget::~DateEditWidget()
100 void DateEditWidget::setDate(
const QDate &date )
103 mMenu->setDate( mDate );
107 QDate DateEditWidget::date()
const
112 void DateEditWidget::setReadOnly(
bool readOnly )
114 mReadOnly = readOnly;
116 mSelectButton->setEnabled( !readOnly );
117 mClearButton->setEnabled( !readOnly );
120 void DateEditWidget::dateSelected(
const QDate &date)
126 void DateEditWidget::resetDate()
132 void DateEditWidget::updateView()
134 if ( mDate.isValid() ) {
135 mView->setText( KGlobal::locale()->formatDate( mDate ) );
136 mClearButton->show();
138 mView->setText( QString() );
139 mClearButton->hide();
143 #include "dateeditwidget.moc"