Co-Authored-By: selsta <selsta@sent.at>
Co-Authored-By: Gene Peters <gene@telligent-data.com>
This commit is contained in:
dsc
2019-05-01 04:05:16 +02:00
committed by xmrdsc
parent 3c1fe1da8b
commit d4be7634cb
10 changed files with 644 additions and 4 deletions

View File

@@ -157,6 +157,106 @@ Rectangle {
}
}
//! Manage pricing
RowLayout {
MoneroComponents.CheckBox {
id: enableConvertCurrency
text: qsTr("Enable displaying balance in other currencies") + translationManager.emptyString
checked: persistentSettings.fiatPriceEnabled
onCheckedChanged: {
if (!checked) {
console.log("Disabled price conversion");
persistentSettings.fiatPriceEnabled = false;
appWindow.fiatTimerStop();
}
}
}
}
GridLayout {
visible: enableConvertCurrency.checked
columns: 2
Layout.fillWidth: true
Layout.leftMargin: 36
columnSpacing: 32
ColumnLayout {
spacing: 10
Layout.fillWidth: true
MoneroComponents.Label {
Layout.fillWidth: true
fontSize: 14
text: qsTr("Price source") + translationManager.emptyString
}
MoneroComponents.StandardDropdown {
id: fiatPriceProviderDropDown
Layout.fillWidth: true
dataModel: fiatPriceProvidersModel
onChanged: {
var obj = dataModel.get(currentIndex);
persistentSettings.fiatPriceProvider = obj.data;
if(persistentSettings.fiatPriceEnabled)
appWindow.fiatApiRefresh();
}
}
}
ColumnLayout {
spacing: 10
Layout.fillWidth: true
MoneroComponents.Label {
Layout.fillWidth: true
fontSize: 14
text: qsTr("Currency") + translationManager.emptyString
}
MoneroComponents.StandardDropdown {
id: fiatPriceCurrencyDropdown
Layout.fillWidth: true
dataModel: fiatPriceCurrencyModel
onChanged: {
var obj = dataModel.get(currentIndex);
persistentSettings.fiatPriceCurrency = obj.data;
if(persistentSettings.fiatPriceEnabled)
appWindow.fiatApiRefresh();
}
}
}
z: parent.z + 1
}
ColumnLayout {
// Feature needs to be double enabled for security purposes (miss-clicks)
visible: enableConvertCurrency.checked && !persistentSettings.fiatPriceEnabled
spacing: 0
Layout.topMargin: 5
Layout.leftMargin: 36
MoneroComponents.WarningBox {
text: qsTr("Enabling price conversion exposes your IP address to the selected price source.") + translationManager.emptyString;
}
MoneroComponents.StandardButton {
Layout.topMargin: 10
Layout.bottomMargin: 10
small: true
text: qsTr("Confirm and enable") + translationManager.emptyString
onClicked: {
console.log("Enabled price conversion");
persistentSettings.fiatPriceEnabled = true;
appWindow.fiatApiRefresh();
appWindow.fiatTimerStart();
}
}
}
MoneroComponents.StandardButton {
visible: !persistentSettings.customDecorations
Layout.topMargin: 10
@@ -177,7 +277,43 @@ Rectangle {
}
}
ListModel {
id: fiatPriceProvidersModel
}
ListModel {
id: fiatPriceCurrencyModel
ListElement {
data: "xmrusd"
column1: "USD"
}
ListElement {
data: "xmreur"
column1: "EUR"
}
}
Component.onCompleted: {
// Dynamically fill fiatPrice dropdown based on `appWindow.fiatPriceAPIs`
var apis = appWindow.fiatPriceAPIs;
fiatPriceProvidersModel.clear();
var i = 0;
for (var api in apis){
if (!apis.hasOwnProperty(api))
continue;
fiatPriceProvidersModel.append({"column1": Utils.capitalize(api), "data": api});
if(api === persistentSettings.fiatPriceProvider)
fiatPriceProviderDropDown.currentIndex = i;
i += 1;
}
fiatPriceProviderDropDown.update();
fiatPriceCurrencyDropdown.currentIndex = persistentSettings.fiatPriceCurrency === "xmrusd" ? 0 : 1;
fiatPriceCurrencyDropdown.update();
console.log('SettingsLayout loaded');
}
}