-rw-r--r-- | korganizer/kofilterview.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h index 3ab316f..945947a 100644 --- a/korganizer/kofilterview.h +++ b/korganizer/kofilterview.h @@ -1,85 +1,144 @@ /* This file is part of KOrganizer. Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 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 the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #ifndef KOFILTERVIEW_H #define KOFILTERVIEW_H #include <qstring.h> #include <qcheckbox.h> +#include <qlayout.h> +#include <qlabel.h> #include <qscrollview.h> #include <qpushbutton.h> #include <kconfig.h> #include "kofilterview_base.h" #include <libkcal/calfilter.h> +#include <kurlrequester.h> +#include <klineedit.h> +#include <kglobal.h> +#include <kmessagebox.h> + class QGridLayout; using namespace KCal; + +class KONewCalPrefs : public QDialog +{ + Q_OBJECT + public: + KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : + QDialog( parent, name, true ) + { + setCaption( i18n("Add new Calendar") ); + QVBoxLayout* lay = new QVBoxLayout( this ); + lay->setSpacing( 3 ); + lay->setMargin( 3 ); + QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); + lay->addWidget( lab ); + nameE = new KLineEdit( this ); + lay->addWidget( nameE ); + lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); + lay->addWidget( lab ); + url = new KURLRequester ( this ); + lay->addWidget( url ); + QPushButton * ok = new QPushButton( i18n("OK"), this ); + lay->addWidget( ok ); + QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); + lay->addWidget( cancel ); + connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); + connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); + setMinimumWidth( 220 ); + resize(sizeHint() ); + } + + QString calName() { return nameE->text(); } + QString calFileName() { return url->url(); } + +public slots: +void checkValid() { + if ( nameE->text().isEmpty() ) { + KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") ); + nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () )); + return; + } + if ( url->url().isEmpty() ) { + KMessageBox::information( this, i18n("Sorry, the file name is empty!") ); + return; + } + accept(); +} + +public: + KLineEdit* nameE; + KURLRequester *url; +}; + class KOCalButton : public QPushButton { Q_OBJECT public: KOCalButton( QWidget *parent=0, const char *name=0 ) : QPushButton( parent, name) { connect( this, SIGNAL( clicked() ), SLOT( bottonClicked() )); mNumber = -1; setFocusPolicy(NoFocus); } void setNum ( int num ) {mNumber = num; } signals: void selectNum ( int ); private: int mNumber; void keyPressEvent ( QKeyEvent * e ) { e->ignore(); } private slots : void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } }; class KOCalCheckButton : public QCheckBox { Q_OBJECT public: KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : QCheckBox( parent, name) { connect( this, SIGNAL( toggled ( bool ) ), SLOT( bottonClicked( bool ) )); mNumber = -1; setFocusPolicy(NoFocus); //setMaximumWidth( 10 ); } void setNum ( int num ) {mNumber = num; } signals: void selectNum ( int, bool ); private: int mNumber; void keyPressEvent ( QKeyEvent * e ) { e->ignore(); } |