Commit 3508a090 authored by Eike Ziller's avatar Eike Ziller
Browse files

Fix that files could not be dropped onto welcome screen



Needs to be implemented in Qt Quick itself nowadays.

Task-number: QTCREATORBUG-14194
Change-Id: I0456dc5d86c03672d8b6b8f9c45799851db1b059
Reviewed-by: default avatarThomas Hartmann <Thomas.Hartmann@theqtcompany.com>
parent 45216d5c
......@@ -33,6 +33,16 @@ Item {
property int screenDependHeightDistance: Math.min(50, Math.max(16, height / 30))
DropArea {
anchors.fill: parent
keys: ["text/uri-list"]
onDropped: {
if ((drop.supportedActions & Qt.CopyAction != 0)
&& welcomeMode.openDroppedFiles(drop.urls))
drop.accept(Qt.CopyAction);
}
}
SideBar {
id: sideBar
model: pagesModel
......
......@@ -52,6 +52,7 @@
#include <QDir>
#include <QQmlPropertyMap>
#include <QQuickImageProvider>
#include <QTimer>
#include <QtQuickWidgets/QQuickWidget>
#include <QtQml/QQmlContext>
......@@ -135,6 +136,8 @@ public:
QStringList recentProjectsShortcuts() const { return m_recentProjectsShortcuts; }
QStringList sessionsShortcuts() const { return m_sessionsShortcuts; }
Q_INVOKABLE bool openDroppedFiles(const QList<QUrl> &urls);
public slots:
void setActivePlugin(int pos)
{
......@@ -307,6 +310,18 @@ void WelcomeMode::initPlugins()
m_welcomePage->setSource(QUrl::fromLocalFile(path));
}
bool WelcomeMode::openDroppedFiles(const QList<QUrl> &urls)
{
const QList<QUrl> localUrls = Utils::filtered(urls, &QUrl::isLocalFile);
if (!localUrls.isEmpty()) {
QTimer::singleShot(0, [localUrls]() {
ICore::openFiles(Utils::transform(localUrls, &QUrl::toLocalFile), ICore::SwitchMode);
});
return true;
}
return false;
}
void WelcomeMode::welcomePluginAdded(QObject *obj)
{
IWelcomePage *page = qobject_cast<IWelcomePage*>(obj);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment