summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2010-07-15 14:15:35 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2010-07-15 16:45:33 +0200
commitc502ca9d54c3476295229fd8ecd01eb6a2b99acb (patch)
treeaca8141432e8dec5e48235e9b2635bfe698bb6c0
parent7e0af03bc1a3a87c00457a341ad696961efc6fd8 (diff)
downloadqt-creator-c502ca9d54c3476295229fd8ecd01eb6a2b99acb.tar.gz
QmlDesigner.propertyEditor: FileWidget works without model
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/filewidget.cpp24
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/filewidget.h12
2 files changed, 23 insertions, 13 deletions
diff --git a/src/plugins/qmldesigner/components/propertyeditor/filewidget.cpp b/src/plugins/qmldesigner/components/propertyeditor/filewidget.cpp
index 1b26f8c936..28dc745ab9 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/filewidget.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/filewidget.cpp
@@ -40,7 +40,7 @@ QT_BEGIN_NAMESPACE
FileWidget::FileWidget(QWidget *parent) : QWidget(parent), m_filter("(*.*)"), m_showComboBox(false), m_lock(false)
{
- m_pushButton = new QPushButton(this);
+ m_pushButton = new QToolButton(this);
m_pushButton->setFixedWidth(32);
m_lineEdit = new QLineEdit(this);
m_comboBox = new QComboBox(this);
@@ -126,16 +126,20 @@ void FileWidget::setupComboBox()
m_lock = true;
m_comboBox->clear();
- if (m_itemNode.isValid()) {
- QDir dir = QFileInfo(m_itemNode.modelNode().model()->fileUrl().toLocalFile()).absoluteDir();
- QStringList filterList = m_filter.split(' ');
- QDirIterator it(dir.absolutePath(), filterList, QDir::Files, QDirIterator::Subdirectories);
- while (it.hasNext()) {
- QString absolutePath = it.next();
- m_comboBox->addItem(dir.relativeFilePath(absolutePath));
- }
- }
+ QDir dir;
+
+ if (m_itemNode.isValid())
+ dir = QFileInfo(m_itemNode.modelNode().model()->fileUrl().toLocalFile()).absoluteDir();
+ else if (m_path.isValid())
+ dir = QFileInfo(m_path.toLocalFile()).absoluteDir();
+ QStringList filterList = m_filter.split(' ');
+
+ QDirIterator it(dir.absolutePath(), filterList, QDir::Files, QDirIterator::Subdirectories);
+ while (it.hasNext()) {
+ QString absolutePath = it.next();
+ m_comboBox->addItem(dir.relativeFilePath(absolutePath));
+ }
m_comboBox->setEditText(m_fileName.toString());
m_lock = false;
diff --git a/src/plugins/qmldesigner/components/propertyeditor/filewidget.h b/src/plugins/qmldesigner/components/propertyeditor/filewidget.h
index c3d93e90ce..f0c25a1b25 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/filewidget.h
+++ b/src/plugins/qmldesigner/components/propertyeditor/filewidget.h
@@ -33,7 +33,7 @@
#include <QtGui/QWidget>
#include <QLabel>
-#include <QPushButton>
+#include <QToolButton>
#include <QLineEdit>
#include <QComboBox>
#include <QUrl>
@@ -49,7 +49,8 @@ class FileWidget : public QWidget
Q_PROPERTY(QString fileName READ fileName WRITE setFileNameStr NOTIFY fileNameChanged)
Q_PROPERTY(QString filter READ filter WRITE setFilter)
Q_PROPERTY(bool showComboBox READ showComboBox WRITE setShowComboBox)
- Q_PROPERTY(QVariant itemNode READ itemNode WRITE setItemNode NOTIFY itemNodeChanged)
+ Q_PROPERTY(QVariant itemNode READ itemNode WRITE setItemNode NOTIFY itemNodeChanged)
+ Q_PROPERTY(QUrl path READ path WRITE setPath)
public:
@@ -67,6 +68,10 @@ public:
}
+ void setPath(const QUrl &url) { m_path = url; setupComboBox(); }
+
+ QUrl path() const { return m_path; }
+
QString text() const
{
return QString();
@@ -104,10 +109,11 @@ private:
void setupComboBox();
- QPushButton *m_pushButton;
+ QToolButton *m_pushButton;
QLineEdit *m_lineEdit;
QComboBox *m_comboBox;
QUrl m_fileName;
+ QUrl m_path;
QmlDesigner::QmlItemNode m_itemNode;
QString m_filter;
bool m_showComboBox;