[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kontact/plugins/planner
From: Oral Timocin <oral.timocin () kdemail ! net>
Date: 2008-09-01 15:04:27
Message-ID: 1220281467.624799.20843.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 855831 by timocin:
some fixes of layout
M +177 -171 planner.cpp
M +3 -2 planner.h
--- trunk/KDE/kdepim/kontact/plugins/planner/planner.cpp #855830:855831
@@ -63,15 +63,21 @@
Planner::Planner( Kontact::Plugin *plugin, QWidget *parent )
: Kontact::Summary( parent ), mPlugin( plugin ), mCalendar( 0 )
{
- QVBoxLayout *mainLayout = new QVBoxLayout( this );
+// QVBoxLayout *mainLayout = new QVBoxLayout( this );
+// mainLayout->setSpacing( 3 );
+// mainLayout->setMargin( 3 );
+//
+ mLayout = new QVBoxLayout( this );
+ mLayout->setSpacing( 3 );
+ mLayout->setMargin( 3 );
QWidget *header = createHeader( this, "view-pim-summary", i18n( "Planner" ) );
- mainLayout->addWidget( header );
- mainLayout->addStretch();
+ mLayout->addWidget( header );
-// mLayout = new QGridLayout( mainLayout, 8, 5, 3 );
- mLayout = new QGridLayout( mainLayout );
- mLayout->setRowStretch( 6, 1 );
+// mLayout = new QGridLayout();
+// mainLayout->addItem( mLayout );
+// mLayout->setMargin( 3 );
+// mLayout->setRowStretch( 6, 1 );
mCalendar = KOrg::StdCalendar::self();
mCalendar->load();
@@ -83,10 +89,6 @@
configUpdated();
}
-Planner::~Planner()
-{
-}
-
void Planner::configUpdated()
{
KConfig config( "plannerrc" );
@@ -118,6 +120,100 @@
updateView();
}
+void Planner::updateView()
+{
+ while ( !mLabels.isEmpty() ) {
+ delete mLabels.takeFirst();
+ }
+
+ KIconLoader loader( "kdepim" );
+
+ QLabel *label = 0;
+ int counter = -1;
+
+ QDate dt;
+ QDate currentDate = QDate::currentDate();
+
+ for ( dt = currentDate;
+ dt <= currentDate.addDays( mDays - 1 );
+ dt = dt.addDays( 1 ) ) {
+
+ //Initialize Todo List
+ initTodoList( dt );
+ //Initialize Event List
+ initEventList( dt );
+
+ // Fill Appointment Pixmap Field
+ if ( !mEvents.empty() || ( !mTodos.empty() && mShowTodos ) ) {
+
+ // Fill Event Date Field
+ bool makeBold = false;
+ QString datestr;
+
+ // Modify event date for printing
+ QDate sD = QDate( dt.year(), dt.month(), dt.day() );
+ if ( ( sD.month() == currentDate.month() ) &&
+ ( sD.day() == currentDate.day() ) ) {
+ datestr = i18nc( "today", "Today" );
+ makeBold = true;
+ } else if ( ( sD.month() == currentDate.addDays( 1 ).month() ) &&
+ ( sD.day() == currentDate.addDays( 1 ).day() ) ) {
+ datestr = i18nc( "tomorrow", "Tomorrow" );
+ } else {
+ datestr = KGlobal::locale()->formatDate( sD );
+ }
+
+ label = new QLabel( datestr, this );
+ label->setAlignment( Qt::AlignLeft | Qt::AlignTop );
+ label->setBackgroundRole( QPalette::Midlight );
+ if ( makeBold ){
+ QFont font = label->font();
+ font.setBold( true );
+ label->setFont( font );
+ } else {
+ QFont font = label->font();
+ font.setItalic( true );
+ label->setFont( font );
+ }
+// mLayout->addWidget( labe;l, counter, 0 );
+ mLayout->addWidget( label );
+ mLabels.append( label );
+
+ ++counter;
+ QVBoxLayout *gridLayout = new QVBoxLayout();
+ mPlannerGrid = new QGridLayout();
+ gridLayout->addItem( mPlannerGrid );
+
+ mLayout->addLayout( gridLayout );
+
+ if ( !mTodos.empty() && mShowTodos ) {
+ counter = showTodos( counter, dt );
+ }
+ if ( !mEvents.empty() ) {
+ counter = showEvents( counter, dt );
+ }
+ }
+ }
+
+ if ( !counter ) {
+ QLabel *noEvents = new QLabel(
+ i18np( "No appointments pending within the next day",
+ "No appointments pending within the next %1 days", mDays ),
+ this, "nothing to see" );
+ noEvents->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
+// mLayout->addWidget( noEvents, 0, 2 );
+ mLayout->addWidget( noEvents );
+ mLabels.append( noEvents );
+ }
+
+ QListIterator<QLabel *> i( mLabels );
+ QLabel *l;
+ while ( i.hasNext() ) {
+ l = i.next();
+ l->show();
+ }
+}
+
void Planner::initTodoList( const QDate &date )
{
mTodos.setAutoDelete( true );
@@ -200,33 +296,14 @@
for ( ; td != mTodos.end() ; ++td ) {
todo = *td;
QString stateText = initStateText ( todo, date );
+
QPixmap todoPm = loader.loadIcon( "view-pim-tasks", KIconLoader::Small );
QLabel *label = new QLabel( this );
label->setPixmap( todoPm );
label->setMaximumWidth( label->minimumSizeHint().width() );
- mPlannerGrid->addWidget( label, counter, 0 );
- mLabels.append( label );
-
- QPixmap recur;
- if( todo->isAlarmEnabled() ){
- recur = loader.loadIcon( "task-recurring", KIconLoader::Small );
- }
- label = new QLabel( this );
- label->setPixmap( recur );
- label->setMaximumWidth( label->minimumSizeHint().width() );
mPlannerGrid->addWidget( label, counter, 1 );
mLabels.append( label );
- QPixmap alarm;
- if( todo->isAlarmEnabled() ){
- alarm = loader.loadIcon( "task-reminder", KIconLoader::Small );
- }
- label = new QLabel( this );
- label->setPixmap( alarm );
- label->setMaximumWidth( label->minimumSizeHint().width() );
- mPlannerGrid->addWidget( label, counter, 2 );
- mLabels.append( label );
-
QString percent = QString::number( todo->percentComplete() ) + '%';
KUrlLabel *urlLabel = new KUrlLabel( this );
urlLabel->setText( percent );
@@ -234,7 +311,7 @@
if( stateText == i18nc( "to-do is overdue", "overdue" ) ){
urlLabel->setText( "<font color = red >" + percent + "</font>" );
}
- urlLabel->setAlignment( Qt::AlignLeft | Qt::AlignTop );
+ urlLabel->setAlignment( Qt::AlignHCenter | Qt::AlignTop );
urlLabel->setMaximumWidth( urlLabel->minimumSizeHint().width() );
mPlannerGrid->addWidget( urlLabel, counter, 3 );
mLabels.append( urlLabel );
@@ -255,7 +332,7 @@
if( stateText == i18nc( "to-do is overdue", "overdue" ) ){
urlLabel2->setText( "<font color = red >" + string + "</font>" );
}
- mPlannerGrid->addWidget( urlLabel2, counter, 4 );
+ mPlannerGrid->addWidget( urlLabel2, counter, 5 );
mLabels.append( urlLabel2 );
connect( urlLabel2, SIGNAL(leftClickedUrl(const QString&)),
@@ -269,9 +346,32 @@
}
label->setAlignment( Qt::AlignLeft | Qt::AlignTop );
label->setMaximumWidth( label->minimumSizeHint().width() );
- mPlannerGrid->addWidget( label, counter, 6 );
+ mPlannerGrid->addWidget( label, counter, 7 );
mLabels.append( label );
+ // TODO make this configurable
+ QPixmap alarm;
+ if( todo->isAlarmEnabled() ){
+ alarm = loader.loadIcon( "task-reminder", KIconLoader::Small );
+ }
+ label = new QLabel( this );
+ label->setPixmap( alarm );
+ label->setMaximumWidth( label->minimumSizeHint().width() );
+ mPlannerGrid->addWidget( label, counter, 9 );
+ mLabels.append( label );
+
+ // TODO:make this configurable
+ QPixmap recur;
+ if( todo->isAlarmEnabled() ){
+ recur = loader.loadIcon( "task-recurring", KIconLoader::Small );
+ }
+ label = new QLabel( this );
+ label->setPixmap( recur );
+ label->setMaximumWidth( label->minimumSizeHint().width() );
+ mPlannerGrid->addWidget( label, counter, 11 );
+ mLabels.append( label );
+
+
if ( td != mTodos.end() ) {
++counter;
}
@@ -279,7 +379,7 @@
}
return counter;
}
-
+//
void Planner::initEventList( const QDate &date )
{
mEvents.setAutoDelete( true );
@@ -351,38 +451,18 @@
continue;
}
+ mPlannerGrid->setColumnMinimumWidth( 0, 10 );
+
//Show Event icon
QPixmap re = loader.loadIcon( "view-calendar-day", KIconLoader::Small );
label = new QLabel( this );
label->setPixmap( re );
label->setMaximumWidth( label->minimumSizeHint().width() );
label->setAlignment( Qt::AlignTop );
- mPlannerGrid->addWidget( label, counter, 0 );
- mLabels.append( label );
-
- //Show icon if Event recurs
- QPixmap recur;
- if( ev->recurs() ){
- recur = loader.loadIcon( "appointment-recurring", KIconLoader::Small );
- }
- label = new QLabel( this );
- label->setPixmap( recur );
- label->setMaximumWidth( label->minimumSizeHint().width() );
- label->setAlignment( Qt::AlignTop );
mPlannerGrid->addWidget( label, counter, 1 );
mLabels.append( label );
- //Show icon if Alarm is enabled
- QPixmap alarm;
- if( ev->isAlarmEnabled () ){
- alarm = loader.loadIcon( "task-reminder", KIconLoader::Small );
- }
- label = new QLabel( this );
- label->setPixmap( alarm );
- label->setMaximumWidth( label->minimumSizeHint().width() );
- label->setAlignment( Qt::AlignTop );
- mPlannerGrid->addWidget( label, counter, 2 );
- mLabels.append( label );
+ mPlannerGrid->setColumnMinimumWidth( 2, 10 );
// Print the date span for multiday, allDay events, for the
// first day of the event only.
@@ -419,6 +499,8 @@
mLabels.append( label );
}
+ mPlannerGrid->setColumnMinimumWidth( 4, 10 );
+
// Fill Event Summary Field
QString newtext = ev->summary();
if ( ev->isMultiDay() && !ev->allDay() ){
@@ -428,12 +510,43 @@
urlLabel->setText( newtext );
urlLabel->setUrl( ev->uid() );
urlLabel->installEventFilter( this );
-// urlLabel->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak );
+ urlLabel->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak );
// TODO Set config item if urls be underlined or not
- urlLabel->setUnderline( false );
- mPlannerGrid->addWidget( urlLabel, counter, 4 );
+// urlLabel->setUnderline( false );
+ mPlannerGrid->addWidget( urlLabel, counter, 5 );
mLabels.append( urlLabel );
+ mPlannerGrid->setColumnMinimumWidth( 6, 10 );
+ mPlannerGrid->setColumnMinimumWidth( 7, 10 );
+ mPlannerGrid->setColumnMinimumWidth( 8, 10 );
+
+ //Show icon if Alarm is enabled
+ QPixmap alarm;
+ if( ev->isAlarmEnabled () ){
+ alarm = loader.loadIcon( "task-reminder", KIconLoader::Small );
+ }
+ label = new QLabel( this );
+ label->setPixmap( alarm );
+ label->setMaximumWidth( label->minimumSizeHint().width() );
+ label->setAlignment( Qt::AlignTop );
+ mPlannerGrid->addWidget( label, counter, 9 );
+ mLabels.append( label );
+
+ mPlannerGrid->setColumnMinimumWidth( 10, 10 );
+
+ //Show icon if Event recurs
+ QPixmap recur;
+ if( ev->recurs() ){
+ recur = loader.loadIcon( "appointment-recurring", KIconLoader::Small );
+ }
+ label = new QLabel( this );
+ label->setPixmap( recur );
+ label->setMaximumWidth( label->minimumSizeHint().width() );
+ label->setAlignment( Qt::AlignTop );
+ mPlannerGrid->addWidget( label, counter, 11 );
+ mLabels.append( label );
+
+
connect( urlLabel, SIGNAL(leftClickedUrl(const QString&)),
this, SLOT(viewEvent(const QString&)) );
connect( urlLabel, SIGNAL(rightClickedUrl(const QString&)),
@@ -453,119 +566,12 @@
void Planner::initSdList( const QDate &date )
{
}
-
+//
int Planner::showSd( int counter )
{
- return counter;
+// return counter;
}
-void Planner::updateView()
-{
- while ( !mLabels.isEmpty() ) {
- delete mLabels.takeFirst();
- }
-
- KIconLoader loader( "kdepim" );
-
- QLabel *label = 0;
- int counter = 0;
-
- QDate dt;
- QDate currentDate = QDate::currentDate();
-
- for ( dt = currentDate;
- dt <= currentDate.addDays( mDays - 1 );
- dt = dt.addDays( 1 ) ) {
-
- //Initialize Todo List
- initTodoList( dt );
- //Initialize Event List
- initEventList( dt );
-
- // Fill Appointment Pixmap Field
- if ( !mEvents.empty() || ( !mTodos.empty() && mShowTodos ) ) {
- ++counter;
- label = new QLabel( this );
-// label->setPaletteBackgroundColor( Qt::lightGray );
- label->setBackgroundRole( QPalette::Light );
- mLayout->addMultiCellWidget( label, counter, counter, 0, 4 );
- mLabels.append( label );
-
- QPixmap pm = loader.loadIcon( "view-pim-calendar", KIconLoader::Small );
- label = new QLabel( this );
-// label->setPixmap( pm );
- label->setMaximumWidth( label->minimumSizeHint().width() );
- label->setAlignment( Qt::AlignLeft | Qt::AlignTop );
- label->setPaletteBackgroundColor( Qt::lightGray );
- mLayout->addWidget( label, counter, 0 );
- mLabels.append( label );
-
- // Fill Event Date Field
- bool makeBold = false;
- QString datestr;
-
- // Modify event date for printing
- QDate sD = QDate( dt.year(), dt.month(), dt.day() );
- if ( ( sD.month() == currentDate.month() ) &&
- ( sD.day() == currentDate.day() ) ) {
- datestr = i18nc( "today", "Today" );
- makeBold = true;
- } else if ( ( sD.month() == currentDate.addDays( 1 ).month() ) &&
- ( sD.day() == currentDate.addDays( 1 ).day() ) ) {
- datestr = i18nc( "tomorrow", "Tomorrow" );
- } else {
- datestr = KGlobal::locale()->formatDate( sD );
- }
-
- label = new QLabel( datestr, this );
- label->setAlignment( Qt::AlignLeft | Qt::AlignTop );
- label->setBackgroundRole( QPalette::Midlight );
- if ( makeBold ){
- QFont font = label->font();
- font.setBold( true );
- label->setFont( font );
- } else {
- QFont font = label->font();
- font.setItalic( true );
- label->setFont( font );
- }
- mLayout->addWidget( label, counter, 1 );
- mLabels.append( label );
-
- ++counter;
- QVBoxLayout *todoLayout = new QVBoxLayout( this );
- mPlannerGrid = new QGridLayout ( todoLayout, 7, 6, 3 );
- mPlannerGrid->setRowStretch( 6, 1 );
- todoLayout->addStretch();
- mLayout->addMultiCellLayout( todoLayout, counter, counter, 0, 4 );
-
- if ( !mTodos.empty() && mShowTodos ) {
- counter = showTodos( counter, dt );
- }
- if ( !mEvents.empty() ) {
- counter = showEvents( counter, dt );
- }
- }
- }
-
- if ( !counter ) {
- QLabel *noEvents = new QLabel(
- i18np( "No appointments pending within the next day",
- "No appointments pending within the next %1 days", mDays ),
- this, "nothing to see" );
- noEvents->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
- mLayout->addWidget( noEvents, 0, 2 );
- mLabels.append( noEvents );
- }
-
- QListIterator<QLabel *> i( mLabels );
- QLabel *l;
- while ( i.hasNext() ) {
- l = i.next();
- l->show();
- }
-}
-
void Planner::viewEvent( const QString &uid )
{
mPlugin->core()->selectPlugin( "kontact_korganizerplugin" );
@@ -597,7 +603,7 @@
removeEvent( uid );
}
}
-
+
bool Planner::eventFilter( QObject *obj, QEvent *e )
{
if ( obj->inherits( "KUrlLabel" ) ) {
@@ -612,7 +618,7 @@
return Kontact::Summary::eventFilter( obj, e );
}
-
+
QString Planner::initStateText( const KCal::Todo *todo, const QDate &date )
{
QDate currentDate = QDate::currentDate();
--- trunk/KDE/kdepim/kontact/plugins/planner/planner.h #855830:855831
@@ -36,6 +36,7 @@
class QEvent;
class QGridLayout;
class QLabel;
+class QVBoxLayout;
namespace Kontact {
class Plugin;
@@ -47,7 +48,7 @@
public:
Planner( Kontact::Plugin *plugin, QWidget *parent );
- ~Planner();
+
int summaryHeight() const { return 3; }
QStringList configModules() const;
@@ -95,7 +96,7 @@
bool mShowSd;
Kontact::Plugin *mPlugin;
- QGridLayout *mLayout;
+ QVBoxLayout *mLayout;
QGridLayout *mPlannerGrid;
QList<QLabel *> mLabels;
KCal::CalendarResources *mCalendar;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic