summaryrefslogtreecommitdiffstats
path: root/src/imports/mimetypes/qdeclarativemimetyperegistry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/mimetypes/qdeclarativemimetyperegistry.cpp')
-rw-r--r--src/imports/mimetypes/qdeclarativemimetyperegistry.cpp276
1 files changed, 276 insertions, 0 deletions
diff --git a/src/imports/mimetypes/qdeclarativemimetyperegistry.cpp b/src/imports/mimetypes/qdeclarativemimetyperegistry.cpp
new file mode 100644
index 0000000..b10b69a
--- /dev/null
+++ b/src/imports/mimetypes/qdeclarativemimetyperegistry.cpp
@@ -0,0 +1,276 @@
+#include "qdeclarativemimetyperegistry_p.h"
+
+#include "qdeclarativemimetype_p.h"
+#include "qdeclarativeserviceaction_p.h"
+
+#include <QtCore/QDebug>
+
+// ------------------------------------------------------------------------------------------------
+
+QDeclarativeMimeTypeRegistry::QDeclarativeMimeTypeRegistry(QObject *theParent) :
+ QObject(theParent),
+ m_MimeTypeRegistry()
+{}
+
+// ------------------------------------------------------------------------------------------------
+
+QDeclarativeMimeTypeRegistry::~QDeclarativeMimeTypeRegistry()
+{
+ //qDebug() << Q_FUNC_INFO;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QMimeTypeRegistry &QDeclarativeMimeTypeRegistry::mimeTypeRegistry()
+{
+ return m_MimeTypeRegistry;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::insertMimeType (
+ QDeclarativeMimeType *mimeType
+ )
+{
+ if (mimeType == 0) {
+ qWarning() << Q_FUNC_INFO << "mimeType:" << mimeType;
+ return;
+ }
+
+ m_MimeTypeRegistry.insertMimeType(mimeType->mimeType());
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QVariantList QDeclarativeMimeTypeRegistry::mimeTypes() const
+{
+ QVariantList result;
+
+ foreach (const QMimeTypeName &mimeTypeName, m_MimeTypeRegistry.mimeTypes()) {
+ result << mimeTypeName;
+ }
+
+ return result;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QDeclarativeMimeType *QDeclarativeMimeTypeRegistry::findMimeType (
+ const QMimeTypeName &mimeTypeName
+ )
+{
+ return new QDeclarativeMimeType (
+ m_MimeTypeRegistry.findMimeType(mimeTypeName),
+ this // <- The new object will be released later
+ // when this registry is released.
+ );
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::removeMimeType (
+ const QMimeTypeName &mimeTypeName
+ )
+{
+ m_MimeTypeRegistry.removeMimeType(mimeTypeName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QVariantList QDeclarativeMimeTypeRegistry::fileExtentions() const
+{
+ QVariantList result;
+
+ foreach (const QString &fileExtention, m_MimeTypeRegistry.fileExtentions()) {
+ result << fileExtention;
+ }
+
+ return result;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QString QDeclarativeMimeTypeRegistry::extractFileExtention (
+ const QString &fileName
+ ) const
+{
+ return m_MimeTypeRegistry.extractFileExtention(fileName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QVariantList QDeclarativeMimeTypeRegistry::findMimeTypes (
+ const QString &fileExtention
+ ) const
+{
+ QVariantList result;
+
+ foreach (const QMimeTypeName &mimeTypeName, m_MimeTypeRegistry.findMimeTypes(fileExtention)) {
+ result << mimeTypeName;
+ }
+
+ return result;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QMimeTypeName QDeclarativeMimeTypeRegistry::determineMimeType (
+ const QByteArray &data
+ ) const
+{
+ return m_MimeTypeRegistry.determineMimeType(data);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::insertServiceAction (
+ QDeclarativeServiceAction *serviceAction
+ )
+{
+ if (serviceAction == 0) {
+ qWarning() << Q_FUNC_INFO << "serviceAction:" << serviceAction;
+ return;
+ }
+
+ m_MimeTypeRegistry.insertServiceAction(serviceAction->serviceAction());
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QVariantList QDeclarativeMimeTypeRegistry::serviceActions() const
+{
+ QVariantList result;
+
+ foreach (const QServiceActionName &serviceActionName, m_MimeTypeRegistry.serviceActions()) {
+ result << serviceActionName;
+ }
+
+ return result;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QDeclarativeServiceAction *
+ QDeclarativeMimeTypeRegistry::findServiceAction (
+ const QServiceActionName &serviceActionName
+ )
+{
+ return new QDeclarativeServiceAction (
+ m_MimeTypeRegistry.findServiceAction(serviceActionName),
+ this // <- The new object will be released later
+ // when this registry is released.
+ );
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::removeServiceAction (
+ const QServiceActionName &serviceActionName
+ )
+{
+ return m_MimeTypeRegistry.removeServiceAction(serviceActionName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+bool QDeclarativeMimeTypeRegistry::userAlwaysSelectsApplication (
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName
+ ) const
+{
+ return m_MimeTypeRegistry.userAlwaysSelectsApplication(serviceActionName, mimeTypeName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::setUserAlwaysSelectsApplication (
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName,
+ const bool newSetting
+ )
+{
+ return m_MimeTypeRegistry.setUserAlwaysSelectsApplication(serviceActionName, mimeTypeName, newSetting);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::registerApplication (
+ const QApplicationId &applicationId,
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName
+ )
+{
+ return m_MimeTypeRegistry.registerApplication(applicationId, serviceActionName, mimeTypeName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::increaseApplicationPreference (
+ const QApplicationId &applicationId,
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName
+ )
+{
+ return m_MimeTypeRegistry.increaseApplicationPreference(applicationId, serviceActionName, mimeTypeName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::decreaseApplicationPreference (
+ const QApplicationId &applicationId,
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName
+ )
+{
+ return m_MimeTypeRegistry.decreaseApplicationPreference(applicationId, serviceActionName, mimeTypeName);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+void QDeclarativeMimeTypeRegistry::unregisterApplication (
+ const QApplicationId &applicationId
+ )
+{
+ return m_MimeTypeRegistry.unregisterApplication(applicationId);
+}
+
+// ------------------------------------------------------------------------------------------------
+
+
+QVariantList QDeclarativeMimeTypeRegistry::findApplications (
+ const QMimeTypeName &mimeTypeName
+ ) const
+{
+ QVariantList result;
+
+ typedef QPair<QApplicationId, QServiceActionName> ApplicationIdAndServiceActionName;
+ foreach (const ApplicationIdAndServiceActionName &applicationIdAndServiceActionName,
+ m_MimeTypeRegistry.findApplications(mimeTypeName)) {
+ QVariantList pair;
+ pair << applicationIdAndServiceActionName.first;
+ pair << applicationIdAndServiceActionName.second;
+ // The insert operation of one variant will only work as intended
+ // if it comes from a QVariant instead of a QVariantList:
+ const QVariant &pair2 (pair);
+ result << pair2;
+ }
+
+ return result;
+}
+
+// ------------------------------------------------------------------------------------------------
+
+QVariantList QDeclarativeMimeTypeRegistry::findApplications (
+ const QServiceActionName &serviceActionName,
+ const QMimeTypeName &mimeTypeName
+ ) const
+{
+ QVariantList result;
+
+ foreach (const QApplicationId &applicationId,
+ m_MimeTypeRegistry.findApplications(serviceActionName, mimeTypeName)) {
+ result << applicationId;
+ }
+
+ return result;
+}