aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2013-08-10 11:04:41 +1000
committerNeil <nyamatongwe@gmail.com>2013-08-10 11:04:41 +1000
commited2fa5384addf6c02d4c91493c224c7737e9c327 (patch)
tree7c7506619e1eae73e58d17e8d88fe3607a284f04
parentaa1862fff5f0218920429256df8999e08d785582 (diff)
downloadscintilla-mirror-ed2fa5384addf6c02d4c91493c224c7737e9c327.tar.gz
Fix building qith Qt 5 on OS X.
From Fan Yang.
-rw-r--r--qt/ScintillaEditBase/ScintillaQt.cpp24
-rw-r--r--qt/ScintillaEditBase/ScintillaQt.h36
2 files changed, 60 insertions, 0 deletions
diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp
index 66beaed92..b1e6221e7 100644
--- a/qt/ScintillaEditBase/ScintillaQt.cpp
+++ b/qt/ScintillaEditBase/ScintillaQt.cpp
@@ -75,6 +75,30 @@ static const QString sMimeRectangularMarker("text/x-rectangular-marker");
#ifdef Q_OS_MAC
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+
+class QMacPasteboardMime;
+typedef QList<QMacPasteboardMime*> MimeList;
+Q_GLOBAL_STATIC(MimeList, globalMimeList)
+
+QMacPasteboardMime::QMacPasteboardMime(char t) : type(t)
+{
+ globalMimeList()->append(this);
+}
+
+QMacPasteboardMime::~QMacPasteboardMime()
+{
+ if(!QApplication::closingDown())
+ globalMimeList()->removeAll(this);
+}
+
+Q_GLOBAL_STATIC(QStringList, globalDraggedTypesList)
+void qRegisterDraggedTypes(const QStringList &types)
+{
+ (*globalDraggedTypesList()) += types;
+}
+#endif
+
class ScintillaRectangularMime : public QMacPasteboardMime {
public:
ScintillaRectangularMime() : QMacPasteboardMime(MIME_ALL) {
diff --git a/qt/ScintillaEditBase/ScintillaQt.h b/qt/ScintillaEditBase/ScintillaQt.h
index d3c5be594..d4e2e789c 100644
--- a/qt/ScintillaEditBase/ScintillaQt.h
+++ b/qt/ScintillaEditBase/ScintillaQt.h
@@ -53,6 +53,7 @@
#endif
#include <QObject>
+#include <QList>
#include <QAbstractScrollArea>
#include <QAction>
#include <QClipboard>
@@ -62,6 +63,41 @@
namespace Scintilla {
#endif
+#ifdef Q_OS_MAC
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+
+class QMacPasteboardMime {
+ char type;
+public:
+ enum QMacPasteboardMimeType { MIME_DND=0x01,
+ MIME_CLIP=0x02,
+ MIME_QT_CONVERTOR=0x04,
+ MIME_QT3_CONVERTOR=0x08,
+ MIME_ALL=MIME_DND|MIME_CLIP
+ };
+ explicit QMacPasteboardMime(char t);
+ virtual ~QMacPasteboardMime();
+
+ static void initialize();
+
+ static QList<QMacPasteboardMime*> all(uchar);
+ static QMacPasteboardMime *convertor(uchar, const QString &mime, QString flav);
+ static QString flavorToMime(uchar, QString flav);
+
+ virtual QString convertorName() = 0;
+
+ virtual bool canConvert(const QString &mime, QString flav) = 0;
+ virtual QString mimeFor(QString flav) = 0;
+ virtual QString flavorFor(const QString &mime) = 0;
+ virtual QVariant convertToMime(const QString &mime, QList<QByteArray> data, QString flav) = 0;
+ virtual QList<QByteArray> convertFromMime(const QString &mime, QVariant data, QString flav) = 0;
+};
+
+// ### Qt 5: Add const QStringList& QMacPasteboardMime::supportedFlavours()
+Q_GUI_EXPORT void qRegisterDraggedTypes(const QStringList &types);
+#endif
+#endif
+
class ScintillaQt : public QObject, public ScintillaBase {
Q_OBJECT