22 #include "dateeditwidget.h"
24 #include "kdatepickerpopup_p.h"
26 #include <kdatepicker.h>
29 #include <klocalizedstring.h>
31 #include <QContextMenuEvent>
32 #include <QHBoxLayout>
34 #include <QToolButton>
36 DateView::DateView( QWidget *parent )
39 setTextInteractionFlags( Qt::TextSelectableByMouse );
40 setFrameShape( QFrame::StyledPanel );
41 setFrameShadow( QFrame::Sunken );
44 void DateView::contextMenuEvent( QContextMenuEvent *event )
46 if ( text().isEmpty() ) {
51 menu.addAction( i18n(
"Remove" ),
this, SLOT(emitSignal()) );
53 menu.exec( event->globalPos() );
56 void DateView::emitSignal()
61 DateEditWidget::DateEditWidget( Type type, QWidget *parent )
62 : QWidget( parent ), mReadOnly( false )
64 QHBoxLayout *layout =
new QHBoxLayout(
this );
65 layout->setMargin( 0 );
68 layout->addWidget( mView );
70 mClearButton =
new QToolButton;
71 if ( layoutDirection() == Qt::LeftToRight ) {
72 mClearButton->setIcon( KIcon( QLatin1String(
"edit-clear-locationbar-rtl" ) ) );
74 mClearButton->setIcon( KIcon( QLatin1String(
"edit-clear-locationbar-ltr" ) ) );
76 layout->addWidget( mClearButton );
78 mSelectButton =
new QToolButton;
79 mSelectButton->setPopupMode( QToolButton::InstantPopup );
81 case General: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-day" ) ) );
break;
82 case Birthday: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-birthday" ) ) );
break;
83 case Anniversary: mSelectButton->setIcon( KIcon( QLatin1String(
"view-calendar-wedding-anniversary" ) ) );
break;
86 layout->addWidget( mSelectButton );
89 mSelectButton->setMenu( mMenu );
91 connect( mClearButton, SIGNAL(clicked()), SLOT(resetDate()) );
92 connect( mMenu, SIGNAL(dateChanged(QDate)), SLOT(dateSelected(QDate)) );
93 connect( mView, SIGNAL(resetDate()), SLOT(resetDate()) );
98 DateEditWidget::~DateEditWidget()
102 void DateEditWidget::setDate(
const QDate &date )
105 mMenu->setDate( mDate );
109 QDate DateEditWidget::date()
const
114 void DateEditWidget::setReadOnly(
bool readOnly )
116 mReadOnly = readOnly;
118 mSelectButton->setEnabled( !readOnly );
119 mClearButton->setEnabled( !readOnly );
122 void DateEditWidget::dateSelected(
const QDate &date)
128 void DateEditWidget::resetDate()
134 void DateEditWidget::updateView()
136 if ( mDate.isValid() ) {
137 mView->setText( KGlobal::locale()->formatDate( mDate ) );
138 mClearButton->show();
140 mView->setText( QString() );
141 mClearButton->hide();