ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PackageManager.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <ui_PackageManager.h>
11 
12 class QProcess;
14 class PythonConfig;
15 
22 class PackageManager final : public QWidget
23 {
24  Q_OBJECT
25  public:
26  explicit PackageManager(const PythonConfig &config, QWidget *parent = nullptr);
27  ~PackageManager() noexcept override;
28 
29  private: // Methods
30  void refreshInstalledPackagesList();
31  void handleInstallPackage();
32  void handleUninstallPackage();
33  void handleSelectionChanged();
34  void handleSearch();
35 
36  void executeCommand(const QStringList &arguments);
37  void setBusy(bool isBusy);
38 
39  private: // Members
40  Ui_PackageManager *m_ui;
41  QProcess *m_pythonProcess;
42  CommandOutputDialog *m_outputDialog;
43  bool m_shouldUseUserOption;
44 };
PackageManager(const PythonConfig &config, QWidget *parent=nullptr)
~PackageManager() noexcept override