From 21e5e4b4cb683c29a65f1f993b7e9ce1f37b147b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Mon, 17 Jan 2022 14:39:26 +0100 Subject: [PATCH] app: port to gtk4 version 0.4.1 --- Cargo.lock | 238 +++++++++++++++++++++++++++---------------- Cargo.toml | 3 +- src/about.rs | 3 +- src/app.rs | 75 ++++++-------- src/logger.rs | 3 +- src/pipeline.rs | 1 + src/plugindialogs.rs | 8 +- src/settings.rs | 1 + 8 files changed, 193 insertions(+), 139 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45db666..d241d50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,26 +89,26 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cairo-rs" -version = "0.14.7" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9164355c892b026d6257e696dde5f3cb39beb3718297f0f161b562fe2ee3ab86" +checksum = "b869e97a87170f96762f9f178eae8c461147e722ba21dd8814105bf5716bf14a" dependencies = [ "bitflags 1.3.2", "cairo-sys-rs", - "glib", + "glib 0.15.2", "libc", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c9c3928781e8a017ece15eace05230f04b647457d170d2d9641c94a444ff80" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ - "glib-sys", + "glib-sys 0.15.1", "libc", - "system-deps 3.2.0", + "system-deps 6.0.0", ] [[package]] @@ -261,60 +261,61 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f" +checksum = "172dfe1d9dfb62936bf7ad3ede2913a1b21b1e3db56990e46e00789201de9070" dependencies = [ + "bitflags 1.3.2", "gdk-pixbuf-sys", "gio", - "glib", + "glib 0.15.2", "libc", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590" +checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171" dependencies = [ "gio-sys", - "glib-sys", - "gobject-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "libc", - "system-deps 3.2.0", + "system-deps 6.0.0", ] [[package]] name = "gdk4" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97a162c17214d1bf981af3f683156a0b1667dd1927057c4f0a68513251ecf0f" +checksum = "f1023950739cd692fbf559507cad031bf2b0369d68466121f8a1316bc5ae29f0" dependencies = [ "bitflags 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk4-sys", "gio", - "glib", + "glib 0.15.2", "libc", "pango", ] [[package]] name = "gdk4-sys" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9498f4e06969fb96a4e4234dfe1d308a3ac6b120b3c6d93e3ec5c77fe88bc6d5" +checksum = "401b6be19db1e0ad2978fde7b46989b82f7595affa09cb56fe6f1302bc4f19e3" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gio-sys", - "glib-sys", - "gobject-sys", - "graphene-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "libc", "pango-sys", - "system-deps 5.0.0", + "pkg-config", + "system-deps 6.0.0", ] [[package]] @@ -345,16 +346,16 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "gio" -version = "0.14.8" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0" +checksum = "5e14e0166f772d6295cfda361d227a63194497641a42da81b9e531c9f5a4d77f" dependencies = [ "bitflags 1.3.2", "futures-channel", "futures-core", "futures-io", "gio-sys", - "glib", + "glib 0.15.2", "libc", "once_cell", "thiserror", @@ -362,14 +363,14 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" +checksum = "04b57719ccaacf2a0d9c79f151be629f3a3ef3991658ee2af0bb66287e4ea86c" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "libc", - "system-deps 3.2.0", + "system-deps 6.0.0", "winapi", ] @@ -384,14 +385,34 @@ dependencies = [ "futures-core", "futures-executor", "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", + "glib-macros 0.14.1", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", "libc", "once_cell", "smallvec", ] +[[package]] +name = "glib" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a3e6b2e5ef2ecfb10c1e083074a81160b8f6408fcc08195c872e9de37a361b" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros 0.15.1", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + [[package]] name = "glib-macros" version = "0.14.1" @@ -399,7 +420,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518" dependencies = [ "anyhow", - "heck", + "heck 0.3.3", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-macros" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c7194ee4c597b334e3ce84d22d929405e94497828e1c54da762cbe8e3d93" +dependencies = [ + "anyhow", + "heck 0.4.0", "proc-macro-crate", "proc-macro-error", "proc-macro2", @@ -417,50 +453,71 @@ dependencies = [ "system-deps 3.2.0", ] +[[package]] +name = "glib-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c668102c6e15e0a7f6b99b59f602c2e806967bb86414f617b77e19b1de5b3fac" +dependencies = [ + "libc", + "system-deps 6.0.0", +] + [[package]] name = "gobject-sys" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" dependencies = [ - "glib-sys", + "glib-sys 0.14.0", "libc", "system-deps 3.2.0", ] [[package]] -name = "graphene-rs" -version = "0.14.8" +name = "gobject-sys" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3380f132530ef9eb9e0a2bac180e30390aa5e49892d20294f822a974117a563" +checksum = "6edb1f0b3e4c08e2a0a490d1082ba9e902cdff8ff07091e85c6caec60d17e2ab" dependencies = [ - "glib", + "glib-sys 0.15.1", + "libc", + "system-deps 6.0.0", +] + +[[package]] +name = "graphene-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570" +dependencies = [ + "glib 0.15.2", "graphene-sys", "libc", ] [[package]] name = "graphene-sys" -version = "0.14.8" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9ac7450b3aa80792513a3c029920a2ede419de13fb5169a4e51b07a5685332" +checksum = "03f311acb023cf7af5537f35de028e03706136eead7f25a31e8fd26f5011e0b3" dependencies = [ - "glib-sys", + "glib-sys 0.15.1", "libc", "pkg-config", - "system-deps 3.2.0", + "system-deps 6.0.0", ] [[package]] name = "gsk4" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff59ca46c4fc5087fd7a0c3770a71ea4b6e94f8c24c12e2c2e8538f9f6fd764" +checksum = "d3dd7c79a864b8c4606d39fad3fd872688ea20ba8e833a9f38e905a458a29a8c" dependencies = [ "bitflags 1.3.2", "cairo-rs", "gdk4", - "glib", + "glib 0.15.2", "graphene-rs", "gsk4-sys", "libc", @@ -469,18 +526,18 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13aa53ce70234da02f9954339d988d5ab853d746a8f47a4ae17735ff873545b5" +checksum = "6d25ee96f7d1bdb6fa9945425aea95ce60efedf60c994eceb671fd93ad11d541" dependencies = [ "cairo-sys-rs", "gdk4-sys", - "glib-sys", - "gobject-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "graphene-sys", "libc", "pango-sys", - "system-deps 5.0.0", + "system-deps 6.0.0", ] [[package]] @@ -489,7 +546,6 @@ version = "0.1.0" dependencies = [ "anyhow", "gettext-rs", - "glib", "gstreamer", "gtk4", "log 0.4.14", @@ -512,7 +568,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "glib", + "glib 0.14.8", "gstreamer-sys", "libc", "muldiv", @@ -530,17 +586,17 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a81704feeb3e8599913bdd1e738455c2991a01ff4a1780cb62200993e454cc3e" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", "libc", "system-deps 3.2.0", ] [[package]] name = "gtk4" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58a04f421d1485ba4739e723199f5828bca05ab4e622ed39a96a342b6b1a6a3d" +checksum = "a6fda2b49a25eefc1116f15d06585d333c21fc3ce499ab0a86641fac2fbf40ac" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -549,7 +605,7 @@ dependencies = [ "gdk-pixbuf", "gdk4", "gio", - "glib", + "glib 0.15.2", "graphene-rs", "gsk4", "gtk4-macros", @@ -561,13 +617,11 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5068d4354af02454f44687adc613100aa98ae11e273cdcac84f89dc08be2b4a1" +checksum = "5b17860e493ada8a40577f0e92bce8249a97c831e39d7811ef21de6281d67f86" dependencies = [ "anyhow", - "heck", - "itertools", "proc-macro-crate", "proc-macro-error", "proc-macro2", @@ -577,21 +631,21 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e20a64c8f0ddcff8902ff04c130747f2fb7834a43530f75d03d6c71335733b49" +checksum = "ffc1047ea7a0ff2947fbfb703eecfcca6b58912171037a4c55b1577015f079d5" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", "gio-sys", - "glib-sys", - "gobject-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "graphene-sys", "gsk4-sys", "libc", "pango-sys", - "system-deps 5.0.0", + "system-deps 6.0.0", ] [[package]] @@ -603,6 +657,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "idna" version = "0.1.5" @@ -806,12 +866,12 @@ checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" [[package]] name = "pango" -version = "0.14.8" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581" +checksum = "79211eff430c29cc38c69e0ab54bc78fa1568121ca9737707eee7f92a8417a94" dependencies = [ "bitflags 1.3.2", - "glib", + "glib 0.15.2", "libc", "once_cell", "pango-sys", @@ -819,14 +879,14 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe" +checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.15.1", + "gobject-sys 0.15.1", "libc", - "system-deps 3.2.0", + "system-deps 6.0.0", ] [[package]] @@ -864,9 +924,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.20" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" [[package]] name = "pretty-hex" @@ -1117,7 +1177,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "syn", @@ -1154,27 +1214,27 @@ checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" dependencies = [ "anyhow", "cfg-expr 0.8.1", - "heck", + "heck 0.3.3", "itertools", "pkg-config", "strum", "strum_macros", "thiserror", "toml 0.5.8", - "version-compare", + "version-compare 0.0.11", ] [[package]] name = "system-deps" -version = "5.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +checksum = "7b1487aaddaacbc5d60a2a507ba1617c5ca66c57dd0dd07d0c5efd5b693841d4" dependencies = [ "cfg-expr 0.9.0", - "heck", + "heck 0.3.3", "pkg-config", "toml 0.5.8", - "version-compare", + "version-compare 0.1.0", ] [[package]] @@ -1306,6 +1366,12 @@ version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + [[package]] name = "version_check" version = "0.9.3" diff --git a/Cargo.toml b/Cargo.toml index 5ceabe5..5668108 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,10 +6,9 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gtk = { version = "0.3", package = "gtk4" } +gtk = { version = "0.4.1", package = "gtk4" } anyhow = "1" gettext-rs = {version = "0.7", features = ["gettext-system"]} -glib = "0.14" gstreamer = "0.17" log = "0.4.11" once_cell = "1.7.2" diff --git a/src/about.rs b/src/about.rs index e1dd8f1..fb8c713 100644 --- a/src/about.rs +++ b/src/about.rs @@ -19,6 +19,7 @@ use crate::app::GPSApp; use crate::config; use gettextrs::gettext; +use gtk::builders::AboutDialogBuilder; use gtk::prelude::*; use gtk::ApplicationWindow; @@ -28,7 +29,7 @@ pub fn display_about_dialog(app: &GPSApp) { .builder .object("mainwindow") .expect("Couldn't get window"); - let about_dialog = gtk::AboutDialogBuilder::new() + let about_dialog = AboutDialogBuilder::new() .modal(true) .program_name("GstPipelineStudio") .version(config::VERSION) diff --git a/src/app.rs b/src/app.rs index f7835e5..3de5839 100644 --- a/src/app.rs +++ b/src/app.rs @@ -214,12 +214,12 @@ impl GPSApp { if let Some((x, y)) = widget.translate_coordinates(&mainwindow, x, y) { let point = graphene::Point::new(x as f32, y as f32); - pop_menu.set_pointing_to(&Rectangle { - x: point.to_vec2().x() as i32, - y: point.to_vec2().y() as i32, - width: 0, - height: 0, - }); + pop_menu.set_pointing_to(Some(&Rectangle::new( + point.to_vec2().x() as i32, + point.to_vec2().y() as i32, + 0, + 0, + ))); } pop_menu } @@ -398,10 +398,7 @@ impl GPSApp { let app = upgrade_weak!(app_weak); let selection = tree_view.selection(); if let Some((model, iter)) = selection.selected() { - let element_name = model - .get(&iter, 0) - .get::() - .expect("Treeview selection, column 1"); + let element_name = model.get::(&iter, 1); GPS_DEBUG!("{} selected", element_name); app.add_new_element(&element_name); } @@ -416,9 +413,7 @@ impl GPSApp { let selection = favorite_list.selection(); if let Some((model, iter)) = selection.selected() { let element_name = model - .get(&iter, 0) - .get::() - .expect("Treeview selection, column 0"); + .get::(&iter, 1); GPS_DEBUG!("Element {} selected", element_name); let pop_menu = app.app_pop_menu_at_position(&favorite_list, x, y); @@ -594,26 +589,23 @@ impl GPSApp { }); let app_weak = self.downgrade(); - self.graphview - .borrow() - .connect_local( - "graph-updated", - false, - glib::clone!(@weak application => @default-return None, move |values: &[Value]| { - let app = upgrade_weak!(app_weak, None); - let id = values[1].get::().expect("id in args[1]"); - GPS_TRACE!("Graph updated id={}", id); - let _ = app - .save_graph( - Settings::default_graph_file_path() - .to_str() - .expect("Unable to convert to string"), - ) - .map_err(|e| GPS_WARN!("Unable to save file {}", e)); - None - }), - ) - .expect("Failed to register graph-updated signal of graphview"); + self.graphview.borrow().connect_local( + "graph-updated", + false, + glib::clone!(@weak application => @default-return None, move |values: &[Value]| { + let app = upgrade_weak!(app_weak, None); + let id = values[1].get::().expect("id in args[1]"); + GPS_TRACE!("Graph updated id={}", id); + let _ = app + .save_graph( + Settings::default_graph_file_path() + .to_str() + .expect("Unable to convert to string"), + ) + .map_err(|e| GPS_WARN!("Unable to save file {}", e)); + None + }), + ); // When user clicks on port with right button let app_weak = self.downgrade(); self.graphview @@ -642,14 +634,14 @@ impl GPSApp { pop_menu.show(); None }), - ) - .expect("Failed to register graph-right-clicked signal of graphview"); + ); // When user clicks on port with right button let app_weak = self.downgrade(); - self.graphview - .borrow() - .connect_local("port-right-clicked", false, move |values: &[Value]| { + self.graphview.borrow().connect_local( + "port-right-clicked", + false, + move |values: &[Value]| { let app = upgrade_weak!(app_weak, None); let port_id = values[1].get::().expect("port id args[1]"); @@ -673,8 +665,8 @@ impl GPSApp { }); pop_menu.show(); None - }) - .expect("Failed to register port-right-clicked signal of graphview"); + }, + ); // When user clicks on node with right button let app_weak = self.downgrade(); @@ -752,8 +744,7 @@ impl GPSApp { pop_menu.show(); None }), - ) - .expect("Failed to register node-right-clicked signal of graphview"); + ); // Setup the favorite list self.setup_favorite_list(application); diff --git a/src/logger.rs b/src/logger.rs index c7a9acf..b3f1728 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -1,5 +1,4 @@ -use glib::Sender; -use gtk::glib; +use gtk::glib::Sender; use log::{debug, error, info, trace, warn}; use simplelog::*; use std::fmt; diff --git a/src/pipeline.rs b/src/pipeline.rs index 8a7268f..fbb0bce 100644 --- a/src/pipeline.rs +++ b/src/pipeline.rs @@ -21,6 +21,7 @@ use crate::graphmanager::{GraphView, Node, NodeType, PortDirection}; use crate::logger; use crate::GPS_INFO; +use gst::glib; use gst::prelude::*; use gstreamer as gst; use std::cell::{Cell, RefCell}; diff --git a/src/plugindialogs.rs b/src/plugindialogs.rs index bed3aa1..a08c27c 100644 --- a/src/plugindialogs.rs +++ b/src/plugindialogs.rs @@ -92,9 +92,7 @@ pub fn display_plugin_list(app: &GPSApp, elements: &[ElementInfo]) { let selection = tree_view.selection(); if let Some((model, iter)) = selection.selected() { let element_name = model - .get(&iter, 1) - .get::() - .expect("Unable to get the treeview selection, column 1"); + .get::(&iter, 1); let description = Pipeline::element_description(&element_name).expect("Unable to get element description from GStreamer"); text_buffer.set_text(""); text_buffer.insert_markup(&mut text_buffer.end_iter(), &description); @@ -108,9 +106,7 @@ pub fn display_plugin_list(app: &GPSApp, elements: &[ElementInfo]) { let selection = tree_view.selection(); if let Some((model, iter)) = selection.selected() { let element_name = model - .get(&iter, 1) - .get::() - .expect("Unable to get the treeview selection, column 1"); + .get::(&iter, 1); app.add_new_element(&element_name); } }), diff --git a/src/settings.rs b/src/settings.rs index 0d21013..c15d3db 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -1,3 +1,4 @@ +use gtk::glib; use std::fs::create_dir_all; use std::path::PathBuf;