headerbar: Add ERROR style to Add entry

When you enter an invalid or duplicate URL an error message is shown.
But GTK's error style is not applied to the entry.

This commit applies GTK's error style to the URL entry when appropriate.

part of #45
This commit is contained in:
FeuRenard
2019-06-09 05:48:02 +03:00
committed by Jordan Petridis
parent 0b8d19fbbe
commit 0dc1f810d2
+12
View File
@@ -107,10 +107,16 @@ impl AddPopover {
match Url::parse(&url) {
Ok(u) => {
if !dbqueries::source_exists(u.as_str())? {
self.entry
.get_style_context()
.remove_class(&gtk::STYLE_CLASS_ERROR);
self.entry
.set_icon_from_icon_name(gtk::EntryIconPosition::Secondary, None);
self.add.set_sensitive(true);
} else {
self.entry
.get_style_context()
.add_class(&gtk::STYLE_CLASS_ERROR);
self.entry.set_icon_from_icon_name(
gtk::EntryIconPosition::Secondary,
"dialog-error-symbolic",
@@ -126,6 +132,9 @@ impl AddPopover {
Err(err) => {
self.add.set_sensitive(false);
if !url.is_empty() {
self.entry
.get_style_context()
.add_class(&gtk::STYLE_CLASS_ERROR);
self.entry.set_icon_from_icon_name(
gtk::EntryIconPosition::Secondary,
"dialog-error-symbolic",
@@ -136,6 +145,9 @@ impl AddPopover {
);
error!("Error: {}", err);
} else {
self.entry
.get_style_context()
.remove_class(&gtk::STYLE_CLASS_ERROR);
self.entry
.set_icon_from_icon_name(gtk::EntryIconPosition::Secondary, None);
}