QApple: support yaml drops.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
This commit is contained in:
parent
ca05f42721
commit
052ccac8d0
3 changed files with 39 additions and 3 deletions
4
linux.md
4
linux.md
|
@ -70,14 +70,14 @@ The joystick uses evdev (``--device-name /dev/input/by-id/id_of_device``).
|
||||||
This is based on Qt.
|
This is based on Qt.
|
||||||
|
|
||||||
* keyboard shortcuts are listed in the menu entries
|
* keyboard shortcuts are listed in the menu entries
|
||||||
* graphics: runs the native NTSC code
|
|
||||||
* joystick: it uses QtGamepad
|
* joystick: it uses QtGamepad
|
||||||
* emulator runs in the main UI thread
|
* emulator runs in the main UI thread
|
||||||
* Qt timers are very coarse: the emulator needs to dynamically adapt the cycles to execute
|
* Qt timers are very coarse: the emulator needs to dynamically adapt the cycles to execute
|
||||||
* the app runs at 60FPS with correction for uneven timer deltas.
|
* the app runs at 60FPS with correction for uneven timer deltas.
|
||||||
* full speed when disk spins execute up to 5 ms real wall clock of emulator code (then returns to Qt)
|
* full speed when disk spins execute up to 5 ms real wall clock of emulator code (then returns to Qt)
|
||||||
* (standard) audio is supported and there are a few configuration options to tune the latency (default very conservative 200ms)
|
* audio is supported and there are a few configuration options to tune the latency (default very conservative 200ms)
|
||||||
* Open Apple and Solid Apple can be emulated using AltGr and Menu (unfortunately, Alt does not work well)
|
* Open Apple and Solid Apple can be emulated using AltGr and Menu (unfortunately, Alt does not work well)
|
||||||
|
* ``yaml`` files can be dropped to restore a saved state
|
||||||
|
|
||||||
### ra2
|
### ra2
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,9 @@
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QAudioOutput>
|
#include <QAudioOutput>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QMimeData>
|
||||||
|
#include <QDropEvent>
|
||||||
|
#include <QDragEnterEvent>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
@ -204,6 +207,8 @@ QApple::QApple(QWidget *parent) :
|
||||||
on_actionPause_triggered();
|
on_actionPause_triggered();
|
||||||
initialiseEmulator();
|
initialiseEmulator();
|
||||||
loadEmulator(myFrame, myOptions);
|
loadEmulator(myFrame, myOptions);
|
||||||
|
|
||||||
|
setAcceptDrops(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QApple::~QApple()
|
QApple::~QApple()
|
||||||
|
@ -554,3 +559,32 @@ void QApple::on_actionQuit_triggered()
|
||||||
{
|
{
|
||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QApple::dragEnterEvent(QDragEnterEvent *event)
|
||||||
|
{
|
||||||
|
if (event->mimeData()->hasUrls())
|
||||||
|
{
|
||||||
|
event->acceptProposedAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QApple::dropEvent(QDropEvent *event)
|
||||||
|
{
|
||||||
|
const QMimeData* mimeData = event->mimeData();
|
||||||
|
|
||||||
|
if (mimeData->hasUrls())
|
||||||
|
{
|
||||||
|
const QList<QUrl> urlList = mimeData->urls();
|
||||||
|
|
||||||
|
if (!urlList.isEmpty())
|
||||||
|
{
|
||||||
|
// just use first file
|
||||||
|
const QString file = urlList.first().toLocalFile();
|
||||||
|
if (!file.isEmpty())
|
||||||
|
{
|
||||||
|
event->acceptProposedAction();
|
||||||
|
loadStateFile(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -38,8 +38,10 @@ public slots:
|
||||||
void startEmulator();
|
void startEmulator();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent * event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
void timerEvent(QTimerEvent *event) override;
|
void timerEvent(QTimerEvent *event) override;
|
||||||
|
void dragEnterEvent(QDragEnterEvent *event) override;
|
||||||
|
void dropEvent(QDropEvent *event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue