WIP QT Clipboard
This commit is contained in:
11
ui/qt/clipboard/capi.hpp
Normal file
11
ui/qt/clipboard/capi.hpp
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "clipboard.hpp"
|
||||
|
||||
typedef void Clipboard_;
|
||||
|
||||
Clipboard_ *initClipboard()
|
||||
{
|
||||
Clipboard *clipboard = new(Clipboard);
|
||||
return static_cast<Clipboard_*>(clipboard);
|
||||
}
|
20
ui/qt/clipboard/clipboard.cpp
Normal file
20
ui/qt/clipboard/clipboard.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
#include "clipboard.h"
|
||||
|
||||
#include <QClipboard>
|
||||
|
||||
Clipboard::Clipboard()
|
||||
{
|
||||
connect(QApplication::clipboard(), &QClipboard::dataChanged, [this] { emit clipboardChanged();});
|
||||
}
|
||||
|
||||
QString Clipboard::get() const
|
||||
{
|
||||
QClipboard *clipboard = QApplication::clipboard();
|
||||
return clipboard->text();
|
||||
}
|
||||
|
||||
void Clipboard::toClipboard(QString _text)
|
||||
{
|
||||
QClipboard *clipboard = QApplicationion::clipboard();
|
||||
clipboard->setText(_text);
|
||||
}
|
15
ui/qt/clipboard/clipboard.go
Normal file
15
ui/qt/clipboard/clipboard.go
Normal file
@ -0,0 +1,15 @@
|
||||
package clipboard
|
||||
|
||||
// #cgo CPPFLAGS: -I./
|
||||
// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
|
||||
// #cgo LDFLAGS: -lstdc++
|
||||
// #cgo pkg-config: Qt5Quick
|
||||
//
|
||||
// #include "capi.hpp"
|
||||
import "C"
|
||||
|
||||
import "github.com/obscuren/qml"
|
||||
|
||||
func SetQMLClipboard(context *qml.Context) {
|
||||
context.SetVar("clipboard", (unsafe.Pointer)(C.initClipboard()))
|
||||
}
|
23
ui/qt/clipboard/clipboard.hpp
Normal file
23
ui/qt/clipboard/clipboard.hpp
Normal file
@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
class Clipboard : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString get READ get WRITE toClipboard NOTIFY clipboardChanged)
|
||||
public:
|
||||
Clipboard();
|
||||
virtual ~Clipboard(){}
|
||||
|
||||
Q_INVOKABLE void toClipboard(QString _text);
|
||||
|
||||
signals:
|
||||
void clipboardChanged();
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
Reference in New Issue
Block a user