Ported file dialog
authorKevin Krammer <kevin.krammer@kdab.com>
Wed, 16 Jan 2013 14:29:39 +0000 (15:29 +0100)
committerKevin Krammer <kevin.krammer@kdab.com>
Wed, 16 Jan 2013 14:29:39 +0000 (15:29 +0100)
lib/declarativefiledialog.cpp
lib/declarativefiledialog_p.h
lib/declarativewidgetsdocument.cpp
lib/objectadaptors.cpp
lib/objectadaptors_p.h

index 34baf80..f93de46 100644 (file)
@@ -157,15 +157,12 @@ void DeclarativeFileDialogAttached::setSelectedFilter(const QString &filter)
 }
 
 
-DeclarativeFileDialog::DeclarativeFileDialog(QObject *parent)
-  : DeclarativeWidgetProxy<FileDialog>(parent)
+DeclarativeFileDialog::DeclarativeFileDialog(QWidget *parent)
+  : QFileDialog(parent)
 {
-  connectAllSignals(m_proxiedObject, this);
 }
 
 DeclarativeFileDialogAttached *DeclarativeFileDialog::qmlAttachedProperties(QObject *parent)
 {
   return new DeclarativeFileDialogAttached(parent);
 }
-
-CUSTOM_METAOBJECT(DeclarativeFileDialog, FileDialog)
index 0a868c3..3f632d1 100644 (file)
 #ifndef DECLARATIVEFILEDIALOG_P_H
 #define DECLARATIVEFILEDIALOG_P_H
 
-#include "declarativewidgetproxy_p.h"
-
-#include "objectadaptors_p.h"
 #include "staticdialogmethodattached_p.h"
 
+#include <qdeclarative.h>
+#include <QFileDialog>
+
 class DeclarativeFileDialogAttached : public StaticDialogMethodAttached
 {
   Q_OBJECT
@@ -75,12 +75,14 @@ class DeclarativeFileDialogAttached : public StaticDialogMethodAttached
     Private *const d;
 };
 
-class DeclarativeFileDialog : public DeclarativeWidgetProxy<FileDialog>
+class DeclarativeFileDialog : public QFileDialog
 {
-  DECLARATIVE_OBJECT
+  Q_OBJECT
+
+  Q_PROPERTY(QStringList selectedFiles READ selectedFiles)
 
   public:
-    explicit DeclarativeFileDialog(QObject *parent = 0);
+    explicit DeclarativeFileDialog(QWidget *parent = 0);
 
     static DeclarativeFileDialogAttached *qmlAttachedProperties(QObject *parent);
 };
index 94182df..377d3eb 100644 (file)
@@ -120,8 +120,6 @@ DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject
   qmlRegisterType<DeclarativeDeclarativeView>("QtGui", 1, 0, "DeclarativeView");
   qmlRegisterType<DeclarativeDial>("QtGui", 1, 0, "Dial");
   qmlRegisterType<DeclarativeDoubleSpinBox>("QtGui", 1, 0, "DoubleSpinBox");
-  qmlRegisterType<DeclarativeFileDialogAttached>();
-  qmlRegisterType<DeclarativeFileDialog>("QtGui", 1, 0, "FileDialog");
   qmlRegisterType<DeclarativeFontDialogAttached>();
   qmlRegisterType<DeclarativeFontDialog>("QtGui", 1, 0, "FontDialog");
   qmlRegisterType<DeclarativeFrame>("QtGui", 1, 0, "Frame");
@@ -169,6 +167,7 @@ DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject
   qmlRegisterExtendedType<QCheckBox, DeclarativeWidgetExtension>("QtGui", 1, 0, "CheckBox");
   qmlRegisterExtendedType<Dialog, DeclarativeWidgetExtension>("QtGui", 1, 0, "Dialog");
   qmlRegisterExtendedType<QDialogButtonBox, DeclarativeWidgetExtension>("QtGui", 1, 0, "DialogButtonBox");
+  qmlRegisterExtendedType<DeclarativeFileDialog, DeclarativeWidgetExtension>("QtGui", 1, 0, "FileDialog");
   qmlRegisterExtendedType<QLabel, DeclarativeWidgetExtension>("QtGui", 1, 0, "Label");
   qmlRegisterExtendedType<QLineEdit, DeclarativeWidgetExtension>("QtGui", 1, 0, "LineEdit");
   qmlRegisterExtendedType<QMainWindow, DeclarativeMainWindowExtension>("QtGui", 1, 0, "MainWindow");
index 36cf37e..132230c 100644 (file)
@@ -217,12 +217,6 @@ QObject *DeclarativeView::declarativeRootContext() const
   return m_rootContext;
 }
 
-// FileDialog
-FileDialog::FileDialog(QWidget *parent)
-  : QFileDialog(parent)
-{
-}
-
 // InputDialog
 InputDialog::InputDialog(QWidget *parent)
   : QInputDialog(parent)
index 3006905..5f94cf3 100644 (file)
@@ -24,7 +24,6 @@
 #include <QColumnView>
 #include <QDeclarativeContext>
 #include <QDeclarativeView>
-#include <QFileDialog>
 #include <QInputDialog>
 #include <QMenu>
 #include <QListView>
@@ -145,16 +144,6 @@ public:
 
 Q_DECLARE_METATYPE(Qt::WindowFlags)
 
-class FileDialog : public QFileDialog
-{
-  Q_OBJECT
-
-  Q_PROPERTY(QStringList selectedFiles READ selectedFiles)
-
-  public:
-    explicit FileDialog(QWidget *parent = 0);
-};
-
 class InputDialog : public QInputDialog
 {
   Q_OBJECT