1
0
forked from brl/citadel-tools

Set static gtk versions and updated citadel-realms-ui for API version changes

This commit is contained in:
David McKinney 2020-10-08 09:03:03 -04:00 committed by Bruce Leidl
parent 695dc9da21
commit 3d3b794b1d
8 changed files with 811 additions and 190 deletions

747
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
[workspace] [workspace]
members = ["citadel-realms", "citadel-realms-ui", "citadel-tool", "realmsd" ] members = ["citadel-realms", "citadel-realms-ui", "citadel-installer-ui", "citadel-tool", "realmsd" ]
[profile.release] [profile.release]
lto = true lto = true
codegen-units = 1 codegen-units = 1

View File

@ -1,17 +1,19 @@
[package] [package]
name = "citadel-realms-ui" name = "citadel-realms-ui"
description = "Citadel Realms UI"
version = "0.1.0" version = "0.1.0"
authors = ["Bruce Leidl <bruce@subgraph.com>"] authors = ["Bruce Leidl <bruce@subgraph.com>"]
edition = "2018" edition = "2018"
homepage = "https://subgraph,com"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
dbus = "0.8" dbus = "0.8"
nix = "0.17.0" nix = "0.17.0"
fuzzy-matcher = "*" fuzzy-matcher = "0.3.7"
gtk = "^0" gtk = "0.9.0"
gdk = "^0" gdk = "0.13.2"
gio = "^0" gio = "0.9.1"
glib = "^0" glib = "0.10.2"
pango = "^0" pango = "0.9.1"

View File

