summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-02-16 07:02:56 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-02-16 07:02:56 +0100
commit1d61e0052b6a94546f264c3a37a19db09003d7c8 (patch)
tree9311e07960d5b08e9948b615f992c36e7bce1cf9 /src
parent571a44a4dde8f047773f4e91a4a6941cb4cdf212 (diff)
parent67041bbc667a10ae14a15ed8755b2b1bbf91b686 (diff)
downloadqtquickcontrols-1d61e0052b6a94546f264c3a37a19db09003d7c8.tar.gz
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts: .qmake.conf src/dialogs/qquickabstractfiledialog.cpp src/dialogs/qquickfiledialog.cpp Change-Id: I60aab7c7e819f82f82fc30f473b36a7a57d9a91a
Diffstat (limited to 'src')
-rw-r--r--src/controls/MenuBar.qml2
-rw-r--r--src/controls/Private/MenuContentItem.qml6
-rw-r--r--src/controls/TreeView.qml34
-rw-r--r--src/controls/doc/src/qtquickcontrols-tableview.qdoc1
-rw-r--r--src/controls/doc/src/qtquickcontrols-treeview.qdoc1
-rw-r--r--src/controls/qquickmenupopupwindow.cpp7
-rw-r--r--src/controls/qquickmenupopupwindow_p.h1
-rw-r--r--src/controls/qquickpopupwindow.cpp1
-rw-r--r--src/dialogs/DefaultFileDialog.qml44
-rw-r--r--src/dialogs/qquickabstractdialog.cpp8
-rw-r--r--src/dialogs/qquickabstractdialog_p.h4
-rw-r--r--src/dialogs/qquickabstractfiledialog.cpp82
-rw-r--r--src/dialogs/qquickabstractfiledialog_p.h14
-rw-r--r--src/dialogs/qquickfiledialog.cpp86
-rw-r--r--src/dialogs/qquickfiledialog_p.h17
15 files changed, 180 insertions, 128 deletions
diff --git a/src/controls/MenuBar.qml b/src/controls/MenuBar.qml
index f2f0065b..a98d0e81 100644
--- a/src/controls/MenuBar.qml
+++ b/src/controls/MenuBar.qml
@@ -250,6 +250,8 @@ MenuBarPrivate {
}
}
+ Keys.forwardTo: d.openedMenuIndex !== -1 ? [root.menus[d.openedMenuIndex].__contentItem] : []
+
Row {
id: row
x: d.style ? d.style.padding.left : 0
diff --git a/src/controls/Private/MenuContentItem.qml b/src/controls/Private/MenuContentItem.qml
index 08bcf08b..fe8e7726 100644
--- a/src/controls/Private/MenuContentItem.qml
+++ b/src/controls/Private/MenuContentItem.qml
@@ -141,9 +141,13 @@ Loader {
Keys.onRightPressed: {
var item = content.menuItemAt(__menu.__currentIndex)
- if ((event.accepted = (item && item.styleData.type === MenuItemType.Menu))) {
+ if (item && item.styleData.type === MenuItemType.Menu
+ && !item.__menuItem.__popupVisible) {
item.__showSubMenu(true)
item.__menuItem.__currentIndex = 0
+ event.accepted = true
+ } else {
+ event.accepted = false
}
}
diff --git a/src/controls/TreeView.qml b/src/controls/TreeView.qml
index 6be217c5..49b88486 100644
--- a/src/controls/TreeView.qml
+++ b/src/controls/TreeView.qml
@@ -124,6 +124,7 @@ BasicTableView {
property var clickedIndex: undefined
property var pressedIndex: undefined
+ property bool selectOnRelease: false
property int pressedColumn: -1
readonly property alias currentRow: root.__currentRow
readonly property alias currentIndex: root.currentIndex
@@ -240,22 +241,37 @@ BasicTableView {
var pressedRow = __listView.indexAt(0, mouseY + __listView.contentY)
pressedIndex = modelAdaptor.mapRowToModelIndex(pressedRow)
pressedColumn = __listView.columnAt(mouseX)
+ selectOnRelease = false
__listView.forceActiveFocus()
- if (pressedRow > -1 && !Settings.hasTouchScreen
- && !branchDecorationContains(mouse.x, mouse.y)) {
- __listView.currentIndex = pressedRow
- if (!clickedIndex)
- clickedIndex = pressedIndex
- mouseSelect(pressedIndex, mouse.modifiers, false)
- if (!mouse.modifiers)
- clickedIndex = pressedIndex
+ if (pressedRow === -1
+ || Settings.hasTouchScreen
+ || branchDecorationContains(mouse.x, mouse.y)) {
+ return
+ }
+ if (selectionMode === SelectionMode.ExtendedSelection
+ && selection.isSelected(pressedIndex)) {
+ selectOnRelease = true
+ return
}
+ __listView.currentIndex = pressedRow
+ if (!clickedIndex)
+ clickedIndex = pressedIndex
+ mouseSelect(pressedIndex, mouse.modifiers, false)
+ if (!mouse.modifiers)
+ clickedIndex = pressedIndex
}
onReleased: {
+ if (selectOnRelease) {
+ var releasedRow = __listView.indexAt(0, mouseY + __listView.contentY)
+ var releasedIndex = modelAdaptor.mapRowToModelIndex(releasedRow)
+ if (releasedRow >= 0 && releasedIndex === pressedIndex)
+ mouseSelect(pressedIndex, mouse.modifiers, false)
+ }
pressedIndex = undefined
pressedColumn = -1
autoScroll = 0
+ selectOnRelease = false
}
onPositionChanged: {
@@ -286,12 +302,14 @@ BasicTableView {
onExited: {
pressedIndex = undefined
pressedColumn = -1
+ selectOnRelease = false
}
onCanceled: {
pressedIndex = undefined
pressedColumn = -1
autoScroll = 0
+ selectOnRelease = false
}
onClicked: {
diff --git a/src/controls/doc/src/qtquickcontrols-tableview.qdoc b/src/controls/doc/src/qtquickcontrols-tableview.qdoc
index d4649dc5..98c7ca7b 100644
--- a/src/controls/doc/src/qtquickcontrols-tableview.qdoc
+++ b/src/controls/doc/src/qtquickcontrols-tableview.qdoc
@@ -288,6 +288,7 @@
*/
/*!
+ \qmlpropertygroup TableView::section
\qmlproperty string TableView::section.property
\qmlproperty enumeration TableView::section.criteria
\qmlproperty Component TableView::section.delegate
diff --git a/src/controls/doc/src/qtquickcontrols-treeview.qdoc b/src/controls/doc/src/qtquickcontrols-treeview.qdoc
index 593ba99d..4fe92d9c 100644
--- a/src/controls/doc/src/qtquickcontrols-treeview.qdoc
+++ b/src/controls/doc/src/qtquickcontrols-treeview.qdoc
@@ -125,6 +125,7 @@
*/
/*!
+ \qmlpropertygroup TreeView::section
\qmlproperty string TreeView::section.property
\qmlproperty enumeration TreeView::section.criteria
\qmlproperty Component TreeView::section.delegate
diff --git a/src/controls/qquickmenupopupwindow.cpp b/src/controls/qquickmenupopupwindow.cpp
index 95100337..960de23d 100644
--- a/src/controls/qquickmenupopupwindow.cpp
+++ b/src/controls/qquickmenupopupwindow.cpp
@@ -151,6 +151,13 @@ void QQuickMenuPopupWindow::updatePosition()
setGeometry(newPos.x(), newPos.y(), width(), height());
}
+void QQuickMenuPopupWindow::focusInEvent(QFocusEvent *e)
+{
+ QQuickWindow::focusInEvent(e);
+ if (m_menu && m_menu->menuContentItem())
+ m_menu->menuContentItem()->forceActiveFocus();
+}
+
void QQuickMenuPopupWindow::exposeEvent(QExposeEvent *e)
{
// the popup will reposition at the last moment, so its
diff --git a/src/controls/qquickmenupopupwindow_p.h b/src/controls/qquickmenupopupwindow_p.h
index de3509b3..adcfc6bb 100644
--- a/src/controls/qquickmenupopupwindow_p.h
+++ b/src/controls/qquickmenupopupwindow_p.h
@@ -71,6 +71,7 @@ Q_SIGNALS:
void willBeDeletedLater();
protected:
+ void focusInEvent(QFocusEvent *);
void exposeEvent(QExposeEvent *);
bool shouldForwardEventAfterDismiss(QMouseEvent *) const;
diff --git a/src/controls/qquickpopupwindow.cpp b/src/controls/qquickpopupwindow.cpp
index 83955c48..defac701 100644
--- a/src/controls/qquickpopupwindow.cpp
+++ b/src/controls/qquickpopupwindow.cpp
@@ -70,7 +70,6 @@ void QQuickPopupWindow::show()
if (QWindow *tp = transientParent()) {
if (m_parentItem) {
QPointF pos = m_parentItem->mapToItem(m_parentItem->window()->contentItem(), QPointF(posx, posy));
- pos += tp->mapFromGlobal(m_parentItem->window()->mapToGlobal(QPoint()));
posx = pos.x();
posy = pos.y();
}
diff --git a/src/dialogs/DefaultFileDialog.qml b/src/dialogs/DefaultFileDialog.qml
index 05232268..cc663ccb 100644
--- a/src/dialogs/DefaultFileDialog.qml
+++ b/src/dialogs/DefaultFileDialog.qml
@@ -51,10 +51,39 @@ import "qml"
AbstractFileDialog {
id: root
- folder: view.model.folder
+ Component {
+ id: modelComponent
+ FolderListModel {
+ showFiles: !root.selectFolder
+ nameFilters: root.selectedNameFilterExtensions
+ sortField: (view.sortIndicatorColumn === 0 ? FolderListModel.Name :
+ (view.sortIndicatorColumn === 1 ? FolderListModel.Type :
+ (view.sortIndicatorColumn === 2 ? FolderListModel.Size : FolderListModel.LastModified)))
+ sortReversed: view.sortIndicatorOrder === Qt.DescendingOrder
+ }
+ }
onVisibleChanged: {
if (visible) {
+ // If the TableView doesn't have a model yet, create it asynchronously to avoid a UI freeze
+ if (!view.model) {
+ var incubator = modelComponent.incubateObject(null, { })
+ function init(model) {
+ view.model = model
+ model.nameFilters = root.selectedNameFilterExtensions
+ root.folder = model.folder
+ }
+
+ if (incubator.status === Component.Ready) {
+ init(incubator.object)
+ } else {
+ incubator.onStatusChanged = function(status) {
+ if (status === Component.Ready)
+ init(incubator.object)
+ }
+ }
+ }
+
view.needsWidthAdjustment = true
view.selection.clear()
view.focus = true
@@ -62,7 +91,6 @@ AbstractFileDialog {
}
Component.onCompleted: {
- view.model.nameFilters = root.selectedNameFilterExtensions
filterField.currentIndex = root.selectedNameFilterIndex
root.favoriteFolders = settings.favoriteFolders
}
@@ -303,14 +331,7 @@ AbstractFileDialog {
resizeColumnsToContents()
needsWidthAdjustment = false
}
- model: FolderListModel {
- showFiles: !root.selectFolder
- nameFilters: root.selectedNameFilterExtensions
- sortField: (view.sortIndicatorColumn === 0 ? FolderListModel.Name :
- (view.sortIndicatorColumn === 1 ? FolderListModel.Type :
- (view.sortIndicatorColumn === 2 ? FolderListModel.Size : FolderListModel.LastModified)))
- sortReversed: view.sortIndicatorOrder === Qt.DescendingOrder
- }
+ model: null
onActivated: if (view.focus) {
if (view.selection.count > 0 && view.model.isFolder(row)) {
@@ -438,7 +459,8 @@ AbstractFileDialog {
anchors.verticalCenter: parent.verticalCenter
onCurrentTextChanged: {
root.selectNameFilter(currentText)
- view.model.nameFilters = root.selectedNameFilterExtensions
+ if (view.model)
+ view.model.nameFilters = root.selectedNameFilterExtensions
}
}
Button {
diff --git a/src/dialogs/qquickabstractdialog.cpp b/src/dialogs/qquickabstractdialog.cpp
index 53bdef8c..afc27b77 100644
--- a/src/dialogs/qquickabstractdialog.cpp
+++ b/src/dialogs/qquickabstractdialog.cpp
@@ -192,7 +192,7 @@ void QQuickAbstractDialog::setVisible(bool v)
}
}
if (m_windowDecoration) {
- m_windowDecoration->setProperty("dismissOnOuterClick", (m_modality == Qt::NonModal));
+ setDecorationDismissBehavior();
m_windowDecoration->setVisible(v);
} else if (m_dialogWindow) {
if (v) {
@@ -223,6 +223,7 @@ void QQuickAbstractDialog::decorationLoaded()
QVariant contentVariant;
contentVariant.setValue<QQuickItem*>(m_contentItem);
m_windowDecoration->setProperty("content", contentVariant);
+ setDecorationDismissBehavior();
connect(m_windowDecoration, SIGNAL(dismissed()), this, SLOT(reject()));
ok = true;
qCDebug(lcWindow) << "using synthetic window decoration" << m_windowDecoration << "from" << m_decorationComponent->url();
@@ -312,6 +313,11 @@ QQuickWindow *QQuickAbstractDialog::parentWindow()
return m_parentWindow;
}
+void QQuickAbstractDialog::setDecorationDismissBehavior()
+{
+ m_windowDecoration->setProperty("dismissOnOuterClick", (m_modality == Qt::NonModal));
+}
+
void QQuickAbstractDialog::setContentItem(QQuickItem *obj)
{
m_contentItem = obj;
diff --git a/src/dialogs/qquickabstractdialog_p.h b/src/dialogs/qquickabstractdialog_p.h
index da012e28..0a761bf3 100644
--- a/src/dialogs/qquickabstractdialog_p.h
+++ b/src/dialogs/qquickabstractdialog_p.h
@@ -155,7 +155,9 @@ protected:
bool m_visible;
Qt::WindowModality m_modality;
-protected: // variables for pure-QML implementations only
+protected: // variables and methods for pure-QML implementations only
+ void setDecorationDismissBehavior();
+
QQuickItem *m_contentItem;
QWindow *m_dialogWindow;
QQuickItem *m_windowDecoration;
diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp
index 3a0d4229..3bc79570 100644
--- a/src/dialogs/qquickabstractfiledialog.cpp
+++ b/src/dialogs/qquickabstractfiledialog.cpp
@@ -41,9 +41,10 @@
#include "qquickitem.h"
#include <private/qguiapplication_p.h>
+#include <QQmlEngine>
+#include <QQuickWindow>
#include <QRegularExpression>
#include <QWindow>
-#include <QQuickWindow>
QT_BEGIN_NAMESPACE
@@ -224,4 +225,83 @@ void QQuickAbstractFileDialog::updateModes()
emit fileModeChanged();
}
+void QQuickAbstractFileDialog::addShortcut(const QString &name, const QString &visibleName, const QString &path)
+{
+ QQmlEngine *engine = qmlEngine(this);
+ QUrl url = QUrl::fromLocalFile(path);
+
+ // Since the app can have bindings to the shortcut, we always add it
+ // to the public API, even if the directory doesn't (yet) exist.
+ m_shortcuts.setProperty(name, url.toString());
+
+ // ...but we are more strict about showing it as a clickable link inside the dialog
+ if (visibleName.isEmpty() || !QDir(path).exists())
+ return;
+
+ QJSValue o = engine->newObject();
+ o.setProperty("name", visibleName);
+ // TODO maybe some day QJSValue could directly store a QUrl
+ o.setProperty("url", url.toString());
+
+ int length = m_shortcutDetails.property(QLatin1String("length")).toInt();
+ m_shortcutDetails.setProperty(length, o);
+}
+
+void QQuickAbstractFileDialog::addShortcutFromStandardLocation(const QString &name, QStandardPaths::StandardLocation loc, bool local)
+{
+ if (m_selectExisting) {
+ QStringList readPaths = QStandardPaths::standardLocations(loc);
+ QString path = readPaths.isEmpty() ? QString() : local ? readPaths.first() : readPaths.last();
+ addShortcut(name, QStandardPaths::displayName(loc), path);
+ } else {
+ QString path = QStandardPaths::writableLocation(loc);
+ addShortcut(name, QStandardPaths::displayName(loc), path);
+ }
+}
+
+void QQuickAbstractFileDialog::populateShortcuts()
+{
+ QJSEngine *engine = qmlEngine(this);
+ m_shortcutDetails = engine->newArray();
+ m_shortcuts = engine->newObject();
+
+ addShortcutFromStandardLocation(QLatin1String("desktop"), QStandardPaths::DesktopLocation);
+ addShortcutFromStandardLocation(QLatin1String("documents"), QStandardPaths::DocumentsLocation);
+ addShortcutFromStandardLocation(QLatin1String("music"), QStandardPaths::MusicLocation);
+ addShortcutFromStandardLocation(QLatin1String("movies"), QStandardPaths::MoviesLocation);
+ addShortcutFromStandardLocation(QLatin1String("home"), QStandardPaths::HomeLocation);
+
+#ifndef Q_OS_IOS
+ addShortcutFromStandardLocation(QLatin1String("pictures"), QStandardPaths::PicturesLocation);
+#else
+ // On iOS we point pictures to the system picture folder when loading
+ addShortcutFromStandardLocation(QLatin1String("pictures"), QStandardPaths::PicturesLocation, !m_selectExisting);
+#endif
+
+#ifndef Q_OS_IOS
+ // on iOS, this returns only "/", which is never a useful path to read or write anything
+ const QFileInfoList drives = QDir::drives();
+ for (const QFileInfo &fi : drives)
+ addShortcut(fi.absoluteFilePath(), fi.absoluteFilePath(), fi.absoluteFilePath());
+#endif
+
+ emit shortcutsChanged();
+}
+
+QJSValue QQuickAbstractFileDialog::shortcuts()
+{
+ if (m_shortcuts.isUndefined())
+ populateShortcuts();
+
+ return m_shortcuts;
+}
+
+QJSValue QQuickAbstractFileDialog::__shortcuts()
+{
+ if (m_shortcutDetails.isUndefined())
+ populateShortcuts();
+
+ return m_shortcutDetails;
+}
+
QT_END_NAMESPACE
diff --git a/src/dialogs/qquickabstractfiledialog_p.h b/src/dialogs/qquickabstractfiledialog_p.h
index c43865ed..370a31cc 100644
--- a/src/dialogs/qquickabstractfiledialog_p.h
+++ b/src/dialogs/qquickabstractfiledialog_p.h
@@ -51,6 +51,8 @@
// We mean it.
//
+#include <QJSValue>
+#include <QStandardPaths>
#include <QQuickView>
#include <QtGui/qpa/qplatformdialoghelper.h>
#include <qpa/qplatformtheme.h>
@@ -72,6 +74,8 @@ class QQuickAbstractFileDialog : public QQuickAbstractDialog
Q_PROPERTY(QUrl fileUrl READ fileUrl NOTIFY selectionAccepted)
Q_PROPERTY(QList<QUrl> fileUrls READ fileUrls NOTIFY selectionAccepted)
Q_PROPERTY(bool sidebarVisible READ sidebarVisible WRITE setSidebarVisible NOTIFY sidebarVisibleChanged)
+ Q_PROPERTY(QJSValue shortcuts READ shortcuts NOTIFY shortcutsChanged) // map of QStandardDirectory names to QUrls
+ Q_PROPERTY(QJSValue __shortcuts READ __shortcuts NOTIFY shortcutsChanged) // map of details for QML dialog implementations
public:
QQuickAbstractFileDialog(QObject *parent = 0);
@@ -89,6 +93,8 @@ public:
QUrl fileUrl() const;
virtual QList<QUrl> fileUrls() const = 0;
bool sidebarVisible() const { return m_sidebarVisible; }
+ QJSValue shortcuts();
+ QJSValue __shortcuts();
public Q_SLOTS:
void setVisible(bool v);
@@ -109,13 +115,19 @@ Q_SIGNALS:
void fileModeChanged();
void selectionAccepted();
void sidebarVisibleChanged();
+ void shortcutsChanged();
protected:
- virtual void updateModes();
+ void updateModes();
+ void addShortcut(const QString &name, const QString &visibleName, const QString &path);
+ void addShortcutFromStandardLocation(const QString &name, QStandardPaths::StandardLocation loc, bool local = true);
+ void populateShortcuts();
protected:
QPlatformFileDialogHelper *m_dlgHelper;
QSharedPointer<QFileDialogOptions> m_options;
+ QJSValue m_shortcuts;
+ QJSValue m_shortcutDetails;
bool m_selectExisting;
bool m_selectMultiple;
bool m_selectFolder;
diff --git a/src/dialogs/qquickfiledialog.cpp b/src/dialogs/qquickfiledialog.cpp
index 66e8f389..263b4988 100644
--- a/src/dialogs/qquickfiledialog.cpp
+++ b/src/dialogs/qquickfiledialog.cpp
@@ -42,7 +42,6 @@
#include <QQmlEngine>
#include <QJSValueIterator>
#include <private/qguiapplication_p.h>
-#include <private/qv4object_p.h>
QT_BEGIN_NAMESPACE
@@ -119,91 +118,6 @@ QList<QUrl> QQuickFileDialog::fileUrls() const
return m_selections;
}
-void QQuickFileDialog::addShortcut(const QString &name, const QString &visibleName, const QString &path)
-{
- QJSEngine *engine = qmlEngine(this);
- QUrl url = QUrl::fromLocalFile(path);
-
- // Since the app can have bindings to the shortcut, we always add it
- // to the public API, even if the directory doesn't (yet) exist.
- m_shortcuts.setProperty(name, url.toString());
-
- // ...but we are more strict about showing it as a clickable link inside the dialog
- if (visibleName.isEmpty() || !QDir(path).exists())
- return;
-
- QJSValue o = engine->newObject();
- o.setProperty("name", visibleName);
- // TODO maybe some day QJSValue could directly store a QUrl
- o.setProperty("url", url.toString());
-
- int length = m_shortcutDetails.property(QLatin1String("length")).toInt();
- m_shortcutDetails.setProperty(length, o);
-}
-
-void QQuickFileDialog::addShortcutFromStandardLocation(const QString &name, QStandardPaths::StandardLocation loc, bool local)
-{
- if (m_selectExisting) {
- QStringList readPaths = QStandardPaths::standardLocations(loc);
- QString path = readPaths.isEmpty() ? QString() : local ? readPaths.first() : readPaths.last();
- addShortcut(name, QStandardPaths::displayName(loc), path);
- } else {
- QString path = QStandardPaths::writableLocation(loc);
- addShortcut(name, QStandardPaths::displayName(loc), path);
- }
-}
-
-void QQuickFileDialog::populateShortcuts()
-{
- QJSEngine *engine = qmlEngine(this);
- m_shortcutDetails = engine->newArray();
- m_shortcuts = engine->newObject();
-
- addShortcutFromStandardLocation(QLatin1String("desktop"), QStandardPaths::DesktopLocation);
- addShortcutFromStandardLocation(QLatin1String("documents"), QStandardPaths::DocumentsLocation);
- addShortcutFromStandardLocation(QLatin1String("music"), QStandardPaths::MusicLocation);
- addShortcutFromStandardLocation(QLatin1String("movies"), QStandardPaths::MoviesLocation);
- addShortcutFromStandardLocation(QLatin1String("home"), QStandardPaths::HomeLocation);
-
-#ifndef Q_OS_IOS
- addShortcutFromStandardLocation(QLatin1String("pictures"), QStandardPaths::PicturesLocation);
-#else
- // On iOS we point pictures to the system picture folder when loading
- addShortcutFromStandardLocation(QLatin1String("pictures"), QStandardPaths::PicturesLocation, !m_selectExisting);
-#endif
-
-#ifndef Q_OS_IOS
- // on iOS, this returns only "/", which is never a useful path to read or write anything
- const QFileInfoList drives = QDir::drives();
- for (const QFileInfo &fi : drives)
- addShortcut(fi.absoluteFilePath(), fi.absoluteFilePath(), fi.absoluteFilePath());
-#endif
-
- emit shortcutsChanged();
-}
-
-void QQuickFileDialog::updateModes()
-{
- QQuickAbstractFileDialog::updateModes();
- populateShortcuts();
-}
-
-QJSValue QQuickFileDialog::shortcuts()
-{
- if (m_shortcuts.isUndefined())
- populateShortcuts();
-
- return m_shortcuts;
-}
-
-QJSValue QQuickFileDialog::__shortcuts()
-{
- if (m_shortcutDetails.isUndefined())
- populateShortcuts();
-
- return m_shortcutDetails;
-}
-
/*!
\qmlproperty bool AbstractFileDialog::visible
diff --git a/src/dialogs/qquickfiledialog_p.h b/src/dialogs/qquickfiledialog_p.h
index 630ea4a8..5614e939 100644
--- a/src/dialogs/qquickfiledialog_p.h
+++ b/src/dialogs/qquickfiledialog_p.h
@@ -52,8 +52,6 @@
//
#include "qquickabstractfiledialog_p.h"
-#include <QJSValue>
-#include <QStandardPaths>
QT_BEGIN_NAMESPACE
@@ -61,8 +59,6 @@ class QQuickFileDialog : public QQuickAbstractFileDialog
{
Q_OBJECT
Q_PROPERTY(QQuickItem* contentItem READ contentItem WRITE setContentItem DESIGNABLE false)
- Q_PROPERTY(QJSValue shortcuts READ shortcuts NOTIFY shortcutsChanged) // map of QStandardDirectory names to QUrls
- Q_PROPERTY(QJSValue __shortcuts READ __shortcuts NOTIFY shortcutsChanged) // map of details for QML dialog implementations
Q_CLASSINFO("DefaultProperty", "contentItem") // AbstractFileDialog in QML can have only one child
public:
@@ -70,12 +66,6 @@ public:
~QQuickFileDialog();
virtual QList<QUrl> fileUrls() const Q_DECL_OVERRIDE;
- QJSValue shortcuts();
- QJSValue __shortcuts();
-
-Q_SIGNALS:
- void shortcutsChanged();
-
public Q_SLOTS:
void clearSelection();
bool addSelection(const QUrl &path);
@@ -86,17 +76,10 @@ protected:
Q_INVOKABLE QUrl pathToUrl(const QString &path) { return QUrl::fromLocalFile(path); }
Q_INVOKABLE QUrl pathFolder(const QString &path);
- void addShortcut(const QString &name, const QString &visibleName, const QString &path);
- void addShortcutFromStandardLocation(const QString &name, QStandardPaths::StandardLocation loc, bool local = true);
- void populateShortcuts();
- void updateModes() Q_DECL_OVERRIDE;
-
private:
QList<QUrl> m_selections;
Q_DISABLE_COPY(QQuickFileDialog)
- QJSValue m_shortcuts;
- QJSValue m_shortcutDetails;
};
QT_END_NAMESPACE