Commit 54483e91 authored by Gus Grubba's avatar Gus Grubba

Geo Tag

Converted GeoTagging file dialogs from QtWidgets to QtQuick
Reworked the dialog so it's not all random sizes
parent e1161ae0
......@@ -21,7 +21,7 @@
#include "ULogParser.h"
#include "PX4LogParser.h"
GeoTagController::GeoTagController(void)
GeoTagController::GeoTagController()
: _progress(0)
, _inProgress(false)
{
......@@ -36,34 +36,34 @@ GeoTagController::~GeoTagController()
}
void GeoTagController::pickLogFile(void)
void GeoTagController::setLogFile(QString filename)
{
QString filename = QString(); //--TODO: QGCQFileDialog::getOpenFileName(MainWindow::instance(), tr("Select log file load"), QString(), tr("ULog file (*.ulg);;PX4 log file (*.px4log);;All Files (*.*)"));
filename.replace("file://","");
if (!filename.isEmpty()) {
_worker.setLogFile(filename);
emit logFileChanged(filename);
}
}
void GeoTagController::pickImageDirectory(void)
void GeoTagController::setImageDirectory(QString dir)
{
QString dir = QString(); //--TODO: QGCQFileDialog::getExistingDirectory(MainWindow::instance(), tr("Select image directory"));
dir.replace("file://","");
if (!dir.isEmpty()) {
_worker.setImageDirectory(dir);
emit imageDirectoryChanged(dir);
}
}
void GeoTagController::pickSaveDirectory(void)
void GeoTagController::setSaveDirectory(QString dir)
{
QString dir = QString(); //--TODO: QGCQFileDialog::getExistingDirectory(MainWindow::instance(), tr("Select save directory"));
dir.replace("file://","");
if (!dir.isEmpty()) {
_worker.setSaveDirectory(dir);
emit saveDirectoryChanged(dir);
}
}
void GeoTagController::startTagging(void)
void GeoTagController::startTagging()
{
_errorMessage.clear();
emit errorMessageChanged(_errorMessage);
......@@ -151,7 +151,7 @@ void GeoTagController::_setErrorMessage(const QString& error)
emit errorMessageChanged(error);
}
GeoTagWorker::GeoTagWorker(void)
GeoTagWorker::GeoTagWorker()
: _cancel(false)
, _logFile("")
, _imageDirectory("")
......@@ -160,7 +160,7 @@ GeoTagWorker::GeoTagWorker(void)
}
void GeoTagWorker::run(void)
void GeoTagWorker::run()
{
_cancel = false;
emit progressChanged(1);
......
......@@ -26,17 +26,17 @@ class GeoTagWorker : public QThread
Q_OBJECT
public:
GeoTagWorker(void);
GeoTagWorker();
void setLogFile (const QString& logFile) { _logFile = logFile; }
void setImageDirectory (const QString& imageDirectory) { _imageDirectory = imageDirectory; }
void setSaveDirectory (const QString& saveDirectory) { _saveDirectory = saveDirectory; }
QString logFile (void) const { return _logFile; }
QString imageDirectory (void) const { return _imageDirectory; }
QString saveDirectory (void) const { return _saveDirectory; }
QString logFile () const { return _logFile; }
QString imageDirectory () const { return _imageDirectory; }
QString saveDirectory () const { return _saveDirectory; }
void cancelTagging (void) { _cancel = true; }
void cancelTagging () { _cancel = true; }
struct cameraFeedbackPacket {
double timestamp;
......@@ -51,11 +51,11 @@ public:
};
protected:
void run(void) final;
void run() final;
signals:
void error (QString errorMsg);
void taggingComplete (void);
void taggingComplete ();
void progressChanged (double progress);
private:
......@@ -77,14 +77,13 @@ private:
class GeoTagController : public QObject
{
Q_OBJECT
public:
GeoTagController(void);
GeoTagController();
~GeoTagController();
Q_PROPERTY(QString logFile READ logFile NOTIFY logFileChanged)
Q_PROPERTY(QString imageDirectory READ imageDirectory NOTIFY imageDirectoryChanged)
Q_PROPERTY(QString saveDirectory READ saveDirectory NOTIFY saveDirectoryChanged)
Q_PROPERTY(QString logFile READ logFile WRITE setLogFile NOTIFY logFileChanged)
Q_PROPERTY(QString imageDirectory READ imageDirectory WRITE setImageDirectory NOTIFY imageDirectoryChanged)
Q_PROPERTY(QString saveDirectory READ saveDirectory WRITE setSaveDirectory NOTIFY saveDirectoryChanged)
/// Set to an error message is geotagging fails
Q_PROPERTY(QString errorMessage READ errorMessage NOTIFY errorMessageChanged)
......@@ -95,26 +94,27 @@ public:
/// true: Currently in the process of tagging
Q_PROPERTY(bool inProgress READ inProgress NOTIFY inProgressChanged)
Q_INVOKABLE void pickLogFile(void);
Q_INVOKABLE void pickImageDirectory(void);
Q_INVOKABLE void pickSaveDirectory(void);
Q_INVOKABLE void startTagging(void);
Q_INVOKABLE void cancelTagging(void) { _worker.cancelTagging(); }
Q_INVOKABLE void startTagging();
Q_INVOKABLE void cancelTagging() { _worker.cancelTagging(); }
QString logFile () const { return _worker.logFile(); }
QString imageDirectory () const { return _worker.imageDirectory(); }
QString saveDirectory () const { return _worker.saveDirectory(); }
double progress () const { return _progress; }
bool inProgress () const { return _worker.isRunning(); }
QString errorMessage () const { return _errorMessage; }
QString logFile (void) const { return _worker.logFile(); }
QString imageDirectory (void) const { return _worker.imageDirectory(); }
QString saveDirectory (void) const { return _worker.saveDirectory(); }
double progress (void) const { return _progress; }
bool inProgress (void) const { return _worker.isRunning(); }
QString errorMessage (void) const { return _errorMessage; }
void setLogFile (QString file);
void setImageDirectory (QString dir);
void setSaveDirectory (QString dir);
signals:
void logFileChanged (QString logFile);
void imageDirectoryChanged (QString imageDirectory);
void saveDirectoryChanged (QString saveDirectory);
void progressChanged (double progress);
void inProgressChanged (void);
void errorMessageChanged (QString errorMessage);
void logFileChanged (QString logFile);
void imageDirectoryChanged (QString imageDirectory);
void saveDirectoryChanged (QString saveDirectory);
void progressChanged (double progress);
void inProgressChanged ();
void errorMessageChanged (QString errorMessage);
private slots:
void _workerProgressChanged (double progress);
......
This diff is collapsed.
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