mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
Ref T28, settings for updater
This commit is contained in:
committed by
Mathew Sutcliffe
parent
f12b69bb87
commit
f4af5e6cc1
@@ -10,6 +10,12 @@
|
||||
#include "settingsmodelcomponent.h"
|
||||
#include "ui_settingsmodelcomponent.h"
|
||||
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include <QValidator>
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackGui::Settings;
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
namespace Components
|
||||
@@ -19,9 +25,43 @@ namespace BlackGui
|
||||
ui(new Ui::CSettingsModelComponent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->le_ConsolidateSecs->setValidator(new QIntValidator(0, TBackgroundConsolidation::maxSecs(), ui->le_ConsolidateSecs));
|
||||
|
||||
this->cacheChanged();
|
||||
connect(ui->le_ConsolidateSecs, &QLineEdit::returnPressed, this, &CSettingsModelComponent::consolidationEntered);
|
||||
static QString lbl("Consolidate (%1-%2s):");
|
||||
ui->lbl_Consolidate->setText(lbl.arg(TBackgroundConsolidation::minSecs()).arg(TBackgroundConsolidation::maxSecs()));
|
||||
}
|
||||
|
||||
CSettingsModelComponent::~CSettingsModelComponent()
|
||||
{ }
|
||||
|
||||
int CSettingsModelComponent::getBackgroundUpdaterIntervallSecs() const
|
||||
{
|
||||
const QString v = ui->le_ConsolidateSecs->text().trimmed();
|
||||
if (v.isEmpty()) { return -1; }
|
||||
bool ok = false;
|
||||
const int secs = v.toInt(&ok);
|
||||
return ok ? secs : -1;
|
||||
}
|
||||
|
||||
void CSettingsModelComponent::consolidationEntered()
|
||||
{
|
||||
int v = this->getBackgroundUpdaterIntervallSecs();
|
||||
if (v < TBackgroundConsolidation::minSecs()) v = -1;
|
||||
|
||||
const CStatusMessage m = m_consolidationSetting.setAndSave(v);
|
||||
CLogMessage::preformatted(m);
|
||||
this->cacheChanged();
|
||||
}
|
||||
|
||||
void CSettingsModelComponent::cacheChanged()
|
||||
{
|
||||
const int v = m_consolidationSetting.get();
|
||||
const bool on = v > 0;
|
||||
const QString s = on ? QString::number(v) : "";
|
||||
ui->le_ConsolidateSecs->setText(s);
|
||||
ui->comp_Led->setOn(on);
|
||||
}
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#ifndef BLACKGUI_COMPONENTS_SETTINGSMODELCOMPONENT_H
|
||||
#define BLACKGUI_COMPONENTS_SETTINGSMODELCOMPONENT_H
|
||||
|
||||
#include "blackgui/settings/guisettings.h"
|
||||
#include <QFrame>
|
||||
|
||||
namespace Ui { class CSettingsModelComponent; }
|
||||
@@ -33,8 +34,18 @@ namespace BlackGui
|
||||
//! Destructor
|
||||
virtual ~CSettingsModelComponent();
|
||||
|
||||
//! Interval, -1 for disabled
|
||||
int getBackgroundUpdaterIntervallSecs() const;
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::CSettingsModelComponent> ui;
|
||||
BlackMisc::CSetting<BlackGui::Settings::TBackgroundConsolidation> m_consolidationSetting { this, &CSettingsModelComponent::cacheChanged }; //!< consolidation time
|
||||
|
||||
//! Consolidation time entered
|
||||
void consolidationEntered();
|
||||
|
||||
//! Cache has been changed
|
||||
void cacheChanged();
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -6,20 +6,14 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>175</width>
|
||||
<width>374</width>
|
||||
<height>28</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Frame</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vl_Settings">
|
||||
<layout class="QHBoxLayout" name="hl_SettingsModelComponent">
|
||||
<property name="leftMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
@@ -42,8 +36,55 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="hs_SetiingsModelComponent">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_Consolidate">
|
||||
<property name="text">
|
||||
<string>Consolidate (secs):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_ConsolidateSecs">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>secs.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="BlackGui::CLedWidget" name="comp_Led" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>BlackGui::CLedWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>blackgui/led.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
Reference in New Issue
Block a user