You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
536 lines
15 KiB
536 lines
15 KiB
/****************************************************************************
|
|
** Copyright (C) 2002-2004 Klarälvdalens Datakonsult AB. All rights reserved.
|
|
**
|
|
** This file is part of the KDGantt library.
|
|
**
|
|
** This file may be distributed and/or modified under the terms of the
|
|
** GNU General Public License version 2 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
** packaging of this file.
|
|
**
|
|
** Licensees holding valid commercial KDGantt licenses may use this file in
|
|
** accordance with the KDGantt Commercial License Agreement provided with
|
|
** the Software.
|
|
**
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
**
|
|
** See http://www.klaralvdalens-datakonsult.se/Public/products/ for
|
|
** information about KDGantt Commercial License Agreements.
|
|
**
|
|
** Contact info@klaralvdalens-datakonsult.se if any conditions of this
|
|
** licensing are not clear to you.
|
|
**
|
|
** As a special exception, permission is given to link this program
|
|
** with any edition of Qt, and distribute the resulting executable,
|
|
** without including the source code for Qt in the source distribution.
|
|
**
|
|
**********************************************************************/
|
|
|
|
|
|
/****************************************************************************
|
|
** ui.h extension file, included from the uic-generated form implementation.
|
|
**
|
|
** If you wish to add, delete or rename slots use Qt Designer which will
|
|
** update this file, preserving your code. Create an init() slot in place of
|
|
** a constructor, and a destroy() slot in place of a destructor.
|
|
*****************************************************************************/
|
|
|
|
#include <qcolordialog.h>
|
|
void itemAttributeDialog::init( )
|
|
{
|
|
|
|
myItem = 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
void itemAttributeDialog::ChangeText_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
QColor c = QColorDialog::getColor( myItem->textColor(), this );
|
|
if ( c.isValid() )
|
|
myItem->setTextColor( c );
|
|
QPixmap * pix = (QPixmap *)ChangeText->pixmap();
|
|
pix->fill( myItem->textColor() );
|
|
ChangeText->repaint();
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::ChangeStart_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->colors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( st, this );
|
|
if ( c.isValid() ) {
|
|
st = c;
|
|
ChangeStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
|
|
myItem->setColors( st, mi, en );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::ChangeMiddle_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->colors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( mi, this );
|
|
if ( c.isValid() ) {
|
|
mi = c;
|
|
ChangeMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
|
|
myItem->setColors( st, mi, en );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::ChangeEnd_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->colors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( en, this );
|
|
if ( c.isValid() ) {
|
|
en = c;
|
|
ChangeEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
|
|
myItem->setColors( st, mi, en );
|
|
}
|
|
}
|
|
void itemAttributeDialog::resetTime( KDGanttViewItem * item )
|
|
{
|
|
if ( !item ) return;
|
|
myItem = 0;
|
|
DateEdit1->setDate( item->startTime().date() );
|
|
TimeEdit1->setTime( item->startTime().time() );
|
|
switch( item->type() ) {
|
|
case KDGanttViewItem::Event:
|
|
|
|
DateEdit4->setDate( ((KDGanttViewEventItem*)item)->leadTime().date() );
|
|
TimeEdit4->setTime( ((KDGanttViewEventItem*)item)->leadTime().time() );
|
|
|
|
break;
|
|
case KDGanttViewItem::Summary:
|
|
|
|
|
|
DateEdit3->setDate( item->endTime().date() );
|
|
TimeEdit3->setTime( item->endTime().time() );
|
|
DateEdit2->setDate(((KDGanttViewSummaryItem*)item) ->middleTime().date() );
|
|
TimeEdit2->setTime( ((KDGanttViewSummaryItem*)item)->middleTime().time() );
|
|
DateEdit5->setDate(((KDGanttViewSummaryItem*)item) ->actualEndTime().date() );
|
|
TimeEdit5->setTime( ((KDGanttViewSummaryItem*)item)->actualEndTime().time() );
|
|
break;
|
|
case KDGanttViewItem::Task:
|
|
|
|
|
|
DateEdit3->setDate( item->endTime().date() );
|
|
TimeEdit3->setTime( item->endTime().time() );
|
|
break;
|
|
default:
|
|
;
|
|
}
|
|
myItem = item;
|
|
}
|
|
|
|
void itemAttributeDialog::reset( KDGanttViewItem * item )
|
|
{
|
|
myItem = 0;
|
|
if ( !item ) {
|
|
hide();
|
|
return;
|
|
}
|
|
StartBox->setEnabled( true );
|
|
switch( item->type() ) {
|
|
case KDGanttViewItem::Event:
|
|
MiddleBox->setEnabled( false );
|
|
EndBox->setEnabled( false );
|
|
ChangeMiddle->setEnabled( false );
|
|
ChangeEnd->setEnabled( false );
|
|
HighMiddle->setEnabled( false );
|
|
HighEnd->setEnabled( false );
|
|
DateEdit2->setEnabled( false );
|
|
TimeEdit2->setEnabled( false );
|
|
DateEdit3->setEnabled( false );
|
|
TimeEdit3->setEnabled( false );
|
|
DateEdit4->setEnabled( true );
|
|
TimeEdit4->setEnabled( true );
|
|
DateEdit5->setEnabled( false );
|
|
TimeEdit5->setEnabled( false );
|
|
DateEdit4->setDate( ((KDGanttViewEventItem*)item)->leadTime().date() );
|
|
TimeEdit4->setTime( ((KDGanttViewEventItem*)item)->leadTime().time() );
|
|
|
|
break;
|
|
case KDGanttViewItem::Summary:
|
|
MiddleBox->setEnabled( true );
|
|
EndBox->setEnabled( true );
|
|
ChangeMiddle->setEnabled( true );
|
|
ChangeEnd->setEnabled( true );
|
|
HighMiddle->setEnabled( true );
|
|
HighEnd->setEnabled( true );
|
|
|
|
DateEdit2->setEnabled( true );
|
|
TimeEdit2->setEnabled( true );
|
|
DateEdit3->setEnabled( true );
|
|
TimeEdit3->setEnabled( true );
|
|
DateEdit4->setEnabled( false );
|
|
TimeEdit4->setEnabled( false );
|
|
DateEdit5->setEnabled( true );
|
|
TimeEdit5->setEnabled( true );
|
|
|
|
DateEdit3->setDate( item->endTime().date() );
|
|
TimeEdit3->setTime( item->endTime().time() );
|
|
DateEdit2->setDate(((KDGanttViewSummaryItem*)item) ->middleTime().date() );
|
|
TimeEdit2->setTime( ((KDGanttViewSummaryItem*)item)->middleTime().time() );
|
|
DateEdit5->setDate(((KDGanttViewSummaryItem*)item) ->actualEndTime().date() );
|
|
TimeEdit5->setTime( ((KDGanttViewSummaryItem*)item)->actualEndTime().time() );
|
|
break;
|
|
case KDGanttViewItem::Task:
|
|
MiddleBox->setEnabled( false );
|
|
StartBox->setEnabled( false );
|
|
EndBox->setEnabled( false );
|
|
ChangeMiddle->setEnabled( false );
|
|
ChangeEnd->setEnabled( false );
|
|
HighMiddle->setEnabled( false );
|
|
HighEnd->setEnabled( false );
|
|
|
|
DateEdit2->setEnabled( false );
|
|
TimeEdit2->setEnabled( false );
|
|
DateEdit3->setEnabled( true );
|
|
TimeEdit3->setEnabled( true );
|
|
DateEdit4->setEnabled( false );
|
|
TimeEdit4->setEnabled( false );
|
|
DateEdit5->setEnabled( false );
|
|
TimeEdit5->setEnabled( false );
|
|
|
|
DateEdit3->setDate( item->endTime().date() );
|
|
TimeEdit3->setTime( item->endTime().time() );
|
|
break;
|
|
default:
|
|
;
|
|
}
|
|
if (item->firstChild() && item->displaySubitemsAsGroup() ) {
|
|
|
|
DateEdit2->setEnabled( false );
|
|
TimeEdit2->setEnabled( false );
|
|
DateEdit3->setEnabled( false );
|
|
TimeEdit3->setEnabled( false );
|
|
DateEdit4->setEnabled( false );
|
|
TimeEdit4->setEnabled( false );
|
|
DateEdit5->setEnabled( false );
|
|
TimeEdit5->setEnabled( false );
|
|
DateEdit1->setEnabled( false );
|
|
TimeEdit1->setEnabled( false );
|
|
|
|
} else {
|
|
DateEdit1->setEnabled( true );
|
|
TimeEdit1->setEnabled( true );
|
|
}
|
|
DateEdit1->setDate( item->startTime().date() );
|
|
TimeEdit1->setTime( item->startTime().time() );
|
|
if ( item->pixmap() != 0 )
|
|
setIcon( *(item->pixmap()) );
|
|
setCaption( "Properties of " + ((QListViewItem*)item)->text(0) );
|
|
itemName->setText(((QListViewItem*)item)->text(0) );
|
|
|
|
// DateEdit1->setRange(item->startTime().date().addYears(-10), item->endTime().date() );
|
|
// DateEdit3->setRange(item->startTime().date(), item->endTime().date().addYears(10));
|
|
LineEdit1->setText( item->text() );
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
item->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
item->colors( st, mi, en );
|
|
ChangeStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
|
|
ChangeMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
|
|
ChangeEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
|
|
item->highlightColors( st, mi, en );
|
|
HighStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
|
|
HighMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
|
|
HighEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
|
|
ChangeText->setPixmap(QPixmap( 16,16 ));
|
|
QPixmap * pix;
|
|
pix = (QPixmap *)ChangeText->pixmap();
|
|
pix->fill( item->textColor() );
|
|
StartBox->setCurrentItem((int)start );
|
|
MiddleBox->setCurrentItem((int)middle );
|
|
EndBox->setCurrentItem( (int) end );
|
|
CalBox->setChecked( item-> displaySubitemsAsGroup() );
|
|
PrioSpinBox->setValue( item->priority() );
|
|
PrioSlider->setValue( item->priority() );
|
|
myItem = item;
|
|
|
|
}
|
|
|
|
void itemAttributeDialog::HighStart_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->highlightColors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( st, this );
|
|
if ( c.isValid() ) {
|
|
st = c;
|
|
HighStart->setPixmap( KDGanttView::getPixmap( start, st, backgroundColor(), 10 ) );
|
|
myItem->setHighlightColors( st, mi, en );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::HighMiddle_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->highlightColors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( mi, this );
|
|
if ( c.isValid() ) {
|
|
mi = c;
|
|
HighMiddle->setPixmap( KDGanttView::getPixmap( middle, mi, backgroundColor(), 10 ) );
|
|
myItem->setHighlightColors( st, mi, en );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::HighEnd_clicked()
|
|
{
|
|
if ( !myItem) return;
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
QColor st, mi, en;
|
|
myItem->highlightColors( st, mi, en );
|
|
QColor c = QColorDialog::getColor( en, this );
|
|
if ( c.isValid() ) {
|
|
en = c;
|
|
HighEnd->setPixmap( KDGanttView::getPixmap( end, en, backgroundColor(), 10 ) );
|
|
myItem->setHighlightColors( st, mi, en );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::DateEdit1_valueChanged( const QDate & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit1->date() );
|
|
dt.setTime( TimeEdit1->time() );
|
|
if ( dt.isValid() )
|
|
{
|
|
myItem->setStartTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::TimeEdit1_valueChanged( const QTime & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit1->date() );
|
|
dt.setTime( TimeEdit1->time() );
|
|
if ( dt.isValid() ) {
|
|
myItem->setStartTime( dt );
|
|
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::DateEdit2_valueChanged( const QDate & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit2->date() );
|
|
dt.setTime( TimeEdit2->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewSummaryItem*)myItem)->setMiddleTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::TimeEdit2_valueChanged( const QTime & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit2->date() );
|
|
dt.setTime( TimeEdit2->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewSummaryItem*)myItem)->setMiddleTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::DateEdit3_valueChanged( const QDate & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit3->date() );
|
|
dt.setTime( TimeEdit3->time() );
|
|
if ( dt.isValid() ) {
|
|
myItem->setEndTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::TimeEdit3_valueChanged( const QTime & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit3->date() );
|
|
dt.setTime( TimeEdit3->time() );
|
|
if ( dt.isValid() ) {
|
|
myItem->setEndTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::LineEdit1_textChanged( const QString & )
|
|
{
|
|
if ( !myItem) return;
|
|
myItem->setText(LineEdit1->text());
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::StartBox_activated( const QString & s )
|
|
{
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
start = KDGanttViewItem::stringToShape( s );
|
|
myItem->setShapes( start, middle, end );
|
|
reset( myItem );
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::MiddleBox_activated( const QString & s )
|
|
{
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
middle = KDGanttViewItem::stringToShape( s );
|
|
myItem->setShapes( start, middle, end );
|
|
reset( myItem );
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::EndBox_activated( const QString & s )
|
|
{
|
|
KDGanttViewItem::Shape start, middle, end;
|
|
myItem->shapes( start, middle, end );
|
|
end = KDGanttViewItem::stringToShape( s );
|
|
myItem->setShapes( start, middle, end );
|
|
reset( myItem );
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::DateEdit4_valueChanged( const QDate & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit4->date() );
|
|
dt.setTime( TimeEdit4->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewEventItem*)myItem)->setLeadTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::TimeEdit4_valueChanged( const QTime & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit4->date() );
|
|
dt.setTime( TimeEdit4->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewEventItem*)myItem)->setLeadTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::DateEdit5_valueChanged( const QDate & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit5->date() );
|
|
dt.setTime( TimeEdit5->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewSummaryItem*)myItem)->setActualEndTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::TimeEdit5_valueChanged( const QTime & )
|
|
{
|
|
if ( !myItem) return;
|
|
QDateTime dt;
|
|
dt.setDate( DateEdit5->date() );
|
|
dt.setTime( TimeEdit5->time() );
|
|
if ( dt.isValid() ) {
|
|
((KDGanttViewSummaryItem*)myItem)->setActualEndTime( dt );
|
|
resetTime( myItem );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void itemAttributeDialog::itemName_textChanged( const QString & )
|
|
{
|
|
if ( !myItem) return;
|
|
((QListViewItem*)myItem)->setText( 0, itemName->text() );
|
|
setCaption( "Properties of " + itemName->text() );
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::PrioSpinBox_valueChanged( int val )
|
|
{
|
|
if ( !myItem) return;
|
|
myItem->setPriority( val );
|
|
PrioSlider->blockSignals( true );
|
|
PrioSlider->setValue( val );
|
|
PrioSlider->blockSignals( false );
|
|
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::CalBox_toggled( bool mode )
|
|
{
|
|
if ( !myItem) return;
|
|
myItem->setDisplaySubitemsAsGroup( mode );
|
|
if (myItem->firstChild() )
|
|
reset(myItem);
|
|
}
|
|
|
|
|
|
void itemAttributeDialog::PrioSlider_valueChanged( int val )
|
|
{
|
|
if ( !myItem) return;
|
|
myItem->setPriority( val );
|
|
PrioSpinBox->blockSignals( true );
|
|
PrioSpinBox->setValue( val );
|
|
PrioSpinBox->blockSignals( false );
|
|
}
|
|
|
|
|
|
KDGanttViewItem* itemAttributeDialog::getItem()
|
|
{
|
|
return myItem;
|
|
}
|