summaryrefslogtreecommitdiffstats
path: root/src/dialogs/selectpropertydialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/selectpropertydialog.cpp')
-rw-r--r--src/dialogs/selectpropertydialog.cpp123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/dialogs/selectpropertydialog.cpp b/src/dialogs/selectpropertydialog.cpp
new file mode 100644
index 0000000..1ce1887
--- /dev/null
+++ b/src/dialogs/selectpropertydialog.cpp
@@ -0,0 +1,123 @@
+/***************************************************************************
+* Copyright (C) 2003 by *
+* Unai Garro ([email protected]) *
+* Cyril Bosselut ([email protected]) *
+* Jason Kivlighn ([email protected]) *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+***************************************************************************/
+
+#include "selectpropertydialog.h"
+
+#include <tdeconfig.h>
+#include <tdeglobal.h>
+#include <tdelocale.h>
+
+#include "datablocks/ingredientpropertylist.h"
+
+SelectPropertyDialog::SelectPropertyDialog( TQWidget* parent, IngredientPropertyList *propertyList, UnitList *unitList, OptionFlag showEmpty )
+ : KDialogBase( parent, "SelectPropertyDialog", true, i18n( "Choose Property" ),
+ KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok ), m_showEmpty(showEmpty)
+{
+
+ // Initialize internal variables
+ unitListBack = new UnitList;
+
+ // Initialize Widgets
+ TQVBox *page = makeVBoxMainWidget();
+
+ box = new TQGroupBox( page );
+ box->setTitle( i18n( "Choose Property" ) );
+ box->setColumnLayout( 0, TQt::Vertical );
+ box->layout() ->setSpacing( 6 );
+ box->layout() ->setMargin( 11 );
+ TQVBoxLayout *boxLayout = new TQVBoxLayout( box->layout() );
+ boxLayout->setAlignment( TQt::AlignTop );
+
+ propertyChooseView = new TDEListView( box, "propertyChooseView" );
+
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Advanced" );
+ bool show_id = config->readBoolEntry( "ShowID", false );
+ propertyChooseView->addColumn( i18n( "Id" ), show_id ? -1 : 0 );
+
+ propertyChooseView->addColumn( i18n( "Property" ) );
+ propertyChooseView->setAllColumnsShowFocus( true );
+ boxLayout->addWidget( propertyChooseView );
+
+ TQHBoxLayout *layout2 = new TQHBoxLayout;
+
+ perUnitsLabel = new TQLabel( box );
+ perUnitsLabel->setGeometry( TQRect( 5, 285, 100, 30 ) );
+ perUnitsLabel->setText( i18n( "Per units:" ) );
+ layout2->addWidget( perUnitsLabel );
+
+ perUnitsBox = new KComboBox( FALSE, box );
+ layout2->addWidget( perUnitsBox );
+ boxLayout->addLayout( layout2 );
+
+ resize( TQSize( 200, 380 ).expandedTo( minimumSizeHint() ) );
+ clearWState( WState_Polished );
+
+ // Load data
+ loadProperties( propertyList );
+ loadUnits( unitList );
+}
+
+
+SelectPropertyDialog::~SelectPropertyDialog()
+{}
+
+
+int SelectPropertyDialog::propertyID( void )
+{
+
+ TQListViewItem * it;
+ if ( ( it = propertyChooseView->selectedItem() ) ) {
+ return ( it->text( 0 ).toInt() );
+ }
+ else
+ return ( -1 );
+}
+
+int SelectPropertyDialog::perUnitsID()
+{
+
+ int comboCount = perUnitsBox->count();
+ if ( comboCount > 0 ) { // If not, the list may be empty (no list defined) and crashes while reading as seen before. So check just in case.
+ int comboID = perUnitsBox->currentItem();
+ return ( *unitListBack->at( comboID ) ).id;
+ }
+ else
+ return ( -1 );
+}
+
+void SelectPropertyDialog::loadProperties( IngredientPropertyList *propertyList )
+{
+ for ( IngredientPropertyList::const_iterator prop_it = propertyList->begin(); prop_it != propertyList->end(); ++prop_it ) {
+ ( void ) new TQListViewItem( propertyChooseView, TQString::number( (*prop_it).id ), (*prop_it).name );
+ }
+}
+void SelectPropertyDialog::loadUnits( UnitList *unitList )
+{
+ for ( UnitList::const_iterator unit_it = unitList->begin(); unit_it != unitList->end(); ++unit_it ) {
+ TQString unitName = ( *unit_it ).name;
+ if ( unitName.isEmpty() ) {
+ if ( m_showEmpty == ShowEmptyUnit )
+ unitName = " "+i18n("-No unit-");
+ else
+ continue;
+ }
+
+ // Insert in the combobox
+ perUnitsBox->insertItem( unitName );
+
+ // Store with index for using later
+ Unit newUnit( *unit_it );
+ newUnit.name = unitName;
+ unitListBack->append( newUnit );
+ }
+}