TUI #1

Merged
shaunrd0 merged 73 commits from ui into master 2026-01-25 20:57:37 +00:00
3 changed files with 42 additions and 63 deletions
Showing only changes of commit 3ffdcc2865 - Show all commits

56
Cargo.lock generated
View File

@ -467,9 +467,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx-qt" name = "cxx-qt"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb4ce9106b3ee7ef85f77d5f69ec30ec3037ea1edacd3e29a61b26ff47ecc637" checksum = "ec7c6dea4b551221e1df4349af7ae6af2c906c16860bdab5cada5a957b43cbbc"
dependencies = [ dependencies = [
"cxx", "cxx",
"cxx-qt-build", "cxx-qt-build",
@ -481,9 +481,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx-qt-build" name = "cxx-qt-build"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23a7884708e645dc34a2c475bd8c505a2ffeb7c9cb0843f5c580c002c939ea30" checksum = "c70cbc19fb351a0413632b326ad4862baea7f50d641d2d360b29ad0f772547bc"
dependencies = [ dependencies = [
"cc", "cc",
"codespan-reporting 0.11.1", "codespan-reporting 0.11.1",
@ -494,17 +494,17 @@ dependencies = [
"quote", "quote",
"serde", "serde",
"serde_json", "serde_json",
"version_check",
] ]
[[package]] [[package]]
name = "cxx-qt-gen" name = "cxx-qt-gen"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6b431dc58e4a9b7a55b675be0941331cc2cab0a494e4742ebf7bb393c3fc39" checksum = "33744d84f696836347071ad73da233f758f98e5c0b348e2855140173b36bffa2"
dependencies = [ dependencies = [
"clang-format", "clang-format",
"convert_case 0.6.0", "convert_case 0.6.0",
"cxx-gen",
"indoc", "indoc",
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -513,9 +513,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx-qt-lib" name = "cxx-qt-lib"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "527b46c28be6bf3dd02f1567706641fe247a8798defab8268c84602955741217" checksum = "7eacfc219a287c422619b7704166bfd3b9b842367bd9124ad5557e6150a2d658"
dependencies = [ dependencies = [
"cxx", "cxx",
"cxx-qt", "cxx-qt",
@ -525,12 +525,13 @@ dependencies = [
[[package]] [[package]]
name = "cxx-qt-macro" name = "cxx-qt-macro"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "971d8811fd1c8dd06c17284edcfc8e9663dac30d7e3d52159405f836a81923f1" checksum = "3cb8ce32a983d56470101ff8e61c8a700ba37805b6e942186c6f3dd5d6ad44f6"
dependencies = [ dependencies = [
"cxx-qt-gen", "cxx-qt-gen",
"proc-macro2", "proc-macro2",
"quote",
"syn 2.0.114", "syn 2.0.114",
] ]
@ -984,15 +985,6 @@ version = "1.70.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
[[package]]
name = "itertools"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
dependencies = [
"either",
]
[[package]] [[package]]
name = "itertools" name = "itertools"
version = "0.14.0" version = "0.14.0"
@ -1564,13 +1556,15 @@ dependencies = [
[[package]] [[package]]
name = "qt-build-utils" name = "qt-build-utils"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63c7e24653d0b3084180066306b26e532b152470b13a050c2d2960284d4b9f53" checksum = "0cfd41d4f115dfc940ea3ea31b3aed77233ad09ab8859a227ed61323025590af"
dependencies = [ dependencies = [
"anyhow",
"cc", "cc",
"semver",
"serde",
"thiserror 1.0.69", "thiserror 1.0.69",
"versions",
] ]
[[package]] [[package]]
@ -1642,7 +1636,7 @@ dependencies = [
"compact_str", "compact_str",
"hashbrown", "hashbrown",
"indoc", "indoc",
"itertools 0.14.0", "itertools",
"kasuari", "kasuari",
"lru", "lru",
"strum", "strum",
@ -1694,7 +1688,7 @@ dependencies = [
"hashbrown", "hashbrown",
"indoc", "indoc",
"instability", "instability",
"itertools 0.14.0", "itertools",
"line-clipping", "line-clipping",
"ratatui-core", "ratatui-core",
"strum", "strum",
@ -2198,7 +2192,7 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"
dependencies = [ dependencies = [
"itertools 0.14.0", "itertools",
"unicode-segmentation", "unicode-segmentation",
"unicode-width 0.2.2", "unicode-width 0.2.2",
] ]
@ -2239,16 +2233,6 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "versions"
version = "6.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f25d498b63d1fdb376b4250f39ab3a5ee8d103957346abacd911e2d8b612c139"
dependencies = [
"itertools 0.13.0",
"nom",
]
[[package]] [[package]]
name = "vtparse" name = "vtparse"
version = "0.6.2" version = "0.6.2"

View File

@ -5,8 +5,8 @@ edition = "2024"
[dependencies] [dependencies]
cxx = "1.0.95" cxx = "1.0.95"
cxx-qt = "0.7" cxx-qt = "0.8.0"
cxx-qt-lib = { version="0.7", features = ["qt_full", "qt_gui"] } cxx-qt-lib = { version = "0.8.0", features = ["qt_full", "qt_gui", "qt_qml"] }
log = { version = "0.4.27", features = [] } log = { version = "0.4.27", features = [] }
dirs = "6.0.0" dirs = "6.0.0"
syntect = "5.2.0" syntect = "5.2.0"
@ -18,4 +18,4 @@ edtui = "0.11.1"
[build-dependencies] [build-dependencies]
# The link_qt_object_files feature is required for statically linking Qt 6. # The link_qt_object_files feature is required for statically linking Qt 6.
cxx-qt-build = { version = "0.7", features = [ "link_qt_object_files" ] } cxx-qt-build = { version = "0.8.0", features = ["link_qt_object_files"] }

View File

@ -1,28 +1,23 @@
use cxx_qt_build::{CxxQtBuilder, QmlModule}; use cxx_qt_build::{CxxQtBuilder, QmlModule};
fn main() { fn main() {
CxxQtBuilder::new() CxxQtBuilder::new_qml_module(QmlModule::new("clide.module").qml_files(&[
// Link Qt's Network library "qml/main.qml",
// - Qt Core is always linked "qml/ClideAboutWindow.qml",
// - Qt Gui is linked by enabling the qt_gui Cargo feature of cxx-qt-lib. "qml/ClideTreeView.qml",
// - Qt Qml is linked by enabling the qt_qml Cargo feature of cxx-qt-lib. "qml/ClideProjectView.qml",
// - Qt Qml requires linking Qt Network on macOS "qml/ClideEditor.qml",
.qt_module("Network") "qml/ClideMenuBar.qml",
.qt_module("Gui") ]))
.qt_module("Svg") // Link Qt's Network library
.qt_module("Xml") // - Qt Core is always linked
.qml_module(QmlModule { // - Qt Gui is linked by enabling the qt_gui Cargo feature of cxx-qt-lib.
uri: "clide.module", // - Qt Qml is linked by enabling the qt_qml Cargo feature of cxx-qt-lib.
rust_files: &["src/gui/colors.rs", "src/gui/filesystem.rs"], // - Qt Qml requires linking Qt Network on macOS
qml_files: &[ .qt_module("Network")
"qml/main.qml", .qt_module("Gui")
"qml/ClideAboutWindow.qml", .qt_module("Svg")
"qml/ClideTreeView.qml", .qt_module("Xml")
"qml/ClideProjectView.qml", .files(["src/gui/colors.rs", "src/gui/filesystem.rs"])
"qml/ClideEditor.qml", .build();
"qml/ClideMenuBar.qml",
],
..Default::default()
})
.build();
} }