mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
Migrate to newer GTK
This commit is contained in:
@@ -9,9 +9,9 @@ edition = "2018"
|
||||
[dependencies]
|
||||
daemon = { path = "../daemon" }
|
||||
|
||||
gtk = { version = "0.9", features = ["v3_22"] }
|
||||
pango = "0.9"
|
||||
glib = "0.10"
|
||||
gtk = { version = "0.14", features = ["v3_22"] }
|
||||
pango = "0.14"
|
||||
glib = "0.14"
|
||||
|
||||
log = "0.4"
|
||||
env_logger = "0.8"
|
||||
env_logger = "0.9"
|
||||
@@ -16,6 +16,7 @@ use apply_revealer::ApplyRevealer;
|
||||
use daemon::daemon_connection::DaemonConnection;
|
||||
use daemon::gpu_controller::GpuStats;
|
||||
use daemon::DaemonError;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
use header::Header;
|
||||
@@ -247,6 +248,10 @@ impl App {
|
||||
}
|
||||
|
||||
fn start_stats_update_loop(&self, current_gpu_id: Arc<AtomicU32>) {
|
||||
let context = glib::MainContext::default();
|
||||
|
||||
let _guard = context.acquire();
|
||||
|
||||
// The loop that gets stats
|
||||
let (sender, receiver) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
|
||||
{
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use gtk::prelude::{ComboBoxExtManual, ObjectExt};
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
use pango::EllipsizeMode;
|
||||
use std::collections::HashMap;
|
||||
@@ -42,7 +42,7 @@ impl Header {
|
||||
}
|
||||
|
||||
//limits the length of gpu names in combobox
|
||||
for cell in self.gpu_selector.get_cells() {
|
||||
for cell in self.gpu_selector.cells() {
|
||||
cell.set_property("width-chars", &10).unwrap();
|
||||
cell.set_property("ellipsize", &EllipsizeMode::End).unwrap();
|
||||
}
|
||||
@@ -52,7 +52,7 @@ impl Header {
|
||||
|
||||
pub fn connect_gpu_selection_changed<F: Fn(u32) + 'static>(&self, f: F) {
|
||||
self.gpu_selector.connect_changed(move |gpu_selector| {
|
||||
let selected_id = gpu_selector.get_active_id().unwrap();
|
||||
let selected_id = gpu_selector.active_id().unwrap();
|
||||
f(selected_id.parse().unwrap());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ mod oc_page;
|
||||
mod software_page;
|
||||
mod thermals_page;
|
||||
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
use info_page::InformationPage;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
mod vulkan_info;
|
||||
|
||||
use daemon::gpu_controller::GpuInfo;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
use vulkan_info::VulkanInfoFrame;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use daemon::gpu_controller::VulkanInfo;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
|
||||
@@ -6,6 +6,7 @@ mod warning_frame;
|
||||
|
||||
use clocks_frame::ClocksSettings;
|
||||
use daemon::gpu_controller::{GpuInfo, GpuStats, PowerProfile};
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
use clocks_frame::ClocksFrame;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use daemon::gpu_controller::ClocksTable;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
pub struct ClocksSettings {
|
||||
@@ -178,11 +179,11 @@ impl ClocksFrame {
|
||||
}
|
||||
|
||||
pub fn get_settings(&self) -> ClocksSettings {
|
||||
let gpu_clock = self.gpu_clock_adjustment.get_value() as i64;
|
||||
let gpu_clock = self.gpu_clock_adjustment.value() as i64;
|
||||
|
||||
let vram_clock = self.vram_clock_adjustment.get_value() as i64;
|
||||
let vram_clock = self.vram_clock_adjustment.value() as i64;
|
||||
|
||||
let gpu_voltage = (self.gpu_voltage_adjustment.get_value() * 1000.0) as i64;
|
||||
let gpu_voltage = (self.gpu_voltage_adjustment.value() * 1000.0) as i64;
|
||||
|
||||
ClocksSettings {
|
||||
gpu_clock,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
@@ -30,11 +31,7 @@ impl PowerCapFrame {
|
||||
{
|
||||
let label = label.clone();
|
||||
adjustment.connect_value_changed(move |adj| {
|
||||
label.set_markup(&format!(
|
||||
"{}/{} W",
|
||||
adj.get_value().round(),
|
||||
adj.get_upper()
|
||||
));
|
||||
label.set_markup(&format!("{}/{} W", adj.value().round(), adj.upper()));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -68,7 +65,7 @@ impl PowerCapFrame {
|
||||
|
||||
pub fn get_cap(&self) -> Option<i64> {
|
||||
// Using match gives a warning that floats shouldn't be used in patterns
|
||||
let cap = self.adjustment.get_value();
|
||||
let cap = self.adjustment.value();
|
||||
if cap == 0.0 {
|
||||
None
|
||||
} else {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use daemon::gpu_controller::PowerProfile;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
use prelude::ComboBoxExtManual;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct PowerProfileFrame {
|
||||
@@ -38,7 +38,7 @@ impl PowerProfileFrame {
|
||||
|
||||
{
|
||||
let description_label = description_label.clone();
|
||||
combo_box.connect_changed(move |combobox| match combobox.get_active().unwrap() {
|
||||
combo_box.connect_changed(move |combobox| match combobox.active().unwrap() {
|
||||
0 => description_label
|
||||
.set_text("Automatically adjust GPU and VRAM clocks. (Default)"),
|
||||
1 => description_label
|
||||
@@ -72,7 +72,7 @@ impl PowerProfileFrame {
|
||||
}
|
||||
|
||||
pub fn get_selected_power_profile(&self) -> PowerProfile {
|
||||
match self.combo_box.get_active().unwrap() {
|
||||
match self.combo_box.active().unwrap() {
|
||||
0 => PowerProfile::Auto,
|
||||
1 => PowerProfile::High,
|
||||
2 => PowerProfile::Low,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use daemon::gpu_controller::GpuStats;
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
@@ -179,11 +180,12 @@ impl StatsGrid {
|
||||
None => match stats.temperatures.get("edge") {
|
||||
Some(temp) => Some(temp.current),
|
||||
None => None,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
if let Some(temp) = temp {
|
||||
self.gpu_temperature_label.set_markup(&format!("<b>{}°C</b>", temp));
|
||||
self.gpu_temperature_label
|
||||
.set_markup(&format!("<b>{}°C</b>", temp));
|
||||
}
|
||||
|
||||
self.gpu_usage_label
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
|
||||
@@ -101,7 +101,7 @@ impl ThermalsPage {
|
||||
let fan_curve_frame = fan_curve_frame.clone();
|
||||
fan_control_enabled_switch.connect_changed_active(move |switch| {
|
||||
log::trace!("Fan control switch toggled");
|
||||
if switch.get_active() {
|
||||
if switch.state() {
|
||||
{
|
||||
glib::idle_add(|| {
|
||||
let diag = MessageDialog::new(None::<&Window>, DialogFlags::empty(), MessageType::Warning, ButtonsType::Ok,
|
||||
@@ -192,7 +192,7 @@ impl ThermalsPage {
|
||||
}
|
||||
|
||||
pub fn get_thermals_settings(&self) -> ThermalsSettings {
|
||||
let automatic_fan_control_enabled = self.fan_control_enabled_switch.get_active();
|
||||
let automatic_fan_control_enabled = self.fan_control_enabled_switch.state();
|
||||
let curve = self.fan_curve_frame.get_curve();
|
||||
|
||||
ThermalsSettings {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
#[derive(Clone)]
|
||||
@@ -178,11 +179,11 @@ impl FanCurveFrame {
|
||||
pub fn get_curve(&self) -> BTreeMap<i64, f64> {
|
||||
let mut curve = BTreeMap::new();
|
||||
|
||||
curve.insert(20, self.adjustment_1.get_value());
|
||||
curve.insert(40, self.adjustment_2.get_value());
|
||||
curve.insert(60, self.adjustment_3.get_value());
|
||||
curve.insert(80, self.adjustment_4.get_value());
|
||||
curve.insert(100, self.adjustment_5.get_value());
|
||||
curve.insert(20, self.adjustment_1.value());
|
||||
curve.insert(40, self.adjustment_2.value());
|
||||
curve.insert(60, self.adjustment_3.value());
|
||||
curve.insert(80, self.adjustment_4.value());
|
||||
curve.insert(100, self.adjustment_5.value());
|
||||
|
||||
curve
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::thread;
|
||||
|
||||
use app::App;
|
||||
use daemon::{daemon_connection::DaemonConnection, Daemon};
|
||||
use gtk::prelude::*;
|
||||
use gtk::*;
|
||||
|
||||
mod app;
|
||||
|
||||
Reference in New Issue
Block a user