00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include <qcolordialog.h>
00040 void itemAttributeDialog::init( )
00041 {
00042
00043 myItem = 0;
00044 }
00045
00046
00047
00048
00049 void itemAttributeDialog::ChangeText_clicked()
00050 {
00051 if ( !myItem) return;
00052 QColor c = QColorDialog::getColor( myItem->textColor(), this );
00053 if ( c.isValid() )
00054 myItem->setTextColor( c );
00055 QPixmap * pix = (QPixmap *)ChangeText->pixmap();
00056 pix->fill( myItem->textColor() );
00057 ChangeText->repaint();
00058 }
00059
00060
00061 void itemAttributeDialog::ChangeStart_clicked()
00062 {
00063 if ( !myItem) return;
00064 KDGanttViewItem::Shape start, middle, end;
00065 myItem->shapes( start, middle, end );
00066 QColor st, mi, en;
00067 myItem->colors( st, mi, en );
00068 QColor c = QColorDialog::getColor( st, this );
00069 if ( c.isValid() ) {
00070 st = c;
00071 ChangeStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
00072 myItem->setColors( st, mi, en );
00073 }
00074
00075 }
00076
00077
00078 void itemAttributeDialog::ChangeMiddle_clicked()
00079 {
00080 if ( !myItem) return;
00081 KDGanttViewItem::Shape start, middle, end;
00082 myItem->shapes( start, middle, end );
00083 QColor st, mi, en;
00084 myItem->colors( st, mi, en );
00085 QColor c = QColorDialog::getColor( mi, this );
00086 if ( c.isValid() ) {
00087 mi = c;
00088 ChangeMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
00089 myItem->setColors( st, mi, en );
00090 }
00091 }
00092
00093
00094 void itemAttributeDialog::ChangeEnd_clicked()
00095 {
00096 if ( !myItem) return;
00097 KDGanttViewItem::Shape start, middle, end;
00098 myItem->shapes( start, middle, end );
00099 QColor st, mi, en;
00100 myItem->colors( st, mi, en );
00101 QColor c = QColorDialog::getColor( en, this );
00102 if ( c.isValid() ) {
00103 en = c;
00104 ChangeEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
00105 myItem->setColors( st, mi, en );
00106 }
00107 }
00108 void itemAttributeDialog::resetTime( KDGanttViewItem * item )
00109 {
00110 if ( !item ) return;
00111 myItem = 0;
00112 DateEdit1->setDate( item->startTime().date() );
00113 TimeEdit1->setTime( item->startTime().time() );
00114 switch( item->type() ) {
00115 case KDGanttViewItem::Event:
00116
00117 DateEdit4->setDate( ((KDGanttViewEventItem*)item)->leadTime().date() );
00118 TimeEdit4->setTime( ((KDGanttViewEventItem*)item)->leadTime().time() );
00119
00120 break;
00121 case KDGanttViewItem::Summary:
00122
00123
00124 DateEdit3->setDate( item->endTime().date() );
00125 TimeEdit3->setTime( item->endTime().time() );
00126 DateEdit2->setDate(((KDGanttViewSummaryItem*)item) ->middleTime().date() );
00127 TimeEdit2->setTime( ((KDGanttViewSummaryItem*)item)->middleTime().time() );
00128 DateEdit5->setDate(((KDGanttViewSummaryItem*)item) ->actualEndTime().date() );
00129 TimeEdit5->setTime( ((KDGanttViewSummaryItem*)item)->actualEndTime().time() );
00130 break;
00131 case KDGanttViewItem::Task:
00132
00133
00134 DateEdit3->setDate( item->endTime().date() );
00135 TimeEdit3->setTime( item->endTime().time() );
00136 break;
00137 default:
00138 ;
00139 }
00140 myItem = item;
00141 }
00142
00143 void itemAttributeDialog::reset( KDGanttViewItem * item )
00144 {
00145 myItem = 0;
00146 if ( !item ) {
00147 hide();
00148 return;
00149 }
00150 StartBox->setEnabled( true );
00151 switch( item->type() ) {
00152 case KDGanttViewItem::Event:
00153 MiddleBox->setEnabled( false );
00154 EndBox->setEnabled( false );
00155 ChangeMiddle->setEnabled( false );
00156 ChangeEnd->setEnabled( false );
00157 HighMiddle->setEnabled( false );
00158 HighEnd->setEnabled( false );
00159 DateEdit2->setEnabled( false );
00160 TimeEdit2->setEnabled( false );
00161 DateEdit3->setEnabled( false );
00162 TimeEdit3->setEnabled( false );
00163 DateEdit4->setEnabled( true );
00164 TimeEdit4->setEnabled( true );
00165 DateEdit5->setEnabled( false );
00166 TimeEdit5->setEnabled( false );
00167 DateEdit4->setDate( ((KDGanttViewEventItem*)item)->leadTime().date() );
00168 TimeEdit4->setTime( ((KDGanttViewEventItem*)item)->leadTime().time() );
00169
00170 break;
00171 case KDGanttViewItem::Summary:
00172 MiddleBox->setEnabled( true );
00173 EndBox->setEnabled( true );
00174 ChangeMiddle->setEnabled( true );
00175 ChangeEnd->setEnabled( true );
00176 HighMiddle->setEnabled( true );
00177 HighEnd->setEnabled( true );
00178
00179 DateEdit2->setEnabled( true );
00180 TimeEdit2->setEnabled( true );
00181 DateEdit3->setEnabled( true );
00182 TimeEdit3->setEnabled( true );
00183 DateEdit4->setEnabled( false );
00184 TimeEdit4->setEnabled( false );
00185 DateEdit5->setEnabled( true );
00186 TimeEdit5->setEnabled( true );
00187
00188 DateEdit3->setDate( item->endTime().date() );
00189 TimeEdit3->setTime( item->endTime().time() );
00190 DateEdit2->setDate(((KDGanttViewSummaryItem*)item) ->middleTime().date() );
00191 TimeEdit2->setTime( ((KDGanttViewSummaryItem*)item)->middleTime().time() );
00192 DateEdit5->setDate(((KDGanttViewSummaryItem*)item) ->actualEndTime().date() );
00193 TimeEdit5->setTime( ((KDGanttViewSummaryItem*)item)->actualEndTime().time() );
00194 break;
00195 case KDGanttViewItem::Task:
00196 MiddleBox->setEnabled( false );
00197 StartBox->setEnabled( false );
00198 EndBox->setEnabled( false );
00199 ChangeMiddle->setEnabled( false );
00200 ChangeEnd->setEnabled( false );
00201 HighMiddle->setEnabled( false );
00202 HighEnd->setEnabled( false );
00203
00204 DateEdit2->setEnabled( false );
00205 TimeEdit2->setEnabled( false );
00206 DateEdit3->setEnabled( true );
00207 TimeEdit3->setEnabled( true );
00208 DateEdit4->setEnabled( false );
00209 TimeEdit4->setEnabled( false );
00210 DateEdit5->setEnabled( false );
00211 TimeEdit5->setEnabled( false );
00212
00213 DateEdit3->setDate( item->endTime().date() );
00214 TimeEdit3->setTime( item->endTime().time() );
00215 break;
00216 default:
00217 ;
00218 }
00219 if (item->firstChild() && item->displaySubitemsAsGroup() ) {
00220
00221 DateEdit2->setEnabled( false );
00222 TimeEdit2->setEnabled( false );
00223 DateEdit3->setEnabled( false );
00224 TimeEdit3->setEnabled( false );
00225 DateEdit4->setEnabled( false );
00226 TimeEdit4->setEnabled( false );
00227 DateEdit5->setEnabled( false );
00228 TimeEdit5->setEnabled( false );
00229 DateEdit1->setEnabled( false );
00230 TimeEdit1->setEnabled( false );
00231
00232 } else {
00233 DateEdit1->setEnabled( true );
00234 TimeEdit1->setEnabled( true );
00235 }
00236 DateEdit1->setDate( item->startTime().date() );
00237 TimeEdit1->setTime( item->startTime().time() );
00238 if ( item->pixmap() != 0 )
00239 setIcon( *(item->pixmap()) );
00240 setCaption( "Properties of " + ((QListViewItem*)item)->text(0) );
00241 itemName->setText(((QListViewItem*)item)->text(0) );
00242
00243
00244
00245 LineEdit1->setText( item->text() );
00246 KDGanttViewItem::Shape start, middle, end;
00247 item->shapes( start, middle, end );
00248 QColor st, mi, en;
00249 item->colors( st, mi, en );
00250 ChangeStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
00251 ChangeMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
00252 ChangeEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
00253 item->highlightColors( st, mi, en );
00254 HighStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
00255 HighMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
00256 HighEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
00257 ChangeText->setPixmap(QPixmap( 16,16 ));
00258 QPixmap * pix;
00259 pix = (QPixmap *)ChangeText->pixmap();
00260 pix->fill( item->textColor() );
00261 StartBox->setCurrentItem((int)start );
00262 MiddleBox->setCurrentItem((int)middle );
00263 EndBox->setCurrentItem( (int) end );
00264 CalBox->setChecked( item-> displaySubitemsAsGroup() );
00265 PrioSpinBox->setValue( item->priority() );
00266 PrioSlider->setValue( item->priority() );
00267 myItem = item;
00268
00269 }
00270
00271 void itemAttributeDialog::HighStart_clicked()
00272 {
00273 if ( !myItem) return;
00274 KDGanttViewItem::Shape start, middle, end;
00275 myItem->shapes( start, middle, end );
00276 QColor st, mi, en;
00277 myItem->highlightColors( st, mi, en );
00278 QColor c = QColorDialog::getColor( st, this );
00279 if ( c.isValid() ) {
00280 st = c;
00281 HighStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
00282 myItem->setHighlightColors( st, mi, en );
00283 }
00284
00285 }
00286
00287
00288 void itemAttributeDialog::HighMiddle_clicked()
00289 {
00290 if ( !myItem) return;
00291 KDGanttViewItem::Shape start, middle, end;
00292 myItem->shapes( start, middle, end );
00293 QColor st, mi, en;
00294 myItem->highlightColors( st, mi, en );
00295 QColor c = QColorDialog::getColor( mi, this );
00296 if ( c.isValid() ) {
00297 mi = c;
00298 HighMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
00299 myItem->setHighlightColors( st, mi, en );
00300 }
00301
00302 }
00303
00304
00305 void itemAttributeDialog::HighEnd_clicked()
00306 {
00307 if ( !myItem) return;
00308 KDGanttViewItem::Shape start, middle, end;
00309 myItem->shapes( start, middle, end );
00310 QColor st, mi, en;
00311 myItem->highlightColors( st, mi, en );
00312 QColor c = QColorDialog::getColor( en, this );
00313 if ( c.isValid() ) {
00314 en = c;
00315 HighEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
00316 myItem->setHighlightColors( st, mi, en );
00317 }
00318
00319 }
00320
00321
00322 void itemAttributeDialog::DateEdit1_valueChanged( const QDate & )
00323 {
00324 if ( !myItem) return;
00325 QDateTime dt;
00326 dt.setDate( DateEdit1->date() );
00327 dt.setTime( TimeEdit1->time() );
00328 if ( dt.isValid() )
00329 {
00330 myItem->setStartTime( dt );
00331 resetTime( myItem );
00332 }
00333 }
00334
00335
00336 void itemAttributeDialog::TimeEdit1_valueChanged( const QTime & )
00337 {
00338 if ( !myItem) return;
00339 QDateTime dt;
00340 dt.setDate( DateEdit1->date() );
00341 dt.setTime( TimeEdit1->time() );
00342 if ( dt.isValid() ) {
00343 myItem->setStartTime( dt );
00344
00345 resetTime( myItem );
00346 }
00347 }
00348
00349
00350 void itemAttributeDialog::DateEdit2_valueChanged( const QDate & )
00351 {
00352 if ( !myItem) return;
00353 QDateTime dt;
00354 dt.setDate( DateEdit2->date() );
00355 dt.setTime( TimeEdit2->time() );
00356 if ( dt.isValid() ) {
00357 ((KDGanttViewSummaryItem*)myItem)->setMiddleTime( dt );
00358 resetTime( myItem );
00359 }
00360 }
00361
00362
00363 void itemAttributeDialog::TimeEdit2_valueChanged( const QTime & )
00364 {
00365 if ( !myItem) return;
00366 QDateTime dt;
00367 dt.setDate( DateEdit2->date() );
00368 dt.setTime( TimeEdit2->time() );
00369 if ( dt.isValid() ) {
00370 ((KDGanttViewSummaryItem*)myItem)->setMiddleTime( dt );
00371 resetTime( myItem );
00372 }
00373 }
00374
00375
00376 void itemAttributeDialog::DateEdit3_valueChanged( const QDate & )
00377 {
00378 if ( !myItem) return;
00379 QDateTime dt;
00380 dt.setDate( DateEdit3->date() );
00381 dt.setTime( TimeEdit3->time() );
00382 if ( dt.isValid() ) {
00383 myItem->setEndTime( dt );
00384 resetTime( myItem );
00385 }
00386 }
00387
00388
00389 void itemAttributeDialog::TimeEdit3_valueChanged( const QTime & )
00390 {
00391 if ( !myItem) return;
00392 QDateTime dt;
00393 dt.setDate( DateEdit3->date() );
00394 dt.setTime( TimeEdit3->time() );
00395 if ( dt.isValid() ) {
00396 myItem->setEndTime( dt );
00397 resetTime( myItem );
00398 }
00399 }
00400
00401
00402 void itemAttributeDialog::LineEdit1_textChanged( const QString & )
00403 {
00404 if ( !myItem) return;
00405 myItem->setText(LineEdit1->text());
00406 }
00407
00408
00409 void itemAttributeDialog::StartBox_activated( const QString & s )
00410 {
00411 KDGanttViewItem::Shape start, middle, end;
00412 myItem->shapes( start, middle, end );
00413 start = KDGanttViewItem::stringToShape( s );
00414 myItem->setShapes( start, middle, end );
00415 reset( myItem );
00416 }
00417
00418
00419 void itemAttributeDialog::MiddleBox_activated( const QString & s )
00420 {
00421 KDGanttViewItem::Shape start, middle, end;
00422 myItem->shapes( start, middle, end );
00423 middle = KDGanttViewItem::stringToShape( s );
00424 myItem->setShapes( start, middle, end );
00425 reset( myItem );
00426
00427 }
00428
00429
00430 void itemAttributeDialog::EndBox_activated( const QString & s )
00431 {
00432 KDGanttViewItem::Shape start, middle, end;
00433 myItem->shapes( start, middle, end );
00434 end = KDGanttViewItem::stringToShape( s );
00435 myItem->setShapes( start, middle, end );
00436 reset( myItem );
00437
00438 }
00439
00440
00441 void itemAttributeDialog::DateEdit4_valueChanged( const QDate & )
00442 {
00443 if ( !myItem) return;
00444 QDateTime dt;
00445 dt.setDate( DateEdit4->date() );
00446 dt.setTime( TimeEdit4->time() );
00447 if ( dt.isValid() ) {
00448 ((KDGanttViewEventItem*)myItem)->setLeadTime( dt );
00449 resetTime( myItem );
00450 }
00451 }
00452
00453
00454 void itemAttributeDialog::TimeEdit4_valueChanged( const QTime & )
00455 {
00456 if ( !myItem) return;
00457 QDateTime dt;
00458 dt.setDate( DateEdit4->date() );
00459 dt.setTime( TimeEdit4->time() );
00460 if ( dt.isValid() ) {
00461 ((KDGanttViewEventItem*)myItem)->setLeadTime( dt );
00462 resetTime( myItem );
00463 }
00464 }
00465
00466
00467 void itemAttributeDialog::DateEdit5_valueChanged( const QDate & )
00468 {
00469 if ( !myItem) return;
00470 QDateTime dt;
00471 dt.setDate( DateEdit5->date() );
00472 dt.setTime( TimeEdit5->time() );
00473 if ( dt.isValid() ) {
00474 ((KDGanttViewSummaryItem*)myItem)->setActualEndTime( dt );
00475 resetTime( myItem );
00476 }
00477 }
00478
00479
00480 void itemAttributeDialog::TimeEdit5_valueChanged( const QTime & )
00481 {
00482 if ( !myItem) return;
00483 QDateTime dt;
00484 dt.setDate( DateEdit5->date() );
00485 dt.setTime( TimeEdit5->time() );
00486 if ( dt.isValid() ) {
00487 ((KDGanttViewSummaryItem*)myItem)->setActualEndTime( dt );
00488 resetTime( myItem );
00489 }
00490 }
00491
00492
00493
00494 void itemAttributeDialog::itemName_textChanged( const QString & )
00495 {
00496 if ( !myItem) return;
00497 ((QListViewItem*)myItem)->setText( 0, itemName->text() );
00498 setCaption( "Properties of " + itemName->text() );
00499 }
00500
00501
00502 void itemAttributeDialog::PrioSpinBox_valueChanged( int val )
00503 {
00504 if ( !myItem) return;
00505 myItem->setPriority( val );
00506 PrioSlider->blockSignals( true );
00507 PrioSlider->setValue( val );
00508 PrioSlider->blockSignals( false );
00509
00510 }
00511
00512
00513 void itemAttributeDialog::CalBox_toggled( bool mode )
00514 {
00515 if ( !myItem) return;
00516 myItem->setDisplaySubitemsAsGroup( mode );
00517 if (myItem->firstChild() )
00518 reset(myItem);
00519 }
00520
00521
00522 void itemAttributeDialog::PrioSlider_valueChanged( int val )
00523 {
00524 if ( !myItem) return;
00525 myItem->setPriority( val );
00526 PrioSpinBox->blockSignals( true );
00527 PrioSpinBox->setValue( val );
00528 PrioSpinBox->blockSignals( false );
00529 }
00530
00531
00532 KDGanttViewItem* itemAttributeDialog::getItem()
00533 {
00534 return myItem;
00535 }