Skip to content

Commit 4f940dd

Browse files
authored
added option to change filemode (ros-visualization#1537)
1 parent 09200cf commit 4f940dd

File tree

4 files changed

+29
-7
lines changed

4 files changed

+29
-7
lines changed

rviz_common/include/rviz_common/properties/file_picker_property.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@
3131
#ifndef RVIZ_COMMON__PROPERTIES__FILE_PICKER_PROPERTY_HPP_
3232
#define RVIZ_COMMON__PROPERTIES__FILE_PICKER_PROPERTY_HPP_
3333

34+
#include <QFileDialog>
35+
#include <QObject>
3436
#include <QString>
37+
#include <QStyleOptionViewItem>
38+
#include <QWidget>
3539

3640
#include "rviz_common/properties/string_property.hpp"
3741
#include "rviz_common/visibility_control.hpp"
@@ -49,9 +53,13 @@ class RVIZ_COMMON_PUBLIC FilePickerProperty : public StringProperty
4953
const QString & description = QString(),
5054
Property * parent = nullptr,
5155
const char * changed_slot = nullptr,
52-
QObject * receiver = nullptr);
56+
QObject * receiver = nullptr,
57+
QFileDialog::FileMode mode = QFileDialog::AnyFile);
5358

5459
QWidget * createEditor(QWidget * parent, const QStyleOptionViewItem & option) override;
60+
61+
private:
62+
QFileDialog::FileMode mode_;
5563
};
5664

5765
} // namespace properties

rviz_common/src/rviz_common/properties/file_picker.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
#include <QFileDialog>
3434
#include <QString>
35+
#include <QWidget>
3536

3637

3738
namespace rviz_common
@@ -41,14 +42,17 @@ namespace properties
4142

4243
FilePicker::FilePicker(
4344
StringProperty * file_name_property,
44-
QWidget * parent)
45+
QWidget * parent,
46+
QFileDialog::FileMode mode)
4547
: LineEditWithButton(parent),
46-
file_name_property_(file_name_property)
48+
file_name_property_(file_name_property),
49+
mode_(mode)
4750
{}
4851

4952
void FilePicker::onButtonClick()
5053
{
5154
auto dialog = new QFileDialog(parentWidget());
55+
dialog->setFileMode(mode_);
5256

5357
connect(
5458
dialog, SIGNAL(fileSelected(const QString&)),

rviz_common/src/rviz_common/properties/file_picker.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
#ifndef RVIZ_COMMON__PROPERTIES__FILE_PICKER_HPP_
3232
#define RVIZ_COMMON__PROPERTIES__FILE_PICKER_HPP_
3333

34+
#include <QFileDialog>
35+
#include <QWidget>
36+
3437
#include "rviz_common/properties/line_edit_with_button.hpp"
3538
#include "rviz_common/properties/string_property.hpp"
3639
#include "rviz_common/visibility_control.hpp"
@@ -45,13 +48,15 @@ class FilePicker : public LineEditWithButton
4548
public:
4649
explicit FilePicker(
4750
StringProperty * file_name_property = nullptr,
48-
QWidget * parent = nullptr);
51+
QWidget * parent = nullptr,
52+
QFileDialog::FileMode mode = QFileDialog::AnyFile);
4953

5054
protected:
5155
void onButtonClick() override;
5256

5357
private:
5458
StringProperty * file_name_property_;
59+
QFileDialog::FileMode mode_;
5560
};
5661

5762
} // namespace properties

rviz_common/src/rviz_common/properties/file_picker_property.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@
3030

3131
#include "rviz_common/properties/file_picker_property.hpp"
3232

33+
#include <QFileDialog>
34+
#include <QObject>
3335
#include <QString>
36+
#include <QStyleOptionViewItem>
37+
#include <QWidget>
3438

3539
#include "file_picker.hpp"
3640

@@ -45,14 +49,15 @@ FilePickerProperty::FilePickerProperty(
4549
const QString & description,
4650
Property * parent,
4751
const char * changed_slot,
48-
QObject * receiver)
49-
: StringProperty(name, default_value, description, parent, changed_slot, receiver)
52+
QObject * receiver,
53+
QFileDialog::FileMode mode)
54+
: StringProperty(name, default_value, description, parent, changed_slot, receiver), mode_(mode)
5055
{}
5156

5257
QWidget * FilePickerProperty::createEditor(QWidget * parent, const QStyleOptionViewItem & option)
5358
{
5459
(void) option;
55-
auto file_picker = new FilePicker(this, parent);
60+
auto file_picker = new FilePicker(this, parent, mode_);
5661
file_picker->setFrame(false);
5762
return file_picker;
5863
}

0 commit comments

Comments
 (0)