@ -0,0 +1,202 @@
# Auto-Generated by cargo-bitbake 0.3.14
#
inherit cargo
# If this is git based prefer versioned ones if they exist
# DEFAULT_PREFERENCE = "-1"
# how to get citadel-realms-ui could be as easy as but default to a git checkout:
# SRC_URI += "crate://crates.io/citadel-realms-ui/0.1.0"
SRC_URI += "git://github.com/mckinney-subgraph/citadel-tools;protocol=https;nobranch=1;branch=installer_ui"
SRCREV = "695dc9da2115f5f3f731b711b4b127b45d7a137f"
S = "${WORKDIR}/git"
CARGO_SRC_DIR = "citadel-realms-ui"
PV_append = ".AUTOINC+695dc9da21"
# please note if you have entries that do not begin with crate://
# you must change them to how that package can be fetched
SRC_URI += " \
crate://crates.io/addr2line/0.12.1 \
crate://crates.io/adler32/1.1.0 \
crate://crates.io/ansi_term/0.11.0 \
crate://crates.io/anyhow/1.0.33 \
crate://crates.io/arc-swap/0.4.7 \
crate://crates.io/array-macro/1.0.3 \
crate://crates.io/atk-sys/0.10.0 \
crate://crates.io/atk/0.9.0 \
crate://crates.io/atty/0.2.14 \
crate://crates.io/autocfg/1.0.0 \
crate://crates.io/backtrace/0.3.49 \
crate://crates.io/bincode/1.2.1 \
crate://crates.io/bitflags/1.2.1 \
crate://crates.io/block-buffer/0.9.0 \
crate://crates.io/block-cipher/0.7.1 \
crate://crates.io/blowfish/0.5.0 \
crate://crates.io/byteorder/1.3.4 \
crate://crates.io/cairo-rs/0.9.1 \
crate://crates.io/cairo-sys-rs/0.10.0 \
crate://crates.io/cc/1.0.54 \
crate://crates.io/cfg-if/0.1.10 \
crate://crates.io/chrono/0.4.11 \
crate://crates.io/clap/2.33.1 \
crate://crates.io/cpuid-bool/0.1.2 \
crate://crates.io/crc32fast/1.2.0 \
crate://crates.io/crossbeam-channel/0.3.9 \
crate://crates.io/crossbeam-utils/0.6.6 \
crate://crates.io/crypto-mac/0.8.0 \
crate://crates.io/cursive/0.11.0 \
crate://crates.io/dbus/0.6.5 \
crate://crates.io/dbus/0.8.4 \
crate://crates.io/digest/0.9.0 \
crate://crates.io/either/1.6.1 \
crate://crates.io/enum-map-derive/0.4.3 \
crate://crates.io/enum-map-internals/0.1.3 \
crate://crates.io/enum-map/0.5.0 \
crate://crates.io/enumset/0.3.19 \
crate://crates.io/enumset_derive/0.3.2 \
crate://crates.io/failure/0.1.8 \
crate://crates.io/failure_derive/0.1.8 \
crate://crates.io/filetime/0.2.10 \
crate://crates.io/futures-channel/0.3.6 \
crate://crates.io/futures-core/0.3.6 \
crate://crates.io/futures-executor/0.3.6 \
crate://crates.io/futures-io/0.3.6 \
crate://crates.io/futures-macro/0.3.6 \
crate://crates.io/futures-sink/0.3.6 \
crate://crates.io/futures-task/0.3.6 \
crate://crates.io/futures-util/0.3.6 \
crate://crates.io/futures/0.3.6 \
crate://crates.io/fuzzy-matcher/0.3.7 \
crate://crates.io/gdk-pixbuf-sys/0.10.0 \
crate://crates.io/gdk-pixbuf/0.9.0 \
crate://crates.io/gdk-sys/0.10.0 \
crate://crates.io/gdk/0.13.2 \
crate://crates.io/generic-array/0.14.4 \
crate://crates.io/getrandom/0.1.15 \
crate://crates.io/gimli/0.21.0 \
crate://crates.io/gio-sys/0.10.1 \
crate://crates.io/gio/0.9.1 \
crate://crates.io/glib-macros/0.10.1 \
crate://crates.io/glib-sys/0.10.1 \
crate://crates.io/glib/0.10.2 \
crate://crates.io/gobject-sys/0.10.0 \
crate://crates.io/gtk-sys/0.10.0 \
crate://crates.io/gtk/0.9.2 \
crate://crates.io/heck/0.3.1 \
crate://crates.io/hermit-abi/0.1.14 \
crate://crates.io/hex/0.4.2 \
crate://crates.io/hmac/0.8.1 \
crate://crates.io/inotify-sys/0.1.3 \
crate://crates.io/inotify/0.8.3 \
crate://crates.io/itertools/0.9.0 \
crate://crates.io/lazy_static/1.4.0 \
crate://crates.io/libc/0.2.71 \
crate://crates.io/libdbus-sys/0.2.1 \
crate://crates.io/libflate/0.1.27 \
crate://crates.io/libsodium-sys/0.2.5 \
crate://crates.io/log/0.4.8 \
crate://crates.io/md-5/0.9.1 \
crate://crates.io/memchr/2.3.3 \
crate://crates.io/miniz_oxide/0.3.7 \
crate://crates.io/nix/0.17.0 \
crate://crates.io/num-complex/0.2.4 \
crate://crates.io/num-integer/0.1.43 \
crate://crates.io/num-iter/0.1.41 \
crate://crates.io/num-rational/0.2.4 \
crate://crates.io/num-traits/0.2.12 \
crate://crates.io/num/0.2.1 \
crate://crates.io/numtoa/0.1.0 \
crate://crates.io/object/0.20.0 \
crate://crates.io/once_cell/1.4.0 \
crate://crates.io/opaque-debug/0.2.3 \
crate://crates.io/opaque-debug/0.3.0 \
crate://crates.io/owning_ref/0.4.1 \
crate://crates.io/pango-sys/0.10.0 \
crate://crates.io/pango/0.9.1 \
crate://crates.io/pin-project-internal/0.4.22 \
crate://crates.io/pin-project/0.4.22 \
crate://crates.io/pin-utils/0.1.0 \
crate://crates.io/pkg-config/0.3.17 \
crate://crates.io/ppv-lite86/0.2.9 \
crate://crates.io/proc-macro-crate/0.1.5 \
crate://crates.io/proc-macro-error-attr/1.0.4 \
crate://crates.io/proc-macro-error/1.0.4 \
crate://crates.io/proc-macro-hack/0.5.16 \
crate://crates.io/proc-macro-nested/0.1.6 \
crate://crates.io/proc-macro2/0.4.30 \
crate://crates.io/proc-macro2/1.0.18 \
crate://crates.io/pwhash/0.3.1 \
crate://crates.io/quote/0.6.13 \
crate://crates.io/quote/1.0.7 \
crate://crates.io/rand/0.7.3 \
crate://crates.io/rand_chacha/0.2.2 \
crate://crates.io/rand_core/0.5.1 \
crate://crates.io/rand_hc/0.2.0 \
crate://crates.io/redox_syscall/0.1.56 \
crate://crates.io/redox_termios/0.1.1 \
crate://crates.io/rle-decode-fast/1.0.1 \
crate://crates.io/rpassword/4.0.5 \
crate://crates.io/rustc-demangle/0.1.16 \
crate://crates.io/same-file/1.0.6 \
crate://crates.io/serde/1.0.112 \
crate://crates.io/serde_derive/1.0.112 \
crate://crates.io/sha-1/0.9.1 \
crate://crates.io/sha2/0.9.1 \
crate://crates.io/signal-hook-registry/1.2.0 \
crate://crates.io/signal-hook/0.1.16 \
crate://crates.io/slab/0.4.2 \
crate://crates.io/sodiumoxide/0.2.5 \
crate://crates.io/stable_deref_trait/1.1.1 \
crate://crates.io/strsim/0.8.0 \
crate://crates.io/strum/0.18.0 \
crate://crates.io/strum_macros/0.18.0 \
crate://crates.io/subtle/2.3.0 \
crate://crates.io/syn/0.15.44 \
crate://crates.io/syn/1.0.31 \
crate://crates.io/synstructure/0.12.4 \
crate://crates.io/system-deps/1.3.2 \
crate://crates.io/take_mut/0.2.2 \
crate://crates.io/tar/0.4.29 \
crate://crates.io/termion/1.5.5 \
crate://crates.io/textwrap/0.11.0 \
crate://crates.io/thiserror-impl/1.0.21 \
crate://crates.io/thiserror/1.0.21 \
crate://crates.io/thread_local/1.0.1 \
crate://crates.io/time/0.1.43 \
crate://crates.io/toml/0.4.10 \
crate://crates.io/toml/0.5.6 \
crate://crates.io/typenum/1.12.0 \
crate://crates.io/unicode-segmentation/1.6.0 \
crate://crates.io/unicode-width/0.1.7 \
crate://crates.io/unicode-xid/0.1.0 \
crate://crates.io/unicode-xid/0.2.0 \
crate://crates.io/vcpkg/0.2.10 \
crate://crates.io/vec_map/0.8.2 \
crate://crates.io/version-compare/0.0.10 \
crate://crates.io/version_check/0.9.2 \
crate://crates.io/void/1.0.2 \
crate://crates.io/walkdir/2.3.1 \
crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-util/0.1.5 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.3.9 \
crate://crates.io/xattr/0.2.2 \
crate://crates.io/xi-unicode/0.1.0 \
"
# FIXME: update generateme with the real MD5 of the license file
LIC_FILES_CHKSUM = " \
"
SUMMARY = "Citadel Realms UI"
HOMEPAGE = "https://subgraph,com"
LICENSE = "CLOSED"
# includes this file if it exists but does not fail
# this is useful for anything you may want to override from
# what cargo-bitbake generates.
include citadel-realms-ui-${PV}.inc
include citadel-realms-ui.inc

View File

@ -8,7 +8,7 @@ pub struct Builder {
impl Builder { impl Builder {
pub fn new(source: &str) -> Self { pub fn new(source: &str) -> Self {
let builder = gtk::Builder::new_from_string(source); let builder = gtk::Builder::from_string(source);
Builder { builder } Builder { builder }
} }

View File

@ -1,7 +1,7 @@
use gtk::prelude::*; use gtk::prelude::*;
use gdk::ModifierType; use gdk::ModifierType;
use gdk::enums::key; use gdk::keys::constants;
use crate::{Result,Builder}; use crate::{Result,Builder};
use crate::realms::Entity; use crate::realms::Entity;
use std::collections::HashMap; use std::collections::HashMap;
@ -102,11 +102,13 @@ impl ConfigDialog {
move |_,key| { move |_,key| {
let state = key.get_state(); let state = key.get_state();
let keyval = key.get_keyval(); let keyval = key.get_keyval();
let esc = keyval == key::Escape || let esc = keyval == constants::Escape ||
(state == ModifierType::CONTROL_MASK && keyval == '[' as u32); (state == ModifierType::CONTROL_MASK && keyval.to_unicode().unwrap() == '[');
if esc { if esc {
parent.show(); parent.show();
win.destroy(); unsafe {
win.destroy();
}
} }
Inhibit(false) Inhibit(false)

View File

@ -60,7 +60,9 @@ impl ResultItem {
} }
if entity.description().is_empty() { if entity.description().is_empty() {
desc.destroy(); unsafe {
desc.destroy();
}
} else { } else {
desc.set_text(entity.description()); desc.set_text(entity.description());
} }

View File

@ -2,7 +2,8 @@
use gtk::prelude::*; use gtk::prelude::*;
use gtk::StyleContext; use gtk::StyleContext;
use gdk::ModifierType; use gdk::ModifierType;
use gdk::enums::key; use gdk::keys::constants;
use gdk::keys::Key;
use crate::matcher::Matcher; use crate::matcher::Matcher;
use crate::results::ResultList; use crate::results::ResultList;
@ -63,9 +64,8 @@ impl Ui {
self.input.connect_activate(move |_| { ui.on_activate() }); self.input.connect_activate(move |_| { ui.on_activate() });
let ui = self.clone(); let ui = self.clone();
self.input.connect_changed(move |e| { self.input.connect_changed(move |e| {
if let Some(s) = e.get_text() { let s = e.get_text();
ui.on_entry_changed(s.as_str()); ui.on_entry_changed(s.to_string().as_str());
}
}); });
let ui = self.clone(); let ui = self.clone();
self.input.connect_key_press_event(move |_,k| { self.input.connect_key_press_event(move |_,k| {
@ -125,9 +125,9 @@ impl Ui {
self.window.resize(w, h); self.window.resize(w, h);
} }
fn is_escape_key(keyval: key::Key, state: ModifierType) -> bool { fn is_escape_key(keyval: gdk::keys::Key, state: ModifierType) -> bool {
keyval == key::Escape || keyval == constants::Escape ||
(state == ModifierType::CONTROL_MASK && keyval == '[' as u32) (state == ModifierType::CONTROL_MASK && keyval.to_unicode().unwrap() == '[')
} }
fn on_key_press(&self, key: &gdk::EventKey) { fn on_key_press(&self, key: &gdk::EventKey) {
@ -137,12 +137,12 @@ impl Ui {
if Self::is_escape_key(key.get_keyval(), key.get_state()) { if Self::is_escape_key(key.get_keyval(), key.get_state()) {
gtk::main_quit(); gtk::main_quit();
} }
if keyval == key::Up { if keyval == constants::Up {
self.result_list.selection_up(); self.result_list.selection_up();
} else if keyval == key::Down { } else if keyval == constants::Down {
self.result_list.selection_down(); self.result_list.selection_down();
} else if state == ModifierType::CONTROL_MASK { } else if state == ModifierType::CONTROL_MASK {
match keyval as u8 as char { match keyval.to_unicode().unwrap() {
'n'|'j' => self.result_list.selection_down(), 'n'|'j' => self.result_list.selection_down(),
'p'|'k' => self.result_list.selection_up(), 'p'|'k' => self.result_list.selection_up(),
_ => {}, _ => {},