From 4201046b9be1f683d3805e3a91651b8f23d0cd25 Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 11 Nov 2010 10:50:06 +0100 Subject: [PATCH] QmlObserver: Remove breadcrumb widget in observer mode I wasn't able to get it working on Mac OS X: Putting it on top of the QGraphicsView doesn't work because Cocoa doesn't allow a widget to be on top of OpenGL viewport. Embedding it as a QGraphicsProxyWidget produces lots of Cocoa warnings (raster engine related). Anyhow, the same widget shows up in the Debugger/Observer tab of Qt Creator. Reviewed-by: Lasse Holmstedt --- .../qtcreator/qml/qmlobserver/crumblepath.cpp | 389 ------------------ share/qtcreator/qml/qmlobserver/crumblepath.h | 70 ---- .../qtcreator/qml/qmlobserver/crumblepath.qrc | 10 - .../images/crumblepath-segment-end.png | Bin 2957 -> 0 bytes .../images/crumblepath-segment-hover-end.png | Bin 2970 -> 0 bytes .../images/crumblepath-segment-hover.png | Bin 3384 -> 0 bytes .../crumblepath-segment-selected-end.png | Bin 2944 -> 0 bytes .../images/crumblepath-segment-selected.png | Bin 3356 -> 0 bytes .../images/crumblepath-segment.png | Bin 3379 -> 0 bytes share/qtcreator/qml/qmlobserver/qml.pri | 9 +- .../qtcreator/qml/qmlobserver/qmlruntime.cpp | 47 --- share/qtcreator/qml/qmlobserver/qmlruntime.h | 3 - .../qt4projectmanager/qmlobservertool.cpp | 7 +- 13 files changed, 4 insertions(+), 531 deletions(-) delete mode 100644 share/qtcreator/qml/qmlobserver/crumblepath.cpp delete mode 100644 share/qtcreator/qml/qmlobserver/crumblepath.h delete mode 100644 share/qtcreator/qml/qmlobserver/crumblepath.qrc delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment-end.png delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover-end.png delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover.png delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected-end.png delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected.png delete mode 100644 share/qtcreator/qml/qmlobserver/images/crumblepath-segment.png diff --git a/share/qtcreator/qml/qmlobserver/crumblepath.cpp b/share/qtcreator/qml/qmlobserver/crumblepath.cpp deleted file mode 100644 index 47f471f3c11..00000000000 --- a/share/qtcreator/qml/qmlobserver/crumblepath.cpp +++ /dev/null @@ -1,389 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#include "crumblepath.h" - -#include <QtCore/QList> -#include <QtGui/QHBoxLayout> -#include <QtGui/QPushButton> -#include <QtGui/QStyle> -#include <QtGui/QResizeEvent> -#include <QtGui/QPainter> -#include <QtGui/QImage> - -static const int ArrowBorderSize = 12; - -// Draws a CSS-like border image where the defined borders are not stretched -static void drawCornerImage(const QImage &img, QPainter *painter, QRect rect, - int left, int top, int right, int bottom) -{ - QSize size = img.size(); - if (top > 0) { //top - painter->drawImage(QRect(rect.left() + left, rect.top(), rect.width() -right - left, top), img, - QRect(left, 0, size.width() -right - left, top)); - if (left > 0) //top-left - painter->drawImage(QRect(rect.left(), rect.top(), left, top), img, - QRect(0, 0, left, top)); - if (right > 0) //top-right - painter->drawImage(QRect(rect.left() + rect.width() - right, rect.top(), right, top), img, - QRect(size.width() - right, 0, right, top)); - } - //left - if (left > 0) - painter->drawImage(QRect(rect.left(), rect.top()+top, left, rect.height() - top - bottom), img, - QRect(0, top, left, size.height() - bottom - top)); - //center - painter->drawImage(QRect(rect.left() + left, rect.top()+top, rect.width() -right - left, - rect.height() - bottom - top), img, - QRect(left, top, size.width() -right -left, - size.height() - bottom - top)); - if (right > 0) //right - painter->drawImage(QRect(rect.left() +rect.width() - right, rect.top()+top, right, rect.height() - top - bottom), img, - QRect(size.width() - right, top, right, size.height() - bottom - top)); - if (bottom > 0) { //bottom - painter->drawImage(QRect(rect.left() +left, rect.top() + rect.height() - bottom, - rect.width() - right - left, bottom), img, - QRect(left, size.height() - bottom, - size.width() - right - left, bottom)); - if (left > 0) //bottom-left - painter->drawImage(QRect(rect.left(), rect.top() + rect.height() - bottom, left, bottom), img, - QRect(0, size.height() - bottom, left, bottom)); - if (right > 0) //bottom-right - painter->drawImage(QRect(rect.left() + rect.width() - right, rect.top() + rect.height() - bottom, right, bottom), img, - QRect(size.width() - right, size.height() - bottom, right, bottom)); - } -} - -// Tints an image with tintColor, while preserving alpha and lightness -static void tintImage(QImage &img, const QColor &tintColor) -{ - QPainter p(&img); - p.setCompositionMode(QPainter::CompositionMode_Screen); - - for (int x = 0; x < img.width(); ++x) { - for (int y = 0; y < img.height(); ++y) { - QRgb rgbColor = img.pixel(x, y); - int alpha = qAlpha(rgbColor); - QColor c = QColor(rgbColor); - - if (alpha > 0) { - c.toHsl(); - qreal l = c.lightnessF(); - QColor newColor = QColor::fromHslF(tintColor.hslHueF(), tintColor.hslSaturationF(), l); - newColor.setAlpha(alpha); - img.setPixel(x, y, newColor.rgba()); - } - } - } -} - -class CrumblePathButton : public QPushButton -{ -public: - enum SegmentType { - LastSegment = 1, - MiddleSegment = 2, - FirstSegment = 4 - }; - - explicit CrumblePathButton(const QString &title, QWidget *parent = 0); - void setSegmentType(int type); -protected: - void paintEvent(QPaintEvent *); - void mouseMoveEvent(QMouseEvent *e); - void leaveEvent(QEvent *); - void mousePressEvent(QMouseEvent *e); - void mouseReleaseEvent(QMouseEvent *e); - -private: - void tintImages(); - -private: - bool m_isHovering; - bool m_isPressed; - bool m_isEnd; - QColor m_baseColor; - QImage m_segment; - QImage m_segmentEnd; - QImage m_segmentSelected; - QImage m_segmentSelectedEnd; - QImage m_segmentHover; - QImage m_segmentHoverEnd; - QPoint m_textPos; -}; - -CrumblePathButton::CrumblePathButton(const QString &title, QWidget *parent) - : QPushButton(title, parent), m_isHovering(false), m_isPressed(false), m_isEnd(true) -{ - setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - setToolTip(title); - setMinimumHeight(24); - setMaximumHeight(24); - setMouseTracking(true); - m_textPos.setX(18); - m_textPos.setY(height()); - m_baseColor = QColor(0x666666); - - m_segment = QImage(":/crumblepath/images/crumblepath-segment.png"); - m_segmentSelected = QImage(":/crumblepath/images/crumblepath-segment-selected.png"); - m_segmentHover = QImage(":/crumblepath/images/crumblepath-segment-hover.png"); - m_segmentEnd = QImage(":/crumblepath/images/crumblepath-segment-end.png"); - m_segmentSelectedEnd = QImage(":/crumblepath/images/crumblepath-segment-selected-end.png"); - m_segmentHoverEnd = QImage(":/crumblepath/images/crumblepath-segment-hover-end.png"); - - tintImages(); -} - -void CrumblePathButton::paintEvent(QPaintEvent *) -{ - QPainter p(this); - QRect geom(0, 0, geometry().width(), geometry().height()); - - if (m_isEnd) { - if (m_isPressed) { - drawCornerImage(m_segmentSelectedEnd, &p, geom, 2, 0, 2, 0); - } else if (m_isHovering) { - drawCornerImage(m_segmentHoverEnd, &p, geom, 2, 0, 2, 0); - } else { - drawCornerImage(m_segmentEnd, &p, geom, 2, 0, 2, 0); - } - } else { - if (m_isPressed) { - drawCornerImage(m_segmentSelected, &p, geom, 2, 0, 12, 0); - } else if (m_isHovering) { - drawCornerImage(m_segmentHover, &p, geom, 2, 0, 12, 0); - } else { - drawCornerImage(m_segment, &p, geom, 2, 0, 12, 0); - } - } - p.setPen(QColor(Qt::white)); - QFontMetrics fm(p.font()); - QString textToDraw = fm.elidedText(text(), Qt::ElideRight, geom.width() - m_textPos.x()); - - p.drawText(QRectF(m_textPos.x(), 4, geom.width(), geom.height()), textToDraw); -} - -void CrumblePathButton::tintImages() -{ - tintImage(m_segmentEnd, m_baseColor); - tintImage(m_segmentSelectedEnd, m_baseColor); - tintImage(m_segmentHoverEnd, m_baseColor); - tintImage(m_segmentSelected, m_baseColor); - tintImage(m_segmentHover, m_baseColor); - tintImage(m_segment, m_baseColor); -} - -void CrumblePathButton::leaveEvent(QEvent *e) -{ - QPushButton::leaveEvent(e); - m_isHovering = false; - update(); -} - -void CrumblePathButton::mouseMoveEvent(QMouseEvent *e) -{ - QPushButton::mouseMoveEvent(e); - m_isHovering = true; - update(); -} - -void CrumblePathButton::mousePressEvent(QMouseEvent *e) -{ - QPushButton::mousePressEvent(e); - m_isPressed = true; - update(); -} - -void CrumblePathButton::mouseReleaseEvent(QMouseEvent *e) -{ - QPushButton::mouseReleaseEvent(e); - m_isPressed = false; - update(); -} - -void CrumblePathButton::setSegmentType(int type) -{ - bool useLeftPadding = !(type & FirstSegment); - m_isEnd = (type & LastSegment); - m_textPos.setX(useLeftPadding ? 18 : 4); -} - -struct CrumblePathPrivate { - explicit CrumblePathPrivate(CrumblePath *q); - - QColor m_baseColor; - QList<CrumblePathButton*> m_buttons; - QWidget *m_background; -}; - -CrumblePathPrivate::CrumblePathPrivate(CrumblePath *q) : - m_baseColor(0x666666), - m_background(new QWidget(q)) -{ -} - -// -// CrumblePath -// -CrumblePath::CrumblePath(QWidget *parent) : - QWidget(parent), d(new CrumblePathPrivate(this)) -{ - setMinimumHeight(25); - setMaximumHeight(25); - setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); - - setBackgroundStyle(); - d->m_background->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); -} - -CrumblePath::~CrumblePath() -{ - qDeleteAll(d->m_buttons); - d->m_buttons.clear(); -} - -void CrumblePath::setBackgroundStyle() -{ - d->m_background->setStyleSheet("QWidget { background-color:" + d->m_baseColor.name() + ";}"); -} - -void CrumblePath::pushElement(const QString &title) -{ - CrumblePathButton *newButton = new CrumblePathButton(title, this); - newButton->hide(); - connect(newButton, SIGNAL(clicked()), SLOT(mapClickToIndex())); - connect(newButton, SIGNAL(customContextMenuRequested(QPoint)), SLOT(mapContextMenuRequestToIndex())); - - int segType = CrumblePathButton::MiddleSegment; - if (!d->m_buttons.isEmpty()) { - if (d->m_buttons.length() == 1) - segType = segType | CrumblePathButton::FirstSegment; - d->m_buttons.last()->setSegmentType(segType); - } else { - segType = CrumblePathButton::FirstSegment | CrumblePathButton::LastSegment; - newButton->setSegmentType(segType); - } - d->m_buttons.append(newButton); - - resizeButtons(); -} - -void CrumblePath::popElement() -{ - QWidget *last = d->m_buttons.last(); - d->m_buttons.removeLast(); - last->setParent(0); - last->deleteLater(); - - int segType = CrumblePathButton::MiddleSegment | CrumblePathButton::LastSegment; - if (!d->m_buttons.isEmpty()) { - if (d->m_buttons.length() == 1) - segType = CrumblePathButton::FirstSegment | CrumblePathButton::LastSegment; - d->m_buttons.last()->setSegmentType(segType); - } - resizeButtons(); -} - -void CrumblePath::clear() -{ - while (!d->m_buttons.isEmpty()) { - popElement(); - } -} - -void CrumblePath::resizeEvent(QResizeEvent *) -{ - resizeButtons(); -} - -void CrumblePath::resizeButtons() -{ - int buttonMinWidth = 0; - int buttonMaxWidth = 0; - int totalWidthLeft = width(); - - if (d->m_buttons.length() >= 1) { - QPoint nextElementPosition(0,0); - - d->m_buttons[0]->raise(); - // rearrange all items so that the first item is on top (added last). - for(int i = 0; i < d->m_buttons.length() ; ++i) { - CrumblePathButton *button = d->m_buttons[i]; - - QFontMetrics fm(button->font()); - buttonMinWidth = ArrowBorderSize + fm.width(button->text()) + ArrowBorderSize * 2 ; - buttonMaxWidth = (totalWidthLeft + ArrowBorderSize * (d->m_buttons.length() - i)) / (d->m_buttons.length() - i); - - if (buttonMinWidth > buttonMaxWidth && i < d->m_buttons.length() - 1) { - buttonMinWidth = buttonMaxWidth; - } else if (i > 3 && (i == d->m_buttons.length() - 1)) { - buttonMinWidth = width() - nextElementPosition.x(); - buttonMaxWidth = buttonMinWidth; - } - - button->setMinimumWidth(buttonMinWidth); - button->setMaximumWidth(buttonMaxWidth); - button->move(nextElementPosition); - - nextElementPosition.rx() += button->width() - ArrowBorderSize; - totalWidthLeft -= button->width(); - - button->show(); - if (i > 0) - button->stackUnder(d->m_buttons[i - 1]); - } - - } - - d->m_background->setGeometry(0,0, width(), height()); - d->m_background->update(); -} - -void CrumblePath::mapClickToIndex() -{ - QObject *element = sender(); - for (int i = 0; i < d->m_buttons.length(); ++i) { - if (d->m_buttons[i] == element) { - emit elementClicked(i); - return; - } - } -} - -void CrumblePath::mapContextMenuRequestToIndex() -{ - QObject *element = sender(); - for (int i = 0; i < d->m_buttons.length(); ++i) { - if (d->m_buttons[i] == element) { - emit elementContextMenuRequested(i); - return; - } - } -} - diff --git a/share/qtcreator/qml/qmlobserver/crumblepath.h b/share/qtcreator/qml/qmlobserver/crumblepath.h deleted file mode 100644 index 188992db352..00000000000 --- a/share/qtcreator/qml/qmlobserver/crumblepath.h +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#ifndef CRUMBLEPATH_H -#define CRUMBLEPATH_H - -#include <QtGui/QWidget> - -QT_FORWARD_DECLARE_CLASS(QResizeEvent); - -struct CrumblePathPrivate; - -class CrumblePath : public QWidget -{ - Q_OBJECT -public: - explicit CrumblePath(QWidget *parent = 0); - ~CrumblePath(); - -public slots: - void pushElement(const QString &title); - void popElement(); - void clear(); - -signals: - void elementClicked(int index); - void elementContextMenuRequested(int index); - -protected: - void resizeEvent(QResizeEvent *); - -private slots: - void mapClickToIndex(); - void mapContextMenuRequestToIndex(); - -private: - void resizeButtons(); - void setBackgroundStyle(); - -private: - QScopedPointer<CrumblePathPrivate> d; -}; - -#endif // CRUMBLEPATH_H diff --git a/share/qtcreator/qml/qmlobserver/crumblepath.qrc b/share/qtcreator/qml/qmlobserver/crumblepath.qrc deleted file mode 100644 index 1c0897973c1..00000000000 --- a/share/qtcreator/qml/qmlobserver/crumblepath.qrc +++ /dev/null @@ -1,10 +0,0 @@ -<RCC> - <qresource prefix="/crumblepath"> - <file>images/crumblepath-segment-end.png</file> - <file>images/crumblepath-segment-hover-end.png</file> - <file>images/crumblepath-segment-hover.png</file> - <file>images/crumblepath-segment-selected-end.png</file> - <file>images/crumblepath-segment-selected.png</file> - <file>images/crumblepath-segment.png</file> - </qresource> -</RCC> diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-end.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-end.png deleted file mode 100644 index 1fc371cfec1a632e8ae5a20a19f5412f7c74cb09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2957 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 DrxbvF diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover-end.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover-end.png deleted file mode 100644 index 5663d29ee67512937d555536f2dbfe4006ba1652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2970 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 QO#lD@07*qoM6N<$f>f7;M*si- diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-hover.png deleted file mode 100644 index 741f0575dd7467301e491839628317a648a8b64a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3384 zcmV-84af3{P)<h;3K|Lk000e1NJLTq000mG000;W1^@s6^PqhU00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh<iVD~V z<RPMtgQJLw%KPDaqifc@_vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z@C0AMG7=F<Rxo%or10RUT+Ar%3j zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i z0%4j!F2Z@488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G zw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@r6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@u zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6@fL%FCo z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_ zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t@q*0);U*o*SAPZv|vv@2aYYnT0 zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w@D1)b+p z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc= zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK<z=<L*0kfKU@CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h z1DNytV>2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0007GNkl<Zc-oXyziZn-7=7RQ<oK{<$Cf>GEM)4^Lf6u*v`e>=w1GfKP290V)^1t5 zbV>uIe?TGK3W2%_*h6WT(xF54#xlw;2?vx<r&EU_p%^<(9y~Zs`kvms?>kYa(@Bs+ ztyUZOzJGUXYs<qFY;JC5YiW$Z!omWSQUCyB%&lUv_-B26{oeNW_TNbYaU5rBK}49F zn?tEoLa9`OQVOkBtLZq-?{>R=dzwH>VT^&+8q5r4MifO5LZH=ZHR|>HueG(cJL3XT z6lD~~7{qaWX;W(rB0{s-tj^ER|5#mJy`LA*T4xk#@x{f(B{DMrpwVcQZQJgxtgJjp z1yZ-n{9hoyF-`z*97k0um2b<-%a6v7AX5kVWXC~7a2&_dT7OwuT3WPi`*YUDIF2zI zji9y0RS-fzDJ7#Q+VOq=y;ABG0LWQ|DU2}yfNHf00G-ijRFhJ^kZ~L%NfIPUGE*dd z*S2ji^Ybta>o*d}PoYu@%=}nrt*>1?9&8rkO&kyrhzRHB=V0cqGIfxKG^-PZLIFV# zAP9m_CnqP1GCk8Q2l?WoqoWU==e4soUZ+?}i698zdEQ&sbvLqS`3xqJh)^gL;QKy? z!{M9V-QA7+Ws=62sSb!J{c_^E?(1&1`!2nWmqvL~7l;U!W#R1XEOA};<=)=j$4P%A zIVpW2La|uH>FH_Wy6&_6{r#P3`D6}KAt3}T%fj*Tu^tQtPkOyx_o{%UF$T<xFbn|z z<#HK85JZQEhY$Px{`Xn4A(<Hm2M4fi8vqc7;jmJvJni@UKd&>H{{{fiO2r7S>buPV O0000<MNUMnLSTa6<WM63 diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected-end.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected-end.png deleted file mode 100644 index 6ef4e05b45f29c3db82c14b01a8fcb82612b0f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2944 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 diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment-selected.png deleted file mode 100644 index c674099b5a18ef978baf32c7e6b9614affb433f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3356 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 diff --git a/share/qtcreator/qml/qmlobserver/images/crumblepath-segment.png b/share/qtcreator/qml/qmlobserver/images/crumblepath-segment.png deleted file mode 100644 index ad6e7165f6c1025fbbfe918fd104821b430c7634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3379 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 JPDHLkV1ie=QE~tP diff --git a/share/qtcreator/qml/qmlobserver/qml.pri b/share/qtcreator/qml/qmlobserver/qml.pri index 08da6e4cfe9..7e485d3984c 100644 --- a/share/qtcreator/qml/qmlobserver/qml.pri +++ b/share/qtcreator/qml/qmlobserver/qml.pri @@ -15,18 +15,15 @@ HEADERS += $$PWD/qmlruntime.h \ $$PWD/proxysettings.h \ $$PWD/qdeclarativetester.h \ $$PWD/deviceorientation.h \ - $$PWD/loggerwidget.h \ - $$PWD/crumblepath.h + $$PWD/loggerwidget.h SOURCES += $$PWD/qmlruntime.cpp \ $$PWD/proxysettings.cpp \ $$PWD/qdeclarativetester.cpp \ - $$PWD/loggerwidget.cpp \ - $$PWD/crumblepath.cpp + $$PWD/loggerwidget.cpp -RESOURCES += $$PWD/qmlruntime.qrc \ - crumblepath.qrc +RESOURCES += $$PWD/qmlruntime.qrc OTHER_FILES += toolbarstyle.css diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp index 36d83d9a009..d35c18d4a96 100644 --- a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp +++ b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp @@ -57,7 +57,6 @@ #include <qdeclarativeviewobserver.h> #include <qdeclarativeobserverservice.h> -#include "crumblepath.h" #include "qmlruntime.h" #include <qdeclarativecontext.h> #include <qdeclarativeengine.h> @@ -534,32 +533,6 @@ QNetworkAccessManager *NetworkAccessManagerFactory::create(QObject *parent) return manager; } -// -// Event filter that ensures the crumble path width is always the canvas width -// -class CrumblePathResizer : public QObject -{ - Q_OBJECT -public: - CrumblePathResizer(CrumblePath *crumblePathWidget, QObject *parent = 0) : - QObject(parent), - m_crumblePathWidget(crumblePathWidget) - { - } - - bool eventFilter(QObject *obj, QEvent *event) - { - if (event->type() == QEvent::Resize) { - QResizeEvent *resizeEvent = static_cast<QResizeEvent *>(event); - m_crumblePathWidget->resize(resizeEvent->size().width(), m_crumblePathWidget->height()); - } - return QObject::eventFilter(obj, event); - } - -private: - QWidget *m_crumblePathWidget; -}; - QString QDeclarativeViewer::getVideoFileName() { QString title = convertAvailable || ffmpegAvailable ? tr("Save Video File") : tr("Save PNG Frames"); @@ -582,7 +555,6 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags) , tester(0) , useQmlFileBrowser(true) , m_centralWidget(0) - , m_crumblePathWidget(0) , translator(0) { QDeclarativeViewer::registerTypes(); @@ -620,18 +592,6 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags) canvas = new QDeclarativeView(this); observer = new QmlJSDebugger::QDeclarativeViewObserver(canvas, this); new QmlJSDebugger::JSDebuggerAgent(canvas->engine()); - if (!(flags & Qt::FramelessWindowHint)) { - m_crumblePathWidget = new CrumblePath(canvas); -#ifndef Q_WS_MAC - m_crumblePathWidget->setStyleSheet("QWidget { border-bottom: 1px solid black; }"); -#endif - m_crumblePathWidget->setVisible(observer->designModeBehavior()); - - // CrumblePath is not in a layout, so that it overlays the central widget - // The event filter ensures that its width stays in sync nevertheless - CrumblePathResizer *resizer = new CrumblePathResizer(m_crumblePathWidget, m_crumblePathWidget); - canvas->installEventFilter(resizer); - } m_centralWidget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(m_centralWidget); @@ -650,13 +610,6 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags) QObject::connect(observer, SIGNAL(reloadRequested()), this, SLOT(reload())); QObject::connect(canvas, SIGNAL(sceneResized(QSize)), this, SLOT(sceneResized(QSize))); QObject::connect(canvas, SIGNAL(statusChanged(QDeclarativeView::Status)), this, SLOT(statusChanged())); - if (m_crumblePathWidget) { - QObject::connect(observer, SIGNAL(inspectorContextCleared()), m_crumblePathWidget, SLOT(clear())); - QObject::connect(observer, SIGNAL(inspectorContextPushed(QString)), m_crumblePathWidget, SLOT(pushElement(QString))); - QObject::connect(observer, SIGNAL(inspectorContextPopped()), m_crumblePathWidget, SLOT(popElement())); - QObject::connect(m_crumblePathWidget, SIGNAL(elementClicked(int)), observer, SLOT(setObserverContext(int))); - QObject::connect(observer, SIGNAL(designModeBehaviorChanged(bool)), m_crumblePathWidget, SLOT(setVisible(bool))); - } QObject::connect(canvas->engine(), SIGNAL(quit()), QCoreApplication::instance (), SLOT(quit())); QObject::connect(warningsWidget(), SIGNAL(opened()), this, SLOT(warningsWidgetOpened())); diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.h b/share/qtcreator/qml/qmlobserver/qmlruntime.h index 630c30c324b..7c30998dfc1 100644 --- a/share/qtcreator/qml/qmlobserver/qmlruntime.h +++ b/share/qtcreator/qml/qmlobserver/qmlruntime.h @@ -53,8 +53,6 @@ namespace QmlJSDebugger { class QDeclarativeViewObserver; } -class CrumblePath; - QT_BEGIN_NAMESPACE class QDeclarativeView; @@ -215,7 +213,6 @@ private: bool useQmlFileBrowser; QWidget *m_centralWidget; - CrumblePath *m_crumblePathWidget; QTranslator *translator; void loadTranslationFile(const QString& directory); diff --git a/src/plugins/qt4projectmanager/qmlobservertool.cpp b/src/plugins/qt4projectmanager/qmlobservertool.cpp index 623e527d190..5d5bbdf8fb7 100644 --- a/src/plugins/qt4projectmanager/qmlobservertool.cpp +++ b/src/plugins/qt4projectmanager/qmlobservertool.cpp @@ -125,7 +125,6 @@ QString QmlObserverTool::copy(const QString &qtInstallData, QString *errorMessag QStringList files; files << QLatin1String("main.cpp") << QLatin1String("qmlobserver.pro") - << QLatin1String("crumblepath.cpp") << QLatin1String("crumblepath.h") << QLatin1String("deviceorientation.cpp") << QLatin1String("deviceorientation.h") << QLatin1String("deviceorientation_maemo5.cpp") << QLatin1String("Info_mac.plist") << QLatin1String("loggerwidget.cpp") << QLatin1String("loggerwidget.h") @@ -140,11 +139,7 @@ QString QmlObserverTool::copy(const QString &qtInstallData, QString *errorMessag << QLatin1String("content/Browser.qml") << QLatin1String("content/images/folder.png") << QLatin1String("content/images/titlebar.png") << QLatin1String("content/images/titlebar.sci") << QLatin1String("content/images/up.png") - << QLatin1String("LICENSE.LGPL") << QLatin1String("LGPL_EXCEPTION.TXT") - << QLatin1String("crumblepath.qrc") << QLatin1String("images/crumblepath-segment-end.png") - << QLatin1String("images/crumblepath-segment-hover-end.png") << QLatin1String("images/crumblepath-segment-hover.png") - << QLatin1String("images/crumblepath-segment-selected-end.png") << QLatin1String("images/crumblepath-segment-selected.png") - << QLatin1String("images/crumblepath-segment.png"); + << QLatin1String("LICENSE.LGPL") << QLatin1String("LGPL_EXCEPTION.TXT"); QStringList debuggerLibFiles; debuggerLibFiles << QLatin1String("jsdebuggeragent.cpp") -- GitLab