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