summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/crumblepath.cpp27
-rw-r--r--src/libs/utils/crumblepath.h5
-rw-r--r--src/plugins/qmljsinspector/qmljscontextcrumblepath.cpp6
-rw-r--r--src/plugins/qmljsinspector/qmljsinspector.cpp8
-rw-r--r--src/plugins/qmljsinspector/qmljsinspector.h2
5 files changed, 27 insertions, 21 deletions
diff --git a/src/libs/utils/crumblepath.cpp b/src/libs/utils/crumblepath.cpp
index 39d3a8a479..28d7a6f94c 100644
--- a/src/libs/utils/crumblepath.cpp
+++ b/src/libs/utils/crumblepath.cpp
@@ -50,6 +50,8 @@ static const int ArrowBorderSize = 12;
class CrumblePathButton : public QPushButton
{
+ Q_OBJECT
+
public:
enum SegmentType {
LastSegment = 1,
@@ -201,11 +203,10 @@ void CrumblePathButton::mouseReleaseEvent(QMouseEvent *e)
update();
}
-void CrumblePathButton::changeEvent(QEvent * e)
+void CrumblePathButton::changeEvent(QEvent *e)
{
- if (e && e->type() == QEvent::EnabledChange) {
+ if (e && e->type() == QEvent::EnabledChange)
update();
- }
}
void CrumblePathButton::select(bool s)
@@ -279,7 +280,7 @@ void CrumblePath::pushElement(const QString &title, const QVariant &data)
{
CrumblePathButton *newButton = new CrumblePathButton(title, this);
newButton->hide();
- connect(newButton, SIGNAL(clicked()), SLOT(mapClickToIndex()));
+ connect(newButton, SIGNAL(clicked()), SLOT(emitElementClicked()));
int segType = CrumblePathButton::MiddleSegment;
if (!d->m_buttons.isEmpty()) {
@@ -298,7 +299,7 @@ void CrumblePath::pushElement(const QString &title, const QVariant &data)
void CrumblePath::addChild(const QString &title, const QVariant &data)
{
- QTC_ASSERT(d->m_buttons.count() > 0,return);
+ QTC_ASSERT(!d->m_buttons.isEmpty(), return);
QPushButton *lastButton = d->m_buttons.last();
@@ -308,7 +309,7 @@ void CrumblePath::addChild(const QString &title, const QVariant &data)
QAction *childAction = new QAction(title, lastButton);
childAction->setData(data);
- connect(childAction, SIGNAL(triggered()), this, SLOT(mapClickToIndex()));
+ connect(childAction, SIGNAL(triggered()), this, SLOT(emitElementClicked()));
childList->addAction(childAction);
lastButton->setMenu(childList);
}
@@ -344,7 +345,7 @@ void CrumblePath::resizeButtons()
{
int totalWidthLeft = width();
- if (d->m_buttons.length() >= 1) {
+ if (!d->m_buttons.isEmpty()) {
QPoint nextElementPosition(0, 0);
d->m_buttons.first()->raise();
@@ -389,13 +390,15 @@ void CrumblePath::resizeButtons()
}
}
-void CrumblePath::mapClickToIndex()
+void CrumblePath::emitElementClicked()
{
QObject *element = sender();
- if (QString("QAction") == element->metaObject()->className())
- emit elementClicked(static_cast<QAction *>(element)->data().toInt());
- else if (QString("QPushButton") == element->metaObject()->className())
- emit elementClicked(static_cast<CrumblePathButton *>(element)->data().toInt());
+ if (QAction *action = qobject_cast<QAction*>(element))
+ emit elementClicked(action->data());
+ else if (CrumblePathButton *button = qobject_cast<CrumblePathButton*>(element))
+ emit elementClicked(button->data());
}
} // namespace Utils
+
+#include "crumblepath.moc"
diff --git a/src/libs/utils/crumblepath.h b/src/libs/utils/crumblepath.h
index e4ff4cc364..855ece72b7 100644
--- a/src/libs/utils/crumblepath.h
+++ b/src/libs/utils/crumblepath.h
@@ -50,6 +50,7 @@ class QTCREATOR_UTILS_EXPORT CrumblePath : public QWidget
public:
explicit CrumblePath(QWidget *parent = 0);
~CrumblePath();
+
void selectIndex(int index);
QVariant dataForIndex(int index) const;
@@ -60,13 +61,13 @@ public slots:
virtual void clear();
signals:
- void elementClicked(int debugId);
+ void elementClicked(const QVariant &data);
protected:
void resizeEvent(QResizeEvent *);
private slots:
- void mapClickToIndex();
+ void emitElementClicked();
private:
void resizeButtons();
diff --git a/src/plugins/qmljsinspector/qmljscontextcrumblepath.cpp b/src/plugins/qmljsinspector/qmljscontextcrumblepath.cpp
index 0132a8319b..308b476add 100644
--- a/src/plugins/qmljsinspector/qmljscontextcrumblepath.cpp
+++ b/src/plugins/qmljsinspector/qmljscontextcrumblepath.cpp
@@ -52,10 +52,10 @@ void ContextCrumblePath::updateContextPath(const QStringList &path, const QList<
m_isEmpty = path.isEmpty();
if (m_isEmpty) {
- pushElement(tr("[no context]"),QVariant(-1));
+ pushElement(tr("[no context]"), -1);
} else {
for (int i = 0; i < path.count(); i++)
- pushElement(path[i], QVariant(debugIds[i]));
+ pushElement(path[i], debugIds[i]);
}
}
@@ -63,7 +63,7 @@ void ContextCrumblePath::addChildren(const QStringList &childrenNames, const QLi
{
Q_ASSERT(childrenNames.count() == childrenDebugIds.count());
for (int i = 0; i < childrenNames.count(); i++)
- addChild(childrenNames[i], QVariant(childrenDebugIds[i]));
+ addChild(childrenNames[i], childrenDebugIds[i]);
}
void ContextCrumblePath::clear()
diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp
index febc1cf72f..527898e45c 100644
--- a/src/plugins/qmljsinspector/qmljsinspector.cpp
+++ b/src/plugins/qmljsinspector/qmljsinspector.cpp
@@ -726,7 +726,7 @@ void InspectorUi::setupDockWidgets()
m_crumblePath = new ContextCrumblePath;
m_crumblePath->setObjectName("QmlContextPath");
m_crumblePath->setWindowTitle(tr("Context Path"));
- connect(m_crumblePath, SIGNAL(elementClicked(int)), SLOT(crumblePathElementClicked(int)));
+ connect(m_crumblePath, SIGNAL(elementClicked(QVariant)), SLOT(crumblePathElementClicked(QVariant)));
m_propertyInspector = new QmlJSPropertyInspector;
@@ -759,9 +759,11 @@ void InspectorUi::setupDockWidgets()
dock->setTitleBarWidget(new QWidget(dock));
}
-void InspectorUi::crumblePathElementClicked(int debugId)
+void InspectorUi::crumblePathElementClicked(const QVariant &data)
{
- if (debugId == -1)
+ bool ok;
+ const int debugId = data.toInt(&ok);
+ if (!ok || debugId == -1)
return;
QList<int> debugIds;
diff --git a/src/plugins/qmljsinspector/qmljsinspector.h b/src/plugins/qmljsinspector/qmljsinspector.h
index 2912161397..3e0077226d 100644
--- a/src/plugins/qmljsinspector/qmljsinspector.h
+++ b/src/plugins/qmljsinspector/qmljsinspector.h
@@ -129,7 +129,7 @@ private slots:
QmlJSLiveTextPreview *createPreviewForEditor(Core::IEditor *newEditor);
void disableLivePreview();
- void crumblePathElementClicked(int);
+ void crumblePathElementClicked(const QVariant &data);
void currentDebugProjectRemoved();
void updatePendingPreviewDocuments(QmlJS::Document::Ptr doc);