Ref T125, own component for XSwiftBus settings. This component can be used in the installation and plugin UI.

This commit is contained in:
Klaus Basan
2017-08-15 02:15:57 +02:00
committed by Mathew Sutcliffe
parent 12db652ccf
commit c6f3a7033d
3 changed files with 136 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
/* Copyright (C) 2017
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#include "settingsxswiftbuscomponent.h"
#include "ui_settingsxswiftbuscomponent.h"
#include "blackmisc/dbusserver.h"
#include <QComboBox>
using namespace BlackMisc;
namespace BlackGui
{
namespace Components
{
CSettingsXSwiftBusComponent::CSettingsXSwiftBusComponent(QWidget *parent) :
QFrame(parent),
ui(new Ui::CSettingsXSwiftBusComponent)
{
ui->setupUi(this);
ui->cb_XSwiftBusServer->addItem(CDBusServer::sessionBusAddress());
ui->cb_XSwiftBusServer->addItem(CDBusServer::systemBusAddress());
ui->cb_XSwiftBusServer->setCurrentText(m_xSwiftBusServerSetting.getThreadLocal());
connect(ui->cb_XSwiftBusServer, &QComboBox::currentTextChanged, this, &CSettingsXSwiftBusComponent::saveServer);
}
CSettingsXSwiftBusComponent::~CSettingsXSwiftBusComponent()
{ }
void CSettingsXSwiftBusComponent::saveServer(const QString &dBusAddress)
{
if (dBusAddress != m_xSwiftBusServerSetting.getThreadLocal())
{
m_xSwiftBusServerSetting.setAndSave(dBusAddress);
}
}
} // ns
} // ns

View File

@@ -0,0 +1,48 @@
/* Copyright (C) 2017
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \file
#ifndef BLACKGUI_COMPONENTS_SETTINGSXSWIFTBUSCOMPONENT_H
#define BLACKGUI_COMPONENTS_SETTINGSXSWIFTBUSCOMPONENT_H
#include "blackmisc/simulation/settings/xswiftbussettings.h"
#include "blackmisc/settingscache.h"
#include "blackgui/blackguiexport.h"
#include <QFrame>
#include <QScopedPointer>
namespace Ui { class CSettingsXSwiftBusComponent; }
namespace BlackGui
{
namespace Components
{
/*!
* XSwiftBus setup
*/
class BLACKGUI_EXPORT CSettingsXSwiftBusComponent : public QFrame
{
Q_OBJECT
public:
//! Constructor
explicit CSettingsXSwiftBusComponent(QWidget *parent = nullptr);
//! Dtor
virtual ~CSettingsXSwiftBusComponent();
private:
QScopedPointer<Ui::CSettingsXSwiftBusComponent> ui;
BlackMisc::CSetting<BlackMisc::Simulation::Settings::TXSwiftBusServer> m_xSwiftBusServerSetting { this };
void saveServer(const QString &dBusAddress);
};
} // ns
} // ns
#endif // guard

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CSettingsXSwiftBusComponent</class>
<widget class="QFrame" name="CSettingsXSwiftBusComponent">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>160</width>
<height>26</height>
</rect>
</property>
<property name="windowTitle">
<string>XSwiftBus settings</string>
</property>
<layout class="QFormLayout" name="fl_XSwiftBusSettings">
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="lbl_XSwiftBusServer">
<property name="text">
<string>XSwiftBus server:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cb_XSwiftBusServer"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>