diff options
| author | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-10-19 09:15:11 +0000 |
|---|---|---|
| committer | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-10-19 09:15:11 +0000 |
| commit | d1b095af84220d7f46123cdd2a2fae1de79d184e (patch) | |
| tree | 94f71af613b4ea70a5f2173b08466a399d63b3ff /src | |
| parent | Merge remote-tracking branch 'origin/master' into SymbolsSearch (diff) | |
| download | inkscape-d1b095af84220d7f46123cdd2a2fae1de79d184e.tar.gz inkscape-d1b095af84220d7f46123cdd2a2fae1de79d184e.zip | |
Working on current document
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/symbols.cpp | 32 | ||||
| -rw-r--r-- | src/ui/dialog/symbols.h | 3 |
2 files changed, 21 insertions, 14 deletions
diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index d4b460d1d..ccaacd6a3 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -363,7 +363,7 @@ void SymbolsDialog::rebuild() { } store->clear(); - SPDocument* symbol_document = selectedSymbols(); + SPDocument* symbol_document = selectedSymbols(true); if( !symbol_document ) { // Symbol must be from Current Document (this method of // checking should be language independent). @@ -434,7 +434,7 @@ void SymbolsDialog::documentReplaced(SPDesktop *desktop, SPDocument *document) rebuild(); } -SPDocument* SymbolsDialog::selectedSymbols() { +SPDocument* SymbolsDialog::selectedSymbols(bool ignorecurrent) { /* OK, we know symbol name... now we need to copy it to clipboard, bon chance! */ Glib::ustring doc_title = selectedSymbolDocTitle(); if (doc_title.empty()) { @@ -446,6 +446,9 @@ SPDocument* SymbolsDialog::selectedSymbols() { symbol_document = symbolSets[doc_title]; // Symbol must be from Current Document (this method of checking should be language independent). if( !symbol_document ) { + if (ignorecurrent) { + return NULL; + } return currentDocument; } } @@ -769,16 +772,14 @@ gchar const* SymbolsDialog::style_from_use( gchar const* id, SPDocument* documen } void SymbolsDialog::add_symbols( SPDocument* symbol_document ) { - if (symbol_document) { - std::vector<SPSymbol*> l = symbols_in_doc( symbol_document ); - Glib::ustring doc_title = ""; - if (symbol_document->getRoot()->title()) { - doc_title = symbol_document->getRoot()->title(); - } - for(auto symbol:l) { - if (symbol) { - add_symbol( symbol, doc_title); - } + std::vector<SPSymbol*> l = symbols_in_doc( symbol_document ); + Glib::ustring doc_title = ""; + if (symbol_document->getRoot()->title()) { + doc_title = symbol_document->getRoot()->title(); + } + for(auto symbol:l) { + if (symbol) { + add_symbol( symbol, doc_title); } } } @@ -790,6 +791,12 @@ void SymbolsDialog::find_symbols(GdkEventKey* evt) { find_symbols_overload(); } +void SymbolsDialog::update_search_box(gpointer data) +{ + Glib::ustring doc_title = *reinterpret_cast<Glib::ustring *>(data); + search->set_text(doc_title); +} + void SymbolsDialog::find_symbols_overload() { store->clear(); Glib::ustring title = search->get_text(); @@ -802,7 +809,6 @@ void SymbolsDialog::find_symbols_overload() { Glib::ustring doc_title = symbol_document_map.first; if (!symbol_document) { doc_title = get_symbols(symbol_document_map.first); - search->set_text(doc_title); symbol_document = symbolSets[doc_title]; } if (symbol_document) { diff --git a/src/ui/dialog/symbols.h b/src/ui/dialog/symbols.h index 0ae8c4fcc..585e8f98f 100644 --- a/src/ui/dialog/symbols.h +++ b/src/ui/dialog/symbols.h @@ -75,7 +75,8 @@ private: void defsModified(SPObject *object, guint flags); void selectionChanged(Inkscape::Selection *selection); void documentReplaced(SPDesktop *desktop, SPDocument *document); - SPDocument* selectedSymbols(); + SPDocument* selectedSymbols(bool ignorecurrent = false); + void update_search_box(gpointer data); Glib::ustring selectedSymbolId(); Glib::ustring selectedSymbolDocTitle(); void iconChanged(); |
