forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.0'
Change-Id: I9793f0f9019b16f3725c5a9708a5ccf81557cdc6
This commit is contained in:
12
dist/changes-4.0.1.md
vendored
12
dist/changes-4.0.1.md
vendored
@@ -12,6 +12,7 @@ CMake Projects
|
||||
* Added notification when `CMakeCache.txt` changes and introduces a
|
||||
conflict with the build configuration settings, with the option
|
||||
to adapt the build configuration settings
|
||||
* Made it possible to add arbitrary CMake variables (QTCREATORBUG-16238)
|
||||
* Fixed that build configurations could not override kit settings, and added
|
||||
a warning to build configurations that override kit settings
|
||||
* Fixed that `yes` was not considered as boolean `true` value
|
||||
@@ -28,6 +29,11 @@ Debugging
|
||||
* Fixed QObject property expansion (QTCREATORBUG-15798)
|
||||
* Fixed updating evaluated expressions
|
||||
* Fixed crash on spontaneous debugger exit (QTCREATORBUG-16233)
|
||||
* GDB
|
||||
* Fixed issues with restarting debugger (QTCREATORBUG-16355)
|
||||
* QML
|
||||
* Restored expression evaluation by using the selection tool
|
||||
(QTCREATORBUG-16300)
|
||||
|
||||
Valgrind
|
||||
|
||||
@@ -51,3 +57,9 @@ Platform Specific
|
||||
Windows
|
||||
|
||||
* Fixed detection of Microsoft Visual C++ Build Tools
|
||||
* Fixed that tool tips could stay visible even after switching applications
|
||||
(QTCREATORBUG-15882)
|
||||
|
||||
iOS
|
||||
|
||||
* Added missing human readable error messages (QTCREATORBUG-16328)
|
||||
|
||||
@@ -951,7 +951,7 @@ bool JsonFieldPage::isComplete() const
|
||||
showError(message);
|
||||
hasErrorMessage = true;
|
||||
}
|
||||
if (f->isMandatory())
|
||||
if (f->isMandatory() && !f->widget()->isHidden())
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#
|
||||
############################################################################
|
||||
|
||||
import __builtin__
|
||||
import operator
|
||||
|
||||
# for easier re-usage (because Python hasn't an enum type)
|
||||
@@ -177,26 +178,65 @@ class Qt5Path:
|
||||
|
||||
@staticmethod
|
||||
def getPaths(pathSpec):
|
||||
qt5targets = [Targets.DESKTOP_521_DEFAULT, Targets.DESKTOP_531_DEFAULT]
|
||||
if platform.system() != 'Darwin':
|
||||
qt5targets.append(Targets.DESKTOP_541_GCC)
|
||||
if pathSpec == Qt5Path.DOCS:
|
||||
path52 = "/doc"
|
||||
path53 = "/Docs/Qt-5.3"
|
||||
path54 = "/Docs/Qt-5.4"
|
||||
return map(lambda target: Qt5Path.docsPath(target), qt5targets)
|
||||
elif pathSpec == Qt5Path.EXAMPLES:
|
||||
path52 = "/examples"
|
||||
path53 = "/Examples/Qt-5.3"
|
||||
path54 = "/Examples/Qt-5.4"
|
||||
return map(lambda target: Qt5Path.examplesPath(target), qt5targets)
|
||||
else:
|
||||
test.fatal("Unknown pathSpec given: %s" % str(pathSpec))
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
def __preCheckAndExtractQtVersionStr__(target):
|
||||
if target not in Targets.ALL_TARGETS:
|
||||
raise Exception("Unexpected target '%s'" % str(target))
|
||||
|
||||
matcher = re.match("^Desktop (5\\d{2}).*$", Targets.getStringForTarget(target))
|
||||
if matcher is None:
|
||||
raise Exception("Currently this is supported for Desktop Qt5 only, got target '%s'"
|
||||
% str(Targets.getStringForTarget(target)))
|
||||
return matcher.group(1)
|
||||
|
||||
@staticmethod
|
||||
def __createPlatformQtPath__(qt5Minor):
|
||||
# special handling for Qt5.2
|
||||
if qt5Minor == 2:
|
||||
if platform.system() in ('Microsoft', 'Windows'):
|
||||
return "C:/Qt/Qt5.2.1/5.2.1/msvc2010"
|
||||
elif platform.system() == 'Linux':
|
||||
if __is64BitOS__():
|
||||
return os.path.expanduser("~/Qt5.2.1/5.2.1/gcc_64")
|
||||
else:
|
||||
return os.path.expanduser("~/Qt5.2.1/5.2.1/gcc")
|
||||
else:
|
||||
return os.path.expanduser("~/Qt5.2.1/5.2.1/clang_64")
|
||||
# Qt5.3+
|
||||
if platform.system() in ('Microsoft', 'Windows'):
|
||||
return ["C:/Qt/Qt5.2.1/5.2.1/msvc2010" + path52,
|
||||
"C:/Qt/Qt5.3.1" + path53, "C:/Qt/Qt5.4.1" + path54]
|
||||
elif platform.system() == 'Linux':
|
||||
if __is64BitOS__():
|
||||
return map(os.path.expanduser, ["~/Qt5.2.1/5.2.1/gcc_64" + path52,
|
||||
"~/Qt5.3.1" + path53, "~/Qt5.4.1" + path54])
|
||||
return map(os.path.expanduser, ["~/Qt5.2.1/5.2.1/gcc" + path52,
|
||||
"~/Qt5.3.1" + path53, "~/Qt5.4.1" + path54])
|
||||
return "C:/Qt/Qt5.%d.1" % qt5Minor
|
||||
else:
|
||||
return map(os.path.expanduser, ["~/Qt5.2.1/5.2.1/clang_64" + path52,
|
||||
"~/Qt5.3.1" + path53])
|
||||
return os.path.expanduser("~/Qt5.%d.1" % qt5Minor)
|
||||
|
||||
@staticmethod
|
||||
def examplesPath(target):
|
||||
qtVersionStr = Qt5Path.__preCheckAndExtractQtVersionStr__(target)
|
||||
qtMinorVersion = __builtin__.int(qtVersionStr[1])
|
||||
if qtMinorVersion == 2:
|
||||
path = "examples"
|
||||
else:
|
||||
path = "Examples/Qt-5.%d" % qtMinorVersion
|
||||
|
||||
return os.path.join(Qt5Path.__createPlatformQtPath__(qtMinorVersion), path)
|
||||
|
||||
@staticmethod
|
||||
def docsPath(target):
|
||||
qtVersionStr = Qt5Path.__preCheckAndExtractQtVersionStr__(target)
|
||||
qtMinorVersion = __builtin__.int(qtVersionStr[1])
|
||||
if qtMinorVersion == 2:
|
||||
path = "doc"
|
||||
else:
|
||||
path = "Docs/Qt-5.%d" % qtMinorVersion
|
||||
|
||||
return os.path.join(Qt5Path.__createPlatformQtPath__(qtMinorVersion), path)
|
||||
|
||||
@@ -316,7 +316,8 @@ def __configureFW__(workingDir, projectName, isReleaseBuild, addToFW=True):
|
||||
# Needs admin privileges on Windows 7
|
||||
# Using the deprecated "netsh firewall" because the newer
|
||||
# "netsh advfirewall" would need admin privileges on Windows Vista, too.
|
||||
return subprocess.call('netsh firewall %s allowedprogram "%s.exe" %s %s' % (mode, path, projectName, enable))
|
||||
return subprocess.call(["netsh", "firewall", mode, "allowedprogram",
|
||||
"%s.exe" % path, projectName, enable])
|
||||
|
||||
# helper to check whether win firewall is running or not
|
||||
# this doesn't check for other firewalls!
|
||||
@@ -333,11 +334,6 @@ def __isWinFirewallRunning__():
|
||||
return __isWinFirewallRunning__.fireWallState
|
||||
return None
|
||||
|
||||
def __fixQuotes__(string):
|
||||
if platform.system() in ('Windows', 'Microsoft'):
|
||||
string = '"' + string + '"'
|
||||
return string
|
||||
|
||||
# this function adds the given executable as an attachable AUT
|
||||
# Bad: executable/port could be empty strings - you should be aware of this
|
||||
def addExecutableAsAttachableAUT(executable, port, host=None):
|
||||
@@ -348,8 +344,8 @@ def addExecutableAsAttachableAUT(executable, port, host=None):
|
||||
squishSrv = __getSquishServer__()
|
||||
if (squishSrv == None):
|
||||
return False
|
||||
result = subprocess.call(__fixQuotes__('"%s" --config addAttachableAUT "%s" %s:%s')
|
||||
% (squishSrv, executable, host, port), shell=True)
|
||||
result = subprocess.call([squishSrv, "--config", "addAttachableAUT",
|
||||
executable, "%s:%s" % (host, port)])
|
||||
if result == 0:
|
||||
test.passes("Added %s as attachable AUT" % executable)
|
||||
else:
|
||||
@@ -366,8 +362,8 @@ def removeExecutableAsAttachableAUT(executable, port, host=None):
|
||||
squishSrv = __getSquishServer__()
|
||||
if (squishSrv == None):
|
||||
return False
|
||||
result = subprocess.call(__fixQuotes__('"%s" --config removeAttachableAUT "%s" %s:%s')
|
||||
% (squishSrv, executable, host, port), shell=True)
|
||||
result = subprocess.call([squishSrv, "--config", "removeAttachableAUT",
|
||||
executable, "%s:%s" % (host, port)])
|
||||
if result == 0:
|
||||
test.passes("Removed %s as attachable AUT" % executable)
|
||||
else:
|
||||
|
||||
@@ -99,9 +99,8 @@ def waitForCleanShutdown(timeOut=10):
|
||||
# following work-around because os.kill() works for win not until python 2.7
|
||||
if appCtxt.pid==-1:
|
||||
break
|
||||
tasks = subprocess.Popen("tasklist /FI \"PID eq %d\"" % appCtxt.pid, shell=True,stdout=subprocess.PIPE)
|
||||
output = tasks.communicate()[0]
|
||||
tasks.stdout.close()
|
||||
output = getOutputFromCmdline(["tasklist", "/FI", "PID eq %d" % appCtxt.pid],
|
||||
acceptedError=1)
|
||||
if (output=="INFO: No tasks are running which match the specified criteria."
|
||||
or output=="" or output.find("ERROR")==0):
|
||||
shutdownDone=True
|
||||
@@ -131,14 +130,11 @@ def waitForCleanShutdown(timeOut=10):
|
||||
|
||||
def checkForStillRunningQmlExecutable(possibleNames):
|
||||
for qmlHelper in possibleNames:
|
||||
tasks = subprocess.Popen("tasklist /FI \"IMAGENAME eq %s\"" % qmlHelper, shell=True,
|
||||
stdout=subprocess.PIPE)
|
||||
output = tasks.communicate()[0]
|
||||
tasks.stdout.close()
|
||||
output = getOutputFromCmdline(["tasklist", "/FI", "IMAGENAME eq %s" % qmlHelper])
|
||||
if "INFO: No tasks are running which match the specified criteria." in output:
|
||||
continue
|
||||
else:
|
||||
if subprocess.call("taskkill /F /FI \"IMAGENAME eq %s\"" % qmlHelper, shell=True) == 0:
|
||||
if subprocess.call(["taskkill", "/F", "/FI", "IMAGENAME eq %s" % qmlHelper]) == 0:
|
||||
print "Killed still running %s" % qmlHelper
|
||||
else:
|
||||
print "%s is still running - failed to kill it" % qmlHelper
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
source("../../shared/qtcreator.py")
|
||||
|
||||
def main():
|
||||
sourceExample = os.path.abspath(Qt5Path.getPaths(Qt5Path.EXAMPLES)[0] + "/declarative/keyinteraction/focus")
|
||||
target = Targets.DESKTOP_521_DEFAULT
|
||||
sourceExample = os.path.join(Qt5Path.examplesPath(target), "declarative/keyinteraction/focus")
|
||||
proFile = "focus.pro"
|
||||
if not neededFilePresent(os.path.join(sourceExample, proFile)):
|
||||
return
|
||||
@@ -34,9 +35,9 @@ def main():
|
||||
if not startedWithoutPluginError():
|
||||
return
|
||||
# add docs to have the correct tool tips
|
||||
addHelpDocumentation([os.path.join(Qt5Path.getPaths(Qt5Path.DOCS)[0], "qtquick.qch")])
|
||||
addHelpDocumentation([os.path.join(Qt5Path.docsPath(target), "qtquick.qch")])
|
||||
templateDir = prepareTemplate(sourceExample, "/../../helper")
|
||||
openQmakeProject(os.path.join(templateDir, proFile), Targets.DESKTOP_521_DEFAULT)
|
||||
openQmakeProject(os.path.join(templateDir, proFile), target)
|
||||
openDocument("focus.QML.qml" + os.sep + "focus.focus\\.qml")
|
||||
testRenameId()
|
||||
testFindUsages()
|
||||
|
||||
Reference in New Issue
Block a user