forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.1'
Change-Id: I35ef0d667c759c959edce91569f05ebc7a8ff4d8
This commit is contained in:
@@ -8,7 +8,7 @@ The standalone binary packages support the following platforms:
|
|||||||
|
|
||||||
Windows 7 or later
|
Windows 7 or later
|
||||||
(K)Ubuntu Linux 14.04 (64-bit) or later
|
(K)Ubuntu Linux 14.04 (64-bit) or later
|
||||||
Mac OS X 10.7 or later
|
macOS 10.8 or later
|
||||||
|
|
||||||
Building the sources requires Qt 5.5.0 or later.
|
Building the sources requires Qt 5.5.0 or later.
|
||||||
|
|
||||||
|
|||||||
31
dist/changes-4.0.3.md
vendored
Normal file
31
dist/changes-4.0.3.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
Qt Creator version 4.0.3 contains bug fixes.
|
||||||
|
|
||||||
|
The most important changes are listed in this document. For a complete
|
||||||
|
list of changes, see the Git log for the Qt Creator sources that
|
||||||
|
you can check out from the public Git repository. For example:
|
||||||
|
|
||||||
|
git clone git://code.qt.io/qt-creator/qt-creator.git
|
||||||
|
git log --cherry-pick --pretty=oneline v4.0.2..v4.0.3
|
||||||
|
|
||||||
|
All Projects
|
||||||
|
|
||||||
|
* Fixed disabled run button on FreeBSD and macOS 10.8
|
||||||
|
(QTCREATORBUG-16462, QTCREATORBUG-16421)
|
||||||
|
|
||||||
|
QMake Projects
|
||||||
|
|
||||||
|
* Fixed ABI detection on NetBSD and OpenBSD
|
||||||
|
|
||||||
|
CMake Projects
|
||||||
|
|
||||||
|
* Fixed issues with opening projects from symbolic links
|
||||||
|
|
||||||
|
C++ Support
|
||||||
|
|
||||||
|
* Clang code model
|
||||||
|
* Fixed dot-to-arrow conversion being incorrectly done for
|
||||||
|
floating point literals and file suffixes (QTCREATORBUG-16188)
|
||||||
|
|
||||||
|
Test Integration
|
||||||
|
|
||||||
|
* Fixed crash when editing code while parsing for tests
|
||||||
@@ -27,7 +27,10 @@ Module {
|
|||||||
property stringList llvmLibs: clangProbe.llvmLibs
|
property stringList llvmLibs: clangProbe.llvmLibs
|
||||||
|
|
||||||
validate: {
|
validate: {
|
||||||
if (!clangProbe.found)
|
if (!clangProbe.found) {
|
||||||
|
console.warn("Set LLVM_INSTALL_DIR to build the Clang Code Model."
|
||||||
|
+ " For details, see doc/src/editors/creator-clang-codemodel.qdoc.");
|
||||||
throw "No usable libclang found";
|
throw "No usable libclang found";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Rectangle {
|
|||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: text
|
id: text
|
||||||
font.pixelSize: 11
|
font.pixelSize: 9
|
||||||
elide: Text.ElideMiddle
|
elide: Text.ElideMiddle
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
anchors.top: itemIcon.bottom
|
anchors.top: itemIcon.bottom
|
||||||
|
|||||||
@@ -67,12 +67,12 @@ ScrollView {
|
|||||||
property color backgroundColor: "#4f4f4f"
|
property color backgroundColor: "#4f4f4f"
|
||||||
property color lighterBackgroundColor: "#5f5f5f"
|
property color lighterBackgroundColor: "#5f5f5f"
|
||||||
|
|
||||||
property int textWidth: 55
|
property int textWidth: 58
|
||||||
property int textHeight: 26
|
property int textHeight: 22
|
||||||
|
|
||||||
property int cellHorizontalMargin: 5
|
property int cellHorizontalMargin: 1
|
||||||
property int cellVerticalSpacing: 3
|
property int cellVerticalSpacing: 2
|
||||||
property int cellVerticalMargin: 7
|
property int cellVerticalMargin: 4
|
||||||
|
|
||||||
// the following depend on the actual shape of the item delegate
|
// the following depend on the actual shape of the item delegate
|
||||||
property int cellWidth: textWidth + 2 * cellHorizontalMargin
|
property int cellWidth: textWidth + 2 * cellHorizontalMargin
|
||||||
@@ -117,13 +117,6 @@ ScrollView {
|
|||||||
height: styleConstants.cellHeight
|
height: styleConstants.cellHeight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
move: Transition {
|
|
||||||
NumberAnimation {
|
|
||||||
properties: "x, y";
|
|
||||||
easing.type: Easing.OutQuart
|
|
||||||
duration: 80
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ RowLayout {
|
|||||||
|
|
||||||
signal targetChanged
|
signal targetChanged
|
||||||
|
|
||||||
property bool verticalAnchor: true
|
property bool verticalAnchor
|
||||||
|
|
||||||
property bool invertRelativeTargets: false
|
property bool invertRelativeTargets: false
|
||||||
|
|
||||||
@@ -56,6 +56,8 @@ RowLayout {
|
|||||||
signal centerButtonClicked
|
signal centerButtonClicked
|
||||||
signal oppositeEdgeButtonClicked
|
signal oppositeEdgeButtonClicked
|
||||||
|
|
||||||
|
property alias buttonRow: buttonRow
|
||||||
|
|
||||||
|
|
||||||
IconLabel {
|
IconLabel {
|
||||||
id: icon
|
id: icon
|
||||||
@@ -71,7 +73,7 @@ RowLayout {
|
|||||||
text: qsTr("Target")
|
text: qsTr("Target")
|
||||||
color: "#eee"
|
color: "#eee"
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
Layout.minimumWidth: Math.min(60, preferredWidth + 10)
|
Layout.minimumWidth: Math.min(60, Layout.preferredWidth + 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
TargetComboBox {
|
TargetComboBox {
|
||||||
@@ -85,7 +87,7 @@ RowLayout {
|
|||||||
text: "Margin"
|
text: "Margin"
|
||||||
color: "#eee"
|
color: "#eee"
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
Layout.minimumWidth: Math.min(60, preferredWidth + 10)
|
Layout.minimumWidth: Math.min(60, Layout.preferredWidth + 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
enabled: anchorBackend.topAnchored;
|
visible: anchorBackend.topAnchored;
|
||||||
iconSource: "../HelperWidgets/images/anchor-top.png"
|
iconSource: "../HelperWidgets/images/anchor-top.png"
|
||||||
anchorMargin: backendValues.anchors_topMargin
|
anchorMargin: backendValues.anchors_topMargin
|
||||||
targetName: anchorBackend.topTarget
|
targetName: anchorBackend.topTarget
|
||||||
@@ -72,7 +72,7 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
enabled: anchorBackend.bottomAnchored;
|
visible: anchorBackend.bottomAnchored;
|
||||||
iconSource: "../HelperWidgets/images/anchor-bottom.png"
|
iconSource: "../HelperWidgets/images/anchor-bottom.png"
|
||||||
anchorMargin: backendValues.anchors_bottomMargin
|
anchorMargin: backendValues.anchors_bottomMargin
|
||||||
targetName: anchorBackend.bottomTarget
|
targetName: anchorBackend.bottomTarget
|
||||||
@@ -96,7 +96,7 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
enabled: anchorBackend.leftAnchored;
|
visible: anchorBackend.leftAnchored;
|
||||||
iconSource: "../HelperWidgets/images/anchor-left.png"
|
iconSource: "../HelperWidgets/images/anchor-left.png"
|
||||||
anchorMargin: backendValues.anchors_leftMargin
|
anchorMargin: backendValues.anchors_leftMargin
|
||||||
targetName: anchorBackend.leftTarget
|
targetName: anchorBackend.leftTarget
|
||||||
@@ -119,7 +119,7 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
enabled: anchorBackend.rightAnchored;
|
visible: anchorBackend.rightAnchored;
|
||||||
iconSource: "../HelperWidgets/images/anchor-right.png"
|
iconSource: "../HelperWidgets/images/anchor-right.png"
|
||||||
anchorMargin: backendValues.anchors_rightMargin
|
anchorMargin: backendValues.anchors_rightMargin
|
||||||
targetName: anchorBackend.rightTarget
|
targetName: anchorBackend.rightTarget
|
||||||
@@ -144,26 +144,28 @@ Section {
|
|||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
showAlternativeTargets: false
|
showAlternativeTargets: false
|
||||||
enabled: anchorBackend.horizontalCentered;
|
visible: anchorBackend.horizontalCentered;
|
||||||
iconSource: "../HelperWidgets/images/anchor-horizontal.png"
|
iconSource: "../HelperWidgets/images/anchor-horizontal.png"
|
||||||
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
||||||
targetName: anchorBackend.horizontalTarget
|
targetName: anchorBackend.horizontalTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
anchorBackend.horizontalTarget = currentText
|
anchorBackend.horizontalTarget = currentText
|
||||||
}
|
}
|
||||||
verticalAnchor: true
|
verticalAnchor: false
|
||||||
|
buttonRow.visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
showAlternativeTargets: false
|
showAlternativeTargets: false
|
||||||
enabled: anchorBackend.verticalCentered;
|
visible: anchorBackend.verticalCentered;
|
||||||
iconSource: "../HelperWidgets/images/anchor-vertical.png"
|
iconSource: "../HelperWidgets/images/anchor-vertical.png"
|
||||||
anchorMargin: backendValues.anchors_verticalCenterOffset
|
anchorMargin: backendValues.anchors_verticalCenterOffset
|
||||||
targetName: anchorBackend.verticalTarget
|
targetName: anchorBackend.verticalTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
anchorBackend.verticalTarget = currentText
|
anchorBackend.verticalTarget = currentText
|
||||||
}
|
}
|
||||||
verticalAnchor: false
|
verticalAnchor: true
|
||||||
|
buttonRow.visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,12 +105,14 @@ Rectangle {
|
|||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: stateImageArea
|
id: stateImageArea
|
||||||
anchors.topMargin: 1
|
anchors.topMargin: 4
|
||||||
anchors.left: stateNameField.left
|
anchors.left: stateNameField.left
|
||||||
anchors.top: stateNameField.bottom
|
anchors.top: stateNameField.bottom
|
||||||
|
|
||||||
height: delegateStateImageSize + 2
|
height: delegateStateImageSize + 2
|
||||||
width: delegateStateImageSize + 2
|
width: delegateStateImageSize + 2
|
||||||
|
|
||||||
|
visible: expanded
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.margins: -1
|
anchors.margins: -1
|
||||||
anchors.fill: stateImage
|
anchors.fill: stateImage
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import "../common"
|
|||||||
FocusScope {
|
FocusScope {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
height: expanded ? 136 : 32
|
height: expanded ? 136 : 30
|
||||||
signal createNewState
|
signal createNewState
|
||||||
signal deleteState(int internalNodeId)
|
signal deleteState(int internalNodeId)
|
||||||
signal duplicateCurrentState
|
signal duplicateCurrentState
|
||||||
@@ -39,7 +39,7 @@ FocusScope {
|
|||||||
property int stateImageSize: 100
|
property int stateImageSize: 100
|
||||||
property int delegateWidth: stateImageSize + 10
|
property int delegateWidth: stateImageSize + 10
|
||||||
property int padding: 2
|
property int padding: 2
|
||||||
property int delegateHeight: root.height - padding * 2
|
property int delegateHeight: root.height - padding * 2 + 1
|
||||||
property int innerSpacing: -1
|
property int innerSpacing: -1
|
||||||
property int currentStateInternalId : 0
|
property int currentStateInternalId : 0
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
import QtQuick 1.1
|
|
||||||
|
|
||||||
Item {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 1,
|
|
||||||
"supportedProjectTypes": [ ],
|
|
||||||
"id": "Q.Qml.1",
|
|
||||||
"category": "R.Qt",
|
|
||||||
"trDescription": "Creates a QML file with boilerplate code, starting with \"import QtQuick 1.1\".",
|
|
||||||
"trDisplayName": "QML File (Qt Quick 1)",
|
|
||||||
"trDisplayCategory": "Qt",
|
|
||||||
"icon": "../../global/genericfilewizard.png",
|
|
||||||
"enabled": "%{JS: [ %{Plugins} ].indexOf('QmlJSEditor') >= 0}",
|
|
||||||
|
|
||||||
"pages" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"trDisplayName": "Location",
|
|
||||||
"trShortTitle": "Location",
|
|
||||||
"typeId": "File"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"trDisplayName": "Project Management",
|
|
||||||
"trShortTitle": "Summary",
|
|
||||||
"typeId": "Summary"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"generators" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"typeId": "File",
|
|
||||||
"data":
|
|
||||||
{
|
|
||||||
"source": "file.qml.tpl",
|
|
||||||
"target": "%{JS: Util.fileName('%{TargetPath}', '%{JS: Util.preferredSuffix('text/x-qml')}')}",
|
|
||||||
"openInEditor": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -4,8 +4,6 @@ QtcProduct {
|
|||||||
Depends { name: "bundle" }
|
Depends { name: "bundle" }
|
||||||
Depends { name: "ib"; condition: qbs.targetOS.contains("osx") }
|
Depends { name: "ib"; condition: qbs.targetOS.contains("osx") }
|
||||||
|
|
||||||
bundle.infoPlistFile: "Info.plist" // TODO: Remove for qbs 1.6
|
|
||||||
|
|
||||||
Properties {
|
Properties {
|
||||||
condition: qbs.targetOS.contains("osx")
|
condition: qbs.targetOS.contains("osx")
|
||||||
ib.appIconName: "qtcreator"
|
ib.appIconName: "qtcreator"
|
||||||
@@ -38,7 +36,7 @@ QtcProduct {
|
|||||||
Depends { name: "ExtensionSystem" }
|
Depends { name: "ExtensionSystem" }
|
||||||
|
|
||||||
files: [
|
files: [
|
||||||
// TODO: Uncomment for qbs 1.6 "Info.plist",
|
"Info.plist",
|
||||||
"main.cpp",
|
"main.cpp",
|
||||||
"qtcreator.xcassets",
|
"qtcreator.xcassets",
|
||||||
"qtcreator.rc",
|
"qtcreator.rc",
|
||||||
|
|||||||
@@ -4,12 +4,16 @@ import qbs.TextFile
|
|||||||
Product {
|
Product {
|
||||||
name: "app_version_header"
|
name: "app_version_header"
|
||||||
type: "hpp"
|
type: "hpp"
|
||||||
files: "app_version.h.in"
|
|
||||||
|
Group {
|
||||||
|
files: ["app_version.h.in"]
|
||||||
|
fileTags: ["hpp.in"]
|
||||||
|
}
|
||||||
|
|
||||||
Depends { name: "qtc" }
|
Depends { name: "qtc" }
|
||||||
|
|
||||||
Transformer {
|
Rule {
|
||||||
inputs: ["app_version.h.in"]
|
inputs: ["hpp.in"]
|
||||||
Artifact {
|
Artifact {
|
||||||
filePath: "app/app_version.h"
|
filePath: "app/app_version.h"
|
||||||
fileTags: "hpp"
|
fileTags: "hpp"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
#include "qmt/model/mdiagram.h"
|
#include "qmt/model/mdiagram.h"
|
||||||
#include "qmt/model/mrelation.h"
|
#include "qmt/model/mrelation.h"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
class DiagramController::Clone
|
class DiagramController::Clone
|
||||||
@@ -166,6 +168,7 @@ private:
|
|||||||
emit diagramController->endUpdateElement(row, diagram);
|
emit diagramController->endUpdateElement(row, diagram);
|
||||||
}
|
}
|
||||||
diagramController->diagramModified(diagram);
|
diagramController->diagramModified(diagram);
|
||||||
|
diagramController->verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
DiagramController::UpdateAction m_updateAction = DiagramController::UpdateMajor;
|
DiagramController::UpdateAction m_updateAction = DiagramController::UpdateMajor;
|
||||||
@@ -208,6 +211,7 @@ protected:
|
|||||||
}
|
}
|
||||||
if (removed)
|
if (removed)
|
||||||
diagramController->diagramModified(diagram);
|
diagramController->diagramModified(diagram);
|
||||||
|
diagramController->verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void insert()
|
void insert()
|
||||||
@@ -227,6 +231,7 @@ protected:
|
|||||||
}
|
}
|
||||||
if (inserted)
|
if (inserted)
|
||||||
diagramController->diagramModified(diagram);
|
diagramController->diagramModified(diagram);
|
||||||
|
diagramController->verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<DiagramController::Clone> m_clonedElements;
|
QList<DiagramController::Clone> m_clonedElements;
|
||||||
@@ -398,6 +403,7 @@ void DiagramController::addElement(DElement *element, MDiagram *diagram)
|
|||||||
diagram->addDiagramElement(element);
|
diagram->addDiagramElement(element);
|
||||||
emit endInsertElement(row, diagram);
|
emit endInsertElement(row, diagram);
|
||||||
diagramModified(diagram);
|
diagramModified(diagram);
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::removeElement(DElement *element, MDiagram *diagram)
|
void DiagramController::removeElement(DElement *element, MDiagram *diagram)
|
||||||
@@ -413,6 +419,7 @@ void DiagramController::removeElement(DElement *element, MDiagram *diagram)
|
|||||||
diagram->removeDiagramElement(element);
|
diagram->removeDiagramElement(element);
|
||||||
emit endRemoveElement(row, diagram);
|
emit endRemoveElement(row, diagram);
|
||||||
diagramModified(diagram);
|
diagramModified(diagram);
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
DElement *DiagramController::findElement(const Uid &key, const MDiagram *diagram) const
|
DElement *DiagramController::findElement(const Uid &key, const MDiagram *diagram) const
|
||||||
@@ -452,6 +459,7 @@ void DiagramController::finishUpdateElement(DElement *element, MDiagram *diagram
|
|||||||
emit endUpdateElement(diagram->diagramElements().indexOf(element), diagram);
|
emit endUpdateElement(diagram->diagramElements().indexOf(element), diagram);
|
||||||
if (!cancelled)
|
if (!cancelled)
|
||||||
diagramModified(diagram);
|
diagramModified(diagram);
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::breakUndoChain()
|
void DiagramController::breakUndoChain()
|
||||||
@@ -540,6 +548,7 @@ void DiagramController::pasteElements(const DContainer &diagramContainer, MDiagr
|
|||||||
diagramModified(diagram);
|
diagramModified(diagram);
|
||||||
if (m_undoController)
|
if (m_undoController)
|
||||||
m_undoController->endMergeSequence();
|
m_undoController->endMergeSequence();
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::deleteElements(const DSelection &diagramSelection, MDiagram *diagram)
|
void DiagramController::deleteElements(const DSelection &diagramSelection, MDiagram *diagram)
|
||||||
@@ -570,6 +579,7 @@ void DiagramController::onEndResetModel()
|
|||||||
updateElementFromModel(element, diagram, false);
|
updateElementFromModel(element, diagram, false);
|
||||||
}
|
}
|
||||||
emit endResetAllDiagrams();
|
emit endResetAllDiagrams();
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::onBeginUpdateObject(int row, const MObject *parent)
|
void DiagramController::onBeginUpdateObject(int row, const MObject *parent)
|
||||||
@@ -601,6 +611,7 @@ void DiagramController::onEndUpdateObject(int row, const MObject *parent)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::onBeginInsertObject(int row, const MObject *owner)
|
void DiagramController::onBeginInsertObject(int row, const MObject *owner)
|
||||||
@@ -618,6 +629,7 @@ void DiagramController::onEndInsertObject(int row, const MObject *owner)
|
|||||||
QMT_CHECK(!m_allDiagrams.contains(modelDiagram));
|
QMT_CHECK(!m_allDiagrams.contains(modelDiagram));
|
||||||
m_allDiagrams.append(modelDiagram);
|
m_allDiagrams.append(modelDiagram);
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::onBeginRemoveObject(int row, const MObject *parent)
|
void DiagramController::onBeginRemoveObject(int row, const MObject *parent)
|
||||||
@@ -654,6 +666,7 @@ void DiagramController::onEndMoveObject(int row, const MObject *owner)
|
|||||||
updateElementFromModel(diagramElement, modelDiagram, false);
|
updateElementFromModel(diagramElement, modelDiagram, false);
|
||||||
emit endResetDiagram(modelDiagram);
|
emit endResetDiagram(modelDiagram);
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::onBeginUpdateRelation(int row, const MObject *owner)
|
void DiagramController::onBeginUpdateRelation(int row, const MObject *owner)
|
||||||
@@ -673,6 +686,7 @@ void DiagramController::onEndUpdateRelation(int row, const MObject *owner)
|
|||||||
updateElementFromModel(relation, diagram, true);
|
updateElementFromModel(relation, diagram, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::onBeginRemoveRelation(int row, const MObject *owner)
|
void DiagramController::onBeginRemoveRelation(int row, const MObject *owner)
|
||||||
@@ -733,6 +747,7 @@ void DiagramController::deleteElements(const DSelection &diagramSelection, MDiag
|
|||||||
diagramModified(diagram);
|
diagramModified(diagram);
|
||||||
if (m_undoController)
|
if (m_undoController)
|
||||||
m_undoController->endMergeSequence();
|
m_undoController->endMergeSequence();
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
DElement *DiagramController::findElementOnAnyDiagram(const Uid &uid)
|
DElement *DiagramController::findElementOnAnyDiagram(const Uid &uid)
|
||||||
@@ -772,6 +787,7 @@ void DiagramController::removeObjects(MObject *modelObject)
|
|||||||
removeElement(element, diagram);
|
removeElement(element, diagram);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::removeRelations(MRelation *modelRelation)
|
void DiagramController::removeRelations(MRelation *modelRelation)
|
||||||
@@ -781,6 +797,7 @@ void DiagramController::removeRelations(MRelation *modelRelation)
|
|||||||
if (diagramElement)
|
if (diagramElement)
|
||||||
removeElement(diagramElement, diagram);
|
removeElement(diagramElement, diagram);
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::removeRelations(DElement *element, MDiagram *diagram)
|
void DiagramController::removeRelations(DElement *element, MDiagram *diagram)
|
||||||
@@ -795,6 +812,7 @@ void DiagramController::removeRelations(DElement *element, MDiagram *diagram)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -847,6 +865,7 @@ void DiagramController::updateElementFromModel(DElement *element, const MDiagram
|
|||||||
} else {
|
} else {
|
||||||
melement->accept(&visitor);
|
melement->accept(&visitor);
|
||||||
}
|
}
|
||||||
|
verifyDiagramsIntegrity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramController::diagramModified(MDiagram *diagram)
|
void DiagramController::diagramModified(MDiagram *diagram)
|
||||||
@@ -897,4 +916,51 @@ void DiagramController::updateAllDiagramsList()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiagramController::verifyDiagramsIntegrity()
|
||||||
|
{
|
||||||
|
static const bool debugDiagramsIntegrity = false;
|
||||||
|
if (debugDiagramsIntegrity) {
|
||||||
|
QList<MDiagram *> allDiagrams;
|
||||||
|
if (m_modelController && m_modelController->rootPackage()) {
|
||||||
|
FindDiagramsVisitor visitor(&allDiagrams);
|
||||||
|
m_modelController->rootPackage()->accept(&visitor);
|
||||||
|
}
|
||||||
|
QMT_CHECK(allDiagrams == m_allDiagrams);
|
||||||
|
foreach (const MDiagram *diagram, allDiagrams)
|
||||||
|
verifyDiagramIntegrity(diagram);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramController::verifyDiagramIntegrity(const MDiagram *diagram)
|
||||||
|
{
|
||||||
|
QHash<Uid, const DElement *> delementsMap;
|
||||||
|
foreach (const DElement *delement, diagram->diagramElements()) {
|
||||||
|
delementsMap.insert(delement->uid(), delement);
|
||||||
|
if (dynamic_cast<const DObject *>(delement) != 0 || dynamic_cast<const DRelation *>(delement) != 0) {
|
||||||
|
QMT_CHECK(delement->modelUid().isValid());
|
||||||
|
QMT_CHECK(m_modelController->findElement(delement->modelUid()) != 0);
|
||||||
|
if (!delement->modelUid().isValid() || m_modelController->findElement(delement->modelUid()) == 0) {
|
||||||
|
if (const DObject *dobject = dynamic_cast<const DObject *>(delement))
|
||||||
|
qWarning() << "Diagram" << diagram->name() << diagram->uid().toString() << ": object" << dobject->name() << dobject->uid().toString() << "has invalid reference to model element.";
|
||||||
|
else if (const DRelation *drelation = dynamic_cast<const DRelation *>(delement))
|
||||||
|
qWarning() << "Diagram" << diagram->name() << diagram->uid().toString() << ": relation" << drelation->uid().toString() << "has invalid refeference to model element.";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
QMT_CHECK(!delement->modelUid().isValid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (const DElement *delement, diagram->diagramElements()) {
|
||||||
|
if (const DRelation *drelation = dynamic_cast<const DRelation *>(delement)) {
|
||||||
|
QMT_CHECK(drelation->endAUid().isValid());
|
||||||
|
QMT_CHECK(delementsMap.contains(drelation->endAUid()));
|
||||||
|
if (!drelation->endAUid().isValid() || !delementsMap.contains(drelation->endAUid()))
|
||||||
|
qWarning() << "Diagram" << diagram->name() << diagram->uid().toString() << ": relation" << drelation->uid().toString() << "has invalid end A.";
|
||||||
|
QMT_CHECK(drelation->endBUid().isValid());
|
||||||
|
QMT_CHECK(delementsMap.contains(drelation->endBUid()));
|
||||||
|
if (!drelation->endBUid().isValid() || !delementsMap.contains(drelation->endBUid()))
|
||||||
|
qWarning() << "Diagram" << diagram->name() << diagram->uid().toString() << ": relation" << drelation->uid().toString() << "has invalid end B.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace qmt
|
} // namespace qmt
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ public:
|
|||||||
void setModelController(ModelController *modelController);
|
void setModelController(ModelController *modelController);
|
||||||
UndoController *undoController() const { return m_undoController; }
|
UndoController *undoController() const { return m_undoController; }
|
||||||
void setUndoController(UndoController *undoController);
|
void setUndoController(UndoController *undoController);
|
||||||
|
QList<MDiagram *> allDiagrams() const { return m_allDiagrams; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MDiagram *findDiagram(const Uid &diagramKey) const;
|
MDiagram *findDiagram(const Uid &diagramKey) const;
|
||||||
@@ -163,6 +164,9 @@ private:
|
|||||||
|
|
||||||
void updateAllDiagramsList();
|
void updateAllDiagramsList();
|
||||||
|
|
||||||
|
void verifyDiagramsIntegrity();
|
||||||
|
void verifyDiagramIntegrity(const MDiagram *diagram);
|
||||||
|
|
||||||
ModelController *m_modelController;
|
ModelController *m_modelController;
|
||||||
UndoController *m_undoController;
|
UndoController *m_undoController;
|
||||||
QList<MDiagram *> m_allDiagrams;
|
QList<MDiagram *> m_allDiagrams;
|
||||||
|
|||||||
@@ -814,7 +814,7 @@ void DiagramSceneModel::onSelectionChanged()
|
|||||||
QMT_CHECK(endBObject);
|
QMT_CHECK(endBObject);
|
||||||
QGraphicsItem *endBItem = m_elementToItemMap.value(endBObject);
|
QGraphicsItem *endBItem = m_elementToItemMap.value(endBObject);
|
||||||
QMT_CHECK(endBItem);
|
QMT_CHECK(endBItem);
|
||||||
if (!relationItem->isSelected()
|
if (relationItem && !relationItem->isSelected()
|
||||||
&& (m_selectedItems.contains(endAItem) || newSecondarySelectedItems.contains(endAItem))
|
&& (m_selectedItems.contains(endAItem) || newSecondarySelectedItems.contains(endAItem))
|
||||||
&& (m_selectedItems.contains(endBItem) || newSecondarySelectedItems.contains(endBItem))) {
|
&& (m_selectedItems.contains(endBItem) || newSecondarySelectedItems.contains(endBItem))) {
|
||||||
QMT_CHECK(!m_selectedItems.contains(relationItem));
|
QMT_CHECK(!m_selectedItems.contains(relationItem));
|
||||||
|
|||||||
@@ -68,8 +68,10 @@ public:
|
|||||||
{
|
{
|
||||||
DObject *baseObject = m_diagramSceneModel->diagramController()->findElement<DObject>(inheritance->base(), m_diagramSceneModel->diagram());
|
DObject *baseObject = m_diagramSceneModel->diagramController()->findElement<DObject>(inheritance->base(), m_diagramSceneModel->diagram());
|
||||||
QMT_CHECK(baseObject);
|
QMT_CHECK(baseObject);
|
||||||
bool baseIsInterface = baseObject->stereotypes().contains(QStringLiteral("interface"));
|
bool baseIsInterface = false;
|
||||||
bool lollipopDisplay = false;
|
bool lollipopDisplay = false;
|
||||||
|
if (baseObject) {
|
||||||
|
baseIsInterface = baseObject->stereotypes().contains(QStringLiteral("interface"));
|
||||||
if (baseIsInterface) {
|
if (baseIsInterface) {
|
||||||
StereotypeDisplayVisitor stereotypeDisplayVisitor;
|
StereotypeDisplayVisitor stereotypeDisplayVisitor;
|
||||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
||||||
@@ -77,6 +79,7 @@ public:
|
|||||||
baseObject->accept(&stereotypeDisplayVisitor);
|
baseObject->accept(&stereotypeDisplayVisitor);
|
||||||
lollipopDisplay = stereotypeDisplayVisitor.stereotypeDisplay() == DObject::StereotypeIcon;
|
lollipopDisplay = stereotypeDisplayVisitor.stereotypeDisplay() == DObject::StereotypeIcon;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (lollipopDisplay) {
|
if (lollipopDisplay) {
|
||||||
m_arrow->setShaft(ArrowItem::ShaftSolid);
|
m_arrow->setShaft(ArrowItem::ShaftSolid);
|
||||||
m_arrow->setEndHead(ArrowItem::HeadNone);
|
m_arrow->setEndHead(ArrowItem::HeadNone);
|
||||||
@@ -484,6 +487,7 @@ QPointF RelationItem::calcEndPoint(const Uid &end, const Uid &otherEnd, int near
|
|||||||
} else {
|
} else {
|
||||||
DObject *endOtherObject = m_diagramSceneModel->diagramController()->findElement<DObject>(otherEnd, m_diagramSceneModel->diagram());
|
DObject *endOtherObject = m_diagramSceneModel->diagramController()->findElement<DObject>(otherEnd, m_diagramSceneModel->diagram());
|
||||||
QMT_CHECK(endOtherObject);
|
QMT_CHECK(endOtherObject);
|
||||||
|
if (endOtherObject)
|
||||||
otherEndPos = endOtherObject->pos();
|
otherEndPos = endOtherObject->pos();
|
||||||
}
|
}
|
||||||
return calcEndPoint(end, otherEndPos, nearestIntermediatePointIndex);
|
return calcEndPoint(end, otherEndPos, nearestIntermediatePointIndex);
|
||||||
|
|||||||
@@ -724,8 +724,18 @@ bool DiagramSceneController::relocateRelationEnd(DRelation *relation, DObject *t
|
|||||||
MObject *currentTargetMObject = m_modelController->findObject((modelRelation->*endUid)());
|
MObject *currentTargetMObject = m_modelController->findObject((modelRelation->*endUid)());
|
||||||
QMT_CHECK(currentTargetMObject);
|
QMT_CHECK(currentTargetMObject);
|
||||||
m_modelController->undoController()->beginMergeSequence(tr("Relocate Relation"));
|
m_modelController->undoController()->beginMergeSequence(tr("Relocate Relation"));
|
||||||
|
// move relation into new target if it was a child of the old target
|
||||||
if (currentTargetMObject == modelRelation->owner())
|
if (currentTargetMObject == modelRelation->owner())
|
||||||
m_modelController->moveRelation(targetMObject, modelRelation);
|
m_modelController->moveRelation(targetMObject, modelRelation);
|
||||||
|
// remove relation on all diagrams where the new targe element does not exist
|
||||||
|
foreach (MDiagram *diagram, m_diagramController->allDiagrams()) {
|
||||||
|
if (DElement *diagramRelation = m_diagramController->findDelegate(modelRelation, diagram)) {
|
||||||
|
if (!m_diagramController->findDelegate(targetMObject, diagram)) {
|
||||||
|
m_diagramController->removeElement(diagramRelation, diagram);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// update end of relation
|
||||||
m_modelController->startUpdateRelation(modelRelation);
|
m_modelController->startUpdateRelation(modelRelation);
|
||||||
(modelRelation->*setEndUid)(targetMObject->uid());
|
(modelRelation->*setEndUid)(targetMObject->uid());
|
||||||
m_modelController->finishUpdateRelation(modelRelation, false);
|
m_modelController->finishUpdateRelation(modelRelation, false);
|
||||||
|
|||||||
@@ -821,7 +821,8 @@ void Check::visitQmlObject(Node *ast, UiQualifiedId *typeId,
|
|||||||
const QString typeName = getRightMostIdentifier(typeId)->name.toString();
|
const QString typeName = getRightMostIdentifier(typeId)->name.toString();
|
||||||
|
|
||||||
if (!m_typeStack.isEmpty() && m_typeStack.last() == QLatin1String("State")
|
if (!m_typeStack.isEmpty() && m_typeStack.last() == QLatin1String("State")
|
||||||
&& typeId->name.toString() != "PropertyChanges")
|
&& typeId->name.toString() != "PropertyChanges"
|
||||||
|
&& typeId->name.toString() != "StateChangeScript")
|
||||||
addMessage(StateCannotHaveChildItem, typeErrorLocation, typeName);
|
addMessage(StateCannotHaveChildItem, typeErrorLocation, typeName);
|
||||||
|
|
||||||
if (checkTypeForDesignerSupport(typeId))
|
if (checkTypeForDesignerSupport(typeId))
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "stringutils.h"
|
#include "stringutils.h"
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
#include <cstring>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
@@ -149,7 +150,7 @@ std::string wStringToString(const std::wstring &w)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Convert an ASCII hex digit to its value 'A'->10
|
// Convert an ASCII hex digit to its value 'A'->10
|
||||||
inline unsigned hexDigit(char c)
|
static inline unsigned hexDigit(char c)
|
||||||
{
|
{
|
||||||
if (c <= '9')
|
if (c <= '9')
|
||||||
return c - '0';
|
return c - '0';
|
||||||
@@ -223,15 +224,19 @@ std::string dumpMemory(const unsigned char *p, size_t size,
|
|||||||
switch (u) {
|
switch (u) {
|
||||||
case '\t':
|
case '\t':
|
||||||
str << "\\t";
|
str << "\\t";
|
||||||
|
break;
|
||||||
case '\r':
|
case '\r':
|
||||||
str << "\\r";
|
str << "\\r";
|
||||||
|
break;
|
||||||
case '\n':
|
case '\n':
|
||||||
str << "\\n";
|
str << "\\n";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (u >= 32 && u < 128)
|
if (u >= 32 && u < 128)
|
||||||
str << (char(u));
|
str << (char(u));
|
||||||
else
|
else
|
||||||
str << '\\' << std::setw(3) << unsigned(u);
|
str << '\\' << std::setw(3) << unsigned(u);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (wantQuotes)
|
if (wantQuotes)
|
||||||
|
|||||||
@@ -47,11 +47,7 @@ public:
|
|||||||
|
|
||||||
Q_INVOKABLE void selectNextFromSelectionId(int selectionId);
|
Q_INVOKABLE void selectNextFromSelectionId(int selectionId);
|
||||||
Q_INVOKABLE void selectPrevFromSelectionId(int selectionId);
|
Q_INVOKABLE void selectPrevFromSelectionId(int selectionId);
|
||||||
|
Q_INVOKABLE void clearData();
|
||||||
// TODO: We could add some Q_INVOKABLE functions to enable or disable render passes when the the
|
|
||||||
// need arises.
|
|
||||||
|
|
||||||
void clearData();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData);
|
virtual QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData);
|
||||||
|
|||||||
@@ -79,13 +79,11 @@ public:
|
|||||||
void setBuildTargetSdk(const QString &sdk);
|
void setBuildTargetSdk(const QString &sdk);
|
||||||
|
|
||||||
virtual Utils::FileName androidPackageSourceDir() const = 0;
|
virtual Utils::FileName androidPackageSourceDir() const = 0;
|
||||||
public slots:
|
|
||||||
void setDeployAction(AndroidDeployAction deploy);
|
void setDeployAction(AndroidDeployAction deploy);
|
||||||
|
|
||||||
protected slots:
|
|
||||||
void showInGraphicalShell();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Q_INVOKABLE void showInGraphicalShell();
|
||||||
|
|
||||||
AndroidBuildApkStep(ProjectExplorer::BuildStepList *bc,
|
AndroidBuildApkStep(ProjectExplorer::BuildStepList *bc,
|
||||||
AndroidBuildApkStep *other);
|
AndroidBuildApkStep *other);
|
||||||
bool keystorePassword();
|
bool keystorePassword();
|
||||||
|
|||||||
@@ -96,37 +96,47 @@ AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step)
|
|||||||
m_ui->openPackageLocationCheckBox->setChecked(m_step->openPackageLocation());
|
m_ui->openPackageLocationCheckBox->setChecked(m_step->openPackageLocation());
|
||||||
|
|
||||||
// target sdk
|
// target sdk
|
||||||
connect(m_ui->targetSDKComboBox, SIGNAL(activated(QString)), SLOT(setTargetSdk(QString)));
|
connect(m_ui->targetSDKComboBox,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated),
|
||||||
|
this, &AndroidBuildApkWidget::setTargetSdk);
|
||||||
|
|
||||||
// deployment options
|
// deployment options
|
||||||
connect(m_ui->ministroOption, SIGNAL(clicked()), SLOT(setMinistro()));
|
connect(m_ui->ministroOption, &QAbstractButton::clicked,
|
||||||
connect(m_ui->temporaryQtOption, SIGNAL(clicked()), SLOT(setDeployLocalQtLibs()));
|
this, &AndroidBuildApkWidget::setMinistro);
|
||||||
connect(m_ui->bundleQtOption, SIGNAL(clicked()), SLOT(setBundleQtLibs()));
|
connect(m_ui->temporaryQtOption, &QAbstractButton::clicked,
|
||||||
connect(m_ui->ministroOption, SIGNAL(clicked()), SLOT(updateDebugDeploySigningWarning()));
|
this, &AndroidBuildApkWidget::setDeployLocalQtLibs);
|
||||||
connect(m_ui->temporaryQtOption, SIGNAL(clicked()), SLOT(updateDebugDeploySigningWarning()));
|
connect(m_ui->bundleQtOption, &QAbstractButton::clicked,
|
||||||
connect(m_ui->bundleQtOption, SIGNAL(clicked()), SLOT(updateDebugDeploySigningWarning()));
|
this, &AndroidBuildApkWidget::setBundleQtLibs);
|
||||||
|
connect(m_ui->ministroOption, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidBuildApkWidget::updateDebugDeploySigningWarning);
|
||||||
|
connect(m_ui->temporaryQtOption, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidBuildApkWidget::updateDebugDeploySigningWarning);
|
||||||
|
connect(m_ui->bundleQtOption, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidBuildApkWidget::updateDebugDeploySigningWarning);
|
||||||
|
|
||||||
connect(m_ui->useGradleCheckBox, SIGNAL(toggled(bool)),
|
connect(m_ui->useGradleCheckBox, &QAbstractButton::toggled,
|
||||||
this, SLOT(useGradleCheckBoxToggled(bool)));
|
this, &AndroidBuildApkWidget::useGradleCheckBoxToggled);
|
||||||
connect(m_ui->openPackageLocationCheckBox, SIGNAL(toggled(bool)),
|
connect(m_ui->openPackageLocationCheckBox, &QAbstractButton::toggled,
|
||||||
this, SLOT(openPackageLocationCheckBoxToggled(bool)));
|
this, &AndroidBuildApkWidget::openPackageLocationCheckBoxToggled);
|
||||||
connect(m_ui->verboseOutputCheckBox, SIGNAL(toggled(bool)),
|
connect(m_ui->verboseOutputCheckBox, &QAbstractButton::toggled,
|
||||||
this, SLOT(verboseOutputCheckBoxToggled(bool)));
|
this, &AndroidBuildApkWidget::verboseOutputCheckBoxToggled);
|
||||||
|
|
||||||
//signing
|
//signing
|
||||||
connect(m_ui->signPackageCheckBox, SIGNAL(toggled(bool)),
|
connect(m_ui->signPackageCheckBox, &QAbstractButton::toggled,
|
||||||
this, SLOT(signPackageCheckBoxToggled(bool)));
|
this, &AndroidBuildApkWidget::signPackageCheckBoxToggled);
|
||||||
connect(m_ui->KeystoreCreatePushButton, SIGNAL(clicked()),
|
connect(m_ui->KeystoreCreatePushButton, &QAbstractButton::clicked,
|
||||||
this, SLOT(createKeyStore()));
|
this, &AndroidBuildApkWidget::createKeyStore);
|
||||||
connect(m_ui->KeystoreLocationPathChooser, SIGNAL(pathChanged(QString)),
|
connect(m_ui->KeystoreLocationPathChooser, &Utils::PathChooser::pathChanged,
|
||||||
SLOT(updateKeyStorePath(QString)));
|
this, &AndroidBuildApkWidget::updateKeyStorePath);
|
||||||
connect(m_ui->certificatesAliasComboBox, SIGNAL(activated(QString)),
|
connect(m_ui->certificatesAliasComboBox,
|
||||||
this, SLOT(certificatesAliasComboBoxActivated(QString)));
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated),
|
||||||
connect(m_ui->certificatesAliasComboBox, SIGNAL(currentIndexChanged(QString)),
|
this, &AndroidBuildApkWidget::certificatesAliasComboBoxActivated);
|
||||||
this, SLOT(certificatesAliasComboBoxCurrentIndexChanged(QString)));
|
connect(m_ui->certificatesAliasComboBox,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &AndroidBuildApkWidget::certificatesAliasComboBoxCurrentIndexChanged);
|
||||||
|
|
||||||
connect(m_step->buildConfiguration(), SIGNAL(buildTypeChanged()),
|
connect(m_step->buildConfiguration(), &ProjectExplorer::BuildConfiguration::buildTypeChanged,
|
||||||
this, SLOT(updateSigningWarning()));
|
this, &AndroidBuildApkWidget::updateSigningWarning);
|
||||||
|
|
||||||
updateSigningWarning();
|
updateSigningWarning();
|
||||||
updateDebugDeploySigningWarning();
|
updateDebugDeploySigningWarning();
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public:
|
|||||||
AndroidBuildApkWidget(AndroidBuildApkStep *step);
|
AndroidBuildApkWidget(AndroidBuildApkStep *step);
|
||||||
~AndroidBuildApkWidget();
|
~AndroidBuildApkWidget();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void setTargetSdk(const QString &sdk);
|
void setTargetSdk(const QString &sdk);
|
||||||
void setMinistro();
|
void setMinistro();
|
||||||
void setDeployLocalQtLibs();
|
void setDeployLocalQtLibs();
|
||||||
@@ -65,7 +65,6 @@ private slots:
|
|||||||
void updateKeyStorePath(const QString &path);
|
void updateKeyStorePath(const QString &path);
|
||||||
void signPackageCheckBoxToggled(bool checked);
|
void signPackageCheckBoxToggled(bool checked);
|
||||||
|
|
||||||
private:
|
|
||||||
virtual QString summaryText() const;
|
virtual QString summaryText() const;
|
||||||
virtual QString displayName() const;
|
virtual QString displayName() const;
|
||||||
void setCertificates();
|
void setCertificates();
|
||||||
|
|||||||
@@ -776,7 +776,8 @@ QString AndroidConfig::startAVD(const QString &name) const
|
|||||||
bool AndroidConfig::startAVDAsync(const QString &avdName) const
|
bool AndroidConfig::startAVDAsync(const QString &avdName) const
|
||||||
{
|
{
|
||||||
QProcess *avdProcess = new QProcess();
|
QProcess *avdProcess = new QProcess();
|
||||||
avdProcess->connect(avdProcess, SIGNAL(finished(int)), avdProcess, SLOT(deleteLater()));
|
QObject::connect(avdProcess, static_cast<void (QProcess::*)(int)>(&QProcess::finished),
|
||||||
|
avdProcess, &QObject::deleteLater);
|
||||||
|
|
||||||
// start the emulator
|
// start the emulator
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
|
|||||||
@@ -224,7 +224,6 @@ public:
|
|||||||
static AndroidDeviceInfo showDeviceDialog(ProjectExplorer::Project *project, int apiLevel, const QString &abi, Options options);
|
static AndroidDeviceInfo showDeviceDialog(ProjectExplorer::Project *project, int apiLevel, const QString &abi, Options options);
|
||||||
static void setDefaultDevice(ProjectExplorer::Project *project, const QString &abi, const QString &serialNumber); // serial number or avd name
|
static void setDefaultDevice(ProjectExplorer::Project *project, const QString &abi, const QString &serialNumber); // serial number or avd name
|
||||||
static QString defaultDevice(ProjectExplorer::Project *project, const QString &abi); // serial number or avd name
|
static QString defaultDevice(ProjectExplorer::Project *project, const QString &abi); // serial number or avd name
|
||||||
public slots:
|
|
||||||
static void clearDefaultDevices(ProjectExplorer::Project *project);
|
static void clearDefaultDevices(ProjectExplorer::Project *project);
|
||||||
static void registerNewToolChains();
|
static void registerNewToolChains();
|
||||||
static void removeOldToolChains();
|
static void removeOldToolChains();
|
||||||
|
|||||||
@@ -39,12 +39,18 @@ AndroidCreateKeystoreCertificate::AndroidCreateKeystoreCertificate(QWidget *pare
|
|||||||
ui(new Ui::AndroidCreateKeystoreCertificate)
|
ui(new Ui::AndroidCreateKeystoreCertificate)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
connect(ui->keystorePassLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkKeystorePassword()));
|
connect(ui->keystorePassLineEdit, &QLineEdit::textChanged,
|
||||||
connect(ui->keystoreRetypePassLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkKeystorePassword()));
|
this, &AndroidCreateKeystoreCertificate::checkKeystorePassword);
|
||||||
connect(ui->certificatePassLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkCertificatePassword()));
|
connect(ui->keystoreRetypePassLineEdit, &QLineEdit::textChanged,
|
||||||
connect(ui->certificateRetypePassLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkCertificatePassword()));
|
this, &AndroidCreateKeystoreCertificate::checkKeystorePassword);
|
||||||
connect(ui->certificateAliasLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkCertificateAlias()));
|
connect(ui->certificatePassLineEdit, &QLineEdit::textChanged,
|
||||||
connect(ui->countryLineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkCountryCode()));
|
this, &AndroidCreateKeystoreCertificate::checkCertificatePassword);
|
||||||
|
connect(ui->certificateRetypePassLineEdit, &QLineEdit::textChanged,
|
||||||
|
this, &AndroidCreateKeystoreCertificate::checkCertificatePassword);
|
||||||
|
connect(ui->certificateAliasLineEdit, &QLineEdit::textChanged,
|
||||||
|
this, &AndroidCreateKeystoreCertificate::checkCertificateAlias);
|
||||||
|
connect(ui->countryLineEdit, &QLineEdit::textChanged,
|
||||||
|
this, &AndroidCreateKeystoreCertificate::checkCountryCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidCreateKeystoreCertificate::~AndroidCreateKeystoreCertificate()
|
AndroidCreateKeystoreCertificate::~AndroidCreateKeystoreCertificate()
|
||||||
|
|||||||
@@ -54,11 +54,13 @@ public:
|
|||||||
QString certificateAlias();
|
QString certificateAlias();
|
||||||
QString certificatePassword();
|
QString certificatePassword();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
PasswordStatus checkKeystorePassword();
|
PasswordStatus checkKeystorePassword();
|
||||||
PasswordStatus checkCertificatePassword();
|
PasswordStatus checkCertificatePassword();
|
||||||
bool checkCertificateAlias();
|
bool checkCertificateAlias();
|
||||||
bool checkCountryCode();
|
bool checkCountryCode();
|
||||||
|
|
||||||
|
private slots:
|
||||||
void on_keystoreShowPassCheckBox_stateChanged(int state);
|
void on_keystoreShowPassCheckBox_stateChanged(int state);
|
||||||
void on_certificateShowPassCheckBox_stateChanged(int state);
|
void on_certificateShowPassCheckBox_stateChanged(int state);
|
||||||
void on_buttonBox_accepted();
|
void on_buttonBox_accepted();
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ public:
|
|||||||
|
|
||||||
AndroidDeviceInfo deviceInfo() const;
|
AndroidDeviceInfo deviceInfo() const;
|
||||||
|
|
||||||
public slots:
|
|
||||||
void setUninstallPreviousPackage(bool uninstall);
|
void setUninstallPreviousPackage(bool uninstall);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|||||||
@@ -44,11 +44,14 @@ AndroidDeployQtWidget::AndroidDeployQtWidget(AndroidDeployQtStep *step)
|
|||||||
|
|
||||||
m_ui->uninstallPreviousPackage->setChecked(m_step->uninstallPreviousPackage() > AndroidDeployQtStep::Keep);
|
m_ui->uninstallPreviousPackage->setChecked(m_step->uninstallPreviousPackage() > AndroidDeployQtStep::Keep);
|
||||||
m_ui->uninstallPreviousPackage->setEnabled(m_step->uninstallPreviousPackage() != AndroidDeployQtStep::ForceUnintall);
|
m_ui->uninstallPreviousPackage->setEnabled(m_step->uninstallPreviousPackage() != AndroidDeployQtStep::ForceUnintall);
|
||||||
connect(m_ui->installMinistroButton, SIGNAL(clicked()), SLOT(installMinistro()));
|
connect(m_ui->installMinistroButton, &QAbstractButton::clicked,
|
||||||
connect(m_ui->cleanLibsPushButton, SIGNAL(clicked()), SLOT(cleanLibsOnDevice()));
|
this, &AndroidDeployQtWidget::installMinistro);
|
||||||
connect(m_ui->resetDefaultDevices, SIGNAL(clicked()), SLOT(resetDefaultDevices()));
|
connect(m_ui->cleanLibsPushButton, &QAbstractButton::clicked,
|
||||||
connect(m_ui->uninstallPreviousPackage, SIGNAL(toggled(bool)),
|
this, &AndroidDeployQtWidget::cleanLibsOnDevice);
|
||||||
m_step, SLOT(setUninstallPreviousPackage(bool)));
|
connect(m_ui->resetDefaultDevices, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidDeployQtWidget::resetDefaultDevices);
|
||||||
|
connect(m_ui->uninstallPreviousPackage, &QAbstractButton::toggled,
|
||||||
|
m_step, &AndroidDeployQtStep::setUninstallPreviousPackage);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,12 +46,11 @@ public:
|
|||||||
AndroidDeployQtWidget(AndroidDeployQtStep *step);
|
AndroidDeployQtWidget(AndroidDeployQtStep *step);
|
||||||
~AndroidDeployQtWidget();
|
~AndroidDeployQtWidget();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void installMinistro();
|
void installMinistro();
|
||||||
void cleanLibsOnDevice();
|
void cleanLibsOnDevice();
|
||||||
void resetDefaultDevices();
|
void resetDefaultDevices();
|
||||||
|
|
||||||
private:
|
|
||||||
virtual QString summaryText() const;
|
virtual QString summaryText() const;
|
||||||
virtual QString displayName() const;
|
virtual QString displayName() const;
|
||||||
|
|
||||||
|
|||||||
@@ -439,19 +439,19 @@ AndroidDeviceDialog::AndroidDeviceDialog(int apiLevel, const QString &abi, Andro
|
|||||||
+ tr("No Device Found") + QLatin1String("</span></p><br/>")
|
+ tr("No Device Found") + QLatin1String("</span></p><br/>")
|
||||||
+ msgConnect() + QLatin1String("<br/>")
|
+ msgConnect() + QLatin1String("<br/>")
|
||||||
+ msgAdbListDevices());
|
+ msgAdbListDevices());
|
||||||
connect(m_ui->missingLabel, SIGNAL(linkActivated(QString)),
|
connect(m_ui->missingLabel, &QLabel::linkActivated,
|
||||||
this, SLOT(showHelp()));
|
this, &AndroidDeviceDialog::showHelp);
|
||||||
|
|
||||||
connect(m_ui->refreshDevicesButton, SIGNAL(clicked()),
|
connect(m_ui->refreshDevicesButton, &QAbstractButton::clicked,
|
||||||
this, SLOT(refreshDeviceList()));
|
this, &AndroidDeviceDialog::refreshDeviceList);
|
||||||
|
|
||||||
connect(m_ui->createAVDButton, SIGNAL(clicked()),
|
connect(m_ui->createAVDButton, &QAbstractButton::clicked,
|
||||||
this, SLOT(createAvd()));
|
this, &AndroidDeviceDialog::createAvd);
|
||||||
connect(m_ui->deviceView, SIGNAL(doubleClicked(QModelIndex)),
|
connect(m_ui->deviceView, &QAbstractItemView::doubleClicked,
|
||||||
this, SLOT(accept()));
|
this, &QDialog::accept);
|
||||||
|
|
||||||
connect(&m_futureWatcherAddDevice, SIGNAL(finished()),
|
connect(&m_futureWatcherAddDevice, &QFutureWatcherBase::finished,
|
||||||
this, SLOT(avdAdded()));
|
this, &AndroidDeviceDialog::avdAdded);
|
||||||
connect(&m_futureWatcherRefreshDevices, &QFutureWatcherBase::finished,
|
connect(&m_futureWatcherRefreshDevices, &QFutureWatcherBase::finished,
|
||||||
this, &AndroidDeviceDialog::devicesRefreshed);
|
this, &AndroidDeviceDialog::devicesRefreshed);
|
||||||
|
|
||||||
|
|||||||
@@ -57,13 +57,12 @@ public:
|
|||||||
|
|
||||||
bool saveDeviceSelection() const;
|
bool saveDeviceSelection() const;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void refreshDeviceList();
|
void refreshDeviceList();
|
||||||
void createAvd();
|
void createAvd();
|
||||||
void clickedOnView(const QModelIndex &idx);
|
void clickedOnView(const QModelIndex &idx);
|
||||||
void showHelp();
|
void showHelp();
|
||||||
void avdAdded();
|
void avdAdded();
|
||||||
private:
|
|
||||||
void devicesRefreshed();
|
void devicesRefreshed();
|
||||||
void enableOkayButton();
|
void enableOkayButton();
|
||||||
void defaultDeviceClear();
|
void defaultDeviceClear();
|
||||||
|
|||||||
@@ -122,9 +122,11 @@ AndroidGdbServerKitInformationWidget::AndroidGdbServerKitInformationWidget(Kit *
|
|||||||
// ToolButton with Menu, defaulting to 'Autodetect'.
|
// ToolButton with Menu, defaulting to 'Autodetect'.
|
||||||
auto buttonMenu = new QMenu(m_button);
|
auto buttonMenu = new QMenu(m_button);
|
||||||
QAction *autoDetectAction = buttonMenu->addAction(tr("Auto-detect"));
|
QAction *autoDetectAction = buttonMenu->addAction(tr("Auto-detect"));
|
||||||
connect(autoDetectAction, SIGNAL(triggered()), this, SLOT(autoDetectDebugger()));
|
connect(autoDetectAction, &QAction::triggered,
|
||||||
|
this, &AndroidGdbServerKitInformationWidget::autoDetectDebugger);
|
||||||
QAction *changeAction = buttonMenu->addAction(tr("Edit..."));
|
QAction *changeAction = buttonMenu->addAction(tr("Edit..."));
|
||||||
connect(changeAction, SIGNAL(triggered()), this, SLOT(showDialog()));
|
connect(changeAction, &QAction::triggered,
|
||||||
|
this, &AndroidGdbServerKitInformationWidget::showDialog);
|
||||||
m_button->setMenu(buttonMenu);
|
m_button->setMenu(buttonMenu);
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
@@ -192,8 +194,8 @@ void AndroidGdbServerKitInformationWidget::showDialog()
|
|||||||
layout->addLayout(formLayout);
|
layout->addLayout(formLayout);
|
||||||
|
|
||||||
auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &dialog);
|
auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &dialog);
|
||||||
connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()));
|
connect(buttonBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
|
||||||
connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));
|
connect(buttonBox, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
|
||||||
layout->addWidget(buttonBox);
|
layout->addWidget(buttonBox);
|
||||||
|
|
||||||
dialog.setWindowTitle(tr("GDB Server for \"%1\"").arg(m_kit->displayName()));
|
dialog.setWindowTitle(tr("GDB Server for \"%1\"").arg(m_kit->displayName()));
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ public:
|
|||||||
QWidget *mainWidget() const override;
|
QWidget *mainWidget() const override;
|
||||||
QWidget *buttonWidget() const override;
|
QWidget *buttonWidget() const override;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void autoDetectDebugger();
|
void autoDetectDebugger();
|
||||||
void showDialog();
|
void showDialog();
|
||||||
private:
|
|
||||||
QLabel *m_label;
|
QLabel *m_label;
|
||||||
QPushButton *m_button;
|
QPushButton *m_button;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -316,7 +316,8 @@ void AndroidManager::cleanLibsOnDevice(ProjectExplorer::Target *target)
|
|||||||
QProcess *process = new QProcess();
|
QProcess *process = new QProcess();
|
||||||
QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber);
|
QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber);
|
||||||
arguments << QLatin1String("shell") << QLatin1String("rm") << QLatin1String("-r") << QLatin1String("/data/local/tmp/qt");
|
arguments << QLatin1String("shell") << QLatin1String("rm") << QLatin1String("-r") << QLatin1String("/data/local/tmp/qt");
|
||||||
process->connect(process, SIGNAL(finished(int)), process, SLOT(deleteLater()));
|
QObject::connect(process, static_cast<void (QProcess::*)(int)>(&QProcess::finished),
|
||||||
|
process, &QObject::deleteLater);
|
||||||
const QString adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
const QString adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
||||||
Core::MessageManager::write(adb + QLatin1Char(' ') + arguments.join(QLatin1Char(' ')));
|
Core::MessageManager::write(adb + QLatin1Char(' ') + arguments.join(QLatin1Char(' ')));
|
||||||
process->start(adb, arguments);
|
process->start(adb, arguments);
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ AndroidManifestDocument::AndroidManifestDocument(AndroidManifestEditorWidget *ed
|
|||||||
setId(Constants::ANDROID_MANIFEST_EDITOR_ID);
|
setId(Constants::ANDROID_MANIFEST_EDITOR_ID);
|
||||||
setMimeType(QLatin1String(Constants::ANDROID_MANIFEST_MIME_TYPE));
|
setMimeType(QLatin1String(Constants::ANDROID_MANIFEST_MIME_TYPE));
|
||||||
setSuspendAllowed(false);
|
setSuspendAllowed(false);
|
||||||
connect(editorWidget, SIGNAL(guiChanged()),
|
connect(editorWidget, &AndroidManifestEditorWidget::guiChanged,
|
||||||
this, SIGNAL(changed()));
|
this, &Core::IDocument::changed);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidManifestDocument::save(QString *errorString, const QString &fileName, bool autoSave)
|
bool AndroidManifestDocument::save(QString *errorString, const QString &fileName, bool autoSave)
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ AndroidManifestEditor::AndroidManifestEditor(AndroidManifestEditorWidget *editor
|
|||||||
{
|
{
|
||||||
m_toolBar = new QToolBar(editorWidget);
|
m_toolBar = new QToolBar(editorWidget);
|
||||||
m_actionGroup = new QActionGroup(this);
|
m_actionGroup = new QActionGroup(this);
|
||||||
connect(m_actionGroup, SIGNAL(triggered(QAction*)), this, SLOT(changeEditorPage(QAction*)));
|
connect(m_actionGroup, &QActionGroup::triggered,
|
||||||
|
this, &AndroidManifestEditor::changeEditorPage);
|
||||||
|
|
||||||
QAction *generalAction = m_toolBar->addAction(tr("General"));
|
QAction *generalAction = m_toolBar->addAction(tr("General"));
|
||||||
generalAction->setData(AndroidManifestEditorWidget::General);
|
generalAction->setData(AndroidManifestEditorWidget::General);
|
||||||
|
|||||||
@@ -57,10 +57,9 @@ public:
|
|||||||
int currentColumn() const override;
|
int currentColumn() const override;
|
||||||
void gotoLine(int line, int column = 0, bool centerLine = true) override;
|
void gotoLine(int line, int column = 0, bool centerLine = true) override;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void changeEditorPage(QAction *action);
|
void changeEditorPage(QAction *action);
|
||||||
|
|
||||||
private:
|
|
||||||
QString m_displayName;
|
QString m_displayName;
|
||||||
QToolBar *m_toolBar;
|
QToolBar *m_toolBar;
|
||||||
QActionGroup *m_actionGroup;
|
QActionGroup *m_actionGroup;
|
||||||
|
|||||||
@@ -112,11 +112,11 @@ AndroidManifestEditorWidget::AndroidManifestEditorWidget()
|
|||||||
|
|
||||||
m_editor = new AndroidManifestEditor(this);
|
m_editor = new AndroidManifestEditor(this);
|
||||||
|
|
||||||
connect(&m_timerParseCheck, SIGNAL(timeout()),
|
connect(&m_timerParseCheck, &QTimer::timeout,
|
||||||
this, SLOT(delayedParseCheck()));
|
this, &AndroidManifestEditorWidget::delayedParseCheck);
|
||||||
|
|
||||||
connect(m_textEditorWidget->document(), SIGNAL(contentsChanged()),
|
connect(m_textEditorWidget->document(), &QTextDocument::contentsChanged,
|
||||||
this, SLOT(startParseCheck()));
|
this, &AndroidManifestEditorWidget::startParseCheck);
|
||||||
connect(m_textEditorWidget->textDocument(), &TextEditor::TextDocument::reloadFinished,
|
connect(m_textEditorWidget->textDocument(), &TextEditor::TextDocument::reloadFinished,
|
||||||
this, [this](bool success) { if (success) updateAfterFileLoad(); });
|
this, [this](bool success) { if (success) updateAfterFileLoad(); });
|
||||||
connect(m_textEditorWidget->textDocument(), &TextEditor::TextDocument::openFinishedSuccessfully,
|
connect(m_textEditorWidget->textDocument(), &TextEditor::TextDocument::openFinishedSuccessfully,
|
||||||
@@ -137,6 +137,7 @@ void AndroidManifestEditorWidget::initializePage()
|
|||||||
QGroupBox *packageGroupBox = new QGroupBox(mainWidget);
|
QGroupBox *packageGroupBox = new QGroupBox(mainWidget);
|
||||||
topLayout->addWidget(packageGroupBox);
|
topLayout->addWidget(packageGroupBox);
|
||||||
|
|
||||||
|
auto setDirtyFunc = [this] { setDirty(); };
|
||||||
packageGroupBox->setTitle(tr("Package"));
|
packageGroupBox->setTitle(tr("Package"));
|
||||||
{
|
{
|
||||||
QFormLayout *formLayout = new QFormLayout();
|
QFormLayout *formLayout = new QFormLayout();
|
||||||
@@ -201,16 +202,18 @@ void AndroidManifestEditorWidget::initializePage()
|
|||||||
|
|
||||||
updateSdkVersions();
|
updateSdkVersions();
|
||||||
|
|
||||||
connect(m_packageNameLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_packageNameLineEdit, &QLineEdit::textEdited,
|
||||||
this, SLOT(setPackageName()));
|
this, &AndroidManifestEditorWidget::setPackageName);
|
||||||
connect(m_versionCode, SIGNAL(valueChanged(int)),
|
connect(m_versionCode, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
|
||||||
this, SLOT(setDirty()));
|
this, &AndroidManifestEditorWidget::setDirty);
|
||||||
connect(m_versionNameLinedit, SIGNAL(textEdited(QString)),
|
connect(m_versionNameLinedit, &QLineEdit::textEdited,
|
||||||
this, SLOT(setDirty()));
|
this, setDirtyFunc);
|
||||||
connect(m_androidMinSdkVersion, SIGNAL(currentIndexChanged(int)),
|
connect(m_androidMinSdkVersion,
|
||||||
this, SLOT(setDirty()));
|
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
connect(m_androidTargetSdkVersion, SIGNAL(currentIndexChanged(int)),
|
this, setDirtyFunc);
|
||||||
this, SLOT(setDirty()));
|
connect(m_androidTargetSdkVersion,
|
||||||
|
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, setDirtyFunc);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,16 +264,19 @@ void AndroidManifestEditorWidget::initializePage()
|
|||||||
|
|
||||||
applicationGroupBox->setLayout(formLayout);
|
applicationGroupBox->setLayout(formLayout);
|
||||||
|
|
||||||
connect(m_appNameLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_appNameLineEdit, &QLineEdit::textEdited,
|
||||||
this, SLOT(setDirty()));
|
this, setDirtyFunc);
|
||||||
connect(m_activityNameLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_activityNameLineEdit, &QLineEdit::textEdited,
|
||||||
this, SLOT(setDirty()));
|
this, setDirtyFunc);
|
||||||
connect(m_targetLineEdit, SIGNAL(currentTextChanged(QString)),
|
connect(m_targetLineEdit, &QComboBox::currentTextChanged,
|
||||||
this, SLOT(setDirty()));
|
this, setDirtyFunc);
|
||||||
|
|
||||||
connect(m_lIconButton, SIGNAL(clicked()), SLOT(setLDPIIcon()));
|
connect(m_lIconButton, &QAbstractButton::clicked,
|
||||||
connect(m_mIconButton, SIGNAL(clicked()), SLOT(setMDPIIcon()));
|
this, &AndroidManifestEditorWidget::setLDPIIcon);
|
||||||
connect(m_hIconButton, SIGNAL(clicked()), SLOT(setHDPIIcon()));
|
connect(m_mIconButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidManifestEditorWidget::setMDPIIcon);
|
||||||
|
connect(m_hIconButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidManifestEditorWidget::setHDPIIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -443,17 +449,17 @@ void AndroidManifestEditorWidget::initializePage()
|
|||||||
|
|
||||||
permissionsGroupBox->setLayout(layout);
|
permissionsGroupBox->setLayout(layout);
|
||||||
|
|
||||||
connect(m_defaultPermissonsCheckBox, SIGNAL(stateChanged(int)),
|
connect(m_defaultPermissonsCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
connect(m_defaultFeaturesCheckBox, SIGNAL(stateChanged(int)),
|
connect(m_defaultFeaturesCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
|
|
||||||
connect(m_addPermissionButton, SIGNAL(clicked()),
|
connect(m_addPermissionButton, &QAbstractButton::clicked,
|
||||||
this, SLOT(addPermission()));
|
this, &AndroidManifestEditorWidget::addPermission);
|
||||||
connect(m_removePermissionButton, SIGNAL(clicked()),
|
connect(m_removePermissionButton, &QAbstractButton::clicked,
|
||||||
this, SLOT(removePermission()));
|
this, &AndroidManifestEditorWidget::removePermission);
|
||||||
connect(m_permissionsComboBox, SIGNAL(currentTextChanged(QString)),
|
connect(m_permissionsComboBox, &QComboBox::currentTextChanged,
|
||||||
this, SLOT(updateAddRemovePermissionButtons()));
|
this, &AndroidManifestEditorWidget::updateAddRemovePermissionButtons);
|
||||||
}
|
}
|
||||||
|
|
||||||
topLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::MinimumExpanding));
|
topLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::MinimumExpanding));
|
||||||
@@ -470,7 +476,7 @@ bool AndroidManifestEditorWidget::eventFilter(QObject *obj, QEvent *event)
|
|||||||
{
|
{
|
||||||
if (obj == m_targetLineEdit) {
|
if (obj == m_targetLineEdit) {
|
||||||
if (event->type() == QEvent::FocusIn)
|
if (event->type() == QEvent::FocusIn)
|
||||||
QTimer::singleShot(0, this, SLOT(updateTargetComboBox()));
|
QTimer::singleShot(0, this, &AndroidManifestEditorWidget::updateTargetComboBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QWidget::eventFilter(obj, event);
|
return QWidget::eventFilter(obj, event);
|
||||||
@@ -772,10 +778,10 @@ void AndroidManifestEditorWidget::syncToWidgets(const QDomDocument &doc)
|
|||||||
m_mIconPath.clear();
|
m_mIconPath.clear();
|
||||||
m_hIconPath.clear();
|
m_hIconPath.clear();
|
||||||
|
|
||||||
disconnect(m_defaultPermissonsCheckBox, SIGNAL(stateChanged(int)),
|
disconnect(m_defaultPermissonsCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
disconnect(m_defaultFeaturesCheckBox, SIGNAL(stateChanged(int)),
|
disconnect(m_defaultFeaturesCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
|
|
||||||
m_defaultPermissonsCheckBox->setChecked(false);
|
m_defaultPermissonsCheckBox->setChecked(false);
|
||||||
m_defaultFeaturesCheckBox->setChecked(false);
|
m_defaultFeaturesCheckBox->setChecked(false);
|
||||||
@@ -796,10 +802,10 @@ void AndroidManifestEditorWidget::syncToWidgets(const QDomDocument &doc)
|
|||||||
m_defaultPermissonsCheckBox->setChecked(foundPermissionComment);
|
m_defaultPermissonsCheckBox->setChecked(foundPermissionComment);
|
||||||
m_defaultFeaturesCheckBox->setChecked(foundFeatureComment);
|
m_defaultFeaturesCheckBox->setChecked(foundFeatureComment);
|
||||||
|
|
||||||
connect(m_defaultPermissonsCheckBox, SIGNAL(stateChanged(int)),
|
connect(m_defaultPermissonsCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
connect(m_defaultFeaturesCheckBox, SIGNAL(stateChanged(int)),
|
connect(m_defaultFeaturesCheckBox, &QCheckBox::stateChanged,
|
||||||
this, SLOT(defaultPermissionOrFeatureCheckBoxClicked()));
|
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
|
||||||
|
|
||||||
QStringList permissions;
|
QStringList permissions;
|
||||||
QDomElement permissionElem = manifest.firstChildElement(QLatin1String("uses-permission"));
|
QDomElement permissionElem = manifest.firstChildElement(QLatin1String("uses-permission"));
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ public:
|
|||||||
Core::IEditor *editor() const;
|
Core::IEditor *editor() const;
|
||||||
TextEditor::TextEditorWidget *textEditorWidget() const;
|
TextEditor::TextEditorWidget *textEditorWidget() const;
|
||||||
|
|
||||||
public slots:
|
|
||||||
void setDirty(bool dirty = true);
|
void setDirty(bool dirty = true);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -109,7 +108,8 @@ signals:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *obj, QEvent *event);
|
bool eventFilter(QObject *obj, QEvent *event);
|
||||||
private slots:
|
|
||||||
|
private:
|
||||||
void setLDPIIcon();
|
void setLDPIIcon();
|
||||||
void setMDPIIcon();
|
void setMDPIIcon();
|
||||||
void setHDPIIcon();
|
void setHDPIIcon();
|
||||||
@@ -122,7 +122,6 @@ private slots:
|
|||||||
void updateSdkVersions();
|
void updateSdkVersions();
|
||||||
void startParseCheck();
|
void startParseCheck();
|
||||||
void delayedParseCheck();
|
void delayedParseCheck();
|
||||||
private:
|
|
||||||
void initializePage();
|
void initializePage();
|
||||||
bool syncToWidgets();
|
bool syncToWidgets();
|
||||||
void syncToWidgets(const QDomDocument &doc);
|
void syncToWidgets(const QDomDocument &doc);
|
||||||
@@ -138,7 +137,7 @@ private:
|
|||||||
|
|
||||||
void updateInfoBar(const QString &errorMessage, int line, int column);
|
void updateInfoBar(const QString &errorMessage, int line, int column);
|
||||||
void hideInfoBar();
|
void hideInfoBar();
|
||||||
Q_SLOT void updateTargetComboBox();
|
void updateTargetComboBox();
|
||||||
|
|
||||||
void parseManifest(QXmlStreamReader &reader, QXmlStreamWriter &writer);
|
void parseManifest(QXmlStreamReader &reader, QXmlStreamWriter &writer);
|
||||||
void parseApplication(QXmlStreamReader &reader, QXmlStreamWriter &writer);
|
void parseApplication(QXmlStreamReader &reader, QXmlStreamWriter &writer);
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public:
|
|||||||
bool initialize(const QStringList &arguments, QString *errorMessage);
|
bool initialize(const QStringList &arguments, QString *errorMessage);
|
||||||
void extensionsInitialized() { }
|
void extensionsInitialized() { }
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void updateDevice();
|
void updateDevice();
|
||||||
void kitsRestored();
|
void kitsRestored();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -105,11 +105,11 @@ AndroidPotentialKitWidget::AndroidPotentialKitWidget(QWidget *parent)
|
|||||||
openOptions->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
openOptions->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
layout->addWidget(openOptions, 1, 1);
|
layout->addWidget(openOptions, 1, 1);
|
||||||
|
|
||||||
connect(openOptions, SIGNAL(clicked()),
|
connect(openOptions, &QAbstractButton::clicked,
|
||||||
this, SLOT(openOptions()));
|
this, &AndroidPotentialKitWidget::openOptions);
|
||||||
|
|
||||||
connect(AndroidConfigurations::instance(), SIGNAL(updated()),
|
connect(AndroidConfigurations::instance(), &AndroidConfigurations::updated,
|
||||||
this, SLOT(recheck()));
|
this, &AndroidPotentialKitWidget::recheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidPotentialKitWidget::openOptions()
|
void AndroidPotentialKitWidget::openOptions()
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class AndroidPotentialKitWidget : public Utils::DetailsWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
AndroidPotentialKitWidget(QWidget *parent);
|
AndroidPotentialKitWidget(QWidget *parent);
|
||||||
private slots:
|
private:
|
||||||
void openOptions();
|
void openOptions();
|
||||||
void recheck();
|
void recheck();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -58,12 +58,12 @@ void AndroidRunControl::start()
|
|||||||
emit started();
|
emit started();
|
||||||
disconnect(m_runner, 0, this, 0);
|
disconnect(m_runner, 0, this, 0);
|
||||||
|
|
||||||
connect(m_runner, SIGNAL(remoteErrorOutput(QString)),
|
connect(m_runner, &AndroidRunner::remoteErrorOutput,
|
||||||
SLOT(handleRemoteErrorOutput(QString)));
|
this, &AndroidRunControl::handleRemoteErrorOutput);
|
||||||
connect(m_runner, SIGNAL(remoteOutput(QString)),
|
connect(m_runner, &AndroidRunner::remoteOutput,
|
||||||
SLOT(handleRemoteOutput(QString)));
|
this, &AndroidRunControl::handleRemoteOutput);
|
||||||
connect(m_runner, SIGNAL(remoteProcessFinished(QString)),
|
connect(m_runner, &AndroidRunner::remoteProcessFinished,
|
||||||
SLOT(handleRemoteProcessFinished(QString)));
|
this, &AndroidRunControl::handleRemoteProcessFinished);
|
||||||
appendMessage(tr("Starting remote process."), Utils::NormalMessageFormat);
|
appendMessage(tr("Starting remote process."), Utils::NormalMessageFormat);
|
||||||
m_runner->setRunnable(runnable().as<AndroidRunnable>());
|
m_runner->setRunnable(runnable().as<AndroidRunnable>());
|
||||||
m_runner->start();
|
m_runner->start();
|
||||||
|
|||||||
@@ -46,12 +46,11 @@ public:
|
|||||||
bool isRunning() const override;
|
bool isRunning() const override;
|
||||||
QString displayName() const override;
|
QString displayName() const override;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void handleRemoteProcessFinished(const QString &error);
|
void handleRemoteProcessFinished(const QString &error);
|
||||||
void handleRemoteOutput(const QString &output);
|
void handleRemoteOutput(const QString &output);
|
||||||
void handleRemoteErrorOutput(const QString &output);
|
void handleRemoteErrorOutput(const QString &output);
|
||||||
|
|
||||||
private:
|
|
||||||
AndroidRunner *const m_runner;
|
AndroidRunner *const m_runner;
|
||||||
bool m_running;
|
bool m_running;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -179,9 +179,11 @@ AndroidRunner::AndroidRunner(QObject *parent,
|
|||||||
|
|
||||||
m_checkPIDTimer.setInterval(1000);
|
m_checkPIDTimer.setInterval(1000);
|
||||||
|
|
||||||
connect(&m_adbLogcatProcess, SIGNAL(readyReadStandardOutput()), SLOT(logcatReadStandardOutput()));
|
connect(&m_adbLogcatProcess, &QProcess::readyReadStandardOutput,
|
||||||
connect(&m_adbLogcatProcess, SIGNAL(readyReadStandardError()), SLOT(logcatReadStandardError()));
|
this, &AndroidRunner::logcatReadStandardOutput);
|
||||||
connect(&m_checkPIDTimer, SIGNAL(timeout()), SLOT(checkPID()));
|
connect(&m_adbLogcatProcess, &QProcess::readyReadStandardError,
|
||||||
|
this, &AndroidRunner::logcatReadStandardError);
|
||||||
|
connect(&m_checkPIDTimer, &QTimer::timeout, this, &AndroidRunner::checkPID);
|
||||||
|
|
||||||
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0)) {
|
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0)) {
|
||||||
if (qEnvironmentVariableIsSet("QTC_ANDROID_USE_FILE_HANDSHAKE"))
|
if (qEnvironmentVariableIsSet("QTC_ANDROID_USE_FILE_HANDSHAKE"))
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
void setRunnable(const AndroidRunnable &runnable);
|
void setRunnable(const AndroidRunnable &runnable);
|
||||||
const AndroidRunnable &runnable() const { return m_androidRunnable; }
|
const AndroidRunnable &runnable() const { return m_androidRunnable; }
|
||||||
|
|
||||||
public slots:
|
public:
|
||||||
void start();
|
void start();
|
||||||
void stop();
|
void stop();
|
||||||
void handleRemoteDebuggerRunning();
|
void handleRemoteDebuggerRunning();
|
||||||
@@ -74,14 +74,13 @@ signals:
|
|||||||
void remoteOutput(const QString &output);
|
void remoteOutput(const QString &output);
|
||||||
void remoteErrorOutput(const QString &output);
|
void remoteErrorOutput(const QString &output);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void checkPID();
|
void checkPID();
|
||||||
void logcatReadStandardError();
|
void logcatReadStandardError();
|
||||||
void logcatReadStandardOutput();
|
void logcatReadStandardOutput();
|
||||||
void asyncStart();
|
void asyncStart();
|
||||||
QByteArray runPs();
|
Q_INVOKABLE QByteArray runPs();
|
||||||
|
|
||||||
private:
|
|
||||||
void adbKill(qint64 pid);
|
void adbKill(qint64 pid);
|
||||||
QStringList selector() const { return m_selector; }
|
QStringList selector() const { return m_selector; }
|
||||||
void forceStop();
|
void forceStop();
|
||||||
@@ -89,7 +88,6 @@ private:
|
|||||||
void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError);
|
void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError);
|
||||||
bool adbShellAmNeedsQuotes();
|
bool adbShellAmNeedsQuotes();
|
||||||
|
|
||||||
private:
|
|
||||||
bool runAdb(const QStringList &args, QString *errorMessage = nullptr, int timeoutS = 10);
|
bool runAdb(const QStringList &args, QString *errorMessage = nullptr, int timeoutS = 10);
|
||||||
QProcess m_adbLogcatProcess;
|
QProcess m_adbLogcatProcess;
|
||||||
QProcess m_psProc;
|
QProcess m_psProc;
|
||||||
|
|||||||
@@ -131,8 +131,8 @@ AndroidSettingsWidget::AndroidSettingsWidget(QWidget *parent)
|
|||||||
{
|
{
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(this);
|
||||||
|
|
||||||
connect(&m_checkGdbWatcher, SIGNAL(finished()),
|
connect(&m_checkGdbWatcher, &QFutureWatcherBase::finished,
|
||||||
this, SLOT(checkGdbFinished()));
|
this, &AndroidSettingsWidget::checkGdbFinished);
|
||||||
|
|
||||||
m_ui->SDKLocationPathChooser->setFileName(m_androidConfig.sdkLocation());
|
m_ui->SDKLocationPathChooser->setFileName(m_androidConfig.sdkLocation());
|
||||||
m_ui->SDKLocationPathChooser->setPromptDialogTitle(tr("Select Android SDK folder"));
|
m_ui->SDKLocationPathChooser->setPromptDialogTitle(tr("Select Android SDK folder"));
|
||||||
@@ -179,22 +179,52 @@ AndroidSettingsWidget::AndroidSettingsWidget(QWidget *parent)
|
|||||||
m_ui->gdbWarningIconLabel->setPixmap(errorPixmap);
|
m_ui->gdbWarningIconLabel->setPixmap(errorPixmap);
|
||||||
m_ui->ndkWarningIconLabel->setPixmap(errorPixmap);
|
m_ui->ndkWarningIconLabel->setPixmap(errorPixmap);
|
||||||
|
|
||||||
connect(m_ui->gdbWarningLabel, SIGNAL(linkActivated(QString)),
|
connect(m_ui->gdbWarningLabel, &QLabel::linkActivated,
|
||||||
this, SLOT(showGdbWarningDialog()));
|
this, &AndroidSettingsWidget::showGdbWarningDialog);
|
||||||
|
|
||||||
connect(&m_virtualDevicesWatcher, SIGNAL(finished()),
|
connect(&m_virtualDevicesWatcher, &QFutureWatcherBase::finished,
|
||||||
this, SLOT(updateAvds()));
|
this, &AndroidSettingsWidget::updateAvds);
|
||||||
|
|
||||||
check(All);
|
check(All);
|
||||||
applyToUi(All);
|
applyToUi(All);
|
||||||
|
|
||||||
connect(&m_futureWatcher, SIGNAL(finished()),
|
connect(&m_futureWatcher, &QFutureWatcherBase::finished,
|
||||||
this, SLOT(avdAdded()));
|
this, &AndroidSettingsWidget::avdAdded);
|
||||||
|
|
||||||
connect(m_ui->NDKLocationPathChooser, SIGNAL(rawPathChanged(QString)), this, SLOT(ndkLocationEditingFinished()));
|
connect(m_ui->NDKLocationPathChooser, &Utils::PathChooser::rawPathChanged,
|
||||||
connect(m_ui->SDKLocationPathChooser, SIGNAL(rawPathChanged(QString)), this, SLOT(sdkLocationEditingFinished()));
|
this, &AndroidSettingsWidget::ndkLocationEditingFinished);
|
||||||
connect(m_ui->AntLocationPathChooser, SIGNAL(rawPathChanged(QString)), this, SLOT(antLocationEditingFinished()));
|
connect(m_ui->SDKLocationPathChooser, &Utils::PathChooser::rawPathChanged,
|
||||||
connect(m_ui->OpenJDKLocationPathChooser, SIGNAL(rawPathChanged(QString)), this, SLOT(openJDKLocationEditingFinished()));
|
this, &AndroidSettingsWidget::sdkLocationEditingFinished);
|
||||||
|
connect(m_ui->AntLocationPathChooser, &Utils::PathChooser::rawPathChanged,
|
||||||
|
this, &AndroidSettingsWidget::antLocationEditingFinished);
|
||||||
|
connect(m_ui->OpenJDKLocationPathChooser, &Utils::PathChooser::rawPathChanged,
|
||||||
|
this, &AndroidSettingsWidget::openJDKLocationEditingFinished);
|
||||||
|
connect(m_ui->AVDAddPushButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::addAVD);
|
||||||
|
connect(m_ui->AVDRemovePushButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::removeAVD);
|
||||||
|
connect(m_ui->AVDStartPushButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::startAVD);
|
||||||
|
connect(m_ui->AVDTableView, &QAbstractItemView::activated,
|
||||||
|
this, &AndroidSettingsWidget::avdActivated);
|
||||||
|
connect(m_ui->AVDTableView, &QAbstractItemView::clicked,
|
||||||
|
this, &AndroidSettingsWidget::avdActivated);
|
||||||
|
connect(m_ui->DataPartitionSizeSpinBox, &QAbstractSpinBox::editingFinished,
|
||||||
|
this, &AndroidSettingsWidget::dataPartitionSizeEditingFinished);
|
||||||
|
connect(m_ui->manageAVDPushButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::manageAVD);
|
||||||
|
connect(m_ui->CreateKitCheckBox, &QAbstractButton::toggled,
|
||||||
|
this, &AndroidSettingsWidget::createKitToggled);
|
||||||
|
connect(m_ui->downloadSDKToolButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::openSDKDownloadUrl);
|
||||||
|
connect(m_ui->downloadNDKToolButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::openNDKDownloadUrl);
|
||||||
|
connect(m_ui->downloadAntToolButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::openAntDownloadUrl);
|
||||||
|
connect(m_ui->downloadOpenJDKToolButton, &QAbstractButton::clicked,
|
||||||
|
this, &AndroidSettingsWidget::openOpenJDKDownloadUrl);
|
||||||
|
connect(m_ui->UseGradleCheckBox, &QAbstractButton::toggled,
|
||||||
|
this, &AndroidSettingsWidget::useGradleToggled);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -646,8 +676,9 @@ void AndroidSettingsWidget::showGdbWarningDialog()
|
|||||||
void AndroidSettingsWidget::manageAVD()
|
void AndroidSettingsWidget::manageAVD()
|
||||||
{
|
{
|
||||||
QProcess *avdProcess = new QProcess();
|
QProcess *avdProcess = new QProcess();
|
||||||
connect(this, SIGNAL(destroyed()), avdProcess, SLOT(deleteLater()));
|
connect(this, &QObject::destroyed, avdProcess, &QObject::deleteLater);
|
||||||
connect(avdProcess, SIGNAL(finished(int)), avdProcess, SLOT(deleteLater()));
|
connect(avdProcess, static_cast<void (QProcess::*)(int)>(&QProcess::finished),
|
||||||
|
avdProcess, &QObject::deleteLater);
|
||||||
|
|
||||||
avdProcess->setProcessEnvironment(m_androidConfig.androidToolEnvironment().toProcessEnvironment());
|
avdProcess->setProcessEnvironment(m_androidConfig.androidToolEnvironment().toProcessEnvironment());
|
||||||
QString executable = m_androidConfig.androidToolPath().toString();
|
QString executable = m_androidConfig.androidToolPath().toString();
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public:
|
|||||||
|
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void sdkLocationEditingFinished();
|
void sdkLocationEditingFinished();
|
||||||
void ndkLocationEditingFinished();
|
void ndkLocationEditingFinished();
|
||||||
void searchForAnt(const Utils::FileName &location);
|
void searchForAnt(const Utils::FileName &location);
|
||||||
|
|||||||
@@ -463,231 +463,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<include location="android.qrc"/>
|
<include location="android.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections/>
|
||||||
<connection>
|
|
||||||
<sender>AVDAddPushButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>addAVD()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>793</x>
|
|
||||||
<y>394</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>AVDRemovePushButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>removeAVD()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>793</x>
|
|
||||||
<y>427</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>AVDStartPushButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>startAVD()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>793</x>
|
|
||||||
<y>460</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>AVDTableView</sender>
|
|
||||||
<signal>activated(QModelIndex)</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>avdActivated(QModelIndex)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>328</x>
|
|
||||||
<y>605</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>AVDTableView</sender>
|
|
||||||
<signal>clicked(QModelIndex)</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>avdActivated(QModelIndex)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>328</x>
|
|
||||||
<y>605</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>DataPartitionSizeSpinBox</sender>
|
|
||||||
<signal>editingFinished()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>dataPartitionSizeEditingFinished()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>614</x>
|
|
||||||
<y>360</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>352</x>
|
|
||||||
<y>186</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>manageAVDPushButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>manageAVD()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>792</x>
|
|
||||||
<y>359</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>339</x>
|
|
||||||
<y>220</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>CreateKitCheckBox</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>createKitToggled()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>543</x>
|
|
||||||
<y>228</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>339</x>
|
|
||||||
<y>220</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>downloadSDKToolButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>openSDKDownloadUrl()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>830</x>
|
|
||||||
<y>85</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>downloadNDKToolButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>openNDKDownloadUrl()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>830</x>
|
|
||||||
<y>141</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>downloadAntToolButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>openAntDownloadUrl()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>830</x>
|
|
||||||
<y>313</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>downloadOpenJDKToolButton</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>openOpenJDKDownloadUrl()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>830</x>
|
|
||||||
<y>29</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>UseGradleCheckBox</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>AndroidSettingsWidget</receiver>
|
|
||||||
<slot>useGradleToggled()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>395</x>
|
|
||||||
<y>238</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>324</x>
|
|
||||||
<y>223</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
|
||||||
<slots>
|
|
||||||
<slot>sdkLocationEditingFinished()</slot>
|
|
||||||
<slot>ndkLocationEditingFinished()</slot>
|
|
||||||
<slot>antLocationEditingFinished()</slot>
|
|
||||||
<slot>addAVD()</slot>
|
|
||||||
<slot>removeAVD()</slot>
|
|
||||||
<slot>startAVD()</slot>
|
|
||||||
<slot>avdActivated(QModelIndex)</slot>
|
|
||||||
<slot>dataPartitionSizeEditingFinished()</slot>
|
|
||||||
<slot>openJDKLocationEditingFinished()</slot>
|
|
||||||
<slot>manageAVD()</slot>
|
|
||||||
<slot>createKitToggled()</slot>
|
|
||||||
<slot>openSDKDownloadUrl()</slot>
|
|
||||||
<slot>openNDKDownloadUrl()</slot>
|
|
||||||
<slot>openAntDownloadUrl()</slot>
|
|
||||||
<slot>openOpenJDKDownloadUrl()</slot>
|
|
||||||
</slots>
|
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ Android::Internal::AndroidSignalOperation::AndroidSignalOperation()
|
|||||||
, m_signal(0)
|
, m_signal(0)
|
||||||
{
|
{
|
||||||
m_timeout->setInterval(5000);
|
m_timeout->setInterval(5000);
|
||||||
connect(m_timeout, SIGNAL(timeout()), this, SLOT(handleTimeout()));
|
connect(m_timeout, &QTimer::timeout, this, &AndroidSignalOperation::handleTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Android::Internal::AndroidSignalOperation::adbFindRunAsFinished(int exitCode,
|
void Android::Internal::AndroidSignalOperation::adbFindRunAsFinished(int exitCode,
|
||||||
@@ -63,8 +63,9 @@ void Android::Internal::AndroidSignalOperation::adbFindRunAsFinished(int exitCod
|
|||||||
m_state = Idle;
|
m_state = Idle;
|
||||||
emit finished(m_errorMessage);
|
emit finished(m_errorMessage);
|
||||||
} else {
|
} else {
|
||||||
connect(m_adbProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
|
connect(m_adbProcess,
|
||||||
SLOT(adbKillFinished(int,QProcess::ExitStatus)));
|
static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
|
||||||
|
this, &AndroidSignalOperation::adbKillFinished);
|
||||||
m_state = Kill;
|
m_state = Kill;
|
||||||
m_timeout->start();
|
m_timeout->start();
|
||||||
m_adbProcess->start(m_adbPath, QStringList()
|
m_adbProcess->start(m_adbPath, QStringList()
|
||||||
@@ -116,8 +117,9 @@ void Android::Internal::AndroidSignalOperation::signalOperationViaADB(qint64 pid
|
|||||||
m_adbProcess->disconnect(this);
|
m_adbProcess->disconnect(this);
|
||||||
m_pid = pid;
|
m_pid = pid;
|
||||||
m_signal = signal;
|
m_signal = signal;
|
||||||
connect(m_adbProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
|
connect(m_adbProcess,
|
||||||
SLOT(adbFindRunAsFinished(int,QProcess::ExitStatus)));
|
static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
|
||||||
|
this, &AndroidSignalOperation::adbFindRunAsFinished);
|
||||||
m_state = RunAs;
|
m_state = RunAs;
|
||||||
m_timeout->start();
|
m_timeout->start();
|
||||||
m_adbProcess->start(m_adbPath, QStringList()
|
m_adbProcess->start(m_adbPath, QStringList()
|
||||||
|
|||||||
@@ -47,12 +47,11 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
explicit AndroidSignalOperation();
|
explicit AndroidSignalOperation();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void adbFindRunAsFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
void adbFindRunAsFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||||
void adbKillFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
void adbKillFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||||
void handleTimeout();
|
void handleTimeout();
|
||||||
|
|
||||||
private:
|
|
||||||
void signalOperationViaADB(qint64 pid, int signal);
|
void signalOperationViaADB(qint64 pid, int signal);
|
||||||
|
|
||||||
QString m_adbPath;
|
QString m_adbPath;
|
||||||
|
|||||||
@@ -61,8 +61,9 @@ AvdDialog::AvdDialog(int minApiLevel, const QString &targetArch, const AndroidCo
|
|||||||
|
|
||||||
updateApiLevelComboBox();
|
updateApiLevelComboBox();
|
||||||
|
|
||||||
connect(m_avdDialog.abiComboBox, SIGNAL(currentIndexChanged(int)),
|
connect(m_avdDialog.abiComboBox,
|
||||||
this, SLOT(updateApiLevelComboBox()));
|
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &AvdDialog::updateApiLevelComboBox);
|
||||||
|
|
||||||
connect(&m_hideTipTimer, &QTimer::timeout,
|
connect(&m_hideTipTimer, &QTimer::timeout,
|
||||||
this, [](){Utils::ToolTip::hide();});
|
this, [](){Utils::ToolTip::hide();});
|
||||||
|
|||||||
@@ -48,9 +48,8 @@ public:
|
|||||||
int sdcardSize() const;
|
int sdcardSize() const;
|
||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
|
|
||||||
private slots:
|
|
||||||
void updateApiLevelComboBox();
|
|
||||||
private:
|
private:
|
||||||
|
void updateApiLevelComboBox();
|
||||||
bool eventFilter(QObject *obj, QEvent *event);
|
bool eventFilter(QObject *obj, QEvent *event);
|
||||||
|
|
||||||
Ui::AddNewAVDDialog m_avdDialog;
|
Ui::AddNewAVDDialog m_avdDialog;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QWidget *createConfigurationWidget() { return 0; }
|
QWidget *createConfigurationWidget() override { return 0; }
|
||||||
TestConfiguration *m_testConfig = 0;
|
TestConfiguration *m_testConfig = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public:
|
|||||||
|
|
||||||
optionsBuilder.addPredefinedMacrosAndHeaderPathsOptions();
|
optionsBuilder.addPredefinedMacrosAndHeaderPathsOptions();
|
||||||
optionsBuilder.addWrappedQtHeadersIncludePath();
|
optionsBuilder.addWrappedQtHeadersIncludePath();
|
||||||
optionsBuilder.addHeaderPathOptions();
|
optionsBuilder.addHeaderPathOptions(/*addAsNativePath*/ true);
|
||||||
optionsBuilder.addProjectConfigFileInclude();
|
optionsBuilder.addProjectConfigFileInclude();
|
||||||
|
|
||||||
optionsBuilder.addMsvcCompatibilityVersion();
|
optionsBuilder.addMsvcCompatibilityVersion();
|
||||||
@@ -149,19 +149,20 @@ private:
|
|||||||
static const QString resourceDir = getResourceDir();
|
static const QString resourceDir = getResourceDir();
|
||||||
if (!resourceDir.isEmpty()) {
|
if (!resourceDir.isEmpty()) {
|
||||||
add(QLatin1String("-nostdlibinc"));
|
add(QLatin1String("-nostdlibinc"));
|
||||||
add(QLatin1String("-I") + resourceDir);
|
add(QLatin1String("-I") + QDir::toNativeSeparators(resourceDir));
|
||||||
add(QLatin1String("-undef"));
|
add(QLatin1String("-undef"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void addWrappedQtHeadersIncludePath()
|
void addWrappedQtHeadersIncludePath()
|
||||||
{
|
{
|
||||||
static const QString wrappedQtHeaders = ICore::instance()->resourcePath()
|
static const QString wrappedQtHeadersPath = ICore::instance()->resourcePath()
|
||||||
+ QLatin1String("/cplusplus/wrappedQtHeaders");
|
+ QLatin1String("/cplusplus/wrappedQtHeaders");
|
||||||
|
|
||||||
if (m_projectPart.qtVersion != ProjectPart::NoQt) {
|
if (m_projectPart.qtVersion != ProjectPart::NoQt) {
|
||||||
add(QLatin1String("-I") + wrappedQtHeaders);
|
const QString wrappedQtCoreHeaderPath = wrappedQtHeadersPath + QLatin1String("/QtCore");
|
||||||
add(QLatin1String("-I") + wrappedQtHeaders + QLatin1String("/QtCore"));
|
add(QLatin1String("-I") + QDir::toNativeSeparators(wrappedQtHeadersPath));
|
||||||
|
add(QLatin1String("-I") + QDir::toNativeSeparators(wrappedQtCoreHeaderPath));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +170,7 @@ private:
|
|||||||
{
|
{
|
||||||
if (!m_projectPart.projectConfigFile.isEmpty()) {
|
if (!m_projectPart.projectConfigFile.isEmpty()) {
|
||||||
add(QLatin1String("-include"));
|
add(QLatin1String("-include"));
|
||||||
add(m_projectPart.projectConfigFile);
|
add(QDir::toNativeSeparators(m_projectPart.projectConfigFile));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,8 @@ ClangStaticAnalyzerDiagnosticView::ClangStaticAnalyzerDiagnosticView(QWidget *pa
|
|||||||
: Debugger::DetailedErrorView(parent)
|
: Debugger::DetailedErrorView(parent)
|
||||||
{
|
{
|
||||||
m_suppressAction = new QAction(tr("Suppress This Diagnostic"), this);
|
m_suppressAction = new QAction(tr("Suppress This Diagnostic"), this);
|
||||||
connect(m_suppressAction, &QAction::triggered, [this](bool) { suppressCurrentDiagnostic(); });
|
connect(m_suppressAction, &QAction::triggered,
|
||||||
|
this, &ClangStaticAnalyzerDiagnosticView::suppressCurrentDiagnostic);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangStaticAnalyzerDiagnosticView::suppressCurrentDiagnostic()
|
void ClangStaticAnalyzerDiagnosticView::suppressCurrentDiagnostic()
|
||||||
|
|||||||
@@ -110,6 +110,11 @@ void ClangStaticAnalyzerUnitTests::testProject_data()
|
|||||||
QTest::newRow("simple qmake library project")
|
QTest::newRow("simple qmake library project")
|
||||||
<< QString(m_tmpDir->absolutePath("simple-library/simple-library.pro")) << 0;
|
<< QString(m_tmpDir->absolutePath("simple-library/simple-library.pro")) << 0;
|
||||||
|
|
||||||
|
QTest::newRow("stdc++11-includes qbs project")
|
||||||
|
<< QString(m_tmpDir->absolutePath("stdc++11-includes/stdc++11-includes.qbs")) << 0;
|
||||||
|
QTest::newRow("stdc++11-includes qmake project")
|
||||||
|
<< QString(m_tmpDir->absolutePath("stdc++11-includes/stdc++11-includes.pro")) << 0;
|
||||||
|
|
||||||
QTest::newRow("qt-widgets-app qbs project")
|
QTest::newRow("qt-widgets-app qbs project")
|
||||||
<< QString(m_tmpDir->absolutePath("qt-widgets-app/qt-widgets-app.qbs")) << 0;
|
<< QString(m_tmpDir->absolutePath("qt-widgets-app/qt-widgets-app.qbs")) << 0;
|
||||||
QTest::newRow("qt-widgets-app qmake project")
|
QTest::newRow("qt-widgets-app qmake project")
|
||||||
|
|||||||
@@ -16,5 +16,8 @@
|
|||||||
<file>unit-tests/simple-library/simple-library.h</file>
|
<file>unit-tests/simple-library/simple-library.h</file>
|
||||||
<file>unit-tests/simple-library/simple-library.pro</file>
|
<file>unit-tests/simple-library/simple-library.pro</file>
|
||||||
<file>unit-tests/simple-library/simple-library.qbs</file>
|
<file>unit-tests/simple-library/simple-library.qbs</file>
|
||||||
|
<file>unit-tests/stdc++11-includes/main.cpp</file>
|
||||||
|
<file>unit-tests/stdc++11-includes/stdc++11-includes.pro</file>
|
||||||
|
<file>unit-tests/stdc++11-includes/stdc++11-includes.qbs</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
// Based on http://en.cppreference.com/w/cpp/header
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <array>
|
||||||
|
#include <atomic>
|
||||||
|
#include <bitset>
|
||||||
|
#include <cassert>
|
||||||
|
#include <ccomplex>
|
||||||
|
#include <cctype>
|
||||||
|
#include <cerrno>
|
||||||
|
#include <cfenv>
|
||||||
|
#include <cfloat>
|
||||||
|
#include <chrono>
|
||||||
|
#include <cinttypes>
|
||||||
|
#include <ciso646>
|
||||||
|
#include <climits>
|
||||||
|
#include <clocale>
|
||||||
|
#include <cmath>
|
||||||
|
#include <codecvt>
|
||||||
|
#include <complex>
|
||||||
|
#include <condition_variable>
|
||||||
|
#include <csetjmp>
|
||||||
|
#include <csignal>
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
# include <cstdalign>
|
||||||
|
#endif
|
||||||
|
#include <cstdarg>
|
||||||
|
#include <cstdbool>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <ctgmath>
|
||||||
|
#include <ctime>
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER > 1800
|
||||||
|
# include <cuchar>
|
||||||
|
#endif
|
||||||
|
#include <cwchar>
|
||||||
|
#include <cwctype>
|
||||||
|
#include <deque>
|
||||||
|
#include <exception>
|
||||||
|
#include <forward_list>
|
||||||
|
#include <fstream>
|
||||||
|
#include <functional>
|
||||||
|
#include <future>
|
||||||
|
#include <initializer_list>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <ios>
|
||||||
|
#include <iosfwd>
|
||||||
|
#include <iostream>
|
||||||
|
#include <istream>
|
||||||
|
#include <iterator>
|
||||||
|
#include <limits>
|
||||||
|
#include <list>
|
||||||
|
#include <locale>
|
||||||
|
#include <map>
|
||||||
|
#include <memory>
|
||||||
|
#include <mutex>
|
||||||
|
#include <new>
|
||||||
|
#include <numeric>
|
||||||
|
#include <ostream>
|
||||||
|
#include <queue>
|
||||||
|
#include <random>
|
||||||
|
#include <ratio>
|
||||||
|
#include <regex>
|
||||||
|
#include <scoped_allocator>
|
||||||
|
#include <set>
|
||||||
|
#include <sstream>
|
||||||
|
#include <stack>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <streambuf>
|
||||||
|
#include <string>
|
||||||
|
#include <system_error>
|
||||||
|
#include <thread>
|
||||||
|
#include <tuple>
|
||||||
|
#include <type_traits>
|
||||||
|
#include <typeindex>
|
||||||
|
#include <typeinfo>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <unordered_set>
|
||||||
|
#include <utility>
|
||||||
|
#include <valarray>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
TEMPLATE = app
|
||||||
|
CONFIG += console c++11
|
||||||
|
CONFIG -= app_bundle
|
||||||
|
CONFIG -= qt
|
||||||
|
|
||||||
|
TARGET = stdc++11-includes
|
||||||
|
SOURCES += main.cpp
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import qbs
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
name : "Standard C++ Includes"
|
||||||
|
consoleApplication: true
|
||||||
|
cpp.cxxLanguageVersion: "c++11"
|
||||||
|
|
||||||
|
files: "main.cpp"
|
||||||
|
|
||||||
|
Group { // Properties for the produced executable
|
||||||
|
fileTagsFilter: product.type
|
||||||
|
qbs.install: true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -442,6 +442,8 @@ void EditorManagerPrivate::init()
|
|||||||
|
|
||||||
// other setup
|
// other setup
|
||||||
auto mainEditorArea = new EditorArea();
|
auto mainEditorArea = new EditorArea();
|
||||||
|
// assign parent to avoid failing updates (e.g. windowTitle) before it is displayed first time
|
||||||
|
mainEditorArea->setParent(ICore::mainWindow());
|
||||||
mainEditorArea->hide();
|
mainEditorArea->hide();
|
||||||
connect(mainEditorArea, &EditorArea::windowTitleNeedsUpdate,
|
connect(mainEditorArea, &EditorArea::windowTitleNeedsUpdate,
|
||||||
this, &EditorManagerPrivate::updateWindowTitle);
|
this, &EditorManagerPrivate::updateWindowTitle);
|
||||||
|
|||||||
@@ -206,23 +206,14 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
|
|||||||
QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2);
|
QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2);
|
||||||
textOffset = textOffset - QPoint(0, lineHeight + 4);
|
textOffset = textOffset - QPoint(0, lineHeight + 4);
|
||||||
QRectF r(0, textOffset.y(), rect().width(), lineHeight);
|
QRectF r(0, textOffset.y(), rect().width(), lineHeight);
|
||||||
QColor penColor;
|
painter.setPen(creatorTheme()->color(isEnabled()
|
||||||
if (isEnabled())
|
? Theme::PanelTextColorLight
|
||||||
penColor = Qt::white;
|
: Theme::IconsDisabledColor));
|
||||||
else
|
|
||||||
penColor = Qt::gray;
|
|
||||||
painter.setPen(penColor);
|
|
||||||
|
|
||||||
// draw project name
|
// draw project name
|
||||||
const int margin = 6;
|
const int margin = 6;
|
||||||
const qreal availableWidth = r.width() - margin;
|
const qreal availableWidth = r.width() - margin;
|
||||||
QString ellidedProjectName = fm.elidedText(projectName, Qt::ElideMiddle, availableWidth);
|
QString ellidedProjectName = fm.elidedText(projectName, Qt::ElideMiddle, availableWidth);
|
||||||
if (isEnabled()) {
|
|
||||||
const QRectF shadowR = r.translated(0, 1);
|
|
||||||
painter.setPen(QColor(30, 30, 30, 80));
|
|
||||||
painter.drawText(shadowR, textFlags, ellidedProjectName);
|
|
||||||
painter.setPen(penColor);
|
|
||||||
}
|
|
||||||
painter.drawText(r, textFlags, ellidedProjectName);
|
painter.drawText(r, textFlags, ellidedProjectName);
|
||||||
|
|
||||||
// draw build configuration name
|
// draw build configuration name
|
||||||
@@ -240,15 +231,12 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
|
|||||||
splitBuildConfiguration = splitInTwoLines(buildConfiguration, boldFm, availableWidth);
|
splitBuildConfiguration = splitInTwoLines(buildConfiguration, boldFm, availableWidth);
|
||||||
}
|
}
|
||||||
// draw the two lines for the build configuration
|
// draw the two lines for the build configuration
|
||||||
|
painter.setPen(creatorTheme()->color(isEnabled()
|
||||||
|
? Theme::FancyTabWidgetEnabledSelectedTextColor
|
||||||
|
: Theme::FancyTabWidgetDisabledSelectedTextColor));
|
||||||
for (int i = 0; i < 2; ++i) {
|
for (int i = 0; i < 2; ++i) {
|
||||||
if (splitBuildConfiguration[i].isEmpty())
|
if (splitBuildConfiguration[i].isEmpty())
|
||||||
continue;
|
continue;
|
||||||
if (isEnabled()) {
|
|
||||||
const QRectF shadowR = buildConfigRect[i].translated(0, 1);
|
|
||||||
painter.setPen(QColor(30, 30, 30, 80));
|
|
||||||
painter.drawText(shadowR, textFlags, splitBuildConfiguration[i]);
|
|
||||||
painter.setPen(penColor);
|
|
||||||
}
|
|
||||||
painter.drawText(buildConfigRect[i], textFlags, splitBuildConfiguration[i]);
|
painter.drawText(buildConfigRect[i], textFlags, splitBuildConfiguration[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -790,16 +790,16 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CE_MenuBarEmptyArea: {
|
case CE_MenuBarEmptyArea: {
|
||||||
if (!creatorTheme()->flag(Theme::FlatMenuBar)) {
|
if (creatorTheme()->flag(Theme::FlatMenuBar))
|
||||||
|
painter->fillRect(option->rect, StyleHelper::baseColor());
|
||||||
|
else
|
||||||
StyleHelper::menuGradient(painter, option->rect, option->rect);
|
StyleHelper::menuGradient(painter, option->rect, option->rect);
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->setPen(StyleHelper::borderColor());
|
painter->setPen(StyleHelper::borderColor());
|
||||||
painter->drawLine(option->rect.bottomLeft() + QPointF(0.5, 0.5),
|
painter->drawLine(option->rect.bottomLeft() + QPointF(0.5, 0.5),
|
||||||
option->rect.bottomRight() + QPointF(0.5, 0.5));
|
option->rect.bottomRight() + QPointF(0.5, 0.5));
|
||||||
painter->restore();
|
painter->restore();
|
||||||
} else {
|
|
||||||
painter->fillRect(option->rect, StyleHelper::baseColor());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
|
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
namespace CppTools {
|
namespace CppTools {
|
||||||
|
|
||||||
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart)
|
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart)
|
||||||
@@ -98,7 +100,7 @@ void CompilerOptionsBuilder::enableExceptions()
|
|||||||
add(QLatin1String("-fexceptions"));
|
add(QLatin1String("-fexceptions"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CompilerOptionsBuilder::addHeaderPathOptions()
|
void CompilerOptionsBuilder::addHeaderPathOptions(bool addAsNativePath)
|
||||||
{
|
{
|
||||||
typedef ProjectPartHeaderPath HeaderPath;
|
typedef ProjectPartHeaderPath HeaderPath;
|
||||||
const QString defaultPrefix = includeOption();
|
const QString defaultPrefix = includeOption();
|
||||||
@@ -124,7 +126,10 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.append(prefix + headerPath.path);
|
QString path = prefix + headerPath.path;
|
||||||
|
path = addAsNativePath ? QDir::toNativeSeparators(path) : path;
|
||||||
|
|
||||||
|
result.append(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_options.append(result);
|
m_options.append(result);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public:
|
|||||||
// Add options based on project part
|
// Add options based on project part
|
||||||
virtual void addTargetTriple();
|
virtual void addTargetTriple();
|
||||||
virtual void enableExceptions();
|
virtual void enableExceptions();
|
||||||
void addHeaderPathOptions();
|
void addHeaderPathOptions(bool addAsNativePath = false);
|
||||||
void addToolchainAndProjectDefines();
|
void addToolchainAndProjectDefines();
|
||||||
virtual void addLanguageOption(ProjectFile::Kind fileKind);
|
virtual void addLanguageOption(ProjectFile::Kind fileKind);
|
||||||
virtual void addOptionsForLanguage(bool checkForBorlandExtensions = true);
|
virtual void addOptionsForLanguage(bool checkForBorlandExtensions = true);
|
||||||
|
|||||||
@@ -995,7 +995,7 @@ QStringList GitClient::setupCheckoutArguments(const QString &workingDirectory,
|
|||||||
ICore::settings(), "Git.CreateLocalBranchOnCheckout" /*setting*/,
|
ICore::settings(), "Git.CreateLocalBranchOnCheckout" /*setting*/,
|
||||||
QDialogButtonBox::Yes | QDialogButtonBox::No /*buttons*/,
|
QDialogButtonBox::Yes | QDialogButtonBox::No /*buttons*/,
|
||||||
QDialogButtonBox::No /*default button*/,
|
QDialogButtonBox::No /*default button*/,
|
||||||
QDialogButtonBox::No /*button to save*/) == QMessageBox::No) {
|
QDialogButtonBox::No /*button to save*/) == QDialogButtonBox::No) {
|
||||||
return arguments;
|
return arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,12 @@ public:
|
|||||||
void apply();
|
void apply();
|
||||||
void finish();
|
void finish();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void addDocumentation();
|
void addDocumentation();
|
||||||
|
|
||||||
private:
|
|
||||||
bool eventFilter(QObject *object, QEvent *event);
|
bool eventFilter(QObject *object, QEvent *event);
|
||||||
void removeDocumentation(const QList<QModelIndex> &items);
|
void removeDocumentation(const QList<QModelIndex> &items);
|
||||||
|
|
||||||
private:
|
|
||||||
QList<QModelIndex> currentSelection() const;
|
QList<QModelIndex> currentSelection() const;
|
||||||
|
|
||||||
Ui::DocSettingsPage m_ui;
|
Ui::DocSettingsPage m_ui;
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ QWidget *FilterSettingsPage::widget()
|
|||||||
this, &FilterSettingsPage::addFilter);
|
this, &FilterSettingsPage::addFilter);
|
||||||
connect(m_ui.filterRemoveButton, &QPushButton::clicked,
|
connect(m_ui.filterRemoveButton, &QPushButton::clicked,
|
||||||
this, &FilterSettingsPage::removeFilter);
|
this, &FilterSettingsPage::removeFilter);
|
||||||
connect(HelpManager::instance(), SIGNAL(documentationChanged()),
|
connect(HelpManager::instance(), &HelpManager::documentationChanged,
|
||||||
this, SLOT(updateFilterPage()));
|
this, &FilterSettingsPage::updateFilterPage);
|
||||||
}
|
}
|
||||||
return m_widget;
|
return m_widget;
|
||||||
}
|
}
|
||||||
@@ -221,8 +221,8 @@ void FilterSettingsPage::apply()
|
|||||||
|
|
||||||
void FilterSettingsPage::finish()
|
void FilterSettingsPage::finish()
|
||||||
{
|
{
|
||||||
disconnect(HelpManager::instance(), SIGNAL(documentationChanged()),
|
disconnect(HelpManager::instance(), &HelpManager::documentationChanged,
|
||||||
this, SLOT(updateFilterPage()));
|
this, &FilterSettingsPage::updateFilterPage);
|
||||||
delete m_widget;
|
delete m_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,18 +47,15 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void filtersChanged();
|
void filtersChanged();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void updateAttributes(QListWidgetItem *item);
|
void updateAttributes(QListWidgetItem *item);
|
||||||
void updateFilterMap();
|
void updateFilterMap();
|
||||||
void updateFilterPage();
|
void updateFilterPage();
|
||||||
void addFilter();
|
void addFilter();
|
||||||
void removeFilter();
|
void removeFilter();
|
||||||
|
|
||||||
private:
|
|
||||||
void updateFilterDescription(const QString &filter);
|
void updateFilterDescription(const QString &filter);
|
||||||
|
|
||||||
private:
|
|
||||||
QString msgFilterLabel(const QString &filter) const;
|
QString msgFilterLabel(const QString &filter) const;
|
||||||
|
|
||||||
Ui::FilterSettingsPage m_ui;
|
Ui::FilterSettingsPage m_ui;
|
||||||
QPointer<QWidget> m_widget;
|
QPointer<QWidget> m_widget;
|
||||||
|
|
||||||
|
|||||||
@@ -49,20 +49,18 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void fontChanged();
|
void fontChanged();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void setCurrentPage();
|
void setCurrentPage();
|
||||||
void setBlankPage();
|
void setBlankPage();
|
||||||
void setDefaultPage();
|
void setDefaultPage();
|
||||||
void importBookmarks();
|
void importBookmarks();
|
||||||
void exportBookmarks();
|
void exportBookmarks();
|
||||||
|
|
||||||
private:
|
|
||||||
void updateFontSize();
|
void updateFontSize();
|
||||||
void updateFontStyle();
|
void updateFontStyle();
|
||||||
void updateFontFamily();
|
void updateFontFamily();
|
||||||
int closestPointSizeIndex(int desiredPointSize) const;
|
int closestPointSizeIndex(int desiredPointSize) const;
|
||||||
|
|
||||||
private:
|
|
||||||
QFont m_font;
|
QFont m_font;
|
||||||
QFontDatabase m_fontDatabase;
|
QFontDatabase m_fontDatabase;
|
||||||
|
|
||||||
|
|||||||
@@ -151,24 +151,24 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
addAutoReleasedObject(m_searchTaskHandler = new SearchTaskHandler);
|
addAutoReleasedObject(m_searchTaskHandler = new SearchTaskHandler);
|
||||||
|
|
||||||
m_centralWidget = new CentralWidget(Context("Help.CentralHelpWidget"));
|
m_centralWidget = new CentralWidget(Context("Help.CentralHelpWidget"));
|
||||||
connect(m_centralWidget, SIGNAL(sourceChanged(QUrl)), this,
|
connect(m_centralWidget, &HelpWidget::sourceChanged, this,
|
||||||
SLOT(updateSideBarSource(QUrl)));
|
&HelpPlugin::updateSideBarSource);
|
||||||
connect(m_centralWidget, &CentralWidget::closeButtonClicked,
|
connect(m_centralWidget, &CentralWidget::closeButtonClicked,
|
||||||
&OpenPagesManager::instance(), &OpenPagesManager::closeCurrentPage);
|
&OpenPagesManager::instance(), &OpenPagesManager::closeCurrentPage);
|
||||||
|
|
||||||
connect(LocalHelpManager::instance(), &LocalHelpManager::returnOnCloseChanged,
|
connect(LocalHelpManager::instance(), &LocalHelpManager::returnOnCloseChanged,
|
||||||
m_centralWidget, &CentralWidget::updateCloseButton);
|
m_centralWidget, &CentralWidget::updateCloseButton);
|
||||||
connect(HelpManager::instance(), SIGNAL(helpRequested(QUrl,Core::HelpManager::HelpViewerLocation)),
|
connect(HelpManager::instance(), &HelpManager::helpRequested,
|
||||||
this, SLOT(handleHelpRequest(QUrl,Core::HelpManager::HelpViewerLocation)));
|
this, &HelpPlugin::handleHelpRequest);
|
||||||
connect(m_searchTaskHandler, SIGNAL(search(QUrl)), this,
|
connect(m_searchTaskHandler, &SearchTaskHandler::search, this,
|
||||||
SLOT(showLinkInHelpMode(QUrl)));
|
&HelpPlugin::showLinkInHelpMode);
|
||||||
|
|
||||||
connect(m_filterSettingsPage, SIGNAL(filtersChanged()), this,
|
connect(m_filterSettingsPage, &FilterSettingsPage::filtersChanged, this,
|
||||||
SLOT(setupHelpEngineIfNeeded()));
|
&HelpPlugin::setupHelpEngineIfNeeded);
|
||||||
connect(HelpManager::instance(), SIGNAL(documentationChanged()), this,
|
connect(HelpManager::instance(), &HelpManager::documentationChanged, this,
|
||||||
SLOT(setupHelpEngineIfNeeded()));
|
&HelpPlugin::setupHelpEngineIfNeeded);
|
||||||
connect(HelpManager::instance(), SIGNAL(collectionFileChanged()), this,
|
connect(HelpManager::instance(), &HelpManager::collectionFileChanged, this,
|
||||||
SLOT(setupHelpEngineIfNeeded()));
|
&HelpPlugin::setupHelpEngineIfNeeded);
|
||||||
|
|
||||||
connect(ToolTip::instance(), &ToolTip::shown, ICore::instance(), []() {
|
connect(ToolTip::instance(), &ToolTip::shown, ICore::instance(), []() {
|
||||||
ICore::addAdditionalContext(Context(kToolTipHelpContext), ICore::ContextPriority::High);
|
ICore::addAdditionalContext(Context(kToolTipHelpContext), ICore::ContextPriority::High);
|
||||||
@@ -185,29 +185,29 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
tr(Constants::SB_CONTENTS), this);
|
tr(Constants::SB_CONTENTS), this);
|
||||||
cmd = ActionManager::registerAction(action, "Help.ContentsMenu");
|
cmd = ActionManager::registerAction(action, "Help.ContentsMenu");
|
||||||
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(activateContents()));
|
connect(action, &QAction::triggered, this, &HelpPlugin::activateContents);
|
||||||
|
|
||||||
action = new QAction(tr(Constants::SB_INDEX), this);
|
action = new QAction(tr(Constants::SB_INDEX), this);
|
||||||
cmd = ActionManager::registerAction(action, "Help.IndexMenu");
|
cmd = ActionManager::registerAction(action, "Help.IndexMenu");
|
||||||
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(activateIndex()));
|
connect(action, &QAction::triggered, this, &HelpPlugin::activateIndex);
|
||||||
|
|
||||||
action = new QAction(tr("Context Help"), this);
|
action = new QAction(tr("Context Help"), this);
|
||||||
cmd = ActionManager::registerAction(action, Help::Constants::CONTEXT_HELP,
|
cmd = ActionManager::registerAction(action, Help::Constants::CONTEXT_HELP,
|
||||||
Context(kToolTipHelpContext, Core::Constants::C_GLOBAL));
|
Context(kToolTipHelpContext, Core::Constants::C_GLOBAL));
|
||||||
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
|
||||||
cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F1));
|
cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F1));
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(showContextHelp()));
|
connect(action, &QAction::triggered, this, &HelpPlugin::showContextHelp);
|
||||||
|
|
||||||
action = new QAction(tr("Technical Support"), this);
|
action = new QAction(tr("Technical Support"), this);
|
||||||
cmd = ActionManager::registerAction(action, "Help.TechSupport");
|
cmd = ActionManager::registerAction(action, "Help.TechSupport");
|
||||||
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(slotOpenSupportPage()));
|
connect(action, &QAction::triggered, this, &HelpPlugin::slotOpenSupportPage);
|
||||||
|
|
||||||
action = new QAction(tr("Report Bug..."), this);
|
action = new QAction(tr("Report Bug..."), this);
|
||||||
cmd = ActionManager::registerAction(action, "Help.ReportBug");
|
cmd = ActionManager::registerAction(action, "Help.ReportBug");
|
||||||
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(slotReportBug()));
|
connect(action, &QAction::triggered, this, &HelpPlugin::slotReportBug);
|
||||||
|
|
||||||
if (ActionContainer *windowMenu = ActionManager::actionContainer(Core::Constants::M_WINDOW)) {
|
if (ActionContainer *windowMenu = ActionManager::actionContainer(Core::Constants::M_WINDOW)) {
|
||||||
// reuse EditorManager constants to avoid a second pair of menu actions
|
// reuse EditorManager constants to avoid a second pair of menu actions
|
||||||
@@ -216,16 +216,16 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
Command *ctrlTab = ActionManager::registerAction(action, Core::Constants::GOTOPREVINHISTORY,
|
Command *ctrlTab = ActionManager::registerAction(action, Core::Constants::GOTOPREVINHISTORY,
|
||||||
modecontext);
|
modecontext);
|
||||||
windowMenu->addAction(ctrlTab, Core::Constants::G_WINDOW_NAVIGATE);
|
windowMenu->addAction(ctrlTab, Core::Constants::G_WINDOW_NAVIGATE);
|
||||||
connect(action, SIGNAL(triggered()), &OpenPagesManager::instance(),
|
connect(action, &QAction::triggered, &OpenPagesManager::instance(),
|
||||||
SLOT(gotoPreviousPage()));
|
&OpenPagesManager::gotoPreviousPage);
|
||||||
|
|
||||||
// Goto Next In History Action
|
// Goto Next In History Action
|
||||||
action = new QAction(this);
|
action = new QAction(this);
|
||||||
Command *ctrlShiftTab = ActionManager::registerAction(action, Core::Constants::GOTONEXTINHISTORY,
|
Command *ctrlShiftTab = ActionManager::registerAction(action, Core::Constants::GOTONEXTINHISTORY,
|
||||||
modecontext);
|
modecontext);
|
||||||
windowMenu->addAction(ctrlShiftTab, Core::Constants::G_WINDOW_NAVIGATE);
|
windowMenu->addAction(ctrlShiftTab, Core::Constants::G_WINDOW_NAVIGATE);
|
||||||
connect(action, SIGNAL(triggered()), &OpenPagesManager::instance(),
|
connect(action, &QAction::triggered, &OpenPagesManager::instance(),
|
||||||
SLOT(gotoNextPage()));
|
&OpenPagesManager::gotoNextPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto helpIndexFilter = new HelpIndexFilter();
|
auto helpIndexFilter = new HelpIndexFilter();
|
||||||
@@ -237,8 +237,8 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
|
|
||||||
RemoteHelpFilter *remoteHelpFilter = new RemoteHelpFilter();
|
RemoteHelpFilter *remoteHelpFilter = new RemoteHelpFilter();
|
||||||
addAutoReleasedObject(remoteHelpFilter);
|
addAutoReleasedObject(remoteHelpFilter);
|
||||||
connect(remoteHelpFilter, SIGNAL(linkActivated(QUrl)), this,
|
connect(remoteHelpFilter, &RemoteHelpFilter::linkActivated, this,
|
||||||
SLOT(showLinkInHelpMode(QUrl)));
|
&HelpPlugin::showLinkInHelpMode);
|
||||||
|
|
||||||
QDesktopServices::setUrlHandler(QLatin1String("qthelp"), HelpManager::instance(), "handleHelpRequest");
|
QDesktopServices::setUrlHandler(QLatin1String("qthelp"), HelpManager::instance(), "handleHelpRequest");
|
||||||
connect(ModeManager::instance(), &ModeManager::currentModeChanged,
|
connect(ModeManager::instance(), &ModeManager::currentModeChanged,
|
||||||
@@ -318,14 +318,14 @@ HelpWidget *HelpPlugin::createHelpWidget(const Context &context, HelpWidget::Wid
|
|||||||
{
|
{
|
||||||
HelpWidget *widget = new HelpWidget(context, style);
|
HelpWidget *widget = new HelpWidget(context, style);
|
||||||
|
|
||||||
connect(widget->currentViewer(), SIGNAL(loadFinished()),
|
connect(widget->currentViewer(), &HelpViewer::loadFinished,
|
||||||
this, SLOT(highlightSearchTermsInContextHelp()));
|
this, &HelpPlugin::highlightSearchTermsInContextHelp);
|
||||||
connect(widget, SIGNAL(openHelpMode(QUrl)),
|
connect(widget, &HelpWidget::openHelpMode,
|
||||||
this, SLOT(showLinkInHelpMode(QUrl)));
|
this, &HelpPlugin::showLinkInHelpMode);
|
||||||
connect(widget, SIGNAL(closeButtonClicked()),
|
connect(widget, &HelpWidget::closeButtonClicked,
|
||||||
this, SLOT(slotHideRightPane()));
|
this, &HelpPlugin::slotHideRightPane);
|
||||||
connect(widget, SIGNAL(aboutToClose()),
|
connect(widget, &HelpWidget::aboutToClose,
|
||||||
this, SLOT(saveExternalWindowSettings()));
|
this, &HelpPlugin::saveExternalWindowSettings);
|
||||||
|
|
||||||
// force setup, as we might have never switched to full help mode
|
// force setup, as we might have never switched to full help mode
|
||||||
// thus the help engine might still run without collection file setup
|
// thus the help engine might still run without collection file setup
|
||||||
@@ -455,15 +455,6 @@ void HelpPlugin::modeChanged(Core::Id mode, Core::Id old)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HelpPlugin::updateSideBarSource()
|
|
||||||
{
|
|
||||||
if (HelpViewer *viewer = m_centralWidget->currentViewer()) {
|
|
||||||
const QUrl &url = viewer->source();
|
|
||||||
if (url.isValid())
|
|
||||||
updateSideBarSource(url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HelpPlugin::updateSideBarSource(const QUrl &newUrl)
|
void HelpPlugin::updateSideBarSource(const QUrl &newUrl)
|
||||||
{
|
{
|
||||||
if (m_rightPaneSideBarWidget) {
|
if (m_rightPaneSideBarWidget) {
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public:
|
|||||||
|
|
||||||
static HelpViewer *createHelpViewer(qreal zoom);
|
static HelpViewer *createHelpViewer(qreal zoom);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void modeChanged(Core::Id mode, Core::Id old);
|
void modeChanged(Core::Id mode, Core::Id old);
|
||||||
|
|
||||||
void showContextHelp();
|
void showContextHelp();
|
||||||
@@ -89,7 +89,6 @@ private slots:
|
|||||||
void showLinksInHelpMode(const QMap<QString, QUrl> &links, const QString &key);
|
void showLinksInHelpMode(const QMap<QString, QUrl> &links, const QString &key);
|
||||||
void slotHideRightPane();
|
void slotHideRightPane();
|
||||||
|
|
||||||
void updateSideBarSource();
|
|
||||||
void updateSideBarSource(const QUrl &newUrl);
|
void updateSideBarSource(const QUrl &newUrl);
|
||||||
|
|
||||||
void setupHelpEngineIfNeeded();
|
void setupHelpEngineIfNeeded();
|
||||||
@@ -100,7 +99,6 @@ private slots:
|
|||||||
void slotOpenSupportPage();
|
void slotOpenSupportPage();
|
||||||
void slotReportBug();
|
void slotReportBug();
|
||||||
|
|
||||||
private:
|
|
||||||
void resetFilter();
|
void resetFilter();
|
||||||
void activateHelpMode();
|
void activateHelpMode();
|
||||||
bool canShowHelpSideBySide() const;
|
bool canShowHelpSideBySide() const;
|
||||||
@@ -112,7 +110,6 @@ private:
|
|||||||
|
|
||||||
void doSetupIfNeeded();
|
void doSetupIfNeeded();
|
||||||
|
|
||||||
private:
|
|
||||||
HelpMode *m_mode;
|
HelpMode *m_mode;
|
||||||
CentralWidget *m_centralWidget;
|
CentralWidget *m_centralWidget;
|
||||||
HelpWidget *m_rightPaneSideBarWidget;
|
HelpWidget *m_rightPaneSideBarWidget;
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ public:
|
|||||||
static QString mimeFromUrl(const QUrl &url);
|
static QString mimeFromUrl(const QUrl &url);
|
||||||
static bool launchWithExternalApp(const QUrl &url);
|
static bool launchWithExternalApp(const QUrl &url);
|
||||||
|
|
||||||
public slots:
|
|
||||||
void home();
|
void home();
|
||||||
|
|
||||||
virtual void scaleUp() = 0;
|
virtual void scaleUp() = 0;
|
||||||
@@ -97,7 +96,7 @@ signals:
|
|||||||
void backwardAvailable(bool);
|
void backwardAvailable(bool);
|
||||||
void loadFinished();
|
void loadFinished();
|
||||||
|
|
||||||
protected slots:
|
protected:
|
||||||
void slotLoadStarted();
|
void slotLoadStarted();
|
||||||
void slotLoadFinished();
|
void slotLoadFinished();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
|||||||
|
|
||||||
if (style != ExternalWindow) {
|
if (style != ExternalWindow) {
|
||||||
m_closeAction = new QAction(Core::Icons::CLOSE_TOOLBAR.icon(), QString(), toolBar);
|
m_closeAction = new QAction(Core::Icons::CLOSE_TOOLBAR.icon(), QString(), toolBar);
|
||||||
connect(m_closeAction, SIGNAL(triggered()), this, SIGNAL(closeButtonClicked()));
|
connect(m_closeAction, &QAction::triggered, this, &HelpWidget::closeButtonClicked);
|
||||||
button = new QToolButton;
|
button = new QToolButton;
|
||||||
button->setDefaultAction(m_closeAction);
|
button->setDefaultAction(m_closeAction);
|
||||||
layout->addWidget(button);
|
layout->addWidget(button);
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public:
|
|||||||
bool newPage = false);
|
bool newPage = false);
|
||||||
void activateSideBarItem(const QString &id);
|
void activateSideBarItem(const QString &id);
|
||||||
|
|
||||||
public slots:
|
public:
|
||||||
void setSource(const QUrl &url);
|
void setSource(const QUrl &url);
|
||||||
void updateCloseButton();
|
void updateCloseButton();
|
||||||
|
|
||||||
@@ -92,13 +92,12 @@ signals:
|
|||||||
void sourceChanged(const QUrl &url);
|
void sourceChanged(const QUrl &url);
|
||||||
void filterActivated(const QString &name);
|
void filterActivated(const QString &name);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void updateBackMenu();
|
void updateBackMenu();
|
||||||
void updateForwardMenu();
|
void updateForwardMenu();
|
||||||
void updateWindowTitle();
|
void updateWindowTitle();
|
||||||
void helpModeButtonClicked();
|
void helpModeButtonClicked();
|
||||||
|
|
||||||
private:
|
|
||||||
void goHome();
|
void goHome();
|
||||||
void addBookmark();
|
void addBookmark();
|
||||||
void copy();
|
void copy();
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class MacResponderHack : public QObject
|
|||||||
public:
|
public:
|
||||||
MacResponderHack(QObject *parent);
|
MacResponderHack(QObject *parent);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void responderHack(QWidget *old, QWidget *now);
|
void responderHack(QWidget *old, QWidget *now);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ public:
|
|||||||
|
|
||||||
MacWebKitHelpWidget *widget() const { return m_widget; }
|
MacWebKitHelpWidget *widget() const { return m_widget; }
|
||||||
|
|
||||||
public slots:
|
public:
|
||||||
void scaleUp();
|
void scaleUp();
|
||||||
void scaleDown();
|
void scaleDown();
|
||||||
void resetScale();
|
void resetScale();
|
||||||
@@ -119,14 +119,12 @@ public slots:
|
|||||||
void backward();
|
void backward();
|
||||||
void print(QPrinter *printer);
|
void print(QPrinter *printer);
|
||||||
|
|
||||||
public slots:
|
|
||||||
void slotLoadStarted();
|
void slotLoadStarted();
|
||||||
void slotLoadFinished();
|
void slotLoadFinished();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void goToHistoryItem();
|
void goToHistoryItem();
|
||||||
|
|
||||||
private:
|
|
||||||
DOMRange *findText(NSString *text, bool forward, bool caseSensitive, DOMNode *startNode,
|
DOMRange *findText(NSString *text, bool forward, bool caseSensitive, DOMNode *startNode,
|
||||||
int startOffset);
|
int startOffset);
|
||||||
MacWebKitHelpWidget *m_widget;
|
MacWebKitHelpWidget *m_widget;
|
||||||
|
|||||||
@@ -657,7 +657,7 @@ void MacWebKitHelpViewer::addBackHistoryItems(QMenu *backMenu)
|
|||||||
QAction *action = new QAction(backMenu);
|
QAction *action = new QAction(backMenu);
|
||||||
action->setText(QString::fromNSString([list itemAtIndex:historyIndex].title));
|
action->setText(QString::fromNSString([list itemAtIndex:historyIndex].title));
|
||||||
action->setData(historyIndex);
|
action->setData(historyIndex);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(goToHistoryItem()));
|
connect(action, &QAction::triggered, this, &MacWebKitHelpViewer::goToHistoryItem);
|
||||||
backMenu->addAction(action);
|
backMenu->addAction(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -673,7 +673,7 @@ void MacWebKitHelpViewer::addForwardHistoryItems(QMenu *forwardMenu)
|
|||||||
QAction *action = new QAction(forwardMenu);
|
QAction *action = new QAction(forwardMenu);
|
||||||
action->setText(QString::fromNSString([list itemAtIndex:historyIndex].title));
|
action->setText(QString::fromNSString([list itemAtIndex:historyIndex].title));
|
||||||
action->setData(historyIndex);
|
action->setData(historyIndex);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(goToHistoryItem()));
|
connect(action, &QAction::triggered, this, &MacWebKitHelpViewer::goToHistoryItem);
|
||||||
forwardMenu->addAction(action);
|
forwardMenu->addAction(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -878,8 +878,8 @@ void MacWebKitHelpViewer::goToHistoryItem()
|
|||||||
MacResponderHack::MacResponderHack(QObject *parent)
|
MacResponderHack::MacResponderHack(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
{
|
{
|
||||||
connect(qApp, SIGNAL(focusChanged(QWidget*,QWidget*)),
|
connect(qApp, &QApplication::focusChanged,
|
||||||
this, SLOT(responderHack(QWidget*,QWidget*)));
|
this, &MacResponderHack::responderHack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MacResponderHack::responderHack(QWidget *old, QWidget *now)
|
void MacResponderHack::responderHack(QWidget *old, QWidget *now)
|
||||||
|
|||||||
@@ -65,15 +65,16 @@ OpenPagesManager::OpenPagesManager(QObject *parent)
|
|||||||
m_comboBox = new QComboBox;
|
m_comboBox = new QComboBox;
|
||||||
m_comboBox->setModel(m_model);
|
m_comboBox->setModel(m_model);
|
||||||
m_comboBox->setContextMenuPolicy(Qt::CustomContextMenu);
|
m_comboBox->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
connect(m_comboBox, SIGNAL(activated(int)), this, SLOT(setCurrentPage(int)));
|
connect(m_comboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
|
||||||
connect(m_comboBox, SIGNAL(customContextMenuRequested(QPoint)), this,
|
this, &OpenPagesManager::setCurrentPageByRow);
|
||||||
SLOT(openPagesContextMenu(QPoint)));
|
connect(m_comboBox, &QWidget::customContextMenuRequested, this,
|
||||||
|
&OpenPagesManager::openPagesContextMenu);
|
||||||
|
|
||||||
m_openPagesSwitcher = new OpenPagesSwitcher(m_model);
|
m_openPagesSwitcher = new OpenPagesSwitcher(m_model);
|
||||||
connect(m_openPagesSwitcher, SIGNAL(closePage(QModelIndex)), this,
|
connect(m_openPagesSwitcher, &OpenPagesSwitcher::closePage, this,
|
||||||
SLOT(closePage(QModelIndex)));
|
&OpenPagesManager::closePage);
|
||||||
connect(m_openPagesSwitcher, SIGNAL(setCurrentPage(QModelIndex)), this,
|
connect(m_openPagesSwitcher, &OpenPagesSwitcher::setCurrentPage,
|
||||||
SLOT(setCurrentPage(QModelIndex)));
|
this, &OpenPagesManager::setCurrentPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenPagesManager ::~OpenPagesManager()
|
OpenPagesManager ::~OpenPagesManager()
|
||||||
@@ -92,12 +93,12 @@ QWidget *OpenPagesManager::openPagesWidget() const
|
|||||||
{
|
{
|
||||||
if (!m_openPagesWidget) {
|
if (!m_openPagesWidget) {
|
||||||
m_openPagesWidget = new OpenPagesWidget(m_model);
|
m_openPagesWidget = new OpenPagesWidget(m_model);
|
||||||
connect(m_openPagesWidget, SIGNAL(setCurrentPage(QModelIndex)), this,
|
connect(m_openPagesWidget, &OpenPagesWidget::setCurrentPage,
|
||||||
SLOT(setCurrentPage(QModelIndex)));
|
this, &OpenPagesManager::setCurrentPage);
|
||||||
connect(m_openPagesWidget, SIGNAL(closePage(QModelIndex)), this,
|
connect(m_openPagesWidget, &OpenPagesWidget::closePage,
|
||||||
SLOT(closePage(QModelIndex)));
|
this, &OpenPagesManager::closePage);
|
||||||
connect(m_openPagesWidget, SIGNAL(closePagesExcept(QModelIndex)), this,
|
connect(m_openPagesWidget, &OpenPagesWidget::closePagesExcept,
|
||||||
SLOT(closePagesExcept(QModelIndex)));
|
this, &OpenPagesManager::closePagesExcept);
|
||||||
}
|
}
|
||||||
return m_openPagesWidget;
|
return m_openPagesWidget;
|
||||||
}
|
}
|
||||||
@@ -166,13 +167,11 @@ void OpenPagesManager::setupInitialPages()
|
|||||||
CentralWidget::instance()->addViewer(m_model->pageAt(i));
|
CentralWidget::instance()->addViewer(m_model->pageAt(i));
|
||||||
|
|
||||||
emit pagesChanged();
|
emit pagesChanged();
|
||||||
setCurrentPage((initialPage >= m_model->rowCount())
|
setCurrentPageByRow((initialPage >= m_model->rowCount())
|
||||||
? m_model->rowCount() - 1 : initialPage);
|
? m_model->rowCount() - 1 : initialPage);
|
||||||
m_openPagesSwitcher->selectCurrentPage();
|
m_openPagesSwitcher->selectCurrentPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- public slots
|
|
||||||
|
|
||||||
HelpViewer *OpenPagesManager::createPage()
|
HelpViewer *OpenPagesManager::createPage()
|
||||||
{
|
{
|
||||||
return createPage(QUrl(Help::Constants::AboutBlank));
|
return createPage(QUrl(Help::Constants::AboutBlank));
|
||||||
@@ -190,12 +189,12 @@ HelpViewer *OpenPagesManager::createPage(const QUrl &url)
|
|||||||
CentralWidget::instance()->addViewer(page);
|
CentralWidget::instance()->addViewer(page);
|
||||||
|
|
||||||
emit pagesChanged();
|
emit pagesChanged();
|
||||||
setCurrentPage(index);
|
setCurrentPageByRow(index);
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenPagesManager::setCurrentPage(int index)
|
void OpenPagesManager::setCurrentPageByRow(int index)
|
||||||
{
|
{
|
||||||
CentralWidget::instance()->setCurrentViewer(m_model->pageAt(index));
|
CentralWidget::instance()->setCurrentViewer(m_model->pageAt(index));
|
||||||
|
|
||||||
@@ -207,7 +206,7 @@ void OpenPagesManager::setCurrentPage(int index)
|
|||||||
void OpenPagesManager::setCurrentPage(const QModelIndex &index)
|
void OpenPagesManager::setCurrentPage(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
if (index.isValid())
|
if (index.isValid())
|
||||||
setCurrentPage(index.row());
|
setCurrentPageByRow(index.row());
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenPagesManager::closeCurrentPage()
|
void OpenPagesManager::closeCurrentPage()
|
||||||
@@ -299,8 +298,6 @@ void OpenPagesManager::showTwicherOrSelectPage() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- private slots
|
|
||||||
|
|
||||||
void OpenPagesManager::openPagesContextMenu(const QPoint &point)
|
void OpenPagesManager::openPagesContextMenu(const QPoint &point)
|
||||||
{
|
{
|
||||||
const QModelIndex &index = m_model->index(m_comboBox->currentIndex(), 0);
|
const QModelIndex &index = m_model->index(m_comboBox->currentIndex(), 0);
|
||||||
|
|||||||
@@ -58,11 +58,10 @@ public:
|
|||||||
int pageCount() const;
|
int pageCount() const;
|
||||||
void setupInitialPages();
|
void setupInitialPages();
|
||||||
|
|
||||||
public slots:
|
|
||||||
HelpViewer *createPage();
|
HelpViewer *createPage();
|
||||||
HelpViewer *createPage(const QUrl &url);
|
HelpViewer *createPage(const QUrl &url);
|
||||||
|
|
||||||
void setCurrentPage(int index);
|
void setCurrentPageByRow(int index);
|
||||||
void setCurrentPage(const QModelIndex &index);
|
void setCurrentPage(const QModelIndex &index);
|
||||||
|
|
||||||
void closeCurrentPage();
|
void closeCurrentPage();
|
||||||
@@ -78,11 +77,8 @@ signals:
|
|||||||
private:
|
private:
|
||||||
void removePage(int index);
|
void removePage(int index);
|
||||||
void showTwicherOrSelectPage() const;
|
void showTwicherOrSelectPage() const;
|
||||||
|
|
||||||
private slots:
|
|
||||||
void openPagesContextMenu(const QPoint &point);
|
void openPagesContextMenu(const QPoint &point);
|
||||||
|
|
||||||
private:
|
|
||||||
QComboBox *m_comboBox;
|
QComboBox *m_comboBox;
|
||||||
OpenPagesModel *m_model;
|
OpenPagesModel *m_model;
|
||||||
mutable OpenPagesWidget *m_openPagesWidget;
|
mutable OpenPagesWidget *m_openPagesWidget;
|
||||||
|
|||||||
@@ -50,10 +50,9 @@ public:
|
|||||||
void removePage(int index);
|
void removePage(int index);
|
||||||
HelpViewer *pageAt(int index) const;
|
HelpViewer *pageAt(int index) const;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void handleTitleChanged();
|
void handleTitleChanged();
|
||||||
|
|
||||||
private:
|
|
||||||
QList<HelpViewer *> m_pages;
|
QList<HelpViewer *> m_pages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ OpenPagesWidget::OpenPagesWidget(OpenPagesModel *sourceModel, QWidget *parent)
|
|||||||
this, &OpenPagesWidget::handleCloseActivated);
|
this, &OpenPagesWidget::handleCloseActivated);
|
||||||
connect(this, &OpenDocumentsTreeView::customContextMenuRequested,
|
connect(this, &OpenDocumentsTreeView::customContextMenuRequested,
|
||||||
this, &OpenPagesWidget::contextMenuRequested);
|
this, &OpenPagesWidget::contextMenuRequested);
|
||||||
connect(model(), SIGNAL(rowsInserted(QModelIndex,int,int)),
|
connect(model(), &QAbstractItemModel::rowsInserted,
|
||||||
this, SLOT(updateCloseButtonVisibility()));
|
this, &OpenPagesWidget::updateCloseButtonVisibility);
|
||||||
connect(model(), SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
connect(model(), &QAbstractItemModel::rowsRemoved,
|
||||||
this, SLOT(updateCloseButtonVisibility()));
|
this, &OpenPagesWidget::updateCloseButtonVisibility);
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenPagesWidget::~OpenPagesWidget()
|
OpenPagesWidget::~OpenPagesWidget()
|
||||||
@@ -77,7 +77,7 @@ void OpenPagesWidget::allowContextMenu(bool ok)
|
|||||||
m_allowContextMenu = ok;
|
m_allowContextMenu = ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- private slots
|
// -- private
|
||||||
|
|
||||||
void OpenPagesWidget::contextMenuRequested(QPoint pos)
|
void OpenPagesWidget::contextMenuRequested(QPoint pos)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -49,13 +49,12 @@ signals:
|
|||||||
void closePage(const QModelIndex &index);
|
void closePage(const QModelIndex &index);
|
||||||
void closePagesExcept(const QModelIndex &index);
|
void closePagesExcept(const QModelIndex &index);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void contextMenuRequested(QPoint pos);
|
void contextMenuRequested(QPoint pos);
|
||||||
void handleActivated(const QModelIndex &index);
|
void handleActivated(const QModelIndex &index);
|
||||||
void handleCloseActivated(const QModelIndex &index);
|
void handleCloseActivated(const QModelIndex &index);
|
||||||
void updateCloseButtonVisibility();
|
void updateCloseButtonVisibility();
|
||||||
|
|
||||||
private:
|
|
||||||
bool m_allowContextMenu;
|
bool m_allowContextMenu;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -94,9 +94,9 @@ HelpNetworkReply::HelpNetworkReply(const QNetworkRequest &request,
|
|||||||
|
|
||||||
setHeader(QNetworkRequest::ContentTypeHeader, mimeType);
|
setHeader(QNetworkRequest::ContentTypeHeader, mimeType);
|
||||||
setHeader(QNetworkRequest::ContentLengthHeader, QByteArray::number(dataLength));
|
setHeader(QNetworkRequest::ContentLengthHeader, QByteArray::number(dataLength));
|
||||||
QTimer::singleShot(0, this, SIGNAL(metaDataChanged()));
|
QTimer::singleShot(0, this, &QNetworkReply::metaDataChanged);
|
||||||
QTimer::singleShot(0, this, SIGNAL(readyRead()));
|
QTimer::singleShot(0, this, &QIODevice::readyRead);
|
||||||
QTimer::singleShot(0, this, SIGNAL(finished()));
|
QTimer::singleShot(0, this, &QNetworkReply::finished);
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 HelpNetworkReply::readData(char *buffer, qint64 maxlen)
|
qint64 HelpNetworkReply::readData(char *buffer, qint64 maxlen)
|
||||||
@@ -145,8 +145,8 @@ QtWebKitHelpPage::QtWebKitHelpPage(QObject *parent)
|
|||||||
, m_keyboardModifiers(Qt::NoModifier)
|
, m_keyboardModifiers(Qt::NoModifier)
|
||||||
{
|
{
|
||||||
setForwardUnsupportedContent(true);
|
setForwardUnsupportedContent(true);
|
||||||
connect(this, SIGNAL(unsupportedContent(QNetworkReply*)), this,
|
connect(this, &QWebPage::unsupportedContent, this,
|
||||||
SLOT(onHandleUnsupportedContent(QNetworkReply*)));
|
&QtWebKitHelpPage::onHandleUnsupportedContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWebPage *QtWebKitHelpPage::createWindow(QWebPage::WebWindowType)
|
QWebPage *QtWebKitHelpPage::createWindow(QWebPage::WebWindowType)
|
||||||
@@ -257,8 +257,8 @@ QtWebKitHelpWidget::QtWebKitHelpWidget(QtWebKitHelpViewer *parent)
|
|||||||
setPage(new QtWebKitHelpPage(this));
|
setPage(new QtWebKitHelpPage(this));
|
||||||
HelpNetworkAccessManager *manager = new HelpNetworkAccessManager(this);
|
HelpNetworkAccessManager *manager = new HelpNetworkAccessManager(this);
|
||||||
page()->setNetworkAccessManager(manager);
|
page()->setNetworkAccessManager(manager);
|
||||||
connect(manager, SIGNAL(finished(QNetworkReply*)), this,
|
connect(manager, &QNetworkAccessManager::finished, this,
|
||||||
SLOT(slotNetworkReplyFinished(QNetworkReply*)));
|
&QtWebKitHelpWidget::slotNetworkReplyFinished);
|
||||||
|
|
||||||
QAction* action = pageAction(QWebPage::OpenLinkInNewWindow);
|
QAction* action = pageAction(QWebPage::OpenLinkInNewWindow);
|
||||||
action->setText(tr("Open Link as New Page"));
|
action->setText(tr("Open Link as New Page"));
|
||||||
@@ -267,12 +267,12 @@ QtWebKitHelpWidget::QtWebKitHelpWidget(QtWebKitHelpViewer *parent)
|
|||||||
pageAction(QWebPage::DownloadImageToDisk)->setVisible(false);
|
pageAction(QWebPage::DownloadImageToDisk)->setVisible(false);
|
||||||
pageAction(QWebPage::OpenImageInNewWindow)->setVisible(false);
|
pageAction(QWebPage::OpenImageInNewWindow)->setVisible(false);
|
||||||
|
|
||||||
connect(pageAction(QWebPage::Copy), SIGNAL(changed()), this,
|
connect(pageAction(QWebPage::Copy), &QAction::changed, this,
|
||||||
SLOT(actionChanged()));
|
&QtWebKitHelpWidget::actionChanged);
|
||||||
connect(pageAction(QWebPage::Back), SIGNAL(changed()), this,
|
connect(pageAction(QWebPage::Back), &QAction::changed, this,
|
||||||
SLOT(actionChanged()));
|
&QtWebKitHelpWidget::actionChanged);
|
||||||
connect(pageAction(QWebPage::Forward), SIGNAL(changed()), this,
|
connect(pageAction(QWebPage::Forward), &QAction::changed, this,
|
||||||
SLOT(actionChanged()));
|
&QtWebKitHelpWidget::actionChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
QtWebKitHelpWidget::~QtWebKitHelpWidget()
|
QtWebKitHelpWidget::~QtWebKitHelpWidget()
|
||||||
@@ -289,8 +289,6 @@ void QtWebKitHelpWidget::scaleDown()
|
|||||||
setZoomFactor(qMax(qreal(0.0), zoomFactor() - qreal(0.1)));
|
setZoomFactor(qMax(qreal(0.0), zoomFactor() - qreal(0.1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- public slots
|
|
||||||
|
|
||||||
void QtWebKitHelpWidget::copy()
|
void QtWebKitHelpWidget::copy()
|
||||||
{
|
{
|
||||||
triggerPageAction(QWebPage::Copy);
|
triggerPageAction(QWebPage::Copy);
|
||||||
@@ -348,7 +346,7 @@ void QtWebKitHelpWidget::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
delete menu;
|
delete menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- private slots
|
// -- private
|
||||||
|
|
||||||
void QtWebKitHelpWidget::actionChanged()
|
void QtWebKitHelpWidget::actionChanged()
|
||||||
{
|
{
|
||||||
@@ -395,13 +393,13 @@ QtWebKitHelpViewer::QtWebKitHelpViewer(QWidget *parent)
|
|||||||
p.setColor(QPalette::Text, Qt::black);
|
p.setColor(QPalette::Text, Qt::black);
|
||||||
setPalette(p);
|
setPalette(p);
|
||||||
|
|
||||||
connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SIGNAL(sourceChanged(QUrl)));
|
connect(m_webView, &QWebView::urlChanged, this, &HelpViewer::sourceChanged);
|
||||||
connect(m_webView, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted()));
|
connect(m_webView, &QWebView::loadStarted, this, &QtWebKitHelpViewer::slotLoadStarted);
|
||||||
connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished()));
|
connect(m_webView, &QWebView::loadFinished, this, &QtWebKitHelpViewer::slotLoadFinished);
|
||||||
connect(m_webView, SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged()));
|
connect(m_webView, &QWebView::titleChanged, this, &HelpViewer::titleChanged);
|
||||||
connect(m_webView->page(), SIGNAL(printRequested(QWebFrame*)), this, SIGNAL(printRequested()));
|
connect(m_webView->page(), &QWebPage::printRequested, this, &HelpViewer::printRequested);
|
||||||
connect(m_webView, SIGNAL(backwardAvailable(bool)), this, SIGNAL(backwardAvailable(bool)));
|
connect(m_webView, &QtWebKitHelpWidget::backwardAvailable, this, &HelpViewer::backwardAvailable);
|
||||||
connect(m_webView, SIGNAL(forwardAvailable(bool)), this, SIGNAL(forwardAvailable(bool)));
|
connect(m_webView, &QtWebKitHelpWidget::forwardAvailable, this, &HelpViewer::forwardAvailable);
|
||||||
connect(page(), &QtWebKitHelpPage::linkHovered, this, &QtWebKitHelpViewer::setToolTip);
|
connect(page(), &QtWebKitHelpPage::linkHovered, this, &QtWebKitHelpViewer::setToolTip);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,7 +529,7 @@ void QtWebKitHelpViewer::addBackHistoryItems(QMenu *backMenu)
|
|||||||
QAction *action = new QAction(backMenu);
|
QAction *action = new QAction(backMenu);
|
||||||
action->setText(items.at(i).title());
|
action->setText(items.at(i).title());
|
||||||
action->setData(i);
|
action->setData(i);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(goToBackHistoryItem()));
|
connect(action, &QAction::triggered, this, &QtWebKitHelpViewer::goToBackHistoryItem);
|
||||||
backMenu->addAction(action);
|
backMenu->addAction(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -545,7 +543,7 @@ void QtWebKitHelpViewer::addForwardHistoryItems(QMenu *forwardMenu)
|
|||||||
QAction *action = new QAction(forwardMenu);
|
QAction *action = new QAction(forwardMenu);
|
||||||
action->setText(items.at(i).title());
|
action->setText(items.at(i).title());
|
||||||
action->setData(i);
|
action->setData(i);
|
||||||
connect(action, SIGNAL(triggered()), this, SLOT(goToForwardHistoryItem()));
|
connect(action, &QAction::triggered, this, &QtWebKitHelpViewer::goToForwardHistoryItem);
|
||||||
forwardMenu->addAction(action);
|
forwardMenu->addAction(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ public:
|
|||||||
|
|
||||||
QtWebKitHelpPage *page() const;
|
QtWebKitHelpPage *page() const;
|
||||||
|
|
||||||
public slots:
|
|
||||||
void scaleUp();
|
void scaleUp();
|
||||||
void scaleDown();
|
void scaleDown();
|
||||||
void resetScale();
|
void resetScale();
|
||||||
@@ -81,12 +80,11 @@ public slots:
|
|||||||
void backward();
|
void backward();
|
||||||
void print(QPrinter *printer);
|
void print(QPrinter *printer);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void goToBackHistoryItem();
|
void goToBackHistoryItem();
|
||||||
void goToForwardHistoryItem();
|
void goToForwardHistoryItem();
|
||||||
void goToHistoryItem(bool forward);
|
void goToHistoryItem(bool forward);
|
||||||
|
|
||||||
private:
|
|
||||||
QString m_oldHighlightId;
|
QString m_oldHighlightId;
|
||||||
QString m_oldHighlightStyle;
|
QString m_oldHighlightStyle;
|
||||||
QtWebKitHelpWidget *m_webView;
|
QtWebKitHelpWidget *m_webView;
|
||||||
@@ -102,8 +100,6 @@ public:
|
|||||||
|
|
||||||
void scaleUp();
|
void scaleUp();
|
||||||
void scaleDown();
|
void scaleDown();
|
||||||
|
|
||||||
public slots:
|
|
||||||
void copy();
|
void copy();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -117,11 +113,9 @@ protected:
|
|||||||
void mouseReleaseEvent(QMouseEvent *event);
|
void mouseReleaseEvent(QMouseEvent *event);
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void actionChanged();
|
void actionChanged();
|
||||||
void slotNetworkReplyFinished(QNetworkReply *reply);
|
void slotNetworkReplyFinished(QNetworkReply *reply);
|
||||||
|
|
||||||
private:
|
|
||||||
bool eventFilter(QObject *obj, QEvent *event);
|
bool eventFilter(QObject *obj, QEvent *event);
|
||||||
|
|
||||||
QtWebKitHelpViewer *m_parent;
|
QtWebKitHelpViewer *m_parent;
|
||||||
@@ -140,10 +134,9 @@ protected:
|
|||||||
virtual bool acceptNavigationRequest(QWebFrame *frame,
|
virtual bool acceptNavigationRequest(QWebFrame *frame,
|
||||||
const QNetworkRequest &request, NavigationType type);
|
const QNetworkRequest &request, NavigationType type);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void onHandleUnsupportedContent(QNetworkReply *reply);
|
void onHandleUnsupportedContent(QNetworkReply *reply);
|
||||||
|
|
||||||
private:
|
|
||||||
QUrl m_loadingUrl;
|
QUrl m_loadingUrl;
|
||||||
bool closeNewTabIfNeeded;
|
bool closeNewTabIfNeeded;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ RemoteFilterOptions::RemoteFilterOptions(RemoteHelpFilter *filter, QWidget *pare
|
|||||||
this, &RemoteFilterOptions::addNewItem);
|
this, &RemoteFilterOptions::addNewItem);
|
||||||
connect(m_ui.remove, &QPushButton::clicked,
|
connect(m_ui.remove, &QPushButton::clicked,
|
||||||
this, &RemoteFilterOptions::removeItem);
|
this, &RemoteFilterOptions::removeItem);
|
||||||
connect(m_ui.listWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(updateRemoveButton()));
|
connect(m_ui.listWidget, &QListWidget::currentItemChanged,
|
||||||
|
this, &RemoteFilterOptions::updateRemoveButton);
|
||||||
updateRemoveButton();
|
updateRemoveButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,12 +69,11 @@ class RemoteFilterOptions : public QDialog
|
|||||||
public:
|
public:
|
||||||
explicit RemoteFilterOptions(RemoteHelpFilter *filter, QWidget *parent = 0);
|
explicit RemoteFilterOptions(RemoteHelpFilter *filter, QWidget *parent = 0);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void addNewItem();
|
void addNewItem();
|
||||||
void removeItem();
|
void removeItem();
|
||||||
void updateRemoveButton();
|
void updateRemoveButton();
|
||||||
|
|
||||||
private:
|
|
||||||
RemoteHelpFilter *m_filter;
|
RemoteHelpFilter *m_filter;
|
||||||
Ui::RemoteFilterOptions m_ui;
|
Ui::RemoteFilterOptions m_ui;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -131,24 +131,24 @@ void SearchWidget::showEvent(QShowEvent *event)
|
|||||||
|
|
||||||
setFocusProxy(queryWidget);
|
setFocusProxy(queryWidget);
|
||||||
|
|
||||||
connect(queryWidget, SIGNAL(search()), this, SLOT(search()));
|
connect(queryWidget, &QHelpSearchQueryWidget::search, this, &SearchWidget::search);
|
||||||
connect(resultWidget, &QHelpSearchResultWidget::requestShowLink, this,
|
connect(resultWidget, &QHelpSearchResultWidget::requestShowLink, this,
|
||||||
[this](const QUrl &url) {
|
[this](const QUrl &url) {
|
||||||
emit linkActivated(url, currentSearchTerms(), false/*newPage*/);
|
emit linkActivated(url, currentSearchTerms(), false/*newPage*/);
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(searchEngine, SIGNAL(searchingStarted()), this,
|
connect(searchEngine, &QHelpSearchEngine::searchingStarted, this,
|
||||||
SLOT(searchingStarted()));
|
&SearchWidget::searchingStarted);
|
||||||
connect(searchEngine, SIGNAL(searchingFinished(int)), this,
|
connect(searchEngine, &QHelpSearchEngine::searchingFinished, this,
|
||||||
SLOT(searchingFinished(int)));
|
&SearchWidget::searchingFinished);
|
||||||
|
|
||||||
QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
|
QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
|
||||||
browser->viewport()->installEventFilter(this);
|
browser->viewport()->installEventFilter(this);
|
||||||
|
|
||||||
connect(searchEngine, SIGNAL(indexingStarted()), this,
|
connect(searchEngine, &QHelpSearchEngine::indexingStarted, this,
|
||||||
SLOT(indexingStarted()));
|
&SearchWidget::indexingStarted);
|
||||||
connect(searchEngine, SIGNAL(indexingFinished()), this,
|
connect(searchEngine, &QHelpSearchEngine::indexingFinished, this,
|
||||||
SLOT(indexingFinished()));
|
&SearchWidget::indexingFinished);
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&LocalHelpManager::helpEngine(), "setupFinished",
|
QMetaObject::invokeMethod(&LocalHelpManager::helpEngine(), "setupFinished",
|
||||||
Qt::QueuedConnection);
|
Qt::QueuedConnection);
|
||||||
@@ -207,7 +207,8 @@ void SearchWidget::indexingStarted()
|
|||||||
m_progress->reportStarted();
|
m_progress->reportStarted();
|
||||||
|
|
||||||
m_watcher.setFuture(m_progress->future());
|
m_watcher.setFuture(m_progress->future());
|
||||||
connect(&m_watcher, SIGNAL(canceled()), searchEngine, SLOT(cancelIndexing()));
|
connect(&m_watcher, &QFutureWatcherBase::canceled,
|
||||||
|
searchEngine, &QHelpSearchEngine::cancelIndexing);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchWidget::indexingFinished()
|
void SearchWidget::indexingFinished()
|
||||||
@@ -259,9 +260,9 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
|
|||||||
openLinkInNewTab = menu.addAction(tr("Open Link as New Page"));
|
openLinkInNewTab = menu.addAction(tr("Open Link as New Page"));
|
||||||
copyAnchorAction = menu.addAction(tr("Copy Link"));
|
copyAnchorAction = menu.addAction(tr("Copy Link"));
|
||||||
} else if (browser->textCursor().hasSelection()) {
|
} else if (browser->textCursor().hasSelection()) {
|
||||||
menu.addAction(tr("Copy"), browser, SLOT(copy()));
|
connect(menu.addAction(tr("Copy")), &QAction::triggered, browser, &QTextEdit::copy);
|
||||||
} else {
|
} else {
|
||||||
menu.addAction(tr("Reload"), browser, SLOT(reload()));
|
connect(menu.addAction(tr("Reload")), &QAction::triggered, browser, &QTextBrowser::reload);
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction *usedAction = menu.exec(mapToGlobal(contextMenuEvent->pos()));
|
QAction *usedAction = menu.exec(mapToGlobal(contextMenuEvent->pos()));
|
||||||
@@ -301,8 +302,8 @@ SearchSideBarItem::SearchSideBarItem()
|
|||||||
: SideBarItem(new SearchWidget, QLatin1String(Constants::HELP_SEARCH))
|
: SideBarItem(new SearchWidget, QLatin1String(Constants::HELP_SEARCH))
|
||||||
{
|
{
|
||||||
widget()->setWindowTitle(HelpPlugin::tr(Constants::SB_SEARCH));
|
widget()->setWindowTitle(HelpPlugin::tr(Constants::SB_SEARCH));
|
||||||
connect(widget(), SIGNAL(linkActivated(QUrl,QStringList,bool)),
|
connect(static_cast<SearchWidget *>(widget()), &SearchWidget::linkActivated,
|
||||||
this, SIGNAL(linkActivated(QUrl,QStringList,bool)));
|
this, &SearchSideBarItem::linkActivated);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QToolButton *> SearchSideBarItem::createToolBarWidgets()
|
QList<QToolButton *> SearchSideBarItem::createToolBarWidgets()
|
||||||
@@ -310,7 +311,7 @@ QList<QToolButton *> SearchSideBarItem::createToolBarWidgets()
|
|||||||
QToolButton *reindexButton = new QToolButton;
|
QToolButton *reindexButton = new QToolButton;
|
||||||
reindexButton->setIcon(Core::Icons::RELOAD.icon());
|
reindexButton->setIcon(Core::Icons::RELOAD.icon());
|
||||||
reindexButton->setToolTip(tr("Regenerate Index"));
|
reindexButton->setToolTip(tr("Regenerate Index"));
|
||||||
connect(reindexButton, SIGNAL(clicked()),
|
connect(reindexButton, &QAbstractButton::clicked,
|
||||||
widget(), SLOT(reindexDocumentation()));
|
static_cast<SearchWidget *>(widget()), &SearchWidget::reindexDocumentation);
|
||||||
return QList<QToolButton *>() << reindexButton;
|
return QList<QToolButton *>() << reindexButton;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,8 +66,6 @@ public:
|
|||||||
void zoomOut();
|
void zoomOut();
|
||||||
void resetZoom();
|
void resetZoom();
|
||||||
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void reindexDocumentation();
|
void reindexDocumentation();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -76,7 +74,7 @@ signals:
|
|||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent *event);
|
void showEvent(QShowEvent *event);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void search() const;
|
void search() const;
|
||||||
|
|
||||||
void searchingStarted();
|
void searchingStarted();
|
||||||
@@ -85,12 +83,10 @@ private slots:
|
|||||||
void indexingStarted();
|
void indexingStarted();
|
||||||
void indexingFinished();
|
void indexingFinished();
|
||||||
|
|
||||||
private:
|
|
||||||
bool eventFilter(QObject* o, QEvent *e);
|
bool eventFilter(QObject* o, QEvent *e);
|
||||||
void contextMenuEvent(QContextMenuEvent *contextMenuEvent);
|
void contextMenuEvent(QContextMenuEvent *contextMenuEvent);
|
||||||
QStringList currentSearchTerms() const;
|
QStringList currentSearchTerms() const;
|
||||||
|
|
||||||
private:
|
|
||||||
int zoomCount;
|
int zoomCount;
|
||||||
|
|
||||||
QFutureWatcher<void> m_watcher;
|
QFutureWatcher<void> m_watcher;
|
||||||
|
|||||||
@@ -68,9 +68,9 @@ TextBrowserHelpViewer::TextBrowserHelpViewer(QWidget *parent)
|
|||||||
|
|
||||||
connect(m_textBrowser, &TextBrowserHelpWidget::anchorClicked,
|
connect(m_textBrowser, &TextBrowserHelpWidget::anchorClicked,
|
||||||
this, &TextBrowserHelpViewer::setSource);
|
this, &TextBrowserHelpViewer::setSource);
|
||||||
connect(m_textBrowser, SIGNAL(sourceChanged(QUrl)), this, SIGNAL(titleChanged()));
|
connect(m_textBrowser, &QTextBrowser::sourceChanged, this, &HelpViewer::titleChanged);
|
||||||
connect(m_textBrowser, SIGNAL(forwardAvailable(bool)), this, SIGNAL(forwardAvailable(bool)));
|
connect(m_textBrowser, &QTextBrowser::forwardAvailable, this, &HelpViewer::forwardAvailable);
|
||||||
connect(m_textBrowser, SIGNAL(backwardAvailable(bool)), this, SIGNAL(backwardAvailable(bool)));
|
connect(m_textBrowser, &QTextBrowser::backwardAvailable, this, &HelpViewer::backwardAvailable);
|
||||||
}
|
}
|
||||||
|
|
||||||
TextBrowserHelpViewer::~TextBrowserHelpViewer()
|
TextBrowserHelpViewer::~TextBrowserHelpViewer()
|
||||||
@@ -256,8 +256,6 @@ bool TextBrowserHelpViewer::findText(const QString &text, Core::FindFlags flags,
|
|||||||
return !cursorIsNull;
|
return !cursorIsNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- public slots
|
|
||||||
|
|
||||||
void TextBrowserHelpViewer::copy()
|
void TextBrowserHelpViewer::copy()
|
||||||
{
|
{
|
||||||
m_textBrowser->copy();
|
m_textBrowser->copy();
|
||||||
@@ -386,9 +384,9 @@ void TextBrowserHelpWidget::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
}
|
}
|
||||||
copyAnchorAction = menu.addAction(tr("Copy Link"));
|
copyAnchorAction = menu.addAction(tr("Copy Link"));
|
||||||
} else if (!textCursor().selectedText().isEmpty()) {
|
} else if (!textCursor().selectedText().isEmpty()) {
|
||||||
menu.addAction(tr("Copy"), this, SLOT(copy()));
|
connect(menu.addAction(tr("Copy")), &QAction::triggered, this, &QTextEdit::copy);
|
||||||
} else {
|
} else {
|
||||||
menu.addAction(tr("Reload"), this, SLOT(reload()));
|
connect(menu.addAction(tr("Reload")), &QAction::triggered, this, &QTextBrowser::reload);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (copyAnchorAction == menu.exec(event->globalPos()))
|
if (copyAnchorAction == menu.exec(event->globalPos()))
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ public:
|
|||||||
bool findText(const QString &text, Core::FindFlags flags,
|
bool findText(const QString &text, Core::FindFlags flags,
|
||||||
bool incremental, bool fromSearch, bool *wrapped = 0);
|
bool incremental, bool fromSearch, bool *wrapped = 0);
|
||||||
|
|
||||||
public slots:
|
|
||||||
void scaleUp();
|
void scaleUp();
|
||||||
void scaleDown();
|
void scaleDown();
|
||||||
void resetScale();
|
void resetScale();
|
||||||
@@ -77,10 +76,9 @@ public slots:
|
|||||||
void backward();
|
void backward();
|
||||||
void print(QPrinter *printer);
|
void print(QPrinter *printer);
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void goToHistoryItem();
|
void goToHistoryItem();
|
||||||
|
|
||||||
private:
|
|
||||||
TextBrowserHelpWidget *m_textBrowser;
|
TextBrowserHelpWidget *m_textBrowser;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ public:
|
|||||||
|
|
||||||
WebEngineHelpPage *page() const;
|
WebEngineHelpPage *page() const;
|
||||||
|
|
||||||
public slots:
|
|
||||||
void scaleUp() override;
|
void scaleUp() override;
|
||||||
void scaleDown() override;
|
void scaleDown() override;
|
||||||
void resetScale() override;
|
void resetScale() override;
|
||||||
|
|||||||
@@ -89,13 +89,12 @@ public:
|
|||||||
QString displayName() const override;
|
QString displayName() const override;
|
||||||
QString summaryText() const override;
|
QString summaryText() const override;
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void buildArgumentsChanged();
|
void buildArgumentsChanged();
|
||||||
void resetDefaultArguments();
|
void resetDefaultArguments();
|
||||||
void extraArgumentsChanged();
|
void extraArgumentsChanged();
|
||||||
void updateDetails();
|
void updateDetails();
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::IosBuildStep *m_ui;
|
Ui::IosBuildStep *m_ui;
|
||||||
IosBuildStep *m_buildStep;
|
IosBuildStep *m_buildStep;
|
||||||
QString m_summaryText;
|
QString m_summaryText;
|
||||||
|
|||||||
@@ -344,7 +344,8 @@ void IosConfigurations::setDeveloperPath(const FileName &devPath)
|
|||||||
m_instance->save();
|
m_instance->save();
|
||||||
if (!hasDevPath && !devPath.isEmpty()) {
|
if (!hasDevPath && !devPath.isEmpty()) {
|
||||||
hasDevPath = true;
|
hasDevPath = true;
|
||||||
QTimer::singleShot(1000, IosDeviceManager::instance(), SLOT(monitorAvailableDevices()));
|
QTimer::singleShot(1000, IosDeviceManager::instance(),
|
||||||
|
&IosDeviceManager::monitorAvailableDevices);
|
||||||
m_instance->updateSimulators();
|
m_instance->updateSimulators();
|
||||||
}
|
}
|
||||||
emit m_instance->updated();
|
emit m_instance->updated();
|
||||||
|
|||||||
@@ -60,13 +60,11 @@ public:
|
|||||||
static void setIgnoreAllDevices(bool ignoreDevices);
|
static void setIgnoreAllDevices(bool ignoreDevices);
|
||||||
static Utils::FileName developerPath();
|
static Utils::FileName developerPath();
|
||||||
static Utils::FileName lldbPath();
|
static Utils::FileName lldbPath();
|
||||||
|
static void updateAutomaticKitList();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void updated();
|
void updated();
|
||||||
|
|
||||||
public slots:
|
|
||||||
static void updateAutomaticKitList();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IosConfigurations(QObject *parent);
|
IosConfigurations(QObject *parent);
|
||||||
void load();
|
void load();
|
||||||
|
|||||||
@@ -77,10 +77,10 @@ void IosDeployStep::ctor()
|
|||||||
m_transferStatus = NoTransfer;
|
m_transferStatus = NoTransfer;
|
||||||
cleanup();
|
cleanup();
|
||||||
updateDisplayNames();
|
updateDisplayNames();
|
||||||
connect(DeviceManager::instance(), SIGNAL(updated()),
|
connect(DeviceManager::instance(), &DeviceManager::updated,
|
||||||
SLOT(updateDisplayNames()));
|
this, &IosDeployStep::updateDisplayNames);
|
||||||
connect(target(), SIGNAL(kitChanged()),
|
connect(target(), &Target::kitChanged,
|
||||||
SLOT(updateDisplayNames()));
|
this, &IosDeployStep::updateDisplayNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IosDeployStep::updateDisplayNames()
|
void IosDeployStep::updateDisplayNames()
|
||||||
@@ -127,14 +127,14 @@ void IosDeployStep::run(QFutureInterface<bool> &fi)
|
|||||||
m_futureInterface.setProgressRange(0, 200);
|
m_futureInterface.setProgressRange(0, 200);
|
||||||
m_futureInterface.setProgressValueAndText(0, QLatin1String("Transferring application"));
|
m_futureInterface.setProgressValueAndText(0, QLatin1String("Transferring application"));
|
||||||
m_futureInterface.reportStarted();
|
m_futureInterface.reportStarted();
|
||||||
connect(m_toolHandler, SIGNAL(isTransferringApp(Ios::IosToolHandler*,QString,QString,int,int,QString)),
|
connect(m_toolHandler, &IosToolHandler::isTransferringApp,
|
||||||
SLOT(handleIsTransferringApp(Ios::IosToolHandler*,QString,QString,int,int,QString)));
|
this, &IosDeployStep::handleIsTransferringApp);
|
||||||
connect(m_toolHandler, SIGNAL(didTransferApp(Ios::IosToolHandler*,QString,QString,Ios::IosToolHandler::OpStatus)),
|
connect(m_toolHandler, &IosToolHandler::didTransferApp,
|
||||||
SLOT(handleDidTransferApp(Ios::IosToolHandler*,QString,QString,Ios::IosToolHandler::OpStatus)));
|
this, &IosDeployStep::handleDidTransferApp);
|
||||||
connect(m_toolHandler, SIGNAL(finished(Ios::IosToolHandler*)),
|
connect(m_toolHandler, &IosToolHandler::finished,
|
||||||
SLOT(handleFinished(Ios::IosToolHandler*)));
|
this, &IosDeployStep::handleFinished);
|
||||||
connect(m_toolHandler, SIGNAL(errorMsg(Ios::IosToolHandler*,QString)),
|
connect(m_toolHandler, &IosToolHandler::errorMsg,
|
||||||
SLOT(handleErrorMsg(Ios::IosToolHandler*,QString)));
|
this, &IosDeployStep::handleErrorMsg);
|
||||||
checkProvisioningProfile();
|
checkProvisioningProfile();
|
||||||
m_toolHandler->requestTransferApp(appBundle(), deviceId());
|
m_toolHandler->requestTransferApp(appBundle(), deviceId());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ signals:
|
|||||||
//void done();
|
//void done();
|
||||||
//void error();
|
//void error();
|
||||||
|
|
||||||
private slots:
|
private:
|
||||||
void handleIsTransferringApp(Ios::IosToolHandler *handler, const QString &bundlePath,
|
void handleIsTransferringApp(Ios::IosToolHandler *handler, const QString &bundlePath,
|
||||||
const QString &deviceId, int progress, int maxProgress,
|
const QString &deviceId, int progress, int maxProgress,
|
||||||
const QString &info);
|
const QString &info);
|
||||||
@@ -80,9 +80,7 @@ private slots:
|
|||||||
void handleFinished(Ios::IosToolHandler *handler);
|
void handleFinished(Ios::IosToolHandler *handler);
|
||||||
void handleErrorMsg(Ios::IosToolHandler *handler, const QString &msg);
|
void handleErrorMsg(Ios::IosToolHandler *handler, const QString &msg);
|
||||||
void updateDisplayNames();
|
void updateDisplayNames();
|
||||||
private:
|
IosDeployStep(ProjectExplorer::BuildStepList *bc, IosDeployStep *other);
|
||||||
IosDeployStep(ProjectExplorer::BuildStepList *bc,
|
|
||||||
IosDeployStep *other);
|
|
||||||
bool init(QList<const BuildStep *> &earlierSteps) override;
|
bool init(QList<const BuildStep *> &earlierSteps) override;
|
||||||
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
|
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
|
||||||
bool immutable() const override { return true; }
|
bool immutable() const override { return true; }
|
||||||
@@ -97,7 +95,7 @@ private:
|
|||||||
void raiseError(const QString &error);
|
void raiseError(const QString &error);
|
||||||
void writeOutput(const QString &text, OutputFormat = MessageOutput);
|
void writeOutput(const QString &text, OutputFormat = MessageOutput);
|
||||||
void checkProvisioningProfile();
|
void checkProvisioningProfile();
|
||||||
private:
|
|
||||||
TransferStatus m_transferStatus;
|
TransferStatus m_transferStatus;
|
||||||
IosToolHandler *m_toolHandler;
|
IosToolHandler *m_toolHandler;
|
||||||
QFutureInterface<bool> m_futureInterface;
|
QFutureInterface<bool> m_futureInterface;
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ IosDeployStepWidget::IosDeployStepWidget(IosDeployStep *step) :
|
|||||||
m_step(step)
|
m_step(step)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
connect(m_step, SIGNAL(displayNameChanged()), SIGNAL(updateSummary()));
|
connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged,
|
||||||
|
this, &ProjectExplorer::BuildStepConfigWidget::updateSummary);
|
||||||
}
|
}
|
||||||
|
|
||||||
IosDeployStepWidget::~IosDeployStepWidget()
|
IosDeployStepWidget::~IosDeployStepWidget()
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user