forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.7'
Change-Id: I0ef2f6ac30fb0c020e0f59d2a014d0dd3bab7d81
This commit is contained in:
@@ -177,3 +177,13 @@ def is_debug(path, filenames):
|
|||||||
def is_not_debug(path, filenames):
|
def is_not_debug(path, filenames):
|
||||||
files = [fn for fn in filenames if os.path.isfile(os.path.join(path, fn))]
|
files = [fn for fn in filenames if os.path.isfile(os.path.join(path, fn))]
|
||||||
return [fn for fn in files if not is_debug_file(os.path.join(path, fn))]
|
return [fn for fn in files if not is_debug_file(os.path.join(path, fn))]
|
||||||
|
|
||||||
|
def codesign(app_path):
|
||||||
|
signing_identity = os.environ.get('SIGNING_IDENTITY')
|
||||||
|
if is_mac_platform() and signing_identity:
|
||||||
|
codesign_call = ['codesign', '--force', '--deep', '-s', signing_identity, '-v']
|
||||||
|
signing_flags = os.environ.get('SIGNING_FLAGS')
|
||||||
|
if signing_flags:
|
||||||
|
codesign_call.extend(signing_flags.split())
|
||||||
|
codesign_call.append(app_path)
|
||||||
|
subprocess.check_call(codesign_call)
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ import tempfile
|
|||||||
import common
|
import common
|
||||||
|
|
||||||
def parse_arguments():
|
def parse_arguments():
|
||||||
parser = argparse.ArgumentParser(description="Create Qt Creator package, filtering out debug information files.")
|
parser = argparse.ArgumentParser(description="Create Qt Creator package, filtering out debug information files.",
|
||||||
|
epilog="To sign the contents before packaging on macOS, set the SIGNING_IDENTITY and optionally the SIGNING_FLAGS environment variables.")
|
||||||
parser.add_argument('--7z', help='path to 7z binary',
|
parser.add_argument('--7z', help='path to 7z binary',
|
||||||
default='7z.exe' if common.is_windows_platform() else '7z',
|
default='7z.exe' if common.is_windows_platform() else '7z',
|
||||||
metavar='<7z_binary>', dest='sevenzip')
|
metavar='<7z_binary>', dest='sevenzip')
|
||||||
@@ -52,6 +53,10 @@ def main():
|
|||||||
try:
|
try:
|
||||||
common.copytree(arguments.source_directory, tempdir, symlinks=True,
|
common.copytree(arguments.source_directory, tempdir, symlinks=True,
|
||||||
ignore=(common.is_not_debug if arguments.debug else common.is_debug))
|
ignore=(common.is_not_debug if arguments.debug else common.is_debug))
|
||||||
|
# on macOS we might have to codesign (again) to account for removed debug info
|
||||||
|
if not arguments.debug:
|
||||||
|
common.codesign(tempdir)
|
||||||
|
# package
|
||||||
zip_source = os.path.join(tempdir, '*') if arguments.exclude_toplevel else tempdir
|
zip_source = os.path.join(tempdir, '*') if arguments.exclude_toplevel else tempdir
|
||||||
subprocess.check_call([arguments.sevenzip, 'a', '-mx9',
|
subprocess.check_call([arguments.sevenzip, 'a', '-mx9',
|
||||||
arguments.target_archive, zip_source])
|
arguments.target_archive, zip_source])
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ import time
|
|||||||
import common
|
import common
|
||||||
|
|
||||||
def parse_arguments():
|
def parse_arguments():
|
||||||
parser = argparse.ArgumentParser(description='Create Qt Creator disk image, filtering out debug information files.')
|
parser = argparse.ArgumentParser(description='Create Qt Creator disk image, filtering out debug information files.',
|
||||||
|
epilog="To sign the contents before packaging on macOS, set the SIGNING_IDENTITY and optionally the SIGNING_FLAGS environment variables.")
|
||||||
parser.add_argument('target_diskimage', help='output .dmg file to create')
|
parser.add_argument('target_diskimage', help='output .dmg file to create')
|
||||||
parser.add_argument('dmg_volumename', help='volume name to use for the disk image')
|
parser.add_argument('dmg_volumename', help='volume name to use for the disk image')
|
||||||
parser.add_argument('source_directory', help='directory with the Qt Creator sources')
|
parser.add_argument('source_directory', help='directory with the Qt Creator sources')
|
||||||
@@ -47,6 +48,9 @@ def main():
|
|||||||
tempdir = os.path.join(tempdir_base, os.path.basename(arguments.binary_directory))
|
tempdir = os.path.join(tempdir_base, os.path.basename(arguments.binary_directory))
|
||||||
try:
|
try:
|
||||||
common.copytree(arguments.binary_directory, tempdir, symlinks=True, ignore=common.is_debug)
|
common.copytree(arguments.binary_directory, tempdir, symlinks=True, ignore=common.is_debug)
|
||||||
|
if common.is_mac_platform():
|
||||||
|
app_path = [app for app in os.listdir(tempdir) if app.endswith('.app')][0]
|
||||||
|
common.codesign(os.path.join(tempdir, app_path))
|
||||||
os.symlink('/Applications', os.path.join(tempdir, 'Applications'))
|
os.symlink('/Applications', os.path.join(tempdir, 'Applications'))
|
||||||
shutil.copy(os.path.join(arguments.source_directory, 'LICENSE.GPL3-EXCEPT'), tempdir)
|
shutil.copy(os.path.join(arguments.source_directory, 'LICENSE.GPL3-EXCEPT'), tempdir)
|
||||||
dmg_cmd = ['hdiutil', 'create', '-srcfolder', tempdir, '-volname', arguments.dmg_volumename,
|
dmg_cmd = ['hdiutil', 'create', '-srcfolder', tempdir, '-volname', arguments.dmg_volumename,
|
||||||
|
|||||||
@@ -116,7 +116,9 @@ static void addSystemHeaderPaths(QList<ProjectExplorer::HeaderPath> &paths,
|
|||||||
const Utils::FileName ndkPath = AndroidConfigurations::currentConfig().ndkLocation();
|
const Utils::FileName ndkPath = AndroidConfigurations::currentConfig().ndkLocation();
|
||||||
|
|
||||||
// Get short version (for example 4.9)
|
// Get short version (for example 4.9)
|
||||||
const QString clangVersion = version.left(version.lastIndexOf('.'));
|
auto versionNumber = QVersionNumber::fromString(version);
|
||||||
|
const QString clangVersion = QString("%1.%2")
|
||||||
|
.arg(versionNumber.majorVersion()).arg(versionNumber.minorVersion());
|
||||||
Utils::FileName stdcppPath = ndkPath;
|
Utils::FileName stdcppPath = ndkPath;
|
||||||
stdcppPath.appendPath("sources/cxx-stl/gnu-libstdc++/" + clangVersion);
|
stdcppPath.appendPath("sources/cxx-stl/gnu-libstdc++/" + clangVersion);
|
||||||
Utils::FileName includePath = stdcppPath;
|
Utils::FileName includePath = stdcppPath;
|
||||||
|
|||||||
@@ -2166,6 +2166,10 @@ void QmlEnginePrivate::handleFrame(const QVariantMap &response)
|
|||||||
watchHandler->insertItem(item);
|
watchHandler->insertItem(item);
|
||||||
evaluate(exp, -1, [this, iname, exp](const QVariantMap &response) {
|
evaluate(exp, -1, [this, iname, exp](const QVariantMap &response) {
|
||||||
handleEvaluateExpression(response, iname, exp);
|
handleEvaluateExpression(response, iname, exp);
|
||||||
|
|
||||||
|
// If there are no scopes, "this" may be the only thing to look up.
|
||||||
|
if (currentFrameScopes.isEmpty())
|
||||||
|
checkForFinishedUpdate();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,10 +108,19 @@ IosRunConfiguration::IosRunConfiguration(Target *target, Core::Id id)
|
|||||||
|
|
||||||
void IosRunConfiguration::deviceChanges()
|
void IosRunConfiguration::deviceChanges()
|
||||||
{
|
{
|
||||||
|
updateDeviceType();
|
||||||
updateDisplayNames();
|
updateDisplayNames();
|
||||||
updateEnabledState();
|
updateEnabledState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IosRunConfiguration::updateDeviceType()
|
||||||
|
{
|
||||||
|
if (DeviceTypeKitInformation::deviceTypeId(target()->kit()) == Constants::IOS_DEVICE_TYPE)
|
||||||
|
m_deviceType = IosDeviceType(IosDeviceType::IosDevice);
|
||||||
|
else if (m_deviceType.type == IosDeviceType::IosDevice)
|
||||||
|
m_deviceType = IosDeviceType(IosDeviceType::SimulatedDevice);
|
||||||
|
}
|
||||||
|
|
||||||
QWidget *IosRunConfiguration::createConfigurationWidget()
|
QWidget *IosRunConfiguration::createConfigurationWidget()
|
||||||
{
|
{
|
||||||
return new IosRunConfigurationWidget(this);
|
return new IosRunConfigurationWidget(this);
|
||||||
@@ -119,10 +128,6 @@ QWidget *IosRunConfiguration::createConfigurationWidget()
|
|||||||
|
|
||||||
void IosRunConfiguration::updateDisplayNames()
|
void IosRunConfiguration::updateDisplayNames()
|
||||||
{
|
{
|
||||||
if (DeviceTypeKitInformation::deviceTypeId(target()->kit()) == Constants::IOS_DEVICE_TYPE)
|
|
||||||
m_deviceType = IosDeviceType(IosDeviceType::IosDevice);
|
|
||||||
else if (m_deviceType.type == IosDeviceType::IosDevice)
|
|
||||||
m_deviceType = IosDeviceType(IosDeviceType::SimulatedDevice);
|
|
||||||
IDevice::ConstPtr dev = DeviceKitInformation::device(target()->kit());
|
IDevice::ConstPtr dev = DeviceKitInformation::device(target()->kit());
|
||||||
const QString devName = dev.isNull() ? IosDevice::name() : dev->displayName();
|
const QString devName = dev.isNull() ? IosDevice::name() : dev->displayName();
|
||||||
setDefaultDisplayName(tr("Run on %1").arg(devName));
|
setDefaultDisplayName(tr("Run on %1").arg(devName));
|
||||||
@@ -235,10 +240,7 @@ bool IosRunConfiguration::fromMap(const QVariantMap &map)
|
|||||||
bool deviceTypeIsInt;
|
bool deviceTypeIsInt;
|
||||||
map.value(deviceTypeKey).toInt(&deviceTypeIsInt);
|
map.value(deviceTypeKey).toInt(&deviceTypeIsInt);
|
||||||
if (deviceTypeIsInt || !m_deviceType.fromMap(map.value(deviceTypeKey).toMap())) {
|
if (deviceTypeIsInt || !m_deviceType.fromMap(map.value(deviceTypeKey).toMap())) {
|
||||||
if (DeviceTypeKitInformation::deviceTypeId(target()->kit()) == Constants::IOS_DEVICE_TYPE)
|
updateDeviceType();
|
||||||
m_deviceType = IosDeviceType(IosDeviceType::IosDevice);
|
|
||||||
else
|
|
||||||
m_deviceType = IosDeviceType(IosDeviceType::SimulatedDevice);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDisplayNames();
|
updateDisplayNames();
|
||||||
@@ -332,6 +334,12 @@ void IosRunConfiguration::setDeviceType(const IosDeviceType &deviceType)
|
|||||||
m_deviceType = deviceType;
|
m_deviceType = deviceType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IosRunConfiguration::doAdditionalSetup(const RunConfigurationCreationInfo &)
|
||||||
|
{
|
||||||
|
updateDeviceType();
|
||||||
|
updateDisplayNames();
|
||||||
|
}
|
||||||
|
|
||||||
IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runConfiguration)
|
IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runConfiguration)
|
||||||
: m_runConfiguration(runConfiguration)
|
: m_runConfiguration(runConfiguration)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public:
|
|||||||
IosDeviceType deviceType() const;
|
IosDeviceType deviceType() const;
|
||||||
void setDeviceType(const IosDeviceType &deviceType);
|
void setDeviceType(const IosDeviceType &deviceType);
|
||||||
|
|
||||||
|
void doAdditionalSetup(const ProjectExplorer::RunConfigurationCreationInfo &) override;
|
||||||
bool fromMap(const QVariantMap &map) override;
|
bool fromMap(const QVariantMap &map) override;
|
||||||
QVariantMap toMap() const override;
|
QVariantMap toMap() const override;
|
||||||
|
|
||||||
@@ -66,6 +67,7 @@ signals:
|
|||||||
private:
|
private:
|
||||||
void deviceChanges();
|
void deviceChanges();
|
||||||
friend class IosRunConfigurationWidget;
|
friend class IosRunConfigurationWidget;
|
||||||
|
void updateDeviceType();
|
||||||
void updateDisplayNames();
|
void updateDisplayNames();
|
||||||
void updateEnabledState() final;
|
void updateEnabledState() final;
|
||||||
bool canRunForNode(const ProjectExplorer::Node *node) const final;
|
bool canRunForNode(const ProjectExplorer::Node *node) const final;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ using namespace ProjectExplorer;
|
|||||||
DeviceCheckBuildStep::DeviceCheckBuildStep(BuildStepList *bsl)
|
DeviceCheckBuildStep::DeviceCheckBuildStep(BuildStepList *bsl)
|
||||||
: BuildStep(bsl, stepId())
|
: BuildStep(bsl, stepId())
|
||||||
{
|
{
|
||||||
setDefaultDisplayName(stepDisplayName());
|
setDefaultDisplayName(displayName());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps)
|
bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps)
|
||||||
@@ -92,7 +92,7 @@ Core::Id DeviceCheckBuildStep::stepId()
|
|||||||
return "ProjectExplorer.DeviceCheckBuildStep";
|
return "ProjectExplorer.DeviceCheckBuildStep";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString DeviceCheckBuildStep::stepDisplayName()
|
QString DeviceCheckBuildStep::displayName()
|
||||||
{
|
{
|
||||||
return tr("Check for a configured device");
|
return tr("Check for a configured device");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public:
|
|||||||
BuildStepConfigWidget *createConfigWidget() override;
|
BuildStepConfigWidget *createConfigWidget() override;
|
||||||
|
|
||||||
static Core::Id stepId();
|
static Core::Id stepId();
|
||||||
static QString stepDisplayName();
|
static QString displayName();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
@@ -207,6 +207,8 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
|
|||||||
config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes);
|
config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes);
|
||||||
if (m_enableQmlDebugging)
|
if (m_enableQmlDebugging)
|
||||||
config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true);
|
config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true);
|
||||||
|
else
|
||||||
|
config.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
|
||||||
if (variableHandling == ExpandVariables) {
|
if (variableHandling == ExpandVariables) {
|
||||||
const Utils::MacroExpander *expander = Utils::globalMacroExpander();
|
const Utils::MacroExpander *expander = Utils::globalMacroExpander();
|
||||||
for (auto it = config.begin(), end = config.end(); it != end; ++it) {
|
for (auto it = config.begin(), end = config.end(); it != end; ++it) {
|
||||||
|
|||||||
@@ -977,10 +977,12 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
|
|||||||
QList<DocumentMessage> warnings;
|
QList<DocumentMessage> warnings;
|
||||||
|
|
||||||
if (Document::MutablePtr doc = createParsedDocument(url, data, &errors)) {
|
if (Document::MutablePtr doc = createParsedDocument(url, data, &errors)) {
|
||||||
|
/* We cannot do this since changes to other documents do have side effects on the current document
|
||||||
if (m_document && (m_document->fingerprint() == doc->fingerprint())) {
|
if (m_document && (m_document->fingerprint() == doc->fingerprint())) {
|
||||||
setActive(false);
|
setActive(false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
snapshot.insert(doc);
|
snapshot.insert(doc);
|
||||||
m_document = doc;
|
m_document = doc;
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ const char QNX_QNX_FEATURE[] = "QtSupport.Wizards.FeatureQNX";
|
|||||||
|
|
||||||
const char QNX_QNX_RUNCONFIGURATION_PREFIX[] = "Qt4ProjectManager.QNX.QNXRunConfiguration.";
|
const char QNX_QNX_RUNCONFIGURATION_PREFIX[] = "Qt4ProjectManager.QNX.QNXRunConfiguration.";
|
||||||
|
|
||||||
|
const char QNX_QNX_DEPLOYCONFIGURATION_ID[] = "Qt4ProjectManager.QNX.QNXDeployConfiguration";
|
||||||
|
|
||||||
const char QNX_QNX_OS_TYPE[] = "QnxOsType";
|
const char QNX_QNX_OS_TYPE[] = "QnxOsType";
|
||||||
|
|
||||||
const char QNX_DEBUG_EXECUTABLE[] = "pdebug";
|
const char QNX_DEBUG_EXECUTABLE[] = "pdebug";
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ NamedWidget *QnxDeployConfiguration::createConfigWidget()
|
|||||||
QnxDeployConfigurationFactory::QnxDeployConfigurationFactory()
|
QnxDeployConfigurationFactory::QnxDeployConfigurationFactory()
|
||||||
{
|
{
|
||||||
registerDeployConfiguration<QnxDeployConfiguration>
|
registerDeployConfiguration<QnxDeployConfiguration>
|
||||||
("Qt4ProjectManager.QNX.QNXDeployConfiguration");
|
(Constants::QNX_QNX_DEPLOYCONFIGURATION_ID);
|
||||||
setDefaultDisplayName(QnxDeployConfiguration::tr("Deploy to QNX Device"));
|
setDefaultDisplayName(QnxDeployConfiguration::tr("Deploy to QNX Device"));
|
||||||
addSupportedTargetDeviceType(QnxDeviceFactory::deviceType());
|
addSupportedTargetDeviceType(QnxDeviceFactory::deviceType());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include <coreplugin/icontext.h>
|
#include <coreplugin/icontext.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
|
|
||||||
|
#include <projectexplorer/devicesupport/devicecheckbuildstep.h>
|
||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/projectexplorer.h>
|
#include <projectexplorer/projectexplorer.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
@@ -55,6 +56,9 @@
|
|||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <projectexplorer/toolchain.h>
|
#include <projectexplorer/toolchain.h>
|
||||||
|
|
||||||
|
#include <remotelinux/genericdirectuploadstep.h>
|
||||||
|
#include <remotelinux/remotelinuxcheckforfreediskspacestep.h>
|
||||||
|
|
||||||
#include <qtsupport/qtkitinformation.h>
|
#include <qtsupport/qtkitinformation.h>
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
@@ -64,6 +68,19 @@ using namespace ProjectExplorer;
|
|||||||
namespace Qnx {
|
namespace Qnx {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
template <class Step>
|
||||||
|
class GenericQnxDeployStepFactory : public BuildStepFactory
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GenericQnxDeployStepFactory()
|
||||||
|
{
|
||||||
|
registerStep<Step>(Step::stepId());
|
||||||
|
setDisplayName(Step::displayName());
|
||||||
|
setSupportedConfiguration(Constants::QNX_QNX_DEPLOYCONFIGURATION_ID);
|
||||||
|
setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class QnxPluginPrivate
|
class QnxPluginPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -76,6 +93,9 @@ public:
|
|||||||
QnxQtVersionFactory qtVersionFactory;
|
QnxQtVersionFactory qtVersionFactory;
|
||||||
QnxDeviceFactory deviceFactory;
|
QnxDeviceFactory deviceFactory;
|
||||||
QnxDeployConfigurationFactory deployConfigFactory;
|
QnxDeployConfigurationFactory deployConfigFactory;
|
||||||
|
GenericQnxDeployStepFactory<RemoteLinux::GenericDirectUploadStep> directUploadDeployFactory;
|
||||||
|
GenericQnxDeployStepFactory<RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep> checkForFreeDiskSpaceDeployFactory;
|
||||||
|
GenericQnxDeployStepFactory<DeviceCheckBuildStep> checkBuildDeployFactory;
|
||||||
QnxRunConfigurationFactory runConfigFactory;
|
QnxRunConfigurationFactory runConfigFactory;
|
||||||
QnxSettingsPage settingsPage;
|
QnxSettingsPage settingsPage;
|
||||||
QnxToolChainFactory toolChainFactory;
|
QnxToolChainFactory toolChainFactory;
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public:
|
|||||||
: qmlError(QLatin1String("(" QML_URL_REGEXP // url
|
: qmlError(QLatin1String("(" QML_URL_REGEXP // url
|
||||||
":\\d+" // colon, line
|
":\\d+" // colon, line
|
||||||
"(?::\\d+)?)" // colon, column (optional)
|
"(?::\\d+)?)" // colon, column (optional)
|
||||||
"[: \t]")) // colon, space or tab
|
"[: \t)]")) // colon, space, tab or brace
|
||||||
, qtError(QLatin1String("Object::.*in (.*:\\d+)"))
|
, qtError(QLatin1String("Object::.*in (.*:\\d+)"))
|
||||||
, qtAssert(QLatin1String("ASSERT: .* in file (.+, line \\d+)"))
|
, qtAssert(QLatin1String("ASSERT: .* in file (.+, line \\d+)"))
|
||||||
, qtAssertX(QLatin1String("ASSERT failure in .*: \".*\", file (.+, line \\d+)"))
|
, qtAssertX(QLatin1String("ASSERT failure in .*: \".*\", file (.+, line \\d+)"))
|
||||||
@@ -353,6 +353,11 @@ void QtSupportPlugin::testQtOutputFormatter_data()
|
|||||||
<< 0 << 18 << QString::fromLatin1("qrc:///main.qml:20")
|
<< 0 << 18 << QString::fromLatin1("qrc:///main.qml:20")
|
||||||
<< QString::fromLatin1("/main.qml") << 20 << -1;
|
<< QString::fromLatin1("/main.qml") << 20 << -1;
|
||||||
|
|
||||||
|
QTest::newRow("onClicked (qrc:/main.qml:20)")
|
||||||
|
<< QString::fromLatin1("onClicked (qrc:/main.qml:20)")
|
||||||
|
<< 11 << 27 << QString::fromLatin1("qrc:/main.qml:20")
|
||||||
|
<< QString::fromLatin1("/main.qml") << 20 << -1;
|
||||||
|
|
||||||
QTest::newRow("file:///main.qml:20")
|
QTest::newRow("file:///main.qml:20")
|
||||||
<< QString::fromLatin1("file:///main.qml:20 Unexpected token `identifier'")
|
<< QString::fromLatin1("file:///main.qml:20 Unexpected token `identifier'")
|
||||||
<< 0 << 19 << QString::fromLatin1("file:///main.qml:20")
|
<< 0 << 19 << QString::fromLatin1("file:///main.qml:20")
|
||||||
|
|||||||
@@ -217,6 +217,7 @@ public:
|
|||||||
QAction *m_dumpAction = nullptr;
|
QAction *m_dumpAction = nullptr;
|
||||||
QAction *m_resetAction = nullptr;
|
QAction *m_resetAction = nullptr;
|
||||||
QAction *m_pauseAction = nullptr;
|
QAction *m_pauseAction = nullptr;
|
||||||
|
QAction *m_discardAction = nullptr;
|
||||||
|
|
||||||
QString m_toggleCollectFunction;
|
QString m_toggleCollectFunction;
|
||||||
bool m_toolBusy = false;
|
bool m_toolBusy = false;
|
||||||
@@ -392,6 +393,15 @@ CallgrindTool::CallgrindTool()
|
|||||||
action->setToolTip(tr("Pause event logging. No events are counted which will speed up program execution during profiling."));
|
action->setToolTip(tr("Pause event logging. No events are counted which will speed up program execution during profiling."));
|
||||||
connect(action, &QAction::toggled, this, &CallgrindTool::pauseToggled);
|
connect(action, &QAction::toggled, this, &CallgrindTool::pauseToggled);
|
||||||
|
|
||||||
|
// discard data action
|
||||||
|
m_discardAction = action = new QAction(this);
|
||||||
|
action->setIcon(Utils::Icons::CLEAN_TOOLBAR.icon());
|
||||||
|
action->setToolTip(tr("Discard Data"));
|
||||||
|
connect(action, &QAction::triggered, this, [this](bool) {
|
||||||
|
clearTextMarks();
|
||||||
|
doClear(true);
|
||||||
|
});
|
||||||
|
|
||||||
// navigation
|
// navigation
|
||||||
// go back
|
// go back
|
||||||
m_goBack = action = new QAction(this);
|
m_goBack = action = new QAction(this);
|
||||||
@@ -421,6 +431,7 @@ CallgrindTool::CallgrindTool()
|
|||||||
toolbar.addAction(m_dumpAction);
|
toolbar.addAction(m_dumpAction);
|
||||||
toolbar.addAction(m_resetAction);
|
toolbar.addAction(m_resetAction);
|
||||||
toolbar.addAction(m_pauseAction);
|
toolbar.addAction(m_pauseAction);
|
||||||
|
toolbar.addAction(m_discardAction);
|
||||||
toolbar.addAction(m_goBack);
|
toolbar.addAction(m_goBack);
|
||||||
toolbar.addAction(m_goNext);
|
toolbar.addAction(m_goNext);
|
||||||
toolbar.addWidget(new Utils::StyledSeparator);
|
toolbar.addWidget(new Utils::StyledSeparator);
|
||||||
|
|||||||
Reference in New Issue
Block a user