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-05-12 17:59:56 +02:00 committed by Jordan Petridis
parent 0b8d19fbbe
commit 0dc1f810d2
No known key found for this signature in database
GPG Key ID: E8523968931763BE

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);
}