summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kolistview.cpp147
-rw-r--r--korganizer/kolistview.h7
-rw-r--r--korganizer/koprefs.cpp2
-rw-r--r--korganizer/koviewmanager.cpp2
4 files changed, 46 insertions, 112 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index e5e3704..4c815d8 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -287,22 +287,22 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
mListView->setColumnWidthMode( iii, QListView::Manual );
QBoxLayout *layoutTop = new QVBoxLayout(this);
layoutTop->addWidget(mListView);
mListView->setFont ( KOPrefs::instance()->mListViewFont );
mPopupMenu = eventPopup();
- mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Select all"),this,
- SLOT(allSelection()),true);
- mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Deselect all"),this,
- SLOT(clearSelection()),true);
- mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Delete all selected"),this,
- SLOT(deleteAll()),true);
+ QPopupMenu* selPopup = new QPopupMenu ( this );
+ mPopupMenu->insertSeparator();
+ selPopup->insertItem(i18n("All"),this,
+ SLOT(allSelection()));
+ selPopup->insertItem(i18n("None"),this,
+ SLOT(clearSelection()));
+ selPopup->insertItem(i18n("Delete selected..."),this,
+ SLOT(deleteAll()));
+ mPopupMenu->insertItem(i18n("Selection"), selPopup );
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Hide all selected"),this,
SLOT(hideAll()),true);
mPopupMenu->insertSeparator();
#ifdef DESKTOP_VERSION
@@ -311,42 +311,39 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
SLOT(printList()),true);
mPopupMenu->insertSeparator();
#endif
mCalPopup = new QPopupMenu ( this );
mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup );
+ mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
+ i18n("Set categories")+"...",this,
+ SLOT(setCat()),true);
+ mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
+ i18n("Set alarm..."),this,
+ SLOT(setAlarm()),true);
QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this,
SLOT( populateCalPopup() ));
QObject::connect(mCalPopup,SIGNAL(activated( int )),this,
SLOT( setCalendar( int ) ));
QPopupMenu * exportPO = new QPopupMenu ( this );
- mPopupMenu->insertItem( i18n("Export selected"), exportPO );
+ mPopupMenu->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->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Set Categ. for selected..."),this,
- SLOT(setCat()),true);
+ // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
+ // i18n("Add Categ. to selected..."),this,
+ // SLOT(addCat()),true);
//mPopupMenu->insertSeparator();
- mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Set alarm for selected..."),this,
- SLOT(setAlarm()),true);
-
-
-
#ifndef DESKTOP_VERSION
mPopupMenu->insertSeparator();
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
- i18n("Beam selected via IR"),this,
+ i18n("Beam via IR"),this,
SLOT(beamSelected()),true);
#endif
/*
mPopupMenu = new QPopupMenu;
mPopupMenu->insertItem(i18n("Edit Event"), this,
SLOT (editEvent()));
@@ -435,13 +432,13 @@ void KOListView::setCalendar( int c )
}
void KOListView::populateCalPopup()
{
mCalPopup->clear();
KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
while ( kkf ) {
- int index = mCalPopup->insertItem( kkf->mName, kkf->mCalNumber);
+ int index = mCalPopup->insertItem( kkf->mName+"...", kkf->mCalNumber);
if ( kkf->mErrorOnLoad || kkf->isReadOnly )
mCalPopup->setItemEnabled( index, false );
kkf = KOPrefs::instance()->mCalendars.next();
}
}
void KOListView::updateList()
@@ -451,27 +448,32 @@ void KOListView::updateList()
}
void KOListView::clearList()
{
clear ();
}
-void KOListView::addCat( )
-{
- setCategories( false );
-}
+
void KOListView::setCat()
{
- setCategories( true );
+
+ bool set = true;
+ int result = KMessageBox::warningYesNoCancel(this,
+ i18n("Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?"),
+ i18n("Set categories"),
+ i18n("Add"),
+ i18n("Reset"));
+ if (result == KMessageBox::Cancel) return;
+ if (result == KMessageBox::Yes) set = false;
+ setCategories( set );
}
void KOListView::setAlarm()
{
KOAlarmPrefs kap( this);
if ( !kap.exec() )
return;
- QStringList itemList;
QPtrList<KOListViewItem> sel ;
QListViewItem *qitem = mListView->firstChild ();
while ( qitem ) {
if ( qitem->isSelected() ) {
Incidence* inc = ((KOListViewItem *) qitem)->data();
if ( inc->typeID() != journalID ) {
@@ -540,97 +542,35 @@ void KOListView::setCategories( bool removeOld )
if (! csd->exec()) {
delete csd;
return;
}
QStringList catList = csd->selectedCategories();
delete csd;
- // if ( catList.count() == 0 )
- // return;
- //catList.sort();
- QString categoriesStr = catList.join(",");
- int i;
- QStringList itemList;
- QPtrList<KOListViewItem> sel ;
- QListViewItem *qitem = mListView->firstChild ();
- while ( qitem ) {
- if ( qitem->isSelected() ) {
- sel.append(((KOListViewItem *)qitem));
- }
- qitem = qitem->nextSibling();
- }
- KOListViewItem * item, *temp;
- item = sel.first();
- if( item ) {
- Incidence* inc = item->data() ;
- bool setSub = false;
- if( inc->typeID() == todoID && sel.count() == 1 && inc->relations().count() > 0 ) {
- int result = KMessageBox::warningYesNoCancel(this,
- i18n("The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?").arg( inc->summary().left ( 25 ) ),
- i18n("Todo has subtodos"),
- i18n("Yes"),
- i18n("No"));
- if (result == KMessageBox::Cancel) item = 0;
- if (result == KMessageBox::Yes) setSub = true;
- }
- while ( item ) {
- inc = item->data();
+ QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;
+ Incidence* inc = delSel.first();
+ while ( inc ) {
if ( removeOld ) {
- inc->setCategories( catList, setSub );
+ inc->setCategories( catList, false );
} else {
- inc->addCategories( catList, setSub );
+ inc->addCategories( catList, false );
}
+ KOListViewItem* item = getItemForEvent(inc);
+ if (item) {
ListItemVisitor v(item, mStartDate );
inc->accept(v);
- item = sel.next();
}
+ inc = delSel.next();
}
QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
}
void KOListView::beamSelected()
{
QPtrList<Incidence> delSel = getSelectedIncidences() ;
- int icount = delSel.count();
- if ( icount ) {
+ if ( delSel.count() )
emit beamIncidenceList( delSel );
- return;
- QString fn ;
- fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs";
- QString mes;
- bool createbup = true;
- if ( createbup ) {
- QString description = "\n";
- CalendarLocal* cal = new CalendarLocal();
- cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
- Incidence *incidence = delSel.first();
- while ( incidence ) {
- Incidence *in = incidence->clone();
- description += in->summary() + "\n";
- cal->addIncidence( in );
- incidence = delSel.next();
- }
- FileStorage storage( cal, fn, new VCalFormat );
- storage.save();
- delete cal;
- mes = i18n("KO/Pi: Ready for beaming");
- topLevelWidget()->setCaption(mes);
-
-#ifndef DESKTOP_VERSION
- Ir *ir = new Ir( this );
- connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
- ir->send( fn, description, "text/x-vCalendar" );
-#endif
- }
- }
-}
-void KOListView::beamDone( Ir *ir )
-{
-#ifndef DESKTOP_VERSION
- delete ir;
-#endif
- topLevelWidget()->setCaption(i18n("KO/Pi:Beaming done"));
}
void KOListView::saveDescriptionToFile()
{
int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"),
@@ -1103,15 +1043,14 @@ void KOListView::changeEventDisplay(Event *event, int action)
case KOGlobals::EVENTADDED:
addIncidence( event );
break;
case KOGlobals::EVENTEDITED:
item = getItemForEvent(event);
if (item) {
- mUidDict.remove( event->uid() );
- delete item;
- addIncidence( event );
+ ListItemVisitor v(item, mStartDate );
+ ((Incidence*)event)->accept(v);
}
break;
case KOGlobals::EVENTDELETED:
item = getItemForEvent(event);
if (item) {
mUidDict.remove( event->uid() );
diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h
index bcef0f0..a54b550 100644
--- a/korganizer/kolistview.h
+++ b/korganizer/kolistview.h
@@ -27,17 +27,12 @@
#include <qlistview.h>
#include <qmap.h>
#include <qdict.h>
#include <klistview.h>
-#ifndef DESKTOP_VERSION
-#include <qtopia/ir.h>
-#else
-#define Ir char
-#endif
#include <libkcal/incidence.h>
#include "koeventview.h"
#include "customlistviewitem.h"
using namespace KCal;
@@ -276,22 +271,20 @@ class KOListView : public KOEventView
virtual void showDates(const QDate &start, const QDate &end);
virtual void showEvents(QPtrList<Event> eventList);
void clearSelection();
void allSelection();
void clear();
- void beamDone( Ir *ir );
void showDates();
void hideDates();
void deleteAll();
void saveToFile();
void saveToFileVCS();
void saveDescriptionToFile();
void beamSelected();
void updateConfig();
- void addCat();
void setCat();
void setAlarm();
void setCategories( bool removeOld );
void changeEventDisplay(Event *, int);
void defaultItemAction(QListViewItem *item);
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 02d7aae..6337ca5 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -226,13 +226,13 @@ KOPrefs::KOPrefs() :
addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
addItemBool("UseAppColors",&mUseAppColors,false);
KPrefs::setCurrentGroup("Views");
- addItemBool("Block Popup Menu",&mBlockPopupMenu,true);
+ addItemBool("Block Popup Menu",&mBlockPopupMenu,false);
addItemBool("Show Date Navigator",&mShowDateNavigator,true);
addItemInt("Hour Size",&mHourSize,8);
addItemBool("Show Daily Recurrences",&mDailyRecur,true);
addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index bd191d8..792a7b8 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -452,12 +452,14 @@ void KOViewManager::showListView()
connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
mMainView, SLOT ( moveIncidence( Incidence * ) ) );
connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
mMainView, SLOT ( beamIncidence( Incidence * ) ) );
+ connect( mListView, SIGNAL( beamIncidenceList( QPtrList<Incidence> ) ),
+ mMainView, SLOT ( beamIncidenceList( QPtrList<Incidence> ) ) );
}
// bool temp = mFlagShowNextxDays;
//globalFlagBlockPainting = true;
globalFlagBlockAgenda = 1;
if ( KOPrefs::instance()->mListViewMonthTimespan ) {
mMainView->setBlockShowDates( true );