]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
BEE Backport bacula/src/qt-console/tray-monitor/respanel-ui-controller.cpp
authorHenrique <henrique.faria@baculasystems.com>
Sat, 16 May 2020 09:41:50 +0000 (11:41 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 29 Apr 2021 08:44:19 +0000 (10:44 +0200)
This commit is the result of the squash of the following main commits:

Author: Henrique <henrique.faria@baculasystems.com>
Date:   Fri Oct 11 13:33:39 2019 -0300

    android: added Remote Client checkbox

Author: Henrique <henrique.faria@baculasystems.com>
Date:   Tue Sep 3 14:20:10 2019 -0300

    android: added popup to create / edit tray-monitor resources

bacula/src/qt-console/tray-monitor/respanel-ui-controller.cpp [new file with mode: 0644]

diff --git a/bacula/src/qt-console/tray-monitor/respanel-ui-controller.cpp b/bacula/src/qt-console/tray-monitor/respanel-ui-controller.cpp
new file mode 100644 (file)
index 0000000..9b57aa6
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+   Bacula(R) - The Network Backup Solution
+
+   Copyright (C) 2000-2020 Kern Sibbald
+
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
+
+   You may use this file and others of this release according to the
+   license defined in the LICENSE file, which includes the Affero General
+   Public License, v3.0 ("AGPLv3") and some additional permissions and
+   terms pursuant to its AGPLv3 Section 7.
+
+   This notice must be preserved when any source code is
+   conveyed and/or propagated.
+
+   Bacula(R) is a registered trademark of Kern Sibbald.
+*/
+
+#include "respanel-ui-controller.h"
+
+ResPanelUiController::ResPanelUiController(QObject *parent):
+    QObject(parent)
+{
+    m_storage = &ConfigStorage::getInstance();
+}
+
+void ResPanelUiController::saveChanges() {
+    const char *error_msg = NULL;
+    QByteArray resNameBytes = m_resourceName.toUtf8();
+    QByteArray resAddressBytes = m_resourceAddress.toUtf8();
+    QByteArray resPasswordBytes = m_resourcePassword.toUtf8();
+
+    RESMON *newRes = new RESMON();
+    newRes->code = m_resCode;
+    newRes->hdr.name = resNameBytes.data();
+    newRes->address = resAddressBytes.data();
+    newRes->password = resPasswordBytes.data();
+    newRes->port = m_resourcePort.toUInt();
+    newRes->use_remote = m_remoteClient;
+
+    if(m_res == NULL) {
+        error_msg = m_storage->addResource(newRes, m_resCode);
+    } else {
+        error_msg = m_storage->editResource(m_res, newRes, m_resCode);
+    }
+
+    if(error_msg == NULL) {
+        setSuccessMessage("Changes Saved");
+    } else {
+        setErrorMessage(error_msg);
+    }
+
+    m_res = m_storage->getResourceByName(newRes->code, newRes->hdr.name);
+    delete newRes;
+}
+
+ResPanelUiController::~ResPanelUiController() {}