summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt5
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt1
-rw-r--r--korganizer/komonthview.cpp14
-rw-r--r--libkdepim/kdatepicker.cpp8
-rw-r--r--microkde/kdatetbl.cpp32
5 files changed, 34 insertions, 26 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index edf7eb1..681e433 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,26 +1,31 @@
Info about the changes in new versions of KDE-Pim/Pi
+********** VERSION 2.2.6 ************
+
+KO/Pi:
+Made navigation in datepicker more userfriendly when using keyboard for scrolling.
+
********** VERSION 2.2.5 ************
Bugfixes in KO/Pi, KA/Pi and OM/Pi.
Added possibility to disable auto saving in KO/Pi.
How to disable it? Good question! Next question, please?
Added info about count of events/todos/journals to calendar info.
********** VERSION 2.2.4 ************
KO/Pi alarm applet: Made font smaller and added a dealy before starting KO/Pi to avoid problems accessing data storage when an alarm did wake up the Z.
Added 3 sec notification about a started timer.
KO/Pi:
Added export option for all data to File->Export menu.
Better management if a save error occours.
Added 15 sec delay in automatic saving when Z wake up from suspend and the automatic save timer did expire - to avoid problems accessing data storage directly after wake up.
Fix for displaying month names of an utf8 translated language (like Russian). I hope a Russian version of KO/Pi will be available soon.
Added duration info about multiday events.
Changed behaviour of "Set complete" in Todo viewer: Now Todo viewer closes not automatically.
KA/Pi:
Added for vCard import the option to import contact data in Latin1 format.
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 288ce4b..767e243 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1557,25 +1557,24 @@
{ "Conflict detection","Konflikterkennung" },
{ "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" },
{ "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." },
{ "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" },
{ "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." },
{ " Yes, close "," Ja, beenden " },
{ "Export All Data","Exportiere alle Daten" },
{ "You can save all data\nto another file via\nFile->Export->Export All Data","Sie können alle Daten in\neine andere Datei speichern unter\nDatei->Exportiere->Exportiere alle Daten" },
{ "<p><b>Duration:</b> %1 days</p>","<p><b>Dauer:</b> %1 Tage</p>" },
{ " (Duration: %1 days)"," (Dauer: %1 Tage)" },
{ "Autosave enabled!","Auto-Speichern angeschaltet!" },
{ "Autosave disabled! Save timer stopped!","Auto-Speichern ausgeschaltet! Speicher Timer gestoppt!" },
{ "Autosave disabled!","Auto-Speichern ist ausgeschaltet!" },
{ "Yes, Save!","Ja, Speichern!" },
{ "Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?","Der Kalender wurde verändert,\naber Auto-Speichern ist\nabgeschaltet. Möchten Sie\ndie Daten speichern?" },
{ "<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n","<p><b>C+ctrl</b>: Auto-Speichern ab/anschalten</p>\n" },
{ "<br>The calendar contains<br><b>%1 events<br>%2 todos<br>%3 journals</b>","<br>Der Kalender enthält<br><b>%1 Termine<br>%2 Todos<br>%3 Journale</b>" },
{ "","" },
{ "","" },
{ "","" },
{ "","" },
{ "","" },
{ "","" },
{ "","" },
-{ "","" },
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 610aae6..85e9166 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -716,55 +716,63 @@ int MonthViewCell::insertEvent(Event *event)
prefix ="->" ;multiday = 1;
}
else {
int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
if ( event->recursOn( mDate.addDays( -days)) ) {
prefix ="<-" ;multiday = 3;
}
}
} else {
if (mDate == event->dtStart().date()) {
prefix ="->" ;multiday = 1;
} else if (mDate == event->dtEnd().date()) {
prefix ="<-" ;multiday = 3;
}
}
if ( !event->doesFloat() ) {
if ( mDate == event->dtStart().date () )
time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
else if ( mDate == event->dtEnd().date () )
time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
}
text = time + event->summary();
+
+ int dur = 0;
+ if ( event->doesFloat() ) {
+ dur = event->dtStart().daysTo(event->dtEnd())+1;
+
+ }
if ( useToolTips ) {
mToolTipText += prefix + text;
- if ( event->doesFloat() ) {
- mToolTipText += i18n(" (Duration: %1 days)" ).arg ( event->dtStart().daysTo(event->dtEnd())+1);
-
+ if ( dur ) {
+ mToolTipText += i18n(" (Duration: %1 days)" ).arg ( dur );
}
}
+ if ( dur ) {
+ text += " ("+ QString::number( dur ) + i18n(" days" ) + ")";
+ }
} else {
if (event->doesFloat()) {
text = event->summary();
if ( useToolTips )
mToolTipText += text;
}
else {
text = KGlobal::locale()->formatTime(event->dtStart().time());
text += " " + event->summary();
if ( useToolTips )
mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
}
}
if ( useToolTips && ! event->location().isEmpty() ) {
mToolTipText += " (" + event->location() +")";
}
MonthViewItem *item ;
if ( mAvailItemList.count() ) {
item = mAvailItemList.first();
mAvailItemList.remove( item );
item->recycle( event, text );
} else {
item = new MonthViewItem( event, text );
diff --git a/libkdepim/kdatepicker.cpp b/libkdepim/kdatepicker.cpp
index 25b4e81..68ef943 100644
--- a/libkdepim/kdatepicker.cpp
+++ b/libkdepim/kdatepicker.cpp
@@ -131,48 +131,52 @@ KDatePicker::resizeEvent(QResizeEvent*)
// ----- place the buttons:
x=0;
for(count=0; count<NoOfButtons; ++count)
{
w=sizes[count].width();
buttons[count]->setGeometry(x, 0, w, buttonHeight);
x+=w;
}
// ----- place the line edit for direct input:
sizes[0]=lineDate->sizeHint();
//line->setGeometry(0, height()-sizes[0].height(), width(), sizes[0].height());
int todaywid = todayBut->sizeHint().width();
todayBut->setGeometry(0, height()-sizes[0].height(),todaywid, sizes[0].height());
lineDate->setGeometry(0+todaywid, height()-sizes[0].height(), width()-todaywid, sizes[0].height());
// ----- adjust the table:
table->setGeometry(0, buttonHeight, width(),
height()-buttonHeight-sizes[0].height());
}
void
KDatePicker::dateChangedSlot(QDate date)
{
lineDate->setDate( date );//(KGlobal::locale()->formatDate(date, true));
//line->setText(KGlobal::locale()->formatDate(date, true));
+ QString temp;
+ selectMonth->setText(KGlobal::locale()->monthName(date.month(), false));
+ temp.setNum(date.year());
+ selectYear->setText(temp);
emit(dateChanged(date));
}
void
KDatePicker::tableClickedSlot()
{
emit(dateSelected(table->getDate()));
emit(tableClicked());
}
const QDate&
KDatePicker::getDate() const
{
return table->getDate();
}
const QDate &
KDatePicker::date() const
{
return table->getDate();
}
void KDatePicker::goToday()
@@ -454,37 +458,41 @@ KDatePicker::setFontSize(int s)
}
void KDatePicker::virtual_hook( int id, void* data )
{ /*BASE::virtual_hook( id, data );*/ }
void KDatePicker::keyPressEvent ( QKeyEvent * e )
{
switch ( e->key() ) {
case Qt::Key_Right:
monthForwardClicked();
break;
case Qt::Key_Left:
monthBackwardClicked();
break;
case Qt::Key_Down:
yearForwardClicked();
break;
case Qt::Key_Up:
yearBackwardClicked();
break;
+ case Qt::Key_T:
+ goToday();
+ break;
+
case Qt::Key_Return:
case Qt::Key_Enter:
case Qt::Key_Space:
tableClickedSlot();
break;
case Qt::Key_Escape:
e->ignore();
break;
default:
break;
}
}
diff --git a/microkde/kdatetbl.cpp b/microkde/kdatetbl.cpp
index 4271b55..353f78d 100644
--- a/microkde/kdatetbl.cpp
+++ b/microkde/kdatetbl.cpp
@@ -219,89 +219,77 @@ KDateTable::keyPressEvent( QKeyEvent *e )
if ( day > 27 )
while ( !QDate::isValid( date.year(), date.month()-1, day ) )
day--;
setDate(QDate(date.year(), date.month()-1, day));
return;
}
if ( e->key() == Qt::Key_Next ) {
if ( date.month() == 12 ) {
KNotifyClient::beep();
return;
}
int day = date.day();
if ( day > 27 )
while ( !QDate::isValid( date.year(), date.month()+1, day ) )
day--;
setDate(QDate(date.year(), date.month()+1, day));
return;
}
*/
int dayoff = KGlobal::locale()->weekStartsMonday() ? 1 : 0;
int temp=firstday+date.day()-dayoff;
int pos = temp;
bool irgnore = true;
+ int add = 0;
if ( e->state() != Qt::ControlButton ) {
if ( e->key() == Qt::Key_Up ) {
- pos -= 7;
+ add -= 7;
irgnore = false;
}
if ( e->key() == Qt::Key_Down ) {
- pos += 7;
+ add += 7;
irgnore = false;
}
if ( e->key() == Qt::Key_Left ) {
- pos--;
+ --add;
irgnore = false;
}
if ( e->key() == Qt::Key_Right ) {
- pos++;
+ ++add;
irgnore = false;
}
}
- if ( irgnore )
+ if ( irgnore ) {
e->ignore();
-
- if(pos+dayoff<=firstday)
- { // this day is in the previous month
- KNotifyClient::beep();
- return;
- }
- if(firstday+numdays<pos+dayoff)
- { // this date is in the next month
- KNotifyClient::beep(i18n( "Month not long enough" ));
- return;
- }
-
- if ( pos == temp )
return;
+ }
- setDate(QDate(date.year(), date.month(), pos-firstday+dayoff));
+ pos += add;
+ setDate(date.addDays( add ));
updateCell(temp/7+1, temp%7); // Update the previously selected cell
updateCell(pos/7+1, pos%7); // Update the selected cell
- assert(QDate(date.year(), date.month(), pos-firstday+dayoff).isValid());
-
-
+
}
void
KDateTable::viewportResizeEvent(QResizeEvent * e)
{
QGridView::viewportResizeEvent(e);
setCellWidth(viewport()->width()/7);
setCellHeight(viewport()->height()/7);
}
void
KDateTable::setFontSize(int size)
{
int count;
QRect rect;
// ----- store rectangles:
fontsize=size;
QFont _font = font();
_font.setPointSize(fontsize);
setFont( _font );
_font.setBold( true );
QFontMetrics metrics(_font);