Skip to content

Commit 283acb4

Browse files
committed
Update package manager
1 parent eb88420 commit 283acb4

5 files changed

Lines changed: 39 additions & 5 deletions

File tree

src/plugins/packagemanager/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ diffscope_add_builtin_plugin(${PROJECT_NAME}
2525
INCLUDE_PRIVATE
2626
internal/**
2727
)
28+
29+
if(DEFINED DIFFSCOPE_PACKAGE_MANAGER_COMMAND_LINE_TOOL)
30+
ck_add_attached_files(${PROJECT_NAME}
31+
SRC ${DIFFSCOPE_PACKAGE_MANAGER_COMMAND_LINE_TOOL} DEST ./dspm
32+
)
33+
endif()

src/plugins/packagemanager/internal/PackageManagerSettings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ namespace PackageManager {
103103
void PackageManagerSettings::load() {
104104
auto settings = Core::RuntimeInterface::settings();
105105
settings->beginGroup(staticMetaObject.className());
106-
m_dspmPath = settings->value("dspmPath", defaultDspmPath()).toString();
106+
m_dspmPath = settings->value("dspmPath", QString()).toString();
107107
m_packageDir = settings->value("packageDir", defaultPackageDir()).toString();
108108
m_timeoutSeconds = std::max(1, settings->value("timeoutSeconds", 5).toInt());
109109
settings->endGroup();

src/plugins/packagemanager/internal/PackageManagerUtils.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44

55
#include <QCoreApplication>
66
#include <QEventLoop>
7+
#include <QFileInfo>
78
#include <QLoggingCategory>
89
#include <QProcess>
910
#include <QTimer>
1011
#include <QtGlobal>
1112

13+
#include <packagemanager/internal/PackageManagerSettings.h>
14+
1215
namespace PackageManager {
1316

1417
Q_STATIC_LOGGING_CATEGORY(lcPackageManagerUtils, "diffscope.packagemanager.utils")
@@ -22,9 +25,20 @@ namespace PackageManager {
2225

2326
}
2427

25-
CommandResult runCommandLineTool(const QString &executablePath, const QStringList &arguments, int timeoutSeconds) {
28+
CommandResult runCommandLineTool(const QString &executablePath_, const QStringList &arguments, int timeoutSeconds) {
2629
CommandResult result;
2730
QProcess process;
31+
32+
QString executablePath = executablePath_;
33+
if (executablePath.isEmpty()) {
34+
executablePath = PackageManagerSettings::defaultDspmPath();
35+
}
36+
37+
if (!QFileInfo::exists(executablePath)) {
38+
result.errorMessage = QCoreApplication::translate("PackageManager::CommandLineTool", "The command line tool does not exist:\n\n%1\n\nPlease install dspm and configure it in Settings > Package Manager.").arg(executablePath);
39+
return result;
40+
}
41+
2842
process.setProgram(executablePath);
2943
process.setArguments(arguments);
3044

src/plugins/packagemanager/internal/addons/PackageManagerAddOn.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ namespace PackageManager {
6060
return QStringLiteral("--packages-dir");
6161
}
6262

63+
QString languageOptionName() {
64+
return QStringLiteral("--language");
65+
}
66+
6367
QString jsonText(const QJsonValue &value) {
6468
if (value.isString()) {
6569
return value.toString();
@@ -153,6 +157,8 @@ namespace PackageManager {
153157
QStringLiteral("--json"),
154158
packageDirOptionName(),
155159
PackageManagerSettings::packageDir(),
160+
languageOptionName(),
161+
QLocale().name()
156162
};
157163
}
158164

src/plugins/packagemanager/qml/PackageManagerPage.qml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,23 @@ ScrollView {
6060

6161
GridLayout {
6262
anchors.fill: parent
63-
columns: 3
63+
columns: 4
6464

6565
Label {
66-
text: qsTr("Command")
66+
text: qsTr("Package manager tool")
6767
TextMatcherItem on text { matcher: page.matcher }
6868
}
6969
TextField {
7070
Layout.fillWidth: true
7171
readOnly: true
7272
text: page.dspmPath
73+
placeholderText: qsTr("Bundled dspm")
74+
}
75+
ToolButton {
76+
text: qsTr("Reset to Bundled dspm")
77+
icon.source: "image://fluent-system-icons/arrow_reset"
78+
display: AbstractButton.IconOnly
79+
onClicked: page.dspmPath = ""
7380
}
7481
ToolButton {
7582
text: qsTr("Browse")
@@ -84,6 +91,7 @@ ScrollView {
8491
}
8592
TextField {
8693
Layout.fillWidth: true
94+
Layout.columnSpan: 2
8795
text: page.packageDir
8896
onTextEdited: page.packageDir = text
8997
}
@@ -99,7 +107,7 @@ ScrollView {
99107
TextMatcherItem on text { matcher: page.matcher }
100108
}
101109
RowLayout {
102-
Layout.columnSpan: 2
110+
Layout.columnSpan: 3
103111
SpinBox {
104112
from: 1
105113
to: 300

0 commit comments

Comments
 (0)