|
|
@ -2,16 +2,9 @@ package main |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"fmt" |
|
|
|
"io" |
|
|
|
|
|
|
|
"net/http" |
|
|
|
|
|
|
|
"os" |
|
|
|
|
|
|
|
"strconv" |
|
|
|
"strconv" |
|
|
|
"strings" |
|
|
|
"strings" |
|
|
|
"time" |
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/therecipe/qt/core" |
|
|
|
|
|
|
|
"github.com/therecipe/qt/gui" |
|
|
|
|
|
|
|
"github.com/therecipe/qt/widgets" |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
func setValues() { |
|
|
|
func setValues() { |
|
|
@ -46,11 +39,7 @@ func setValues() { |
|
|
|
if chargeStats.ChargingState == "Charging" { |
|
|
|
if chargeStats.ChargingState == "Charging" { |
|
|
|
chargeTimer := time.Duration(chargeStats.MinutesToFullCharge) * time.Minute |
|
|
|
chargeTimer := time.Duration(chargeStats.MinutesToFullCharge) * time.Minute |
|
|
|
window.TimeToChargeLabel.SetText("Charging Complete In") |
|
|
|
window.TimeToChargeLabel.SetText("Charging Complete In") |
|
|
|
if guiSettings.Gui24HourTime { |
|
|
|
window.TimeToChargeVal.SetText(fmt.Sprintf("%+v (%+v)", formatDuration(chargeTimer), time.Now().Add(chargeTimer).Format("15:04"))) |
|
|
|
window.TimeToChargeVal.SetText(fmt.Sprintf("%+v (%+v)", formatDuration(chargeTimer), time.Now().Add(chargeTimer).Format("15:04"))) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
window.TimeToChargeVal.SetText(fmt.Sprintf("%+v (%+v)", formatDuration(chargeTimer), time.Now().Add(chargeTimer).Format(time.Kitchen))) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if chargeStats.FastChargerBrand == "Tesla" { |
|
|
|
if chargeStats.FastChargerBrand == "Tesla" { |
|
|
|
window.ChargingStateValue.SetText("Supercharging") |
|
|
|
window.ChargingStateValue.SetText("Supercharging") |
|
|
|
} |
|
|
|
} |
|
|
@ -80,44 +69,5 @@ func setValues() { |
|
|
|
} |
|
|
|
} |
|
|
|
window.ClimateOnCheckbox.SetCheckable(true) |
|
|
|
window.ClimateOnCheckbox.SetCheckable(true) |
|
|
|
window.ClimateSettingSpinbox.SetReadOnly(false) |
|
|
|
window.ClimateSettingSpinbox.SetReadOnly(false) |
|
|
|
go func() { |
|
|
|
fmt.Printf("%+v\n", vehicle.OptionCodes) |
|
|
|
client := getTeslaClient() |
|
|
|
|
|
|
|
vehicles, _ := client.Vehicles() |
|
|
|
|
|
|
|
for _, v := range vehicles { |
|
|
|
|
|
|
|
a := window.MenuVehicles.AddAction(v.DisplayName) |
|
|
|
|
|
|
|
a.ConnectTriggered(func(checked bool) { |
|
|
|
|
|
|
|
vehicleSearch = v.Vin |
|
|
|
|
|
|
|
go setValues() |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func generateVehicleImgURL() { |
|
|
|
|
|
|
|
var model string = "m3" |
|
|
|
|
|
|
|
var color string = "PMNG" |
|
|
|
|
|
|
|
var wheels string = "W38B" |
|
|
|
|
|
|
|
window.VehiclePreviewView.Hide() |
|
|
|
|
|
|
|
url := fmt.Sprintf("https://static-assets.tesla.com/configurator/compositor/?model=%+v&options=%+v,%+v&bkba_opt=1&view=STUD_3QTR&size=1318", model, color, wheels) |
|
|
|
|
|
|
|
response, e := http.Get(url) |
|
|
|
|
|
|
|
if e != nil { |
|
|
|
|
|
|
|
window.VehiclePreviewView.Hide() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
defer response.Body.Close() |
|
|
|
|
|
|
|
img := response.Body |
|
|
|
|
|
|
|
file, err := os.Create("vehicle.png") |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
window.VehiclePreviewView.Hide() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
_, err = io.Copy(file, img) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
window.VehiclePreviewView.Hide() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
window.VehiclePreviewView.SetMinimumWidth(window.Width()) |
|
|
|
|
|
|
|
window.VehiclePreviewView.VerticalScrollBar().Hide() |
|
|
|
|
|
|
|
scene := widgets.NewQGraphicsScene(nil) |
|
|
|
|
|
|
|
image := widgets.NewQGraphicsPixmapItem2(gui.NewQPixmap3("vehicle.png", "", core.Qt__AutoColor).Scaled2(window.Width(), int(float32(window.Height())*0.5), core.Qt__KeepAspectRatio, core.Qt__FastTransformation), nil) |
|
|
|
|
|
|
|
scene.AddItem(image) |
|
|
|
|
|
|
|
window.VehiclePreviewView.SetScene(scene) |
|
|
|
|
|
|
|
window.VehiclePreviewView.Show() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|