summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDavid Boddie <david.boddie@nokia.com>2011-02-23 17:38:46 (GMT)
committerDavid Boddie <david.boddie@nokia.com>2011-02-23 17:38:46 (GMT)
commit4501731349406110ecde2d260a8ab1e1bcedf179 (patch)
tree5ec176e26bbd207741ca40a1704e654c30fb8571 /tools
parent3c982b5d214cc7a37ace1d956ac8fb0b9a281722 (diff)
parent0442b383dced6b5cc31e4fc2bf939e3125354f82 (diff)
downloadQt-4501731349406110ecde2d260a8ab1e1bcedf179.zip
Qt-4501731349406110ecde2d260a8ab1e1bcedf179.tar.gz
Qt-4501731349406110ecde2d260a8ab1e1bcedf179.tar.bz2
Merge commit 'refs/merge-requests/1108' of git://gitorious.org/qt/qt into merge-requests/1108
Conflicts: doc/src/declarative/basictypes.qdoc
Diffstat (limited to 'tools')
-rw-r--r--tools/configure/configureapp.cpp30
-rw-r--r--tools/configure/environment.cpp61
-rw-r--r--tools/configure/environment.h4
-rw-r--r--tools/designer/src/components/signalsloteditor/signalslot_utils.cpp27
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp8
-rw-r--r--tools/qdbus/qdbus/qdbus.cpp13
-rw-r--r--tools/qml/qml.pri10
-rw-r--r--tools/qml/qml.pro4
8 files changed, 104 insertions, 53 deletions
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 8fa03ab..1b77058 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -3244,8 +3244,7 @@ void Configure::generateConfigfiles()
}
// Copy configured mkspec to default directory, but remove the old one first, if there is any
- QString mkspecsPath = buildPath + "/mkspecs";
- QString defSpec = mkspecsPath + "/default";
+ QString defSpec = buildPath + "/mkspecs/default";
QFileInfo defSpecInfo(defSpec);
if (defSpecInfo.exists()) {
if (!Environment::rmdir(defSpec)) {
@@ -3255,30 +3254,13 @@ void Configure::generateConfigfiles()
}
}
- QDir mkspecsDir(mkspecsPath);
- if (!mkspecsDir.mkdir("default")) {
- cout << "Couldn't create default mkspec dir!" << endl;
- dictionary["DONE"] = "error";
- return;
- }
-
QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"];
QString pltSpec = sourcePath + "/mkspecs/" + spec;
- outName = defSpec + "/qmake.conf";
- QFile qmakeConfFile(outName);
- if (qmakeConfFile.open(QFile::WriteOnly | QFile::Text)) {
- QTextStream qmakeConfStream;
- qmakeConfStream.setDevice(&qmakeConfFile);
- // While QMAKESPEC_ORIGINAL being relative or absolute doesn't matter for the
- // primary use of this variable by qmake to identify the original mkspec, the
- // variable is also used for few special cases where the absolute path is required.
- // Conversely, the include of the original qmake.conf must be done using relative path,
- // as some Qt binary deployments are done in a manner that doesn't allow for patching
- // the paths at the installation time.
- qmakeConfStream << "QMAKESPEC_ORIGINAL=" << pltSpec << endl << endl;
- qmakeConfStream << "include(" << "../" << spec << "/qmake.conf)" << endl << endl;
- qmakeConfStream.flush();
- qmakeConfFile.close();
+ QString includeSpec = buildPath + "/mkspecs/" + spec;
+ if (!Environment::cpdir(pltSpec, defSpec, includeSpec)) {
+ cout << "Couldn't update default mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
+ dictionary["DONE"] = "error";
+ return;
}
// Generate the new qconfig.cpp file
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index 05fd567..9d1c23a 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -407,10 +407,25 @@ int Environment::execute(QStringList arguments, const QStringList &additionalEnv
return exitCode;
}
-bool Environment::cpdir(const QString &srcDir, const QString &destDir)
+/*!
+ Copies the \a srcDir contents into \a destDir.
+
+ If \a includeSrcDir is not empty, any files with 'h', 'prf', or 'conf' suffixes
+ will not be copied over from \a srcDir. Instead a new file will be created
+ in \a destDir with the same name and that file will include a file with the
+ same name from the \a includeSrcDir using relative path and appropriate
+ syntax for the file type.
+
+ Returns true if copying was successful.
+*/
+bool Environment::cpdir(const QString &srcDir,
+ const QString &destDir,
+ const QString &includeSrcDir)
{
QString cleanSrcName = QDir::cleanPath(srcDir);
QString cleanDstName = QDir::cleanPath(destDir);
+ QString cleanIncludeName = QDir::cleanPath(includeSrcDir);
+
#ifdef CONFIGURE_DEBUG_CP_DIR
qDebug() << "Attempt to cpdir " << cleanSrcName << "->" << cleanDstName;
#endif
@@ -421,21 +436,59 @@ bool Environment::cpdir(const QString &srcDir, const QString &destDir)
bool result = true;
QDir dir = QDir(cleanSrcName);
+ QDir destinationDir = QDir(cleanDstName);
QFileInfoList allEntries = dir.entryInfoList(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
for (int i = 0; result && (i < allEntries.count()); ++i) {
QFileInfo entry = allEntries.at(i);
bool intermediate = true;
if (entry.isDir()) {
+ QString newIncSrcDir;
+ if (!includeSrcDir.isEmpty())
+ newIncSrcDir = QString("%1/%2").arg(cleanIncludeName).arg(entry.fileName());
+
intermediate = cpdir(QString("%1/%2").arg(cleanSrcName).arg(entry.fileName()),
- QString("%1/%2").arg(cleanDstName).arg(entry.fileName()));
+ QString("%1/%2").arg(cleanDstName).arg(entry.fileName()),
+ newIncSrcDir);
} else {
QString destFile = QString("%1/%2").arg(cleanDstName).arg(entry.fileName());
#ifdef CONFIGURE_DEBUG_CP_DIR
qDebug() << "About to cp (file)" << entry.absoluteFilePath() << "->" << destFile;
#endif
QFile::remove(destFile);
- intermediate = QFile::copy(entry.absoluteFilePath(), destFile);
- SetFileAttributes((wchar_t*)destFile.utf16(), FILE_ATTRIBUTE_NORMAL);
+ QString suffix = entry.suffix();
+ if (!includeSrcDir.isEmpty() && (suffix == "prf" || suffix == "conf" || suffix == "h")) {
+ QString relativeIncludeFilePath = QString("%1/%2").arg(cleanIncludeName).arg(entry.fileName());
+ relativeIncludeFilePath = destinationDir.relativeFilePath(relativeIncludeFilePath);
+#ifdef CONFIGURE_DEBUG_CP_DIR
+ qDebug() << "...instead generate relative include to" << relativeIncludeFilePath;
+#endif
+ QFile currentFile(destFile);
+ if (currentFile.open(QFile::WriteOnly | QFile::Text)) {
+ QTextStream fileStream;
+ fileStream.setDevice(&currentFile);
+
+ if (suffix == "prf" || suffix == "conf") {
+ if (entry.fileName() == "qmake.conf") {
+ // While QMAKESPEC_ORIGINAL being relative or absolute doesn't matter for the
+ // primary use of this variable by qmake to identify the original mkspec, the
+ // variable is also used for few special cases where the absolute path is required.
+ // Conversely, the include of the original qmake.conf must be done using relative path,
+ // as some Qt binary deployments are done in a manner that doesn't allow for patching
+ // the paths at the installation time.
+ fileStream << "QMAKESPEC_ORIGINAL=" << cleanSrcName << endl << endl;
+ }
+ fileStream << "include(" << relativeIncludeFilePath << ")" << endl << endl;
+ } else if (suffix == "h") {
+ fileStream << "#include \"" << relativeIncludeFilePath << "\"" << endl << endl;
+ }
+
+ fileStream.flush();
+ currentFile.close();
+ }
+ } else {
+ intermediate = QFile::copy(entry.absoluteFilePath(), destFile);
+ SetFileAttributes((wchar_t*)destFile.utf16(), FILE_ATTRIBUTE_NORMAL);
+ }
}
if(!intermediate) {
qDebug() << "cpdir: Failure for " << entry.fileName() << entry.isDir();
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index e3e8629..61e97eb 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -69,7 +69,9 @@ public:
static bool detectExecutable(const QString &executable);
static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv);
- static bool cpdir(const QString &srcDir, const QString &destDir);
+ static bool cpdir(const QString &srcDir,
+ const QString &destDir,
+ const QString &includeSrcDir = QString());
static bool rmdir(const QString &name);
static QString symbianEpocRoot();
diff --git a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
index aecd1e5..9f72816 100644
--- a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
+++ b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
@@ -72,7 +72,6 @@ static void memberList(QDesignerFormEditorInterface *core,
{
if (!object)
return;
-
// 1) member sheet
const QDesignerMemberSheetExtension *members = qt_extension<QDesignerMemberSheetExtension*>(core->extensionManager(), object);
Q_ASSERT(members != 0);
@@ -118,15 +117,15 @@ static void memberList(QDesignerFormEditorInterface *core,
if (!metaDataBase)
return;
- const qdesigner_internal::MetaDataBaseItem *mdbItem = metaDataBase->metaDataBaseItem(object);
- Q_ASSERT(mdbItem);
- const QStringList mdbFakeMethods = member_type == qdesigner_internal::SlotMember ? mdbItem->fakeSlots() : mdbItem->fakeSignals();
- if (!mdbFakeMethods.empty())
- foreach (const QString &fakeMethod, mdbFakeMethods)
- if (predicate(fakeMethod)) {
- *it = ClassNameSignaturePair(className, fakeMethod);
- ++it;
- }
+ if (const qdesigner_internal::MetaDataBaseItem *mdbItem = metaDataBase->metaDataBaseItem(object)) {
+ const QStringList mdbFakeMethods = member_type == qdesigner_internal::SlotMember ? mdbItem->fakeSlots() : mdbItem->fakeSignals();
+ if (!mdbFakeMethods.empty())
+ foreach (const QString &fakeMethod, mdbFakeMethods)
+ if (predicate(fakeMethod)) {
+ *it = ClassNameSignaturePair(className, fakeMethod);
+ ++it;
+ }
+ }
}
namespace {
@@ -245,10 +244,14 @@ namespace qdesigner_internal {
ClassesMemberFunctions reverseClassesMemberFunctions(const QString &obj_name, MemberType member_type,
const QString &peer, QDesignerFormWindowInterface *form)
{
- QObject *object = qFindChild<QObject*>(form, obj_name);
+ QObject *object = 0;
+ if (obj_name == form->mainContainer()->objectName()) {
+ object = form->mainContainer();
+ } else {
+ object = qFindChild<QObject*>(form->mainContainer(), obj_name);
+ }
if (!object)
return ClassesMemberFunctions();
-
QDesignerFormEditorInterface *core = form->core();
ClassesMemberFunctions rc;
diff --git a/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp b/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
index ecee08e..6690948 100644
--- a/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
+++ b/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
@@ -658,8 +658,12 @@ QWidget *ConnectionDelegate::createEditor(QWidget *parent,
const qdesigner_internal::ClassesMemberFunctions class_list = qdesigner_internal::reverseClassesMemberFunctions(obj_name, type, peer, m_form);
- QObject *object = qFindChild<QObject*>(m_form, obj_name);
-
+ QObject *object = 0;
+ if (obj_name == m_form->mainContainer()->objectName()) {
+ object = m_form->mainContainer();
+ } else {
+ object = qFindChild<QObject*>(m_form->mainContainer(), obj_name);
+ }
inline_editor->addText(type == qdesigner_internal::SignalMember ? tr("<signal>") : tr("<slot>"));
foreach (const qdesigner_internal::ClassMemberFunctions &class_info, class_list) {
if (class_info.m_className.isEmpty() || class_info.m_memberList.isEmpty())
diff --git a/tools/qdbus/qdbus/qdbus.cpp b/tools/qdbus/qdbus/qdbus.cpp
index 6ec8224..8e1c384 100644
--- a/tools/qdbus/qdbus/qdbus.cpp
+++ b/tools/qdbus/qdbus/qdbus.cpp
@@ -50,6 +50,10 @@
#include <QtDBus/QtDBus>
#include <private/qdbusutil_p.h>
+QT_BEGIN_NAMESPACE
+Q_DBUS_EXPORT extern bool qt_dbus_metaobject_skip_annotations;
+QT_END_NAMESPACE
+
static QDBusConnection connection(QLatin1String(""));
static bool printArgumentsLiterally = false;
@@ -99,7 +103,7 @@ static void printArg(const QVariant &v)
else if (arg.currentSignature() == QLatin1String("a{sv}"))
printArg(qdbus_cast<QVariantMap>(arg));
else
- printf("qdbus: I don't know how to display an argument of type '%s'\n",
+ printf("qdbus: I don't know how to display an argument of type '%s', run with --literal.\n",
qPrintable(arg.currentSignature()));
} else {
printf("%s\n", qPrintable(v.toString()));
@@ -311,7 +315,11 @@ static int placeCall(const QString &service, const QString &path, const QString
int id = QVariant::nameToType(types.at(i));
if (id == QVariant::UserType)
id = QMetaType::type(types.at(i));
- Q_ASSERT(id);
+ if (!id) {
+ fprintf(stderr, "Cannot call method '%s' because type '%s' is unknown to this tool\n",
+ qPrintable(member), types.at(i).constData());
+ return 1;
+ }
QVariant p;
QString argument;
@@ -435,6 +443,7 @@ static void printAllServices(QDBusConnectionInterface *bus)
int main(int argc, char **argv)
{
+ QT_PREPEND_NAMESPACE(qt_dbus_metaobject_skip_annotations) = true;
QCoreApplication app(argc, argv);
QStringList args = app.arguments();
args.takeFirst();
diff --git a/tools/qml/qml.pri b/tools/qml/qml.pri
index 08cd506..2010cc1 100644
--- a/tools/qml/qml.pri
+++ b/tools/qml/qml.pri
@@ -19,18 +19,16 @@ SOURCES += $$PWD/qmlruntime.cpp \
RESOURCES = $$PWD/browser/browser.qrc \
$$PWD/startup/startup.qrc
-symbian: {
- contains(QT_CONFIG, s60): {
+symbian {
+ contains(QT_CONFIG, s60) {
LIBS += -lavkon -lcone
}
!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
LIBS += -lsensrvclient -lsensrvutil
- }
- !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2): {
SOURCES += $$PWD/deviceorientation_symbian.cpp
- FORMS = $$PWD/recopts.ui \
- $$PWD/proxysettings.ui
}
+ FORMS = $$PWD/recopts.ui \
+ $$PWD/proxysettings.ui
} else:maemo5 {
QT += dbus
HEADERS += $$PWD/texteditautoresizer_maemo5.h
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index 5d6192d..b1d56ea 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -39,8 +39,8 @@ symbian {
TARGET.CAPABILITY = NetworkServices ReadUserData
# Deploy plugin for remote debugging
- qmldebuggingplugin.sources = $$QT_BUILD_TREE/plugins/qmldebugging/tcpserver$${QT_LIBINFIX}.dll
- qmldebuggingplugin.path = c:$$QT_PLUGINS_BASE_DIR/qmldebugging
+ qmldebuggingplugin.sources = $$QT_BUILD_TREE/plugins/qmltooling/tcpserver$${QT_LIBINFIX}.dll
+ qmldebuggingplugin.path = c:$$QT_PLUGINS_BASE_DIR/qmltooling
DEPLOYMENT += qmldebuggingplugin
}
mac {