diff options
| author | Jabiertxof <jabier.arraiza@marker.es> | 2019-08-16 10:11:34 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-08-17 10:23:44 +0000 |
| commit | ddb57b2e399204260557038eb93e9608d2d5325e (patch) | |
| tree | 6d8aced62e51f0efec28c058af6108a914dc5a19 /src | |
| parent | fix #385 inbox#765 macOS accelerators (diff) | |
| download | inkscape-ddb57b2e399204260557038eb93e9608d2d5325e.tar.gz inkscape-ddb57b2e399204260557038eb93e9608d2d5325e.zip | |
Fixes for symbols dialog
Diffstat (limited to 'src')
| -rw-r--r-- | src/inkscape.cpp | 12 | ||||
| -rw-r--r-- | src/ui/dialog/symbols.cpp | 60 | ||||
| -rw-r--r-- | src/ui/dialog/symbols.h | 2 |
3 files changed, 48 insertions, 26 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 2164a90a2..661441729 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -516,6 +516,7 @@ Glib::ustring Application::get_symbolic_colors() sp_svg_write_color(colornamedsuccess, sizeof(colornamedsuccess), colorsetsuccess); sp_svg_write_color(colornamedwarning, sizeof(colornamedwarning), colorsetwarning); sp_svg_write_color(colornamederror, sizeof(colornamederror), colorseterror); + colorsetbase_inverse = colorsetbase ^ 0xffffff00; sp_svg_write_color(colornamed_inverse, sizeof(colornamed_inverse), colorsetbase_inverse); css_str += "*{-gtk-icon-palette: success "; css_str += colornamedsuccess; @@ -525,13 +526,16 @@ Glib::ustring Application::get_symbolic_colors() css_str += colornamederror; css_str += ";}"; css_str += "#InkRuler,"; - css_str += ".bright image, .dark image"; + css_str += "image:not(.rawimage)"; css_str += "{color:"; css_str += colornamed; css_str += ";}"; - css_str += ".dark .brightstyle image,"; - css_str += ".bright .darkstyle image,"; - css_str += ".invertstyle image"; + css_str += ".dark .forcebright image:not(.rawimage),"; + css_str += ".bright .forcedark image:not(.rawimage),"; + css_str += ".dark image.forcebright:not(.rawimage),"; + css_str += ".bright image.forcedark:not(.rawimage),"; + css_str += ".invert image:not(.rawimage),"; + css_str += "image.invert:not(.rawimage)"; css_str += "{color:"; css_str += colornamed_inverse; css_str += ";}"; diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 2472fa004..7eccc675d 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -176,7 +176,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : // Giving the iconview a small minimum size will help users understand // What the dialog does. icon_view->set_size_request( 100, 250 ); - + std::vector< Gtk::TargetEntry > targets; targets.emplace_back( "application/x-inkscape-paste"); @@ -199,7 +199,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : overlay->set_hexpand(); overlay->set_vexpand(); overlay->add(* scroller); - overlay->get_style_context()->add_class("brightstyle"); + overlay->get_style_context()->add_class("forcebright"); scroller->set_size_request(100, 250); table->attach(*Gtk::manage(overlay), 0, row, 2, 1); @@ -207,6 +207,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : overlay_opacity = new Gtk::Image(); overlay_opacity->set_halign(Gtk::ALIGN_START); overlay_opacity->set_valign(Gtk::ALIGN_START); + overlay_opacity->get_style_context()->add_class("rawimage"); // No results overlay_icon = sp_get_icon_image("searching", Gtk::ICON_SIZE_DIALOG); @@ -234,6 +235,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : overlay->add_overlay(*overlay_desc); previous_height = 0; + previous_width = 0; ++row; /******************** Progress *******************************/ @@ -430,13 +432,14 @@ void SymbolsDialog::rebuild() { SPDocument* symbol_document = selectedSymbols(); icons_found = false; //We are not in search all docs - if (search->get_text() != _("Searching...") && - search->get_text() != _("Loading all symbols...") && - search->get_text() != _("Searching....") ) + search->get_text() != _("Loading all symbols...")) { - search_str = ""; - search->set_text(""); + Glib::ustring current = Glib::Markup::escape_text(symbol_set->get_active_text()); + if (current == ALLDOCS && search->get_text() != "") { + searchsymbols(); + return; + } } if (symbol_document) { addSymbolsInDoc(symbol_document); @@ -451,38 +454,41 @@ void SymbolsDialog::showOverlay() { overlay_icon->hide(); if (!all_docs_processed ) { overlay_icon->show(); - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"large\">") + + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("Search in all symbol sets...")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring(_("First search can be slow.")) + Glib::ustring("</span>")); } else if (!icons_found && !search_str.empty()) { - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + Glib::ustring(_("Try a different search term.")) + Glib::ustring("</span>")); + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring(_("Try a different search term.")) + Glib::ustring("</span>")); } else { overlay_icon->show(); - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"large\">") + + overlay_title->set_markup(Glib::ustring("<spansize=\"large\">") + Glib::ustring(_("Search in all symbol sets...")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring("</span>")); } } else if (!number_symbols && (current != CURRENTDOC || !search_str.empty())) { - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + Glib::ustring(_("Try a different search term,\nor switch to a different symbol set.")) + Glib::ustring("</span>")); + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring(_("Try a different search term,\nor switch to a different symbol set.")) + Glib::ustring("</span>")); } else if (!number_symbols && current == CURRENTDOC) { - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\"size=\"large\">") + Glib::ustring(_("No symbols found")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + Glib::ustring(_("No symbols in current document.\nChoose a different symbol set\nor add a new symbol.")) + Glib::ustring("</span>")); + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("No symbols found")) + Glib::ustring("</span>")); + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring(_("No symbols in current document.\nChoose a different symbol set\nor add a new symbol.")) + Glib::ustring("</span>")); } else if (!icons_found && !search_str.empty()) { - overlay_title->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); - overlay_desc->set_markup(Glib::ustring("<span foreground=\"#333333\" size=\"small\">") + Glib::ustring(_("Try a different search term,\nor switch to a different symbol set.")) + Glib::ustring("</span>")); + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("No results found")) + Glib::ustring("</span>")); + overlay_desc->set_markup(Glib::ustring("<span size=\"small\">") + Glib::ustring(_("Try a different search term,\nor switch to a different symbol set.")) + Glib::ustring("</span>")); } gint width = scroller->get_allocated_width(); gint height = scroller->get_allocated_height(); - if (previous_height != height) { + if (previous_height != height || + previous_width != width) + { previous_height = height; + previous_width = width; overlay_opacity->set_size_request(width, height); overlay_opacity->set(getOverlay(width, height)); } - overlay_opacity->show(); + overlay_opacity->hide(); overlay_icon->show(); overlay_title->show(); overlay_desc->show(); @@ -1023,6 +1029,15 @@ void SymbolsDialog::beforeSearch(GdkEventKey* evt) if (evt->keyval != GDK_KEY_Return) { return; } + overlay_title->set_markup(Glib::ustring("<span size=\"large\">") + Glib::ustring(_("Searching...")) + Glib::ustring("</span>")); + overlay_desc->set_markup(Glib::ustring("")); + searchsymbols(); +} + +void SymbolsDialog::searchsymbols() +{ + + progress_bar->set_fraction(0.0); enableWidgets(false); SPDocument* symbol_document = selectedSymbols(); @@ -1088,6 +1103,7 @@ bool SymbolsDialog::callbackSymbols(){ } else { hideOverlay(); } + progress_bar->set_fraction(0); sensitive = false; search->set_text(search_str); sensitive = true; @@ -1118,9 +1134,9 @@ bool SymbolsDialog::callbackAllSymbols(){ } symbol_sets_tmp.clear(); hideOverlay(); - progress_bar->set_fraction(1.0); all_docs_processed = true; addSymbols(); + progress_bar->set_fraction(0); search->set_text("Searching..."); return false; } diff --git a/src/ui/dialog/symbols.h b/src/ui/dialog/symbols.h index bf52369cc..6855a5b7a 100644 --- a/src/ui/dialog/symbols.h +++ b/src/ui/dialog/symbols.h @@ -96,6 +96,7 @@ private: std::vector<SPUse*> useInDoc( SPDocument* document); void beforeSearch(GdkEventKey* evt); void unsensitive(GdkEventKey* evt); + void searchsymbols(); void addSymbols(); void addSymbolsInDoc(SPDocument* document); void showOverlay(); @@ -117,6 +118,7 @@ private: int scale_factor; bool sensitive; double previous_height; + double previous_width; bool all_docs_processed; size_t number_docs; size_t number_symbols; |
