Commit dfee3388 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen
Browse files

Merge remote branch 'origin/2.1'

Conflicts:
	share/qtcreator/templates/qmlapp/app.pro
	src/libs/utils/filesearch.cpp
parents f3cb1f0b 9240ceaf
doc/images/qmldesigner-borderimage.png

6.06 KB | W: | H:

doc/images/qmldesigner-borderimage.png

949 Bytes | W: | H:

doc/images/qmldesigner-borderimage.png
doc/images/qmldesigner-borderimage.png
doc/images/qmldesigner-borderimage.png
doc/images/qmldesigner-borderimage.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -127,7 +127,7 @@
To install and configure Mad Developer:
\list 1
\o On the Nokia N900, select \gui{Download} > \gui{Development} > \gui{mad-developer}
\o On the Nokia N900, select \gui{App Manager > Download} > \gui{Development} > \gui{mad-developer}
to install the Mad Developer software package.
\o Click \gui {Mad Developer} to start the Mad Developer application.
......
This diff is collapsed.
......@@ -815,28 +815,34 @@ def qdump__QObject(d, item):
d.putValue("...")
d.putNumChild(0)
# Connections.
with SubItem(d):
connectionCount = 0
d.putName("connections")
d.putItemCount(connectionCount)
d.putType(" ")
d.putNumChild(connectionCount)
if connectionCount:
d.putField("childtype", "")
d.putField("childnumchild", "0")
if d.isExpandedIName(item.iname + ".connections"):
with Children(d):
connectionLists = d_ptr["connectionLists"]
warn("CONNECTIONLISTS: %s " % connectionLists)
# Connections.
with SubItem(d):
d.putName("connections")
d.putType(" ")
connections = d_ptr["connectionLists"]
connectionListCount = 0
if not isNull(connections):
connectionListCount = connections["d"]["size"]
d.putItemCount(connectionListCount)
d.putNumChild(connectionListCount)
if d.isExpandedIName(item.iname + ".connections"):
with Children(d):
vectorType = connections.type.target().fields()[0].type
innerType = vectorType.template_argument(0)
# Should check: innerType == ns::QObjectPrivate::ConnectionList
p = gdb.Value(connections["p"]["array"]).cast(innerType.pointer())
pp = 0
for i in xrange(connectionListCount):
first = p.dereference()["first"]
while not isNull(first):
d.putItem(Item(first.dereference(), item.iname + ".connections", pp))
first = first["next"]
# We need to enforce some upper limit.
pp += 1
if pp > 1000:
break
p += 1
for connection in xrange(connectionCount):
with SubItem(d):
d.putField("iname", "%s.connections.%d"
% (item.iname, connection))
d.putName("connection %d" % connection)
d.putValue("")
# Signals
signalCount = metaData[13]
......@@ -858,6 +864,7 @@ def qdump__QObject(d, item):
d.putName("signal %d" % signal)
d.putType(" ")
d.putValue(extractCString(metaStringData, offset))
d.putNumChild(0) # FIXME: List the connections here.
# Slots
with SubItem(d):
......@@ -878,6 +885,7 @@ def qdump__QObject(d, item):
d.putName("slot %d" % slot)
d.putType(" ")
d.putValue(extractCString(metaStringData, offset))
d.putNumChild(0) # FIXME: List the connections here.
# Active connection
with SubItem(d):
......@@ -1660,14 +1668,19 @@ def qdump__QTextCodec(d, item):
def qdump__QTextCursor(d, item):
p = item.value["d"]["d"].dereference()
d.putValue(p["position"])
d.putNumChild(1)
if d.isExpanded(item):
with Children(d):
d.putIntItem("position", p["position"])
d.putIntItem("anchor", p["anchor"])
d.putCallItem("selected", item, "selectedText()")
dd = item.value["d"]["d"]
if isNull(dd):
d.putValue("(invalid)")
d.putNumChild(0)
else:
p = dd.dereference()
d.putValue(p["position"])
d.putNumChild(1)
if d.isExpanded(item):
with Children(d):
d.putIntItem("position", p["position"])
d.putIntItem("anchor", p["anchor"])
d.putCallItem("selected", item, "selectedText()")
def qdump__QTextDocument(d, item):
......@@ -2064,7 +2077,14 @@ def qdump__std__string(d, item):
baseType = item.value.type.unqualified().strip_typedefs()
if baseType.code == gdb.TYPE_CODE_REF:
baseType = baseType.target().unqualified().strip_typedefs()
charType = baseType.template_argument(0)
# We might encounter 'std::string' or 'std::basic_string<>'
# or even 'std::locale::string' on MinGW due to some type lookup glitch.
if str(baseType) == 'std::string' or str(baseType) == 'std::locale::string':
charType = lookupType("char")
elif str(baseType) == 'std::wstring':
charType = lookupType("wchar_t")
else:
charType = baseType.template_argument(0)
repType = lookupType("%s::_Rep" % baseType).pointer()
rep = (data.cast(repType) - 1).dereference()
size = rep['_M_length']
......
......@@ -351,6 +351,9 @@ void SelectionTool::wheelEvent(QWheelEvent *event)
QList<QGraphicsItem*> itemList = QDeclarativeViewObserverPrivate::get(observer())->selectableItems(event->pos());
if (itemList.isEmpty())
return;
int selectedIdx = 0;
if (!observer()->selectedItems().isEmpty()) {
selectedIdx = itemList.indexOf(observer()->selectedItems().first());
......
......@@ -60,7 +60,6 @@ public:
QToolBar *toolbar() const;
static QString idStringForObject(QObject *obj);
QRectF adjustToScreenBoundaries(const QRectF &boundingRectInSceneSpace);
void setDebugMode(bool isDebugMode);
public Q_SLOTS:
void setDesignModeBehavior(bool value);
......
......@@ -37,7 +37,6 @@
#include "boundingrecthighlighter.h"
#include "subcomponenteditortool.h"
#include "qmltoolbar.h"
#include "jsdebuggeragent.h"
#include "qt_private/qdeclarativedebughelper_p.h"
......@@ -60,7 +59,6 @@ QDeclarativeViewObserverPrivate::QDeclarativeViewObserverPrivate(QDeclarativeVie
designModeBehavior(false),
executionPaused(false),
slowdownFactor(1.0f),
jsDebuggerAgent(0),
toolbar(0)
{
}
......@@ -718,9 +716,11 @@ void QDeclarativeViewObserverPrivate::_q_onCurrentObjectsChanged(QList<QObject*>
gfxObjects << gfxObj;
}
}
setSelectedItemsForTools(items);
clearHighlight();
highlight(gfxObjects, QDeclarativeViewObserverPrivate::IgnoreContext);
if (designModeBehavior) {
setSelectedItemsForTools(items);
clearHighlight();
highlight(gfxObjects, QDeclarativeViewObserverPrivate::IgnoreContext);
}
}
QString QDeclarativeViewObserver::idStringForObject(QObject *obj)
......@@ -789,11 +789,6 @@ void QDeclarativeViewObserverPrivate::createToolbar()
QObject::connect(q, SIGNAL(marqueeSelectToolActivated()), toolbar, SLOT(activateMarqueeSelectTool()));
}
void QDeclarativeViewObserver::setDebugMode(bool isDebugMode)
{
if (isDebugMode && !data->jsDebuggerAgent)
data->jsDebuggerAgent = new JSDebuggerAgent(data->view->engine());
}
} //namespace QmlJSDebugger
......
......@@ -86,8 +86,6 @@ public:
bool executionPaused;
qreal slowdownFactor;
JSDebuggerAgent *jsDebuggerAgent;
QmlToolbar *toolbar;
void clearEditorItems();
......
......@@ -9,14 +9,16 @@ contains(CONFIG, dll) {
}
## Input
!contains(DEFINES, NO_JSDEBUGGER) {
HEADERS += \
include/jsdebuggeragent.h \
include/qmljsdebugger_global.h
SOURCES += \
jsdebuggeragent.cpp
}
contains(DEFINES, QMLOBSERVER) {
!contains(DEFINES, NO_QMLOBSERVER) {
include($$PWD/editor/editor.pri)
HEADERS += \
......
......@@ -2,8 +2,6 @@ TEMPLATE = lib
CONFIG+=dll
TARGET = QmlJSDebugger
DEFINES += QMLOBSERVER
unix:QMAKE_CXXFLAGS_DEBUG += -O3
include(../../../../src/qtcreatorlibrary.pri)
......
......@@ -184,7 +184,9 @@ int main(int argc, char ** argv)
#if defined (Q_OS_WIN)
// Debugging output is not visible by default on Windows -
// therefore show modal dialog with errors instead.
atexit(showWarnings);
// (Disabled in QmlObserver: We're usually running inside QtCreator anyway, see also QTCREATORBUG-2748)
// atexit(showWarnings);
#endif
#if defined (Q_WS_X11) || defined (Q_WS_MAC)
......@@ -417,10 +419,6 @@ int main(int argc, char ** argv)
viewer->setDesignModeBehavior(designModeBehavior);
// FIXME debug mode is always on for qml observer
debuggerModeBehavior = true;
viewer->setDebugMode(debuggerModeBehavior);
foreach (QString lib, imports)
viewer->addLibraryPath(lib);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment