Skip to content

Commit

Permalink
Some improvements.
Browse files Browse the repository at this point in the history
  - Topics: UI/UX redesigned to use tabs, and cache topics upon explicit refresh.
  - Messages: Send Messages dialog improved to respond to main window
    size and monitor/display resolution.
  - UI: gtk::TextView custom style to overcome libadwaita's lack of an
    Entry widget for TextView.
    see: https://gitlab.gnome.org/GNOME/libadwaita/-/issues/353
  - LICENSE.md: handling MS Windows encoding (UTF-8 -> ISO-8859-1) on installer

resolve #8, fixes #7
  • Loading branch information
Miguel Aranha Baldi Horlle committed May 6, 2024
1 parent a3b2f02 commit 3e42511
Show file tree
Hide file tree
Showing 14 changed files with 430 additions and 149 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ krust-setup.exe
libs/
package.zip
*.log
LICENSE-win.md
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ sourceview5 = { version = "0.8.0", features = ["v5_4"] }
directories = "4.0.1"
futures = { version = "0.3.25", default-features = false }
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.79"
serde_json = { version= "1.0.79", features = ["preserve_order"] }
ron = "0.8"
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
Expand Down
3 changes: 2 additions & 1 deletion create_windows_installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ docker container create --name setup amake/innosetup setup.iss
docker cp ./package setup:/work/
docker cp data/images/krust.ico setup:/work/krust.ico
docker cp setup.iss setup:/work/
docker cp LICENSE.md setup:/work/
iconv -f utf8 -t iso8859-1 LICENSE.md > LICENSE-win.md
docker cp LICENSE-win.md setup:/work/LICENSE.md
docker start -i -a setup
docker cp setup:/work/Output/. .
docker rm setup
Expand Down
12 changes: 9 additions & 3 deletions src/backend/kafka.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ impl KafkaBackend {
.set("enable.partition.eof", "false")
.set("session.timeout.ms", "6000")
.set("enable.auto.commit", "false")
.set("message.timeout.ms", "5000")
//.set("statistics.interval.ms", "30000")
.set("auto.offset.reset", "earliest")
.set("security.protocol", self.config.security_type.to_string())
Expand All @@ -150,7 +149,6 @@ impl KafkaBackend {
.set("enable.partition.eof", "false")
.set("session.timeout.ms", "6000")
.set("enable.auto.commit", "false")
.set("message.timeout.ms", "5000")
//.set("statistics.interval.ms", "30000")
.set("auto.offset.reset", "earliest")
.create_with_context::<C, T>(context)
Expand Down Expand Up @@ -295,7 +293,15 @@ impl KafkaBackend {
for p in partitions {
if !cpartitions.is_empty() {
let low = match part_map.get(&p.id) {
Some(part) => part.offset_high.unwrap_or(p.offset_low.unwrap()),
Some(part) => {
let o = part.offset_high.unwrap_or(p.offset_low.unwrap());
let o = if o < p.offset_low.unwrap() {
p.offset_low.unwrap()
} else {
o
};
o
}
None => {
result.push(Partition {
id: p.id,
Expand Down
11 changes: 5 additions & 6 deletions src/component/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,15 @@ use crate::{
connection_list::KrustConnectionOutput,
connection_page::{ConnectionPageModel, ConnectionPageMsg, ConnectionPageOutput},
settings_page::{SettingsPageModel, SettingsPageMsg, SettingsPageOutput},
status_bar::{StatusBarModel, STATUS_BROKER},
topics_page::{TopicsPageModel, TopicsPageMsg, TopicsPageOutput},
status_bar::{StatusBarModel, STATUS_BROKER}, topics::topics_page::{TopicsPageMsg, TopicsPageOutput},
},
config::State,
modals::about::AboutDialog, APP_ID, APP_NAME, APP_RESOURCE_PATH,
};

use super::{
connection_list::ConnectionListModel,
messages::messages_page::{MessagesPageModel, MessagesPageMsg},
messages::messages_page::{MessagesPageModel, MessagesPageMsg}, topics::topics_page::TopicsPageModel,
};

#[derive(Debug)]
Expand Down Expand Up @@ -157,7 +156,7 @@ impl Component for AppModel {
add_child = connection_page.widget() -> &gtk::Grid {} -> {
set_name: "Connection",
},
add_child = topics_page.widget() -> &gtk::Box {} -> {
add_child = topics_page.widget() -> &adw::TabOverview {} -> {
set_name: "Topics",
set_title: "Topics",
},
Expand Down Expand Up @@ -362,7 +361,7 @@ impl Component for AppModel {
}
AppMsg::ShowTopicsPage(conn) => {
info!("|-->Show edit connection page for {:?}", conn);
self.topics_page.emit(TopicsPageMsg::List(conn));
self.topics_page.emit(TopicsPageMsg::Open(conn));
widgets.main_stack.set_visible_child_name("Topics");
}
AppMsg::ShowTopicsPageByIndex(idx) => {
Expand All @@ -383,7 +382,7 @@ impl Component for AppModel {
"|-->Show edit connection page for index {:?} - {:?}",
idx, conn
);
self.topics_page.emit(TopicsPageMsg::List(conn));
self.topics_page.emit(TopicsPageMsg::Open(conn));
widgets.main_stack.set_visible_child_name("Topics");
} else {
widgets.main_stack.set_visible_child_name("Home");
Expand Down
30 changes: 0 additions & 30 deletions src/component/messages/messages_page.rs
Original file line number Diff line number Diff line change
Expand Up @@ -220,36 +220,6 @@ impl Component for MessagesPageModel {
}
}
}
// MessagesPageMsg::PageClosed(page) => {
// info!("removing messages page with name {}", page.title());
// widgets.topics_viewer.close_page_finish(&page, true);
// let mut idx: Option<usize> = None;
// let mut topics = self.topics.guard();
// for i in 0..topics.len() {
// let tp = topics.get_mut(i);
// if let Some(tp) = tp {
// let title = format!(
// "[{}] {}",
// tp.connection.clone().unwrap().name.clone(),
// tp.topic.clone().unwrap().name.clone()
// );
// info!("PageClosed [{}][{}={}]", i, title, page.title());
// if title.eq(&page.title().to_string()) {
// idx = Some(i);
// break;
// }
// }
// }
// if let Some(idx) = idx {
// let result = topics.remove(idx.try_into().unwrap());
// info!(
// "page model with index {} and name {:?} removed",
// idx, result
// );
// } else {
// info!("page model not found for removal");
// }
// }
};

self.update_view(widgets, sender);
Expand Down
Loading

0 comments on commit 3e42511

Please sign in to comment.