Fix css
This commit is contained in:
		| @ -6,6 +6,6 @@ edition = "2021" | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [dependencies] | ||||
| gtk4 = { version = "0.7.3", features = ["blueprint"] } | ||||
| gtk4 = { version = "0.7.3", features = ["blueprint", "v4_12"] } | ||||
| simplelogin = { version = "0.1.0", path = "../simplelogin" } | ||||
| tokio = { version = "1.33.0", features = ["full"] } | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <schemalist> | ||||
|   <schema id="im.zander.SimpleLogin" path="/im/zander/SimpleLogin/"> | ||||
|     <key name="api-key" type="s"> | ||||
|       <default>""</default> | ||||
|     <key name="api-key" type="ms"> | ||||
|       <default>nothing</default> | ||||
|       <summary>Api key</summary> | ||||
|       <description>The api key for the current user</description> | ||||
|     </key> | ||||
|  | ||||
| @ -117,9 +117,6 @@ template $LoginWindow : ApplicationWindow { | ||||
|             receives-default: true; | ||||
|             truncate-multiline: true; | ||||
|  | ||||
|             styles [ | ||||
|             ] | ||||
|  | ||||
|             layout { | ||||
|               column: "1"; | ||||
|               row: "1"; | ||||
|  | ||||
| @ -1,20 +1,34 @@ | ||||
| use crate::login_window::LoginWindow; | ||||
|  | ||||
| use gtk4 as gtk; | ||||
| use gtk::{glib, gio, prelude::*, subclass::prelude::*}; | ||||
| use gtk::{glib, gdk, gio, prelude::*, subclass::prelude::*}; | ||||
|  | ||||
| mod imp { | ||||
|     use super::*; | ||||
|     use std::cell::RefCell; | ||||
|      | ||||
|     #[derive(Debug)] | ||||
|     #[derive(Debug, glib::Properties)] | ||||
|     #[properties(wrapper_type = super::Application)] | ||||
|     pub struct Application { | ||||
|         pub settings: gio::Settings, | ||||
|         #[property(name = "api-key", type = Option<String>, | ||||
|             get = Self::api_key, set = Self::set_api_key, nullable)] | ||||
|         pub settings: RefCell<gio::Settings>, | ||||
|     } | ||||
|  | ||||
|     impl Application { | ||||
|         fn api_key(&self) -> Option<String> { | ||||
|             self.settings.borrow().value("api-key").get() | ||||
|         } | ||||
|  | ||||
|         fn set_api_key(&self, value: Option<String>) { | ||||
|             _ = self.settings.borrow().set("api-key", value).unwrap(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     impl Default for Application { | ||||
|         fn default() -> Self { | ||||
|             Self { | ||||
|                 settings: gio::Settings::new(crate::APP_ID) | ||||
|                 settings: RefCell::new(gio::Settings::new(crate::APP_ID)), | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @ -28,11 +42,22 @@ mod imp { | ||||
|  | ||||
|     impl ApplicationImpl for Application { | ||||
|         fn activate(&self) { | ||||
|         let css = gtk::CssProvider::new(); | ||||
|         gtk::style_context_add_provider_for_display( | ||||
|             &gdk::Display::default().unwrap(), | ||||
|             &css, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION | ||||
|         ); | ||||
|         css.load_from_string(include_str!("../data/global.css")); | ||||
|             if self.api_key().is_none() { | ||||
|                 let login_window = LoginWindow::new(&self.obj()); | ||||
|                 login_window.present(); | ||||
|             } else { | ||||
|                 todo!(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     #[glib::derived_properties] | ||||
|     impl ObjectImpl for Application {} | ||||
|     impl GtkApplicationImpl for Application {} | ||||
| } | ||||
|  | ||||
| @ -4,15 +4,16 @@ mod application; | ||||
|  | ||||
| use gtk4 as gtk; | ||||
| use gtk::prelude::*; | ||||
| use gtk::glib::{self, g_message}; | ||||
| use gtk::glib::{self, g_info}; | ||||
|  | ||||
| const APP_ID: &str = "im.zander.SimpleLogin"; | ||||
|  | ||||
| fn main() -> glib::ExitCode { | ||||
|     if cfg!(debug_assertions) { | ||||
|     #[cfg(debug_assertions)] { | ||||
|         std::env::set_var("G_MESSAGES_DEBUG", "SimpleLogin"); | ||||
|         // allow us to use a test schema for debug runs | ||||
|         let schema_dir = concat!(env!("OUT_DIR"), "/schemas/"); | ||||
|         g_message!("SimpleLogin", "Using schema dir: \"{}\"", schema_dir); | ||||
|         g_info!("SimpleLogin", "Using schema dir: \"{}\"", schema_dir); | ||||
|         std::env::set_var("GSETTINGS_SCHEMA_DIR", schema_dir); | ||||
|     } | ||||
|     let app = application::Application::new(APP_ID); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user