diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 19:17:32 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 19:17:32 +0000 |
commit | e38d2351b83fa65c66ccde443777647ef5cb6cff (patch) | |
tree | 1897fc20e9f73a81c520a5b9f76f8ed042124883 /src/gui/choicefieldwidget.cpp | |
download | tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.tar.gz tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.zip |
Added KDE3 version of Tellico
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/tellico@1097620 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/gui/choicefieldwidget.cpp')
-rw-r--r-- | src/gui/choicefieldwidget.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/gui/choicefieldwidget.cpp b/src/gui/choicefieldwidget.cpp new file mode 100644 index 0000000..e9c6870 --- /dev/null +++ b/src/gui/choicefieldwidget.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** + copyright : (C) 2005-2006 by Robby Stephenson + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "choicefieldwidget.h" +#include "../field.h" + +#include <kcombobox.h> + +#include <qlabel.h> +#include <qlayout.h> + +using Tellico::GUI::ChoiceFieldWidget; + +ChoiceFieldWidget::ChoiceFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, parent_, name_), m_comboBox(0) { + + m_comboBox = new KComboBox(this); + connect(m_comboBox, SIGNAL(activated(int)), SIGNAL(modified())); + // always have empty choice + m_comboBox->insertItem(QString::null); + m_comboBox->insertStringList(field_->allowed()); + m_comboBox->setMinimumWidth(5*fontMetrics().maxWidth()); + + registerWidget(); +} + +QString ChoiceFieldWidget::text() const { + return m_comboBox->currentText(); +} + +void ChoiceFieldWidget::setText(const QString& text_) { + blockSignals(true); + + m_comboBox->blockSignals(true); + m_comboBox->setCurrentItem(text_); + m_comboBox->blockSignals(false); + + blockSignals(false); +} + +void ChoiceFieldWidget::clear() { + m_comboBox->setCurrentItem(0); // first item is empty + editMultiple(false); +} + +void ChoiceFieldWidget::updateFieldHook(Data::FieldPtr, Data::FieldPtr newField_) { + QString value = text(); + m_comboBox->clear(); + // always have empty choice + m_comboBox->insertItem(QString::null); + m_comboBox->insertStringList(newField_->allowed()); + m_comboBox->setCurrentText(value); +} + +QWidget* ChoiceFieldWidget::widget() { + return m_comboBox; +} + +#include "choicefieldwidget.moc" |