-rw-r--r-- | korganizer/koeventpopupmenu.cpp | 173 | ||||
-rw-r--r-- | korganizer/koeventpopupmenu.h | 3 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 20 | ||||
-rw-r--r-- | korganizer/searchdialog.cpp | 4 |
4 files changed, 121 insertions, 79 deletions
diff --git a/korganizer/koeventpopupmenu.cpp b/korganizer/koeventpopupmenu.cpp index 90caaf4..41d331a 100644 --- a/korganizer/koeventpopupmenu.cpp +++ b/korganizer/koeventpopupmenu.cpp @@ -1,27 +1,27 @@ /* - This file is part of KOrganizer. - Copyright (c) 2000,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. + This file is part of KOrganizer. + Copyright (c) 2000,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. */ #include <qcursor.h> #include <klocale.h> #include <kdebug.h> @@ -31,55 +31,80 @@ #include "koeventpopupmenu.h" #include "koprefs.h" KOEventPopupMenu::KOEventPopupMenu(): QPopupMenu() { - mCurrentIncidence = 0; - mHasAdditionalItems = false; + mCurrentIncidence = 0; + mHasAdditionalItems = false; - mSingleOnlyItems.append( insertItem (i18n("&Show"),this,SLOT(popupShow()))); - mEditOnlyItems.append(insertItem (i18n("&Edit..."),this,SLOT(popupEdit()))); - mEditOnlyItems.append(insertItem (i18n("&Delete"), - this,SLOT(popupDelete()))); - mEditOnlyItems.append(insertItem (i18n("&Clone..."), - this,SLOT(popupClone()))); - mEditOnlyItems.append(insertItem (i18n("&Move..."), - this,SLOT(popupMove()))); + mSingleOnlyItems.append( insertItem (i18n("&Show"),this,SLOT(popupShow()))); + mEditOnlyItems.append(insertItem (i18n("&Edit..."),this,SLOT(popupEdit()))); + mEditOnlyItems.append(insertItem (i18n("&Delete"), + this,SLOT(popupDelete()))); + mEditOnlyItems.append(insertItem (i18n("&Clone..."), + this,SLOT(popupClone()))); + mEditOnlyItems.append(insertItem (i18n("&Move..."), + this,SLOT(popupMove()))); #ifndef DESKTOP_VERSION - mEditOnlyItems.append(insertItem (i18n("&Beam..."), - this,SLOT(popupBeam()))); + mEditOnlyItems.append(insertItem (i18n("&Beam..."), + this,SLOT(popupBeam()))); #endif - mEditOnlyItems.append(insertItem (i18n("&Toggle Cancel"), - this,SLOT(popupCancel()))); - isDisabled = false; - mCatPopup = new QPopupMenu ( this ); - mCatPopup->setCheckable (true); - connect(mCatPopup,SIGNAL( aboutToShow ()), this ,SLOT( fillCatPopup())); - connect(mCatPopup,SIGNAL( activated ( int ) ), this ,SLOT( computeCatPopup( int ))); - mEditOnlyItems.append(insertItem (i18n("Categories"),mCatPopup )); - QValueList<int>::Iterator it; - for( it = mEditOnlyItems.begin(); it != mEditOnlyItems.end(); ++it ) { - mSingleOnlyItems.append(*it); - } + mEditOnlyItems.append(insertItem (i18n("&Toggle Cancel"), + this,SLOT(popupCancel()))); + isDisabled = false; + mCatPopup = new QPopupMenu ( this ); + mCatPopup->setCheckable (true); + connect(mCatPopup,SIGNAL( aboutToShow ()), this ,SLOT( fillCatPopup())); + connect(mCatPopup,SIGNAL( activated ( int ) ), this ,SLOT( computeCatPopup( int ))); + mCalPopup = new QPopupMenu ( this ); + mCalPopup->setCheckable (true); + connect(mCalPopup,SIGNAL( aboutToShow ()), this ,SLOT( fillCalPopup())); + connect(mCalPopup,SIGNAL( activated ( int ) ), this ,SLOT( computeCalPopup( int ))); + mEditOnlyItems.append(insertItem (i18n("Categories"),mCatPopup )); + mEditOnlyItems.append(insertItem (i18n("Calendar"),mCalPopup )); + QValueList<int>::Iterator it; + for( it = mEditOnlyItems.begin(); it != mEditOnlyItems.end(); ++it ) { + mSingleOnlyItems.append(*it); + } } void KOEventPopupMenu::enableDefault( bool enable ) { isDisabled = !enable; QValueList<int>::Iterator it; for( it = mSingleOnlyItems.begin(); it != mSingleOnlyItems.end(); ++it ) { setItemEnabled(*it,enable); } } +void KOEventPopupMenu::fillCalPopup() // CAL +{ + mCalPopup->clear(); + if (!mCurrentIncidence) return; + KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); + while ( kkf ) { + int index = mCalPopup->insertItem( kkf->mName, kkf->mCalNumber); + if ( kkf->mErrorOnLoad || kkf->isReadOnly ) + mCalPopup->setItemEnabled( index, false ); + mCalPopup->setItemChecked (index, kkf->mCalNumber == mCurrentIncidence->calID()); + kkf = KOPrefs::instance()->mCalendars.next(); + } +} +void KOEventPopupMenu::computeCalPopup( int index ) // CAL +{ + if (!mCurrentIncidence) return; + mCurrentIncidence->setCalID( index ); + emit categoryChanged( mCurrentIncidence ); +} void KOEventPopupMenu::fillCatPopup() { mCatPopup->clear(); + if (!mCurrentIncidence) return; QStringList checkedCategories = mCurrentIncidence->categories(); int index = 0; for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); it != KOPrefs::instance()->mCustomCategories.end (); ++it) { mCatPopup->insertItem (*it, index ); @@ -87,82 +112,84 @@ void KOEventPopupMenu::fillCatPopup() mCatPopup->setItemChecked (index, true); } ++index; } } void KOEventPopupMenu::computeCatPopup( int index ) -{ +{ + if (!mCurrentIncidence) return; QStringList categories = mCurrentIncidence->categories(); QString colcat = categories.first(); if (categories.find (KOPrefs::instance()->mCustomCategories[index]) != categories.end ()) - categories.remove (KOPrefs::instance()->mCustomCategories[index]); + categories.remove (KOPrefs::instance()->mCustomCategories[index]); else categories.insert (categories.end(), KOPrefs::instance()->mCustomCategories[index]); categories.sort (); if ( !colcat.isEmpty() ) { if ( categories.find ( colcat ) != categories.end () ) { categories.remove( colcat ); categories.prepend( colcat ); } } - mCurrentIncidence->setCategories( categories ); + mCurrentIncidence->setCategories( categories ); emit categoryChanged( mCurrentIncidence ); } void KOEventPopupMenu::showIncidencePopup(Incidence *incidence) { - mCurrentIncidence = incidence; + if ( !incidence) return; + mCurrentIncidence = incidence; - if (mCurrentIncidence) { - // Enable/Disabled menu items only valid for editable events. - if ( !isDisabled ) { - QValueList<int>::Iterator it; - for( it = mEditOnlyItems.begin(); it != mEditOnlyItems.end(); ++it ) { - setItemEnabled(*it,!mCurrentIncidence->isReadOnly()); - } - } - popup(QCursor::pos()); - } + if (mCurrentIncidence) { + // Enable/Disabled menu items only valid for editable events. + if ( !isDisabled ) { + QValueList<int>::Iterator it; + for( it = mEditOnlyItems.begin(); it != mEditOnlyItems.end(); ++it ) { + setItemEnabled(*it,!mCurrentIncidence->isReadOnly()); + } + } + popup(QCursor::pos()); + } } void KOEventPopupMenu::addAdditionalItem(const QIconSet &icon,const QString &text, - const QObject *receiver, const char *member, - bool editOnly) + const QObject *receiver, const char *member, + bool editOnly) { - if (!mHasAdditionalItems) { - mHasAdditionalItems = true; - insertSeparator(); - } - int id = insertItem(icon,text,receiver,member); - if (editOnly) mEditOnlyItems.append(id); + if (!mHasAdditionalItems) { + mHasAdditionalItems = true; + insertSeparator(); + } + int id = insertItem(icon,text,receiver,member); + if (editOnly) mEditOnlyItems.append(id); } void KOEventPopupMenu::popupShow() { - if (mCurrentIncidence) emit showIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit showIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupEdit() { - if (mCurrentIncidence) emit editIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit editIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupDelete() { - if (mCurrentIncidence) emit deleteIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit deleteIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupClone() { - if (mCurrentIncidence) emit cloneIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit cloneIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupCancel() { - if (mCurrentIncidence) emit cancelIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit cancelIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupMove() { - if (mCurrentIncidence) emit moveIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit moveIncidenceSignal(mCurrentIncidence); } void KOEventPopupMenu::popupBeam() { - if (mCurrentIncidence) emit beamIncidenceSignal(mCurrentIncidence); + if (mCurrentIncidence) emit beamIncidenceSignal(mCurrentIncidence); } diff --git a/korganizer/koeventpopupmenu.h b/korganizer/koeventpopupmenu.h index 3d8b595..e28745b 100644 --- a/korganizer/koeventpopupmenu.h +++ b/korganizer/koeventpopupmenu.h @@ -53,12 +53,14 @@ class KOEventPopupMenu : public QPopupMenu { void popupClone(); void popupCancel(); void popupMove(); void popupBeam(); void fillCatPopup(); void computeCatPopup( int ); + void fillCalPopup(); + void computeCalPopup( int ); signals: void editIncidenceSignal(Incidence *); void showIncidenceSignal(Incidence *); void deleteIncidenceSignal(Incidence *); void cloneIncidenceSignal(Incidence *); @@ -72,9 +74,10 @@ class KOEventPopupMenu : public QPopupMenu { bool mHasAdditionalItems; QValueList<int> mEditOnlyItems; QValueList<int> mSingleOnlyItems; bool isDisabled; QPopupMenu *mCatPopup; + QPopupMenu *mCalPopup; }; #endif diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index db3f802..cdcbbf0 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -301,53 +301,63 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, SLOT(deleteAll())); mPopupMenu->insertItem(i18n("Selection"), selPopup ); mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Hide all selected"),this, SLOT(hideAll()),true); - mPopupMenu->insertSeparator(); + selPopup->insertSeparator(); #ifdef DESKTOP_VERSION + mPopupMenu->insertSeparator(); mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Print complete list"),this, SLOT(printList()),true); - mPopupMenu->insertSeparator(); #endif mCalPopup = new QPopupMenu ( this ); - mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); + selPopup->insertItem( i18n("Set Calendar"), mCalPopup ); + selPopup->insertItem(i18n("Set categories")+"...",this, + SLOT(setCat()) ); + selPopup->insertItem( i18n("Set alarm..."),this, + SLOT(setAlarm())); +#if 0 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Set categories")+"...",this, SLOT(setCat()),true); mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Set alarm..."),this, SLOT(setAlarm()),true); +#endif QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, SLOT( populateCalPopup() )); QObject::connect(mCalPopup,SIGNAL(activated( int )),this, SLOT( setCalendar( int ) )); QObject::connect(mPopupMenu,SIGNAL(categoryChanged( Incidence * )),this, SLOT( catChanged( Incidence * ) )); QPopupMenu * exportPO = new QPopupMenu ( this ); - mPopupMenu->insertItem( i18n("Export"), exportPO ); + selPopup->insertItem( i18n("Export"), exportPO ); exportPO->insertItem( i18n("As iCal (ics) file..."),this, SLOT(saveToFile())); exportPO->insertItem( i18n("As vCal (vcs) file..."),this, SLOT(saveToFileVCS())); exportPO->insertItem( i18n("Journal/Details..."),this, SLOT(saveDescriptionToFile())); // mPopupMenu->insertSeparator(); // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), // i18n("Add Categ. to selected..."),this, // SLOT(addCat()),true); //mPopupMenu->insertSeparator(); #ifndef DESKTOP_VERSION - mPopupMenu->insertSeparator(); + selPopup->insertSeparator(); + selPopup->insertItem( i18n("Beam via IR"),this, + SLOT(beamSelected())); +#if 0 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Beam via IR"),this, SLOT(beamSelected()),true); #endif +#endif /* mPopupMenu = new QPopupMenu; mPopupMenu->insertItem(i18n("Edit Event"), this, SLOT (editEvent())); mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, SLOT (deleteEvent())); diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp index d0865c3..efe8774 100644 --- a/korganizer/searchdialog.cpp +++ b/korganizer/searchdialog.cpp @@ -121,13 +121,15 @@ SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent) // Date range // QGroupBox *rangeGroup = new QGroupBox(1,Horizontal,i18n("Date Range"), // topFrame); // layout->addWidget(rangeGroup); QWidget *rangeWidget = new QWidget(topFrame); - QHBoxLayout *rangeLayout = new QHBoxLayout(rangeWidget,0,KDialog::spacingHint()-3); + int space = KDialog::spacingHint(); + if ( QApplication::desktop()->width() <= 240 ) space = 1; + QHBoxLayout *rangeLayout = new QHBoxLayout(rangeWidget,0,space); rangeLayout->addWidget(new QLabel(i18n("From:"),rangeWidget)); mStartDate = new KDateEdit(rangeWidget); rangeLayout->addWidget(mStartDate); rangeLayout->addWidget(new QLabel(i18n("To:"),rangeWidget)); mEndDate = new KDateEdit(rangeWidget); mEndDate->setDate(QDate::currentDate().addDays(365)); |