summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeventpopupmenu.cpp173
-rw-r--r--korganizer/koeventpopupmenu.h3
-rw-r--r--korganizer/kolistview.cpp20
-rw-r--r--korganizer/searchdialog.cpp4
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));