[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 2342b6b 18/41: [ftinspect] Support opening file
From: |
Werner Lemberg |
Subject: |
[freetype2-demos] master 2342b6b 18/41: [ftinspect] Support opening files drag-dropping. |
Date: |
Mon, 3 Oct 2022 11:27:02 -0400 (EDT) |
branch: master
commit 2342b6b74ca1c2cddccfda322a5d3923468eb9ec
Author: Charlie Jiang <w@chariri.moe>
Commit: Werner Lemberg <wl@gnu.org>
[ftinspect] Support opening files drag-dropping.
* src/ftinspect/maingui.cpp, src/ftinspect/maingui.hpp: Add related code.
---
src/ftinspect/maingui.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++
src/ftinspect/maingui.hpp | 3 +++
2 files changed, 45 insertions(+)
diff --git a/src/ftinspect/maingui.cpp b/src/ftinspect/maingui.cpp
index b797a00..da3bada 100644
--- a/src/ftinspect/maingui.cpp
+++ b/src/ftinspect/maingui.cpp
@@ -11,6 +11,9 @@
#include <QSettings>
#include <QScrollBar>
#include <QStatusBar>
+#include <QMimeData>
+#include <QDragEnterEvent>
+#include <QDropEvent>
MainGUI::MainGUI(Engine* engine)
@@ -20,6 +23,7 @@ MainGUI::MainGUI(Engine* engine)
createConnections();
createActions();
createMenus();
+ setupDragDrop();
readSettings();
setUnifiedTitleAndToolBarOnMac(true);
@@ -46,6 +50,37 @@ MainGUI::closeEvent(QCloseEvent* event)
}
+void
+MainGUI::dragEnterEvent(QDragEnterEvent* event)
+{
+ if (event->mimeData()->hasUrls())
+ event->acceptProposedAction();
+}
+
+
+void
+MainGUI::dropEvent(QDropEvent* event)
+{
+ auto mime = event->mimeData();
+ if (!mime->hasUrls())
+ return;
+
+ QStringList fileNames;
+ for (auto& url : mime->urls())
+ {
+ if (!url.isLocalFile())
+ continue;
+ fileNames.append(url.toLocalFile());
+ }
+
+ if (fileNames.empty())
+ return;
+
+ event->acceptProposedAction();
+ openFonts(fileNames);
+}
+
+
void
MainGUI::keyPressEvent(QKeyEvent* event)
{
@@ -282,6 +317,13 @@ MainGUI::createMenus()
}
+void
+MainGUI::setupDragDrop()
+{
+ setAcceptDrops(true);
+}
+
+
void
MainGUI::readSettings()
{
diff --git a/src/ftinspect/maingui.hpp b/src/ftinspect/maingui.hpp
index cffc071..18e3c98 100644
--- a/src/ftinspect/maingui.hpp
+++ b/src/ftinspect/maingui.hpp
@@ -41,6 +41,8 @@ public:
protected:
void closeEvent(QCloseEvent*) override;
+ void dragEnterEvent(QDragEnterEvent* event) override;
+ void dropEvent(QDropEvent* event) override;
void keyPressEvent(QKeyEvent* event) override;
private slots:
@@ -96,6 +98,7 @@ private:
void createConnections();
void createLayout();
void createMenus();
+ void setupDragDrop();
void readSettings();
void writeSettings();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 2342b6b 18/41: [ftinspect] Support opening files drag-dropping.,
Werner Lemberg <=