Move mime type checking to my own class
This commit is contained in:
parent
6180c3733d
commit
544bd0945d
5 changed files with 67 additions and 24 deletions
|
@ -25,7 +25,8 @@ SOURCES += src/harbour-seaprint.cpp \
|
||||||
src/ippdiscovery.cpp \
|
src/ippdiscovery.cpp \
|
||||||
src/bytestream.cpp \
|
src/bytestream.cpp \
|
||||||
src/ippmsg.cpp \
|
src/ippmsg.cpp \
|
||||||
src/ippprinter.cpp
|
src/ippprinter.cpp \
|
||||||
|
src/mimer.cpp
|
||||||
|
|
||||||
|
|
||||||
DISTFILES += qml/harbour-seaprint.qml \
|
DISTFILES += qml/harbour-seaprint.qml \
|
||||||
|
@ -61,4 +62,5 @@ HEADERS += \
|
||||||
src/ippdiscovery.h \
|
src/ippdiscovery.h \
|
||||||
src/bytestream.h \
|
src/bytestream.h \
|
||||||
src/ippmsg.h \
|
src/ippmsg.h \
|
||||||
src/ippprinter.h
|
src/ippprinter.h \
|
||||||
|
src/mimer.h
|
||||||
|
|
|
@ -3,6 +3,7 @@ import Sailfish.Silica 1.0
|
||||||
import Sailfish.Pickers 1.0
|
import Sailfish.Pickers 1.0
|
||||||
import seaprint.ippdiscovery 1.0
|
import seaprint.ippdiscovery 1.0
|
||||||
import seaprint.ippprinter 1.0
|
import seaprint.ippprinter 1.0
|
||||||
|
import seaprint.mimer 1.0
|
||||||
import "utils.js" as Utils
|
import "utils.js" as Utils
|
||||||
import "../components"
|
import "../components"
|
||||||
import Nemo.DBus 2.0
|
import Nemo.DBus 2.0
|
||||||
|
@ -46,23 +47,10 @@ Page {
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
IppDiscovery.discover();
|
IppDiscovery.discover();
|
||||||
if(selectedFile != "")
|
if(selectedFile != "")
|
||||||
{ // Until i can convince FilePickerPage to do its magic without user interaction
|
{
|
||||||
if(Utils.endsWith(".pdf", selectedFile))
|
var type = Mimer.get_type(selectedFile);
|
||||||
{
|
console.log(type);
|
||||||
selectedFileType = "application/pdf"
|
selectedFileType = type;
|
||||||
}
|
|
||||||
else if(Utils.endsWith(".ps", selectedFile))
|
|
||||||
{
|
|
||||||
selectedFileType = "application/postscript"
|
|
||||||
}
|
|
||||||
else if(Utils.endsWith(".jpg", selectedFile) || Utils.endsWith(".jpeg", selectedFile))
|
|
||||||
{
|
|
||||||
selectedFileType = "image/jpeg"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
selectedFile = ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,7 +276,7 @@ Page {
|
||||||
|
|
||||||
onSelectedContentPropertiesChanged: {
|
onSelectedContentPropertiesChanged: {
|
||||||
page.selectedFile = selectedContentProperties.filePath
|
page.selectedFile = selectedContentProperties.filePath
|
||||||
page.selectedFileType = selectedContentProperties.mimeType
|
page.selectedFileType = Mimer.get_type(selectedContentProperties.filePath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,16 @@
|
||||||
#include <seaprint_version.h>
|
#include <seaprint_version.h>
|
||||||
#include <src/ippdiscovery.h>
|
#include <src/ippdiscovery.h>
|
||||||
#include <src/ippprinter.h>
|
#include <src/ippprinter.h>
|
||||||
|
#include <src/mimer.h>
|
||||||
|
|
||||||
static QObject* ippdiscovery_singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
|
template <class T>
|
||||||
|
static QObject* singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
|
||||||
{
|
{
|
||||||
Q_UNUSED(engine)
|
Q_UNUSED(engine)
|
||||||
Q_UNUSED(scriptEngine)
|
Q_UNUSED(scriptEngine)
|
||||||
|
|
||||||
IppDiscovery *ippdiscovery = IppDiscovery::instance();
|
T *inst = T::instance();
|
||||||
return ippdiscovery;
|
return inst;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +23,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
app->setApplicationVersion(QStringLiteral(SEAPRINT_VERSION));
|
app->setApplicationVersion(QStringLiteral(SEAPRINT_VERSION));
|
||||||
|
|
||||||
qmlRegisterSingletonType<IppDiscovery>("seaprint.ippdiscovery", 1, 0, "IppDiscovery", ippdiscovery_singletontype_provider);
|
qmlRegisterSingletonType<IppDiscovery>("seaprint.ippdiscovery", 1, 0, "IppDiscovery", singletontype_provider<IppDiscovery>);
|
||||||
|
qmlRegisterSingletonType<Mimer>("seaprint.mimer", 1, 0, "Mimer", singletontype_provider<Mimer>);
|
||||||
qmlRegisterType<IppPrinter>("seaprint.ippprinter", 1, 0, "IppPrinter");
|
qmlRegisterType<IppPrinter>("seaprint.ippprinter", 1, 0, "IppPrinter");
|
||||||
|
|
||||||
QQuickView* view = SailfishApp::createView();
|
QQuickView* view = SailfishApp::createView();
|
||||||
|
|
28
src/mimer.cpp
Normal file
28
src/mimer.cpp
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#include "mimer.h"
|
||||||
|
|
||||||
|
Mimer::Mimer()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Mimer* Mimer::m_Instance = 0;
|
||||||
|
|
||||||
|
Mimer* Mimer::instance()
|
||||||
|
{
|
||||||
|
static QMutex mutex;
|
||||||
|
if (!m_Instance)
|
||||||
|
{
|
||||||
|
mutex.lock();
|
||||||
|
|
||||||
|
if (!m_Instance)
|
||||||
|
m_Instance = new Mimer;
|
||||||
|
|
||||||
|
mutex.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_Instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Mimer::get_type(QString filename) {
|
||||||
|
return _db.mimeTypeForFile(filename).name();
|
||||||
|
}
|
22
src/mimer.h
Normal file
22
src/mimer.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef MIMER_H
|
||||||
|
#define MIMER_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QMutex>
|
||||||
|
#include <QMimeDatabase>
|
||||||
|
|
||||||
|
class Mimer : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
static Mimer* instance();
|
||||||
|
Q_INVOKABLE QString get_type(QString filename);
|
||||||
|
private:
|
||||||
|
Mimer();
|
||||||
|
static Mimer* m_Instance;
|
||||||
|
QMimeDatabase _db;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MIMER_H
|
Loading…
Reference in a new issue