summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/korganizer/featuresKOPI.txt37
-rw-r--r--korganizer/komonthview.cpp11
2 files changed, 40 insertions, 8 deletions
diff --git a/bin/kdepim/korganizer/featuresKOPI.txt b/bin/kdepim/korganizer/featuresKOPI.txt
index ab6b224..052680e 100644
--- a/bin/kdepim/korganizer/featuresKOPI.txt
+++ b/bin/kdepim/korganizer/featuresKOPI.txt
@@ -98,114 +98,147 @@ You can quickly clone, move, cancel, beam events/todos.
When dragging a recurrent event in agenda view, this recurrence is automatically added to the list of recurrence exceptions and a non-recurring clone is created.
If you click on a day number in month view, a new edit event dialog pops up.
7)
Fast navigation:
There are many shortcuts for fast changing the view. Please refer to shortcut-key description.
If you click on the week number in month view, this week is shown in agenda view.
8)
Printing:
On the desktop version, you can print out a vertical range of the agenda view "as you see it".
And you can print on the desktop version a day view, three kinds of a week view and a month view.
You can print the todo list as well.
9)
Configuration:
There are many advanced configuration possibilities.
You can configure for every item in the toolbar, whether it should be shown or not.
There are two item sizes for toolbar icons available. (Useful for 5x00 user and small display).
You can configure the font/fontsize for every view.
10)
Language:
KO/Pi is available in English, German, French and Italian.
11)
Alarm:
For Zaurus there is an alarm applet available with additional timer functionality.
This alarm applet will make the Zaurus wake up, if the device is in suspend mode.
On the desktop (e.g. Windows) you can enable in KO/Pi the internal alarm notification,
such that you are informed about an alarm, if the program is running.
12)
What'sThis Help:
To use the What'sThis Help, you have to enable the What'sThis icon in the toolbar.
(Choose menu: ME-Toolbar or Action-Configure Toolbar ).
(You have to restart to reload the changed toolbar config).
Now click on the QWhat'sThis Icon
in the top right corner of KO/Pi.
Then click now after that on an item in the Agenda View or in the month view
you will get a detailed display of the items content.
******************************************************
B) Useful features, that are not straighforward to see
******************************************************
1) Right mouse click on Zaurus
2) Moving of items in the agenda view
3) Creating exceptions for recurring events
4) Accessing the week in agenda view from the Month view
5) Navigation in month view
6) Navigation in agenda view
+7) Monthview as week view
+8) Switching display mode in date edit
1)
Right mouse click on Zaurus:
In KO/Pi on the desktop a right mouse click will popup an menu on some items.
On the Zaurus there can only the stylus be used.
To simulte a right mouse click with the stylus press is and hold it down
for 1-2 seconds. If you release it then, a menu pops up, if there is
a menu available for this particular item.
On some places the menu pops up without releasing the stylus.
That bevaviour is not a bug, it is caused by the the behaviour of the
single left click on the item.
+
2)
Moving of items in the agenda view:
-In the aganda view you can move an item by clicking on it and holding
+In the agenda view you can move an item by clicking on it and holding
the mouse down.
You have to move the mouse some distance before the items actually
starts to move. That is not abug, that is a feature to prevent
you to make unwanted moves of the item when you click on it(and moving the
mouse only a small distance with this click)
+
3)
Creating exceptions for recurring events:
To create an exception for a recurring event,
move this event in the agenda view.
This recurrence is automatically added to the list
of recurrence exceptions and a non-recurring clone is created.
-To cancel a recurrence, create an exception by moving it
+To cancel a single recurrence, create an exception by moving it
and then move it back and cancel it.
+
4)
Accessing the week in agenda view from the month view:
In the month view there are on the left week numbers displayed.
Click on a week number to see this week in the agenda view.
+
5)
Navigation in month view:
If you select the month view with the icon in the toolbar,
the selected data range in the date navigator
is set automatically to the complete month.
(Click on month view and then the space bar to see the
selected data range in the date navigator).
If you select in the data navigator
(automatically by clicking on the month view or manually)
a date range from the first of the month to the
28.-31. of the month (the 28.-31. is valid for every month!)
then the (month-)navigation keys will select automatically the
complete next month as date range.
+
6)
Navigation in agenda view:
If you select (as an example) 4 days in the date navigator
the (week-) navigation key will select the same 4 days in the next week.
If you want to get the next 4 days after the selected 4 days selected,
you have to switch the navigation mode to "next days mode"
by clicking on the next days icons.
Now the next days from today are selected, but after selecting
4 days in the day navigator the (week-) navigation key
will select the next 4 days.
The "next days mode" is turned off by clicking on the
week view, work week view or day view button.
The agenda view has "time labels" on the left, which displays the hours from 0-24.
If you press the mouse on the timelabels and move it up/down you can
increase/decrease the agenda size quickly.
+ In the agenda view you can click on the day labels (e.g. Mon 14)
+to see the selected date in single day mode.
+If you click in single day mode the day label you will switch back to
+the previously selected date range.
+Right of the day labels is a ">" button.
+If you click this button, you will go one day ahead.
+Left of the day labels is the month name displayed.
+If you click this button, the month view is shown.
+
+7)
+Monthview as week view:
+On the left side of the monthview are the week number labels displayed.
+On top of these labels is a "W" displayed.
+If you click on this button the month view mode will switch to week view mode.
+To switch back, please click the button, which now displays a "M".
+
+8)
+Switching display mode in date edit:
+On several places is a date edit used.
+You can scroll the dates by selecting the part of the date (month, day, year)
+in the lineedit and pressing the key up/key down key.
+The display mode of a date edit is initially short date mode.
+(I.e. weekday names are not displayed)
+If you doubleclick in the lineedit the mode switches to long date mode.
+Now the weekday names are displayed for better overview.
+To switch back simply doubleclick again in the line edit.
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 9888566..6294b98 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -645,101 +645,97 @@ void MonthViewCell::enableScrollBars( bool enabled )
} else {
mItemList->setVScrollBarMode(QScrollView::AlwaysOff);
mItemList->setHScrollBarMode(QScrollView::AlwaysOff);
}
}
Incidence *MonthViewCell::selectedIncidence()
{
int index = mItemList->currentItem();
if ( index < 0 ) return 0;
MonthViewItem *item =
static_cast<MonthViewItem *>( mItemList->item( index ) );
if ( !item ) return 0;
return item->incidence();
}
QDate MonthViewCell::selectedIncidenceDate()
{
QDate qd;
int index = mItemList->currentItem();
if ( index < 0 ) return qd;
MonthViewItem *item =
static_cast<MonthViewItem *>( mItemList->item( index ) );
if ( !item ) return qd;
return item->incidenceDate();
}
void MonthViewCell::deselect()
{
mItemList->clearSelection();
enableScrollBars( false );
// updateCell();
}
void MonthViewCell::select()
{
;// updateCell();
}
void MonthViewCell::resizeEvent ( QResizeEvent * )
{
if ( !mMonthView->isUpdatePossible() )
return;
-#ifndef DESKTOP_VERSION
- if ( !isVisible() ){
- return;
- }
-#endif
+
int size = height() - mLabel->height() - 2;
if ( size > 0 )
mItemList->verticalScrollBar()->setMaximumHeight( size );
size = width() - mLabel->width() -2;
if ( size > 0 )
mItemList->horizontalScrollBar()->setMaximumWidth( size );
mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() );
//mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
}
void MonthViewCell::defaultAction( QListBoxItem *item )
{
if ( !item ) return;
MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
Incidence *incidence = eventItem->incidence();
if ( incidence ) mMonthView->defaultAction( incidence );
}
void MonthViewCell::showDay()
{
emit showDaySignal( date() );
}
void MonthViewCell::newEvent()
{
QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
emit newEventSignal( dt );
}
void MonthViewCell::cellClicked( QListBoxItem *item )
{
static QListBoxItem * lastClicked = 0;
if ( item == 0 ) {
QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
emit newEventSignal( dt );
return;
}
/*
if ( lastClicked )
if ( ! item ) {
if ( lastClicked->listBox() != item->listBox() )
lastClicked->listBox()->clearSelection();
}
*/
mMonthView->setSelectedCell( this );
if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
select();
}
@@ -796,96 +792,98 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
label->setAlignment(AlignCenter);
mDayLabels.insert( i, label );
}
bfont.setBold( false );
mWeekLabels.resize( mNumWeeks+1 );
for( i = 0; i < mNumWeeks+1; i++ ) {
KOWeekButton *label = new KOWeekButton( this );
label->setFont(bfont);
connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) );
label->setFlat(true);
QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view"));
//label->setFrameStyle(QFrame::Panel|QFrame::Raised);
//label->setLineWidth(1);
//label->setAlignment(AlignCenter);
mWeekLabels.insert( i, label );
}
mWeekLabels[mNumWeeks]->setText( i18n("W"));
int row, col;
mCells.resize( mNumCells );
for( row = 0; row < mNumWeeks; ++row ) {
for( col = 0; col < mDaysPerWeek; ++col ) {
MonthViewCell *cell = new MonthViewCell( this );
mCells.insert( row * mDaysPerWeek + col, cell );
connect( cell, SIGNAL( defaultAction( Incidence * ) ),
SLOT( defaultAction( Incidence * ) ) );
connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
SIGNAL( newEventSignal( QDateTime ) ) );
connect( cell, SIGNAL( showDaySignal( QDate ) ),
SIGNAL( showDaySignal( QDate ) ) );
}
}
connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ),
SLOT( switchView() ) );
mContextMenu = eventPopup();
// updateConfig(); //useless here
emit incidenceSelected( 0 );
}
KOMonthView::~KOMonthView()
{
delete mContextMenu;
}
void KOMonthView::switchView()
{
+ if ( selectedCell( ) )
+ selectedCell()->deselect();
mShowWeekView = !mShowWeekView;
KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
emit showNavigator( !mShowWeekView );
computeLayout();
updateConfig();
}
int KOMonthView::maxDatesHint()
{
return mNumCells;
}
int KOMonthView::currentDateCount()
{
return mNumCells;
}
QPtrList<Incidence> KOMonthView::selectedIncidences()
{
QPtrList<Incidence> selected;
if ( mSelectedCell ) {
Incidence *incidence = mSelectedCell->selectedIncidence();
if ( incidence ) selected.append( incidence );
}
return selected;
}
DateList KOMonthView::selectedDates()
{
DateList selected;
if ( mSelectedCell ) {
QDate qd = mSelectedCell->selectedIncidenceDate();
if ( qd.isValid() ) selected.append( qd );
}
return selected;
}
void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
const QDate &td)
{
#ifndef KORG_NOPRINTER
calPrinter->preview(CalPrinter::Month, fd, td);
#endif
}
@@ -1114,101 +1112,102 @@ void KOMonthView::resizeEvent(QResizeEvent * e)
}
void KOMonthView::computeLayoutWeek()
{
int daysToShow;
bool combinedSatSun = false;
if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
daysToShow = 6;
combinedSatSun = true;
}
int tWid = topLevelWidget()->size().width();
int tHei = topLevelWidget()->size().height();
int wid = size().width();//e
int hei = size().height()-1;
if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
return;
if ( wid < hei )
daysToShow = 2;
else
daysToShow = 3;
mShowSatSunComp = true;
combinedSatSun = true;
//qDebug("KOMonthView::computeLayout()------------------------------------ ");
QFontMetrics fm ( mWeekLabels[0]->font() );
int weeklabelwid = fm.width( "888" );
wid -= weeklabelwid;
int colWid = wid / daysToShow;
int lastCol = wid - ( colWid*6 );
int dayLabelHei = mDayLabels[0]->sizeHint().height();
int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
int colModulo = wid % daysToShow;
int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
//qDebug("rowmod %d ", rowModulo);
int i;
int x,y,w,h;
x= 0;
y= 0;
w = colWid;
h = dayLabelHei ;
for ( i = 0; i < 7; i++) {
if ( i && !( i % daysToShow) && i < 6) {
y += hei/(5-daysToShow);
x = 0;
+ w = colWid;
}
if ( i == daysToShow-colModulo )
++w;
if ( i >= 5 ) {
- mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
+ mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2+1,h);
x -= w/2 ;
}
else
mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
x += w;
}
x= 0;
y= dayLabelHei;
w = colWid;
h = cellHei;
for ( i = 0; i < mCells.count(); ++i) {
if ( i > 6 ) {
mCells[i]->hide();
continue;
}
w = colWid;
if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
++w;
}
if ( i == (daysToShow-1-rowModulo)*7)
++h;
if ( i >= 5 ) {
if ( i ==5 ) {
mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
x -= w ;y += h/2;
} else {
mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
y -= h/2;
}
} else
mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
x += w;
if ( x + w/2 > wid ) {
x = 0;
y += h+dayLabelHei ;
}
}
y= dayLabelHei;
h = cellHei ;
mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
for ( i = 1; i < 6; i++) {
mWeekLabels[i]->hide();
}
mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);