diff options
Diffstat (limited to 'ui')
-rw-r--r-- | ui/qt/extcap_argument.cpp | 142 | ||||
-rw-r--r-- | ui/qt/extcap_argument.h | 8 | ||||
-rw-r--r-- | ui/qt/extcap_argument_file.cpp | 3 | ||||
-rw-r--r-- | ui/qt/extcap_argument_multiselect.cpp | 16 | ||||
-rw-r--r-- | ui/qt/extcap_argument_multiselect.h | 1 | ||||
-rw-r--r-- | ui/qt/extcap_options_dialog.cpp | 13 | ||||
-rw-r--r-- | ui/qt/extcap_options_dialog.h | 1 |
7 files changed, 84 insertions, 100 deletions
diff --git a/ui/qt/extcap_argument.cpp b/ui/qt/extcap_argument.cpp index 38dc865770..0c06107f3e 100644 --- a/ui/qt/extcap_argument.cpp +++ b/ui/qt/extcap_argument.cpp @@ -41,6 +41,8 @@ #include <QStandardItemModel> #include <QItemSelectionModel> +#include <glib.h> +#include <log.h> #include <epan/prefs.h> #include <color_utils.h> @@ -138,19 +140,11 @@ QWidget * ExtArgRadio::createEditor(QWidget * parent) QString callString = (*iter).call(); callStrings->append(callString); - if ( _default != NULL && (*iter).isDefault() ) + if ( (*iter).isDefault() ) { radio->setChecked(true); anyChecked = true; } - else if (_default != NULL) - { - if ( callString.compare(_default->toString()) == 0 ) - { - radio->setChecked(true); - anyChecked = true; - } - } connect(radio, SIGNAL(clicked(bool)), SLOT(onBoolChanged(bool))); selectorGroup->addButton(radio, count); @@ -219,19 +213,13 @@ QWidget * ExtArgBool::createLabel(QWidget * parent) QWidget * ExtArgBool::createEditor(QWidget * parent) { + bool state = defaultBool(); + boolBox = new QCheckBox(QString().fromUtf8(_argument->display), parent); if ( _argument->tooltip != NULL ) boolBox->setToolTip(QString().fromUtf8(_argument->tooltip)); - if ( _argument->default_complex != NULL ) - if ( extcap_complex_get_bool(_argument->default_complex) == (gboolean)TRUE ) - boolBox->setCheckState(Qt::Checked); - - if ( _default != NULL ) - { - if ( _default->toString().compare("true") ) - boolBox->setCheckState(Qt::Checked); - } + boolBox->setCheckState(state ? Qt::Checked : Qt::Unchecked ); connect (boolBox, SIGNAL(stateChanged(int)), SLOT(onIntChanged(int))); @@ -263,26 +251,37 @@ bool ExtArgBool::isValid() return true; } -QString ExtArgBool::defaultValue() +bool ExtArgBool::defaultBool() { - if ( _argument != 0 && _argument->default_complex != NULL ) - if ( extcap_complex_get_bool(_argument->default_complex) == (gboolean)TRUE ) - return QString("true"); + bool result = false; + + if ( _argument ) + { + if ( _argument->default_complex ) + { + if ( extcap_complex_get_bool(_argument->default_complex) == (gboolean)TRUE ) + result = true; + } + } + + return result; +} - return QString("false"); +QString ExtArgBool::defaultValue() +{ + return defaultBool() ? QString("true") : QString("false"); } ExtArgText::ExtArgText(extcap_arg * argument) : ExtcapArgument(argument), textBox(0) { - _default = new QVariant(QString("")); } QWidget * ExtArgText::createEditor(QWidget * parent) { - textBox = new QLineEdit(_default->toString(), parent); + QString text = defaultValue(); - textBox->setText(defaultValue()); + textBox = new QLineEdit(text, parent); if ( _argument->tooltip != NULL ) textBox->setToolTip(QString().fromUtf8(_argument->tooltip)); @@ -330,23 +329,12 @@ bool ExtArgText::isValid() return valid; } -QString ExtArgText::defaultValue() -{ - if ( _argument != 0 && _argument->default_complex != 0) - { - gchar * str = extcap_get_complex_as_string(_argument->default_complex); - if ( str != 0 ) - return QString(str); - } - - return QString(); -} - ExtArgNumber::ExtArgNumber(extcap_arg * argument) : ExtArgText(argument) {} QWidget * ExtArgNumber::createEditor(QWidget * parent) { + QString text = defaultValue(); textBox = (QLineEdit *)ExtArgText::createEditor(parent); textBox->disconnect(SIGNAL(textChanged(QString))); @@ -354,13 +342,45 @@ QWidget * ExtArgNumber::createEditor(QWidget * parent) { QIntValidator * textValidator = new QIntValidator(parent); if ( _argument->range_start != NULL ) - textValidator->setBottom(extcap_complex_get_int(_argument->range_start)); + { + int val = 0; + if ( _argument->arg_type == EXTCAP_ARG_INTEGER ) + val = extcap_complex_get_int(_argument->range_start); + else if ( _argument->arg_type == EXTCAP_ARG_UNSIGNED ) + { + val = extcap_complex_get_uint(_argument->range_start); + if ( val > G_MAXINT ) + { + g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_DEBUG, "Defined value for range_start of %s exceeds valid integer range", _argument->call ); + val = G_MAXINT; + } + } + textValidator->setBottom(val); + } if ( _argument->arg_type == EXTCAP_ARG_UNSIGNED && textValidator->bottom() < 0 ) + { + g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_DEBUG, "%s sets negative bottom range for unsigned value, setting to 0", _argument->call ); textValidator->setBottom(0); + } if ( _argument->range_end != NULL ) - textValidator->setTop(extcap_complex_get_int(_argument->range_end)); + { + int val = 0; + if ( _argument->arg_type == EXTCAP_ARG_INTEGER ) + val = extcap_complex_get_int(_argument->range_end); + else if ( _argument->arg_type == EXTCAP_ARG_UNSIGNED ) + { + val = extcap_complex_get_uint(_argument->range_end); + if ( val > G_MAXINT ) + { + g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_DEBUG, "Defined value for range_end of %s exceeds valid integer range", _argument->call ); + val = G_MAXINT; + } + } + + textValidator->setTop(val); + } textBox->setValidator(textValidator); } else if ( _argument->arg_type == EXTCAP_ARG_DOUBLE ) @@ -374,7 +394,7 @@ QWidget * ExtArgNumber::createEditor(QWidget * parent) textBox->setValidator(textValidator); } - textBox->setText(defaultValue()); + textBox->setText(text.trimmed()); connect(textBox, SIGNAL(textChanged(QString)), SLOT(onStringChanged(QString))); @@ -385,7 +405,7 @@ QString ExtArgNumber::defaultValue() { QString result; - if ( _argument != 0 && _argument->default_complex != NULL ) + if ( _argument != 0 ) { if ( _argument->arg_type == EXTCAP_ARG_DOUBLE ) result = QString::number(extcap_complex_get_double(_argument->default_complex)); @@ -396,7 +416,10 @@ QString ExtArgNumber::defaultValue() else if ( _argument->arg_type == EXTCAP_ARG_LONG ) result = QString::number(extcap_complex_get_long(_argument->default_complex)); else - result = QString(); + { + QString defValue = ExtcapArgument::defaultValue(); + result = defValue.length() > 0 ? defValue : QString(); + } } return result; @@ -417,7 +440,7 @@ void ExtcapValue::setChildren(ExtcapValueList children) } ExtcapArgument::ExtcapArgument(extcap_arg * argument, QObject *parent) : - QObject(parent), _argument(argument), _default(0), _label(0), + QObject(parent), _argument(argument), _label(0), label_style(QString("QLabel { color: %1; }")) { if ( _argument->values != 0 ) @@ -515,29 +538,14 @@ bool ExtcapArgument::isValid() QString ExtcapArgument::defaultValue() { - return QString(); -} - -void ExtcapArgument::setDefault(GHashTable * defaultsList) -{ - if ( defaultsList != NULL && g_hash_table_size(defaultsList) > 0 ) + if ( _argument != 0 && _argument->default_complex != 0) { - GList * keys = g_hash_table_get_keys(defaultsList); - while ( keys != NULL ) - { - if ( call().compare(QString().fromUtf8((gchar *)keys->data)) == 0 ) - { - gpointer data = g_hash_table_lookup(defaultsList, keys->data); - QString dataStr = QString().fromUtf8((gchar *)data); - /* We assume an empty value but set entry must be a boolflag */ - if ( dataStr.length() == 0 ) - dataStr = "true"; - _default = new QVariant(dataStr); - break; - } - keys = keys->next; - } + gchar * str = extcap_get_complex_as_string(_argument->default_complex); + if ( str != 0 ) + return QString(str); } + + return QString(); } bool ExtcapArgument::isRequired() @@ -564,7 +572,7 @@ bool ExtcapArgument::isDefault() return false; } -ExtcapArgument * ExtcapArgument::create(extcap_arg * argument, GHashTable * device_defaults) +ExtcapArgument * ExtcapArgument::create(extcap_arg * argument) { if ( argument == 0 || argument->display == 0 ) return 0; @@ -592,8 +600,6 @@ ExtcapArgument * ExtcapArgument::create(extcap_arg * argument, GHashTable * devi result = new ExtcapArgument(argument); } - result->setDefault(device_defaults); - return result; } diff --git a/ui/qt/extcap_argument.h b/ui/qt/extcap_argument.h index 017a163378..c83111a2d3 100644 --- a/ui/qt/extcap_argument.h +++ b/ui/qt/extcap_argument.h @@ -98,7 +98,7 @@ public: bool isValid(); bool isRequired(); - static ExtcapArgument * create(extcap_arg * argument = 0, GHashTable * device_defaults = 0); + static ExtcapArgument * create(extcap_arg * argument = 0); Q_SIGNALS: void valueChanged(); @@ -107,14 +107,11 @@ protected: bool fileExists(); - void setDefault(GHashTable * defaultsList); - ExtcapValueList loadValues(QString parent); ExtcapValueList values; extcap_arg * _argument; - QVariant * _default; QWidget * _label; const QString label_style; @@ -136,7 +133,6 @@ public: virtual QWidget * createEditor(QWidget * parent); virtual QString value(); virtual bool isValid(); - virtual QString defaultValue(); protected: @@ -197,6 +193,8 @@ public: private: QCheckBox * boolBox; + + bool defaultBool(); }; #endif /* UI_QT_EXTCAP_ARGUMENT_H_ */ diff --git a/ui/qt/extcap_argument_file.cpp b/ui/qt/extcap_argument_file.cpp index b93e889ef6..4d2e301aa1 100644 --- a/ui/qt/extcap_argument_file.cpp +++ b/ui/qt/extcap_argument_file.cpp @@ -43,7 +43,6 @@ ExtcapArgumentFileSelection::ExtcapArgumentFileSelection (extcap_arg * argument) : ExtcapArgument(argument), textBox(0) { - _default = new QVariant(QString("")); } ExtcapArgumentFileSelection::~ExtcapArgumentFileSelection() @@ -61,7 +60,7 @@ QWidget * ExtcapArgumentFileSelection::createEditor(QWidget * parent) fileWidget->setContentsMargins(margins.left(), margins.right(), 0, margins.bottom()); QPushButton * button = new QPushButton(UTF8_HORIZONTAL_ELLIPSIS, fileWidget); - textBox = new QLineEdit(_default->toString(), parent); + textBox = new QLineEdit(defaultValue(), parent); textBox->setReadOnly(true); if ( _argument->default_complex != NULL && _argument->arg_type == EXTCAP_ARG_STRING ) diff --git a/ui/qt/extcap_argument_multiselect.cpp b/ui/qt/extcap_argument_multiselect.cpp index fc01dfb351..221f0f240b 100644 --- a/ui/qt/extcap_argument_multiselect.cpp +++ b/ui/qt/extcap_argument_multiselect.cpp @@ -119,8 +119,8 @@ QWidget * ExtArgMultiSelect::createEditor(QWidget * parent) if (items.length() == 0) return new QWidget(); - if ( _default != 0 ) - defaults = _default->toString().split(",", QString::SkipEmptyParts); + if ( defaultValue().length() > 0 ) + defaults = defaultValue().split(",", QString::SkipEmptyParts); viewModel = new QStandardItemModel(); QList<QStandardItem *>::const_iterator iter = items.constBegin(); @@ -173,18 +173,6 @@ QString ExtArgMultiSelect::value() return result.join(QString(",")); } -QString ExtArgMultiSelect::defaultValue() -{ - if ( _argument != 0 && _argument->default_complex != 0) - { - gchar * str = extcap_get_complex_as_string(_argument->default_complex); - if ( str != 0 ) - return QString(str); - } - - return QString(); -} - void ExtArgMultiSelect::selectionChanged(const QItemSelection &, const QItemSelection &) { emit valueChanged(); diff --git a/ui/qt/extcap_argument_multiselect.h b/ui/qt/extcap_argument_multiselect.h index 9e72faeca2..69259e0025 100644 --- a/ui/qt/extcap_argument_multiselect.h +++ b/ui/qt/extcap_argument_multiselect.h @@ -40,7 +40,6 @@ public: virtual ~ExtArgMultiSelect(); virtual QString value(); - virtual QString defaultValue(); virtual bool isValid(); protected: diff --git a/ui/qt/extcap_options_dialog.cpp b/ui/qt/extcap_options_dialog.cpp index e2b5c165ca..f36d4afbd8 100644 --- a/ui/qt/extcap_options_dialog.cpp +++ b/ui/qt/extcap_options_dialog.cpp @@ -62,15 +62,14 @@ ExtcapOptionsDialog::ExtcapOptionsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ExtcapOptionsDialog), device_name(""), - device_idx(0), - device_defaults(NULL) + device_idx(0) { ui->setupUi(this); setWindowTitle(wsApp->windowTitleString(tr("Extcap Interface Options"))); - ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Start")); + ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Start")); } ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, QWidget *parent) @@ -99,7 +98,6 @@ ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, QW resultDialog = new ExtcapOptionsDialog(parent); resultDialog->device_name = QString(dev_name); resultDialog->device_idx = if_idx; - resultDialog->device_defaults = device.external_cap_args_settings; resultDialog->setWindowTitle(wsApp->windowTitleString(tr("Extcap Interface Options") + ": " + device.display_name)); @@ -205,7 +203,7 @@ void ExtcapOptionsDialog::updateWidgets() item = g_list_first((GList *)(walker->data)); while ( item != NULL ) { - argument = ExtcapArgument::create((extcap_arg *)(item->data), device_defaults); + argument = ExtcapArgument::create((extcap_arg *)(item->data)); if ( argument != NULL ) { if ( argument->isRequired() ) @@ -266,9 +264,7 @@ void ExtcapOptionsDialog::updateWidgets() // Not sure why we have to do this manually. void ExtcapOptionsDialog::on_buttonBox_rejected() { - if (saveOptionToCaptureInfo()) { - reject(); - } + reject(); } void ExtcapOptionsDialog::on_buttonBox_helpRequested() @@ -305,7 +301,6 @@ bool ExtcapOptionsDialog::saveOptionToCaptureInfo() gchar * call_string = g_strdup(call.toStdString().c_str()); gchar * value_string = g_strdup(value.toStdString().c_str()); - g_hash_table_insert(ret_args, call_string, value_string ); } diff --git a/ui/qt/extcap_options_dialog.h b/ui/qt/extcap_options_dialog.h index c508d62701..eb0761df8e 100644 --- a/ui/qt/extcap_options_dialog.h +++ b/ui/qt/extcap_options_dialog.h @@ -66,7 +66,6 @@ private: Ui::ExtcapOptionsDialog *ui; QString device_name; guint device_idx; - GHashTable * device_defaults; ExtcapArgumentList extcapArguments; |