20#ifndef ORES_QT_APP_VERSION_DETAIL_DIALOG_HPP
21#define ORES_QT_APP_VERSION_DETAIL_DIALOG_HPP
26#include "ores.qt/ClientManager.hpp"
27#include "ores.qt/DetailDialogBase.hpp"
28#include "ores.logging/make_logger.hpp"
29#include "ores.compute.api/domain/app.hpp"
30#include "ores.compute.api/domain/app_version.hpp"
31#include "ores.compute.api/messaging/platform_protocol.hpp"
34class AppVersionDetailDialog;
50 inline static std::string_view logger_name =
51 "ores.qt.app_version_detail_dialog";
53 [[nodiscard]]
static auto& lg() {
55 static auto instance = make_logger(logger_name);
64 void setUsername(
const std::string& username);
66 void setCreateMode(
bool createMode);
67 void setReadOnly(
bool readOnly);
68 void setHttpBaseUrl(
const std::string& url);
71 void app_versionSaved(
const QString& code);
72 void app_versionDeleted(
const QString& code);
76 void onDeleteClicked();
77 void onCodeChanged(
const QString& text);
78 void onFieldChanged();
79 void onBrowsePackageClicked();
80 void onUploadPackageClicked();
81 void onAddPlatformClicked();
82 void onRemovePlatformClicked();
96 struct PlatformEntry {
99 std::string display_name;
103 void setupConnections();
105 void loadPlatforms();
106 void populateAppCombo();
107 void populatePlatformsTab();
108 void updateUiFromVersion();
109 void updateVersionFromUi();
110 void updateSaveButtonState();
111 bool validateInput();
113 Ui::AppVersionDetailDialog* ui_;
114 ClientManager* clientManager_;
115 std::string username_;
118 std::vector<AppEntry> appEntries_;
119 std::vector<PlatformEntry> availablePlatforms_;
120 QString selectedPackageFilePath_;
121 bool createMode_{
true};
122 bool readOnly_{
false};
123 bool hasChanges_{
false};
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:29
A versioned wrapper+engine bundle for a compute grid application.
Definition app_version.hpp:37
Detail dialog for viewing and editing app version records.
Definition AppVersionDetailDialog.hpp:46
ProvenanceWidget * provenanceWidget() const override
Returns the promoted ProvenanceWidget (named "provenanceWidget" in .ui).
Definition AppVersionDetailDialog.cpp:70
bool hasUnsavedChanges() const override
Definition AppVersionDetailDialog.hpp:88
QTabWidget * tabWidget() const override
Returns the dialog's QTabWidget (named "tabWidget" in .ui).
Definition AppVersionDetailDialog.cpp:62
QWidget * provenanceTab() const override
Returns the Provenance tab widget (named "provenanceTab" in .ui).
Definition AppVersionDetailDialog.cpp:66
Manages the lifecycle of the NATS client and login state.
Definition ClientManager.hpp:109
Base class for all detail dialogs.
Definition DetailDialogBase.hpp:74
Widget displaying the 6 standard record provenance fields.
Definition ProvenanceWidget.hpp:39