Qt: fix selection of folder in UAT dialog

Using getOpenFileName() even with ShowDirsOnly option does not work.
Let's use the dedicated getExistingDirectory() method instead.

Bug: 11842
Change-Id: Ie22c4c479005467dbf64d9a90a8f3b82d355d495
Reviewed-on: https://code.wireshark.org/review/12384
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Pascal Quantin 2015-12-02 19:39:31 +01:00 committed by Anders Broman
parent cda450ed59
commit ea447aad1f
1 changed files with 10 additions and 3 deletions

View File

@ -253,7 +253,6 @@ void UatDialog::on_uatTreeWidget_itemActivated(QTreeWidgetItem *item, int column
uat_field_t *field = &uat_->fields[column];
guint row = item->data(0, Qt::UserRole).toUInt();
void *rec = UAT_INDEX_PTR(uat_, row);
QFileDialog::Options fd_opt = QFileDialog::DontConfirmOverwrite;
cur_column_ = column;
QWidget *editor = NULL;
@ -271,12 +270,20 @@ void UatDialog::on_uatTreeWidget_itemActivated(QTreeWidgetItem *item, int column
switch(field->mode) {
case PT_TXTMOD_DIRECTORYNAME:
fd_opt |= QFileDialog::ShowDirsOnly;
{
QString cur_path = fieldString(row, column);
const QByteArray& new_path = QFileDialog::getExistingDirectory(this,
field->title, cur_path).toUtf8();
field->cb.set(rec, new_path.constData(), (unsigned) new_path.size(), field->cbdata.set, field->fld_data);
updateItem(*item);
break;
}
case PT_TXTMOD_FILENAME:
{
QString cur_path = fieldString(row, column);
const QByteArray& new_path = QFileDialog::getOpenFileName(this,
field->title, cur_path, QString(), NULL, fd_opt).toUtf8();
field->title, cur_path, QString(), NULL, QFileDialog::DontConfirmOverwrite).toUtf8();
field->cb.set(rec, new_path.constData(), (unsigned) new_path.size(), field->cbdata.set, field->fld_data);
updateItem(*item);
break;