Commit 6205d798 authored by Nicolas Carion's avatar Nicolas Carion

add proxy to ClipBoard

parent 760d1c9b
......@@ -89,5 +89,5 @@ SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
TabWidth: 32
UseTab: Never
......@@ -35,6 +35,7 @@
#include "timelinecontroller.h"
#include "transitions/transitionlist/model/transitiontreemodel.hpp"
#include "utils/KoIconUtils.h"
#include "utils/clipboardproxy.hpp"
#include <KDeclarative/KDeclarative>
// #include <QUrl>
......@@ -87,6 +88,7 @@ void TimelineWidget::setModel(std::shared_ptr<TimelineItemModel> model)
rootContext()->setContextProperty("timeline", m_proxy);
rootContext()->setContextProperty("transitionModel", m_transitionProxyModel.get());
rootContext()->setContextProperty("guidesModel", pCore->projectManager()->current()->getGuideModel().get());
rootContext()->setContextProperty("clipboard", new ClipboardProxy(this));
setSource(QUrl(QStringLiteral("qrc:/qml/timeline.qml")));
connect(rootObject(), SIGNAL(mousePosChanged(int)), pCore->window(), SLOT(slotUpdateMousePosition(int)));
m_proxy->setRoot(rootObject());
......
......@@ -3,6 +3,7 @@ set(kdenlive_SRCS
utils/KoIconUtils.cpp
utils/abstractservice.cpp
utils/archiveorg.cpp
utils/clipboardproxy.cpp
utils/devices.cpp
utils/flowlayout.cpp
utils/freesound.cpp
......
/***************************************************************************
* Copyright (C) 2018 by Nicolas Carion *
* This file is part of Kdenlive. See www.kdenlive.org. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) version 3 or any later version accepted by the *
* membership of KDE e.V. (or its successor approved by the membership *
* of KDE e.V.), which shall act as a proxy defined in Section 14 of *
* version 3 of the license. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include "clipboardproxy.hpp"
#include <QClipboard>
#include <QGuiApplication>
#include <QMimeData>
ClipboardProxy::ClipboardProxy(QObject *parent)
: QObject(parent)
{
QClipboard *clipboard = QGuiApplication::clipboard();
connect(clipboard, &QClipboard::dataChanged, this, &ClipboardProxy::changed);
connect(clipboard, &QClipboard::selectionChanged, this, &ClipboardProxy::changed);
}
QStringList ClipboardProxy::mimeTypes() const
{
return QGuiApplication::clipboard()->mimeData()->formats();
}
/***************************************************************************
* Copyright (C) 2018 by Nicolas Carion *
* This file is part of Kdenlive. See www.kdenlive.org. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) version 3 or any later version accepted by the *
* membership of KDE e.V. (or its successor approved by the membership *
* of KDE e.V.), which shall act as a proxy defined in Section 14 of *
* version 3 of the license. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#pragma once
#include <QObject>
/** @brief Provides an interface to the clipboard, to use directly from QML
Inspired by https://stackoverflow.com/questions/40092352/passing-qclipboard-to-qml
*/
class ClipboardProxy : public QObject
{
Q_OBJECT
Q_PROPERTY(QStringList mimeTypes READ mimeTypes NOTIFY changed)
public:
explicit ClipboardProxy(QObject *parent);
QStringList mimeTypes() const;
signals:
void changed();
};
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