From 2c2fbd828ca474671bb9e03681b30b115d8d6035 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 6 Nov 2011 15:57:02 -0600 Subject: Actually move the kde files that were renamed in the last commit --- libtdepim/designerfields.cpp | 251 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 libtdepim/designerfields.cpp (limited to 'libtdepim/designerfields.cpp') diff --git a/libtdepim/designerfields.cpp b/libtdepim/designerfields.cpp new file mode 100644 index 000000000..1a07655f7 --- /dev/null +++ b/libtdepim/designerfields.cpp @@ -0,0 +1,251 @@ +/* + This file is part of libtdepim. + + Copyright (c) 2004 Tobias Koenig + Copyright (c) 2004 Cornelius Schumacher + + 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "designerfields.h" + +using namespace KPIM; + +DesignerFields::DesignerFields( const TQString &uiFile, TQWidget *parent, + const char *name ) + : TQWidget( parent, name ) +{ + initGUI( uiFile ); +} + +void DesignerFields::initGUI( const TQString &uiFile ) +{ + TQVBoxLayout *tqlayout = new TQVBoxLayout( this ); + + TQWidget *wdg = TQWidgetFactory::create( uiFile, 0, this ); + if ( !wdg ) { + kdError() << "No ui file found" << endl; + return; + } + + mTitle = wdg->caption(); + mIdentifier = wdg->name(); + + tqlayout->addWidget( wdg ); + + TQObjectList *list = wdg->queryList( TQWIDGET_OBJECT_NAME_STRING ); + TQObjectListIt it( *list ); + + TQStringList allowedTypes; + allowedTypes << TQLINEEDIT_OBJECT_NAME_STRING + << TQTEXTEDIT_OBJECT_NAME_STRING + << TQSPINBOX_OBJECT_NAME_STRING + << TQCHECKBOX_OBJECT_NAME_STRING + << TQCOMBOBOX_OBJECT_NAME_STRING + << TQDATETIMEEDIT_OBJECT_NAME_STRING + << "KLineEdit" + << "KDateTimeWidget" + << "KDatePicker"; + + while ( it.current() ) { + if ( allowedTypes.contains( it.current()->className() ) ) { + TQString name = it.current()->name(); + if ( name.startsWith( "X_" ) ) { + name = name.mid( 2 ); + + TQWidget *widget = TQT_TQWIDGET( it.current() ); + if ( !name.isEmpty() ) + mWidgets.insert( name, widget ); + + if ( it.current()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( textChanged( const TQString& ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( valueChanged( int ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( toggled( bool ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( activated( const TQString& ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( valueChanged( const TQDateTime& ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( "KDateTimeWidget" ) ) + connect( it.current(), TQT_SIGNAL( valueChanged( const TQDateTime& ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( "KDatePicker" ) ) + connect( it.current(), TQT_SIGNAL( dateChanged( TQDate ) ), + TQT_SIGNAL( modified() ) ); + else if ( it.current()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) + connect( it.current(), TQT_SIGNAL( textChanged() ), + TQT_SIGNAL( modified() ) ); + + if ( !widget->isEnabled() ) + mDisabledWidgets.append( widget ); + } + } + + ++it; + } + + delete list; +} + +TQString DesignerFields::identifier() const +{ + return mIdentifier; +} + +TQString DesignerFields::title() const +{ + return mTitle; +} + +void DesignerFields::load( DesignerFields::Storage *storage ) +{ + TQStringList keys = storage->keys(); + + // clear all custom page widgets + // we can't do this in the following loop, as it works on the + // custom fields of the vcard, which may not be set. + TQMap::ConstIterator widIt; + for ( widIt = mWidgets.begin(); widIt != mWidgets.end(); ++widIt ) { + TQString value; + if ( widIt.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) { + TQLineEdit *wdg = static_cast( widIt.data() ); + wdg->setText( TQString() ); + } else if ( widIt.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) { + TQSpinBox *wdg = static_cast( widIt.data() ); + wdg->setValue( wdg->minValue() ); + } else if ( widIt.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) { + TQCheckBox *wdg = static_cast( widIt.data() ); + wdg->setChecked( false ); + } else if ( widIt.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) { + TQDateTimeEdit *wdg = static_cast( widIt.data() ); + wdg->setDateTime( TQDateTime::tqcurrentDateTime() ); + } else if ( widIt.data()->inherits( "KDateTimeWidget" ) ) { + KDateTimeWidget *wdg = static_cast( widIt.data() ); + wdg->setDateTime( TQDateTime::tqcurrentDateTime() ); + } else if ( widIt.data()->inherits( "KDatePicker" ) ) { + KDatePicker *wdg = static_cast( widIt.data() ); + wdg->setDate( TQDate::tqcurrentDate() ); + } else if ( widIt.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) { + TQComboBox *wdg = static_cast( widIt.data() ); + wdg->setCurrentItem( 0 ); + } else if ( widIt.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) { + TQTextEdit *wdg = static_cast( widIt.data() ); + wdg->setText( TQString() ); + } + } + + TQStringList::ConstIterator it2; + for ( it2 = keys.begin(); it2 != keys.end(); ++it2 ) { + TQString value = storage->read( *it2 ); + + TQMap::ConstIterator it = mWidgets.find( *it2 ); + if ( it != mWidgets.end() ) { + if ( it.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) { + TQLineEdit *wdg = static_cast( it.data() ); + wdg->setText( value ); + } else if ( it.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) { + TQSpinBox *wdg = static_cast( it.data() ); + wdg->setValue( value.toInt() ); + } else if ( it.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) { + TQCheckBox *wdg = static_cast( it.data() ); + wdg->setChecked( value == "true" || value == "1" ); + } else if ( it.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) { + TQDateTimeEdit *wdg = static_cast( it.data() ); + wdg->setDateTime( TQDateTime::fromString( value, Qt::ISODate ) ); + } else if ( it.data()->inherits( "KDateTimeWidget" ) ) { + KDateTimeWidget *wdg = static_cast( it.data() ); + wdg->setDateTime( TQDateTime::fromString( value, Qt::ISODate ) ); + } else if ( it.data()->inherits( "KDatePicker" ) ) { + KDatePicker *wdg = static_cast( it.data() ); + wdg->setDate( TQDate::fromString( value, Qt::ISODate ) ); + } else if ( it.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) { + TQComboBox *wdg = static_cast( it.data() ); + wdg->setCurrentText( value ); + } else if ( it.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) { + TQTextEdit *wdg = static_cast( it.data() ); + wdg->setText( value ); + } + } + } +} + +void DesignerFields::save( DesignerFields::Storage *storage ) +{ + TQMap::Iterator it; + for ( it = mWidgets.begin(); it != mWidgets.end(); ++it ) { + TQString value; + if ( it.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) { + TQLineEdit *wdg = static_cast( it.data() ); + value = wdg->text(); + } else if ( it.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) { + TQSpinBox *wdg = static_cast( it.data() ); + value = TQString::number( wdg->value() ); + } else if ( it.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) { + TQCheckBox *wdg = static_cast( it.data() ); + value = ( wdg->isChecked() ? "true" : "false" ); + } else if ( it.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) { + TQDateTimeEdit *wdg = static_cast( it.data() ); + value = wdg->dateTime().toString( Qt::ISODate ); + } else if ( it.data()->inherits( "KDateTimeWidget" ) ) { + KDateTimeWidget *wdg = static_cast( it.data() ); + value = wdg->dateTime().toString( Qt::ISODate ); + } else if ( it.data()->inherits( "KDatePicker" ) ) { + KDatePicker *wdg = static_cast( it.data() ); + value = wdg->date().toString( Qt::ISODate ); + } else if ( it.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) { + TQComboBox *wdg = static_cast( it.data() ); + value = wdg->currentText(); + } else if ( it.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) { + TQTextEdit *wdg = static_cast( it.data() ); + value = wdg->text(); + } + + storage->write( it.key(), value ); + } +} + +void DesignerFields::setReadOnly( bool readOnly ) +{ + TQMap::Iterator it; + for ( it = mWidgets.begin(); it != mWidgets.end(); ++it ) + if ( mDisabledWidgets.find( it.data() ) == mDisabledWidgets.end() ) + it.data()->setEnabled( !readOnly ); +} + +#include "designerfields.moc" -- cgit v1.2.1