Skip to content

Commit 74a57e7

Browse files
directory for file
1 parent ea2a337 commit 74a57e7

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

USAGE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Strings has the following variant:
5959
* "text", which uses a `QLineEdit`
6060
* "password", which uses a `TextSchemaWidget`
6161
* "filepath", which adds a button which use the open file name in the computer
62+
* "dirpath", which adds a button which use the open directory name in the computer
6263
* "colour", which uses a `QColorButton`
6364

6465
# Defaults

qt_jsonschema_form/form.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class WidgetBuilder:
2626
"object": {"object": widgets.ObjectSchemaWidget, "enum": widgets.EnumSchemaWidget},
2727
"number": {"spin": widgets.SpinDoubleSchemaWidget, "text": widgets.TextSchemaWidget, "enum": widgets.EnumSchemaWidget},
2828
"string": {"textarea": widgets.TextAreaSchemaWidget, "text": widgets.TextSchemaWidget, "password": widgets.PasswordWidget,
29-
"filepath": widgets.FilepathSchemaWidget, "colour": widgets.ColorSchemaWidget, "enum": widgets.EnumSchemaWidget},
29+
"filepath": widgets.FilepathSchemaWidget, "dirpath": widgets.DirectorypathSchemaWidget, "colour": widgets.ColorSchemaWidget, "enum": widgets.EnumSchemaWidget},
3030
"integer": {"spin": widgets.SpinSchemaWidget, "text": widgets.TextSchemaWidget, "range": widgets.IntegerRangeSchemaWidget,
3131
"enum": widgets.EnumSchemaWidget},
3232
"array": {"array": widgets.ArraySchemaWidget, "enum": widgets.EnumSchemaWidget}

qt_jsonschema_form/widgets.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,12 @@ def state(self, state: str):
305305
self.path_widget.setText(state)
306306

307307

308+
class DirectorypathSchemaWidget(FilepathSchemaWidget):
309+
def _on_clicked(self, flag):
310+
path = QtWidgets.QFileDialog.getExistingDirectory()
311+
self.path_widget.setText(path)
312+
313+
308314
class ArrayControlsWidget(QtWidgets.QWidget):
309315
on_delete = QtCore.pyqtSignal()
310316
on_move_up = QtCore.pyqtSignal()

0 commit comments

Comments
 (0)