diff options
-rw-r--r-- | extcap.c | 5 | ||||
-rw-r--r-- | ui/qt/extcap_argument_file.cpp | 20 |
2 files changed, 22 insertions, 3 deletions
@@ -584,6 +584,11 @@ extcap_has_configuration(const char * ifname, gboolean is_required) { else if ( ! defval && (!stored || strlen(g_strchomp(stored)) <= (size_t)0) ) found = TRUE; } + + if ( arg->arg_type == EXTCAP_ARG_FILESELECT ) { + if ( arg->fileexists && ! ( file_exists(defval) || file_exists(stored) ) ) + found = TRUE; + } } } diff --git a/ui/qt/extcap_argument_file.cpp b/ui/qt/extcap_argument_file.cpp index 4d2e301aa1..3c99ae05cc 100644 --- a/ui/qt/extcap_argument_file.cpp +++ b/ui/qt/extcap_argument_file.cpp @@ -53,6 +53,9 @@ ExtcapArgumentFileSelection::~ExtcapArgumentFileSelection() QWidget * ExtcapArgumentFileSelection::createEditor(QWidget * parent) { + QString storeval; + QString text = defaultValue(); + QWidget * fileWidget = new QWidget(parent); QHBoxLayout * editLayout = new QHBoxLayout(); QMargins margins = editLayout->contentsMargins(); @@ -63,8 +66,14 @@ QWidget * ExtcapArgumentFileSelection::createEditor(QWidget * parent) textBox = new QLineEdit(defaultValue(), parent); textBox->setReadOnly(true); - if ( _argument->default_complex != NULL && _argument->arg_type == EXTCAP_ARG_STRING ) - textBox->setText(QString().fromUtf8(extcap_complex_get_string(_argument->default_complex))); + if ( _argument->storeval ) + { + QString storeValue = _argument->storeval; + + if ( storeValue.length() > 0 && storeValue.compare(text) != 0 ) + text = storeValue.trimmed(); + } + textBox->setText(text); if ( _argument->tooltip != NULL ) { @@ -121,7 +130,12 @@ bool ExtcapArgumentFileSelection::isValid() { bool valid = false; - if ( textBox->text().length() > 0 || ! isRequired() ) + if ( textBox->text().length() > 0 ) + { + if ( QFileInfo(textBox->text()).exists() && _argument->fileexists ) + valid = true; + } + else if ( ! isRequired() ) valid = true; QString lblInvalidColor = ColorUtils::fromColorT(prefs.gui_text_invalid).name(); |