diff options
Diffstat (limited to 'kdevdesigner/designer/variabledialogimpl.cpp')
| -rw-r--r-- | kdevdesigner/designer/variabledialogimpl.cpp | 180 | 
1 files changed, 180 insertions, 0 deletions
| diff --git a/kdevdesigner/designer/variabledialogimpl.cpp b/kdevdesigner/designer/variabledialogimpl.cpp new file mode 100644 index 00000000..d2d7ef67 --- /dev/null +++ b/kdevdesigner/designer/variabledialogimpl.cpp @@ -0,0 +1,180 @@ +/********************************************************************** +** Copyright (C) 2000-2001 Trolltech AS.  All rights reserved. +** +** This file is part of TQt Designer. +** +** 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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.trolltech.com/gpl/ for GPL licensing information. +** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for +**   information about TQt Commercial License Agreements. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include <tqlistview.h> +#include <tqgroupbox.h> +#include <klineedit.h> +#include <tqcombobox.h> +#include <tqmessagebox.h> + +#include "metadatabase.h" +#include "formwindow.h" +#include "mainwindow.h" +#include "hierarchyview.h" +#include "command.h" +#include "variabledialogimpl.h" + +#include <tdelocale.h> + + +VariableDialog::VariableDialog( FormWindow *fw, TQWidget *parent ) +    : VariableDialogBase( parent ), formWindow( fw ) +{ +    varView->setSorting( -1 ); +    TQValueList<MetaDataBase::Variable> varLst = MetaDataBase::variables( TQT_TQOBJECT(formWindow) ); +    TQValueList<MetaDataBase::Variable>::Iterator it = varLst.begin(); +    for ( ; it != varLst.end(); ++it ) { +	TQListViewItem *i = new TQListViewItem( varView ); +	i->setText( 0, (*it).varName ); +	i->setText( 1, (*it).varAccess ); +    } + +    if ( varView->firstChild() ) +	varView->setCurrentItem( varView->firstChild() ); +    else +	propBox->setEnabled( FALSE ); +} + +VariableDialog::~VariableDialog() +{ +} + +void VariableDialog::setCurrentItem( TQString text ) +{ +    TQListViewItem *i = varView->findItem( text, 0 ); +    if ( i ) +	varView->setCurrentItem( i ); +} + +void VariableDialog::okClicked() +{ +    TQValueList<MetaDataBase::Variable> lst; + +    TQListViewItemIterator it( varView ); +    while ( it.current() != 0 ) { +	MetaDataBase::Variable v; +	v.varName = it.current()->text( 0 ).simplifyWhiteSpace(); +	if ( v.varName[ (int)v.varName.length() - 1 ] != ';' ) +	    v.varName += ";"; +	v.varAccess = it.current()->text( 1 ); +	lst << v; +	++it; +    } + +    if ( !lst.isEmpty() ) { +	TQValueList<MetaDataBase::Variable> invalidLst; +	TQValueList<MetaDataBase::Variable>::Iterator it1 = lst.begin(); +	TQValueList<MetaDataBase::Variable>::Iterator it2; +	for ( ; it1 != lst.end(); ++it1 ) { +	    it2 = it1; +	    ++it2; +	    for ( ; it2 != lst.end(); ++it2 ) { +		if ( MetaDataBase::extractVariableName( (*it1).varName ) == +		     MetaDataBase::extractVariableName( (*it2).varName ) ) { +		    invalidLst << (*it1); +		    break; +		} +	    } +	} +	if ( !invalidLst.isEmpty() ) { +	    if ( TQMessageBox::information( this, i18n( "Edit Variables" ), +					   i18n( "One variable has been declared twice.\n" +					   "Remove this variable?" ), i18n( "&Yes" ), i18n( "&No" ) ) == 0 ) { +		for ( it2 = invalidLst.begin(); it2 != invalidLst.end(); ++it2 ) { +		    it = varView->firstChild(); +		    while ( it.current() != 0 ) { +			if ( MetaDataBase::extractVariableName( (*it)->text( 0 ).simplifyWhiteSpace() ) == +			     MetaDataBase::extractVariableName( (*it2).varName ) ) { +			    delete (*it); +			    break; +			} +			++it; +		    } +		} +	    } +	    formWindow->mainWindow()->objectHierarchy()->updateFormDefinitionView(); +	    return; +	} +    } +    Command *cmd = new SetVariablesCommand( i18n( "Edit Variables" ), formWindow, lst ); +    formWindow->commandHistory()->addCommand( cmd ); +    cmd->execute(); +    accept(); +} + +void VariableDialog::addVariable() +{ +    TQListViewItem *i = new TQListViewItem( varView, varView->lastItem() ); +    i->setText( 0, "int newVariable" ); +    i->setText( 1, "protected" ); +    varView->setCurrentItem( i ); +    varView->setSelected( i, TRUE ); +    varName->setFocus(); +    varName->selectAll(); +} + +void VariableDialog::deleteVariable() +{ +    TQListViewItem *i = varView->selectedItem(); +    if ( !i ) +	return; +    delete i; +    i = 0; +    if ( varView->firstChild() ) +	varView->setSelected( varView->firstChild(), TRUE ); +} + +void VariableDialog::currentItemChanged( TQListViewItem *i ) +{ +    if ( !i ) { +	varName->clear(); +	accessCombo->setCurrentItem( 1 ); +	propBox->setEnabled( FALSE ); +	return; +    } +    varName->setText( i->text( 0 ) ); +    if ( i->text( 1 ) == "public" ) +	accessCombo->setCurrentItem( 0 ); +    else if ( i->text( 1 ) == "protected" ) +	accessCombo->setCurrentItem( 1 ); +    else +	accessCombo->setCurrentItem( 2 ); +    propBox->setEnabled( TRUE ); +} + +void VariableDialog::nameChanged() +{ +    if ( !varView->currentItem() ) +	return; +    varView->currentItem()->setText( 0, varName->text() ); +} + +void VariableDialog::accessChanged() +{ +    if ( !varView->currentItem() ) +	return; +    varView->currentItem()->setText( 1, accessCombo->currentText() ); +} | 
