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.
koffice/kspread/dialogs/kspread_dlg_validity.cc

815 lines
25 KiB

/* This file is part of the KDE project
Copyright (C) 2002-2003 Norbert Andres <nandres@web.de>
(C) 2002 John Dailey <dailey@vt.edu>
(C) 2001-2002 Philipp Mueller <philipp.mueller@gmx.de>
(C) 1999-2005 Laurent Montel <montel@kde.org>
(C) 1998-1999 Torben Weis <weis@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include "kspread_dlg_validity.h"
#include "kspread_canvas.h"
#include "kspread_doc.h"
#include "kspread_locale.h"
#include "kspread_sheet.h"
#include "kspread_view.h"
#include <tqlayout.h>
#include <tqbuttongroup.h>
#include <knumvalidator.h>
#include <kdebug.h>
#include <kmessagebox.h>
#include <tqcombobox.h>
#include <tqlineedit.h>
#include <tqpushbutton.h>
#include <tqlabel.h>
#include <tqtextedit.h>
#include <tqcheckbox.h>
using namespace KSpread;
DlgValidity::DlgValidity(View* parent,const char* name , const TQRect &_marker )
:KDialogBase(KDialogBase::Tabbed, i18n("Validity"),User2|User1|Cancel, User1, parent, name,true,false,KStdGuiItem::ok(),i18n("Clear &All"))
{
m_pView=parent;
marker=_marker;
TQFrame *page1 = addPage(i18n("&Values"));
TQVBoxLayout *lay1 = new TQVBoxLayout( page1, KDialogBase::marginHint(), KDialogBase::spacingHint() );
TQGroupBox* tmpTQButtonGroup;
tmpTQButtonGroup = new TQGroupBox( 0, Qt::Vertical, i18n("Validity Criteria"), page1, "ButtonGroup_1" );
tmpTQButtonGroup->tqlayout()->setSpacing(KDialog::spacingHint());
tmpTQButtonGroup->tqlayout()->setMargin(KDialog::marginHint());
TQGridLayout *grid1 = new TQGridLayout(tmpTQButtonGroup->tqlayout(),4,2);
TQLabel *tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_1" );
tmpTQLabel->setText(i18n("Allow:" ));
grid1->addWidget(tmpTQLabel,0,0);
chooseType=new TQComboBox(tmpTQButtonGroup);
grid1->addWidget(chooseType,0,1);
TQStringList listType;
listType+=i18n("All");
listType+=i18n("Number");
listType+=i18n("Integer");
listType+=i18n("Text");
listType+=i18n("Date");
listType+=i18n("Time");
listType+=i18n("Text Length");
listType+=i18n("List");
chooseType->insertStringList(listType);
chooseType->setCurrentItem(0);
allowEmptyCell = new TQCheckBox( i18n( "Allow blanks" ), tmpTQButtonGroup );
grid1->addWidget(allowEmptyCell,1,0);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_2" );
tmpTQLabel->setText(i18n("Data:" ));
grid1->addWidget(tmpTQLabel,2,0);
choose=new TQComboBox(tmpTQButtonGroup);
grid1->addWidget(choose,2,1);
TQStringList list;
list+=i18n("equal to");
list+=i18n("greater than");
list+=i18n("less than");
list+=i18n("equal to or greater than");
list+=i18n("equal to or less than");
list+=i18n("between");
list+=i18n("different from");
list+=i18n("different to");
choose->insertStringList(list);
choose->setCurrentItem(0);
edit1 = new TQLabel( tmpTQButtonGroup, "Label_3" );
edit1->setText(i18n("Minimum:" ));
grid1->addWidget(edit1,3,0);
val_min=new TQLineEdit(tmpTQButtonGroup);
grid1->addWidget(val_min,3,1);
val_min->setValidator( new KFloatValidator( val_min ) );
edit2 = new TQLabel( tmpTQButtonGroup, "Label_4" );
edit2->setText(i18n("Maximum:" ));
grid1->addWidget(edit2,4,0);
val_max=new TQLineEdit(tmpTQButtonGroup);
grid1->addWidget(val_max,4,1);
val_max->setValidator( new KFloatValidator( val_max ) );
lay1->addWidget(tmpTQButtonGroup);
//Apply minimum width of column1 to avoid horizontal move when changing option
//A bit ugly to apply text always, but I couldn't get a label->TQFontMetrix.boundingRect("text").width()
//to give mew the correct results - Philipp
edit2->setText( i18n( "Date:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Date minimum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Date maximum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Time:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Time minimum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Time maximum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Minimum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Maximum:" ) );
grid1->addColSpacing( 0, edit2->width() );
edit2->setText( i18n( "Number:" ) );
grid1->addColSpacing( 0, edit2->width() );
validityList = new TQTextEdit( tmpTQButtonGroup );
grid1->addMultiCellWidget(validityList,2, 4,1, 1);
validityLabelList = new TQLabel( tmpTQButtonGroup, "Label_Label_List" );
validityLabelList->setText(i18n("Entries:" ));
grid1->addWidget(validityLabelList,2,0);
TQFrame *page2 = addPage(i18n("&Error Alert"));
lay1 = new TQVBoxLayout( page2, KDialogBase::marginHint(), KDialogBase::spacingHint() );
tmpTQButtonGroup = new TQButtonGroup( 0, Qt::Vertical, i18n("Contents"), page2, "ButtonGroup_2" );
tmpTQButtonGroup->tqlayout()->setSpacing(KDialog::spacingHint());
tmpTQButtonGroup->tqlayout()->setMargin(KDialog::marginHint());
TQGridLayout *grid2 = new TQGridLayout(tmpTQButtonGroup->tqlayout(),5,2);
displayMessage = new TQCheckBox(i18n( "Show error message when invalid values are entered" ),tmpTQButtonGroup );
displayMessage->setChecked( true );
grid2->addMultiCellWidget(displayMessage,0, 0,0, 1);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_5" );
tmpTQLabel->setText(i18n("Action:" ));
grid2->addWidget(tmpTQLabel,1,0);
chooseAction=new TQComboBox(tmpTQButtonGroup);
grid2->addWidget(chooseAction,1,1);
TQStringList list2;
list2+=i18n("Stop");
list2+=i18n("Warning");
list2+=i18n("Information");
chooseAction->insertStringList(list2);
chooseAction->setCurrentItem(0);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_6" );
tmpTQLabel->setText(i18n("Title:" ));
grid2->addWidget(tmpTQLabel,2,0);
title=new TQLineEdit( tmpTQButtonGroup);
grid2->addWidget(title,2,1);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_7" );
tmpTQLabel->setText(i18n("Message:" ));
grid2->addWidget(tmpTQLabel,3,0);
message =new TQTextEdit( tmpTQButtonGroup);
grid2->addMultiCellWidget(message,3, 4,1, 1);
lay1->addWidget(tmpTQButtonGroup);
message->setTextFormat( TQt::PlainText );
TQFrame *page3 = addPage(i18n("Input Help"));
lay1 = new TQVBoxLayout( page3, KDialogBase::marginHint(), KDialogBase::spacingHint() );
tmpTQButtonGroup = new TQButtonGroup( 0, Qt::Vertical, i18n("Contents"), page3, "ButtonGroup_2" );
tmpTQButtonGroup->tqlayout()->setSpacing(KDialog::spacingHint());
tmpTQButtonGroup->tqlayout()->setMargin(KDialog::marginHint());
TQGridLayout *grid3 = new TQGridLayout(tmpTQButtonGroup->tqlayout(),5,2);
displayHelp = new TQCheckBox(i18n( "Show input help when cell is selected" ),tmpTQButtonGroup );
displayMessage->setChecked( false );
grid3->addMultiCellWidget(displayHelp,0, 0,0, 1);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_6" );
tmpTQLabel->setText(i18n("Title:" ));
grid3->addWidget(tmpTQLabel,2,0);
titleHelp=new TQLineEdit( tmpTQButtonGroup);
grid3->addWidget(titleHelp,2,1);
tmpTQLabel = new TQLabel( tmpTQButtonGroup, "Label_7" );
tmpTQLabel->setText(i18n("Message:" ));
grid3->addWidget(tmpTQLabel,3,0);
messageHelp =new TQTextEdit( tmpTQButtonGroup);
grid3->addMultiCellWidget(messageHelp,3, 4,1, 1);
lay1->addWidget(tmpTQButtonGroup);
messageHelp->setTextFormat( TQt::PlainText );
connect(choose,TQT_SIGNAL(activated(int )),this,TQT_SLOT(changeIndexCond(int)));
connect(chooseType,TQT_SIGNAL(activated(int )),this,TQT_SLOT(changeIndexType(int)));
connect( this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(OkPressed()) );
connect( this, TQT_SIGNAL(user2Clicked()), TQT_SLOT(clearAllPressed()) );
init();
}
void DlgValidity::displayOrNotListOfValidity( bool _displayList)
{
if ( _displayList )
{
validityList->show();
validityLabelList->show();
edit1->hide();
val_min->hide();
edit2->hide();
val_max->hide();
}
else
{
validityList->hide();
validityLabelList->hide();
edit1->show();
val_min->show();
edit2->show();
val_max->show();
}
}
void DlgValidity::changeIndexType(int _index)
{
bool activate = ( _index!=0 );
message->setEnabled(activate);
title->setEnabled(activate);
chooseAction->setEnabled( activate );
displayHelp->setEnabled(activate);
messageHelp->setEnabled(activate);
titleHelp->setEnabled(activate);
if ( _index == 7 )
displayOrNotListOfValidity( true );
else
displayOrNotListOfValidity( false );
switch(_index)
{
case 0:
edit1->setText("");
edit2->setText("");
val_max->setEnabled(false);
val_min->setEnabled(false);
edit1->setEnabled(false);
edit2->setEnabled(false);
choose->setEnabled(false);
break;
case 1:
val_min->setEnabled(true);
edit1->setEnabled(true);
choose->setEnabled(true);
val_min->setValidator( new KFloatValidator( val_min ) );
val_max->setValidator( new KFloatValidator( val_max ) );
if( choose->currentItem()<=4)
{
edit1->setText(i18n("Number:"));
edit2->setText("");
edit2->setEnabled(false);
val_max->setEnabled(false);
}
else
{
edit1->setText(i18n("Minimum:" ));
edit2->setText(i18n("Maximum:" ));
edit2->setEnabled(true);
val_max->setEnabled(true);
}
break;
case 2:
case 6:
val_min->setEnabled(true);
edit1->setEnabled(true);
choose->setEnabled(true);
val_min->setValidator( new KIntValidator( val_min ) );
val_max->setValidator( new KIntValidator( val_max ) );
if( choose->currentItem()<=4)
{
edit1->setText(i18n("Number:"));
edit2->setText("");
edit2->setEnabled(false);
val_max->setEnabled(false);
}
else
{
edit1->setText(i18n("Minimum:" ));
edit2->setText(i18n("Maximum:" ));
edit2->setEnabled(true);
val_max->setEnabled(true);
}
break;
case 3:
edit1->setText("");
edit2->setText("");
val_max->setEnabled(false);
val_min->setEnabled(false);
choose->setEnabled(false);
edit1->setEnabled(false);
edit2->setEnabled(false);
break;
case 4:
edit1->setText(i18n("Date:"));
edit2->setText("");
val_min->setEnabled(true);
edit1->setEnabled(true);
choose->setEnabled(true);
val_min->clearValidator();
val_max->clearValidator();
if( choose->currentItem()<=4)
{
edit1->setText(i18n("Date:"));
edit2->setText("");
edit2->setEnabled(false);
val_max->setEnabled(false);
}
else
{
edit1->setText(i18n("Date minimum:"));
edit2->setText(i18n("Date maximum:"));
edit2->setEnabled(true);
val_max->setEnabled(true);
}
break;
case 5:
val_min->setEnabled(true);
edit1->setEnabled(true);
choose->setEnabled(true);
val_min->clearValidator();
val_max->clearValidator();
if( choose->currentItem()<=4)
{
edit1->setText(i18n("Time:"));
edit2->setText("");
edit2->setEnabled(false);
val_max->setEnabled(false);
}
else
{
edit1->setText(i18n("Time minimum:"));
edit2->setText(i18n("Time maximum:"));
edit2->setEnabled(true);
val_max->setEnabled(true);
}
break;
}
if ( width() < sizeHint().width() )
resize( sizeHint() );
}
void DlgValidity::changeIndexCond(int _index)
{
switch(_index)
{
case 0:
case 1:
case 2:
case 3:
case 4:
val_max->setEnabled(false);
if(chooseType->currentItem()==1 ||chooseType->currentItem()==2
||chooseType->currentItem()==6)
edit1->setText(i18n("Number:"));
else if( chooseType->currentItem()==3)
edit1->setText("");
else if( chooseType->currentItem()==4)
edit1->setText(i18n("Date:"));
else if( chooseType->currentItem()==5)
edit1->setText(i18n("Time:"));
edit2->setText("");
edit2->setEnabled(false);
break;
case 5:
case 6:
val_max->setEnabled(true);
edit2->setEnabled(true);
edit1->setEnabled(true);
if(chooseType->currentItem()==1 || chooseType->currentItem()==2
|| chooseType->currentItem()==6)
{
edit1->setText(i18n("Minimum:" ));
edit2->setText(i18n("Maximum:" ));
}
else if(chooseType->currentItem()==3)
{
edit1->setText("");
edit2->setText("");
}
else if(chooseType->currentItem()==4)
{
edit1->setText(i18n("Date minimum:"));
edit2->setText(i18n("Date maximum:"));
}
else if(chooseType->currentItem()==5)
{
edit1->setText(i18n("Time minimum:"));
edit2->setText(i18n("Time maximum:"));
}
break;
}
}
void DlgValidity::init()
{
Cell *c = m_pView->activeSheet()->cellAt( marker.left(), marker.top() );
Validity * tmpValidity=c->getValidity(0);
if(tmpValidity!=0)
{
message->setText(tmpValidity->message);
title->setText(tmpValidity->title);
TQString tmp;
switch( tmpValidity->m_restriction)
{
case Restriction::None:
chooseType->setCurrentItem(0);
break;
case Restriction::Number:
chooseType->setCurrentItem(1);
if(tmpValidity->m_cond >=5 )
val_max->setText(tmp.setNum(tmpValidity->valMax));
val_min->setText(tmp.setNum(tmpValidity->valMin));
break;
case Restriction::Integer:
chooseType->setCurrentItem(2);
if(tmpValidity->m_cond >=5 )
val_max->setText(tmp.setNum(tmpValidity->valMax));
val_min->setText(tmp.setNum(tmpValidity->valMin));
break;
case Restriction::TextLength:
chooseType->setCurrentItem(6);
if(tmpValidity->m_cond >=5 )
val_max->setText(tmp.setNum(tmpValidity->valMax));
val_min->setText(tmp.setNum(tmpValidity->valMin));
break;
case Restriction::Text:
chooseType->setCurrentItem(3);
break;
case Restriction::Date:
chooseType->setCurrentItem(4);
val_min->setText(m_pView->doc()->locale()->formatDate(tmpValidity->dateMin,true));
if(tmpValidity->m_cond >=5 )
val_max->setText(m_pView->doc()->locale()->formatDate(tmpValidity->dateMax,true));
break;
case Restriction::Time:
chooseType->setCurrentItem(5);
val_min->setText(m_pView->doc()->locale()->formatTime(tmpValidity->timeMin,true));
if(tmpValidity->m_cond >=5 )
val_max->setText(m_pView->doc()->locale()->formatTime(tmpValidity->timeMax,true));
break;
case Restriction::List:
{
chooseType->setCurrentItem(7);
TQStringList lst =tmpValidity->listValidity;
TQString tmp;
for ( TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
tmp +=( *it )+"\n";
}
validityList->setText( tmp );
}
break;
default :
chooseType->setCurrentItem(0);
break;
}
switch (tmpValidity->m_action)
{
case Action::Stop:
chooseAction->setCurrentItem(0);
break;
case Action::Warning:
chooseAction->setCurrentItem(1);
break;
case Action::Information:
chooseAction->setCurrentItem(2);
break;
default :
chooseAction->setCurrentItem(0);
break;
}
switch ( tmpValidity->m_cond )
{
case Conditional::Equal:
choose->setCurrentItem(0);
break;
case Conditional::Superior:
choose->setCurrentItem(1);
break;
case Conditional::Inferior:
choose->setCurrentItem(2);
break;
case Conditional::SuperiorEqual:
choose->setCurrentItem(3);
break;
case Conditional::InferiorEqual:
choose->setCurrentItem(4);
break;
case Conditional::Between:
choose->setCurrentItem(5);
break;
case Conditional::Different:
choose->setCurrentItem(6);
break;
case Conditional::DifferentTo:
choose->setCurrentItem(7);
break;
default :
choose->setCurrentItem(0);
break;
}
displayMessage->setChecked( tmpValidity->displayMessage );
allowEmptyCell->setChecked( tmpValidity->allowEmptyCell );
titleHelp->setText( tmpValidity->titleInfo );
messageHelp->setText( tmpValidity->messageInfo );
displayHelp->setChecked( tmpValidity->displayValidationInformation );
}
changeIndexType(chooseType->currentItem()) ;
changeIndexCond(choose->currentItem()) ;
}
void DlgValidity::clearAllPressed()
{
val_min->setText("");
val_max->setText("");
message->setText("");
title->setText("");
displayMessage->setChecked( true );
allowEmptyCell->setChecked( false );
choose->setCurrentItem(0);
chooseType->setCurrentItem(0);
chooseAction->setCurrentItem(0);
changeIndexType(0);
changeIndexCond(0);
messageHelp->setText("" );
titleHelp->setText( "" );
validityList->setText( "" );
displayHelp->setChecked( false );
}
void DlgValidity::OkPressed()
{
if( chooseType->currentItem()==1)
{
bool ok;
val_min->text().toDouble(&ok);
if(! ok)
{
KMessageBox::error( this , i18n("This is not a valid value."),i18n("Error"));
val_min->setText("");
return;
}
val_max->text().toDouble(&ok);
if(! ok && choose->currentItem() >=5 && choose->currentItem()< 7)
{
KMessageBox::error( this , i18n("This is not a valid value."),i18n("Error"));
val_max->setText("");
return;
}
}
else if( chooseType->currentItem()==2 || chooseType->currentItem()==6)
{
bool ok;
val_min->text().toInt(&ok);
if(! ok)
{
KMessageBox::error( this , i18n("This is not a valid value."),i18n("Error"));
val_min->setText("");
return;
}
val_max->text().toInt(&ok);
if(! ok && choose->currentItem() >=5 && choose->currentItem()< 7)
{
KMessageBox::error( this , i18n("This is not a valid value."),i18n("Error"));
val_max->setText("");
return;
}
}
else if( chooseType->currentItem()==5)
{
if(! m_pView->doc()->locale()->readTime(val_min->text()).isValid())
{
KMessageBox::error( this , i18n("This is not a valid time."),i18n("Error"));
val_min->setText("");
return;
}
if(! m_pView->doc()->locale()->readTime(val_max->text()).isValid() && choose->currentItem() >=5)
{
KMessageBox::error( this , i18n("This is not a valid time."),i18n("Error"));
val_max->setText("");
return;
}
}
else if( chooseType->currentItem()==4)
{
if(! m_pView->doc()->locale()->readDate(val_min->text()).isValid())
{
KMessageBox::error( this , i18n("This is not a valid date."),i18n("Error"));
val_min->setText("");
return;
}
if(! m_pView->doc()->locale()->readDate(val_max->text()).isValid() && choose->currentItem() >=5 )
{
KMessageBox::error( this , i18n("This is not a valid date."),i18n("Error"));
val_max->setText("");
return;
}
}
else if ( chooseType->currentItem()==7 )
{
//Nothing
}
if( chooseType->currentItem()==0)
{//no validity
result.m_restriction=Restriction::None;
result.m_action=Action::Stop;
result.m_cond=Conditional::Equal;
result.message=message->text();
result.title=title->text();
result.valMin=0;
result.valMax=0;
result.timeMin=TQTime(0,0,0);
result.timeMax=TQTime(0,0,0);
result.dateMin=TQDate(0,0,0);
result.dateMax=TQDate(0,0,0);
}
else
{
switch( chooseType->currentItem())
{
case 0:
result.m_restriction=Restriction::None;
break;
case 1:
result.m_restriction=Restriction::Number;
break;
case 2:
result.m_restriction=Restriction::Integer;
break;
case 3:
result.m_restriction=Restriction::Text;
break;
case 4:
result.m_restriction=Restriction::Date;
break;
case 5:
result.m_restriction=Restriction::Time;
break;
case 6:
result.m_restriction=Restriction::TextLength;
break;
case 7:
result.m_restriction=Restriction::List;
break;
default :
break;
}
switch (chooseAction->currentItem())
{
case 0:
result.m_action=Action::Stop;
break;
case 1:
result.m_action=Action::Warning;
break;
case 2:
result.m_action=Action::Information;
break;
default :
break;
}
switch ( choose->currentItem())
{
case 0:
result.m_cond=Conditional::Equal;
break;
case 1:
result.m_cond=Conditional::Superior;
break;
case 2:
result.m_cond=Conditional::Inferior;
break;
case 3:
result.m_cond=Conditional::SuperiorEqual;
break;
case 4:
result.m_cond=Conditional::InferiorEqual;
break;
case 5:
result.m_cond=Conditional::Between;
break;
case 6:
result.m_cond=Conditional::Different;
break;
case 7:
result.m_cond=Conditional::DifferentTo;
break;
default :
break;
}
result.message=message->text();
result.title=title->text();
result.valMin=0;
result.valMax=0;
result.timeMin=TQTime(0,0,0);
result.timeMax=TQTime(0,0,0);
result.dateMin=TQDate(0,0,0);
result.dateMax=TQDate(0,0,0);
if( chooseType->currentItem()==1)
{
if(choose->currentItem() <5)
{
result.valMin=val_min->text().toDouble();
}
else
{
result.valMin=TQMIN(val_min->text().toDouble(),val_max->text().toDouble());
result.valMax=TQMAX(val_max->text().toDouble(),val_min->text().toDouble());
}
}
else if( chooseType->currentItem()==2 || chooseType->currentItem()==6)
{
if(choose->currentItem() <5)
{
result.valMin=val_min->text().toInt();
}
else
{
result.valMin=TQMIN(val_min->text().toInt(),val_max->text().toInt());
result.valMax=TQMAX(val_max->text().toInt(),val_min->text().toInt());
}
}
else if( chooseType->currentItem()==4)
{
if(choose->currentItem() <5)
{
result.dateMin=m_pView->doc()->locale()->readDate(val_min->text());
}
else
{
if(m_pView->doc()->locale()->readDate(val_min->text())<m_pView->doc()->locale()->readDate(val_max->text()))
{
result.dateMin=m_pView->doc()->locale()->readDate(val_min->text());
result.dateMax=m_pView->doc()->locale()->readDate(val_max->text());
}
else
{
result.dateMin=m_pView->doc()->locale()->readDate(val_max->text());
result.dateMax=m_pView->doc()->locale()->readDate(val_min->text());
}
}
}
else if( chooseType->currentItem()==5)
{
if(choose->currentItem() <5)
{
result.timeMin=m_pView->doc()->locale()->readTime(val_min->text());
}
else
{
if(m_pView->doc()->locale()->readTime(val_min->text())<m_pView->doc()->locale()->readTime(val_max->text()))
{
result.timeMax=m_pView->doc()->locale()->readTime(val_max->text());
result.timeMin=m_pView->doc()->locale()->readTime(val_min->text());
}
else
{
result.timeMax=m_pView->doc()->locale()->readTime(val_min->text());
result.timeMin=m_pView->doc()->locale()->readTime(val_max->text());
}
}
}
else if ( chooseType->currentItem()==7 )
{
result.listValidity=TQStringList::split( "\n", validityList->text() );
}
}
result.displayMessage = displayMessage->isChecked();
result.allowEmptyCell = allowEmptyCell->isChecked();
result.displayValidationInformation = displayHelp->isChecked();
result.messageInfo= messageHelp->text();
result.titleInfo = titleHelp->text();
m_pView->doc()->emitBeginOperation( false );
m_pView->activeSheet()->setValidity( m_pView->selectionInfo(), result);
m_pView->slotUpdateView( m_pView->activeSheet() );
accept();
}
#include "kspread_dlg_validity.moc"