From: Roman Moravcik Date: Thu, 18 Feb 2010 16:44:24 +0000 (+0100) Subject: Imported version 0.4-3 X-Git-Tag: v0.4-3 X-Git-Url: http://vcs.maemo.org/git/?p=mstardict;a=commitdiff_plain;h=1ddd1103d801e3265928f86d84be8cc74b1c3ed9 Imported version 0.4-3 --- diff --git a/debian/changelog b/debian/changelog index 15b6d18..350d405 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +mstardict (0.4-3) unstable; urgency=low + + * Make package depend of ttf-freefont. + * Added clear button. + * Fixed wrapping of lines in translation window. + + -- Roman Moravcik Wed, 10 Feb 2010 15:03:58 +0100 + mstardict (0.4-2) unstable; urgency=low * Reimplemented parser. diff --git a/debian/control b/debian/control index 084c92f..26dbe34 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.8.3 Package: mstardict Architecture: any -Depends: ${shlibs:Depends} +Depends: ${shlibs:Depends}, ttf-freefont Description: International dictionary for Maemo MStarDict is a StarDict clone written with using Gtk2 for Maemo. It can use StarDict DICT files as a word database for translation. diff --git a/src/libwrapper.cpp b/src/libwrapper.cpp index e4c00cb..1e448dc 100644 --- a/src/libwrapper.cpp +++ b/src/libwrapper.cpp @@ -68,7 +68,6 @@ string parse_data(const gchar *data, mark += it->mark->pango; break; case ParseResultItemType_link: -// g_debug("ParseResultItemType_link: %s", it->mark->pango.c_str()); mark += it->mark->pango; break; case ParseResultItemType_res: diff --git a/src/mstardict.cpp b/src/mstardict.cpp index 886d451..1b9e0a6 100644 --- a/src/mstardict.cpp +++ b/src/mstardict.cpp @@ -215,13 +215,23 @@ MStarDict::onSearchEntryChanged(GtkEditable* editable, } gboolean +MStarDict::onSearchClearClicked(GtkButton* button, + MStarDict* mStarDict) +{ + gtk_entry_set_text(GTK_ENTRY(mStarDict->search_entry), ""); + mStarDict->GrabFocus(); + return true; +} + +gboolean MStarDict::onDictionariesMenuItemClicked(GtkButton *button, MStarDict *mStarDict) { mStarDict->oDict->CreateDictMngrDialog(); /* trigger re-search */ - mStarDict->onSearchEntryChanged(GTK_EDITABLE(mStarDict->search), mStarDict); + mStarDict->onSearchEntryChanged(GTK_EDITABLE(mStarDict->search_entry), mStarDict); + mStarDict->GrabFocus(); return true; } @@ -292,7 +302,7 @@ void MStarDict::CreateMainWindow() { HildonProgram *program = NULL; - GtkWidget *alignment, *vbox; + GtkWidget *alignment, *main_vbox, *search; GtkCellRenderer *renderer; GtkTreeSelection *selection; @@ -311,21 +321,21 @@ MStarDict::CreateMainWindow() gtk_container_add(GTK_CONTAINER(window), alignment); /* main vbox */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(alignment), vbox); + main_vbox = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(alignment), main_vbox); /* no_search_result label */ label_widget = gtk_label_new(_("No search result")); hildon_helper_set_logical_color(label_widget, GTK_RC_FG, GTK_STATE_NORMAL, "SecondaryTextColor"); hildon_helper_set_logical_font(label_widget, "LargeSystemFont"); - gtk_box_pack_start(GTK_BOX(vbox), label_widget, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(main_vbox), label_widget, TRUE, TRUE, 0); /* alignment for pannable area */ results_widget = gtk_alignment_new(0.5, 0.5, 1.0, 1.0); gtk_alignment_set_padding(GTK_ALIGNMENT(results_widget), 0, 0, HILDON_MARGIN_DEFAULT, HILDON_MARGIN_DEFAULT); - gtk_box_pack_start(GTK_BOX(vbox), results_widget, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(main_vbox), results_widget, TRUE, TRUE, 0); /* pannable for tree view */ results_view_scroll = hildon_pannable_area_new(); @@ -350,10 +360,9 @@ MStarDict::CreateMainWindow() "ellipsize-set", TRUE, NULL); - /* search entry */ - search = hildon_entry_new(HILDON_SIZE_FINGER_HEIGHT); - gtk_box_pack_end(GTK_BOX(vbox), search, FALSE, TRUE, 0); - g_signal_connect(search, "changed", G_CALLBACK(onSearchEntryChanged), this); + /* create search bar */ + search = CreateSearchBar(); + gtk_box_pack_end(GTK_BOX(main_vbox), search, FALSE, TRUE, 0); /* window signals */ g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); @@ -366,6 +375,40 @@ MStarDict::CreateMainWindow() GrabFocus(); } +GtkWidget * +MStarDict::CreateSearchBar() +{ + GtkWidget *hbox, *entry, *button; + GtkEntryCompletion *completion; + + /* search hbox */ + hbox = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT); + + /* search entry */ + entry = hildon_entry_new(HILDON_SIZE_FINGER_HEIGHT); + hildon_gtk_entry_set_input_mode(GTK_ENTRY(entry), HILDON_GTK_INPUT_MODE_FULL); + gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); + + completion = gtk_entry_completion_new(); + gtk_entry_completion_set_inline_completion(completion, TRUE); + gtk_entry_completion_set_popup_completion(completion, FALSE); + gtk_entry_set_completion(GTK_ENTRY(entry), completion); + + /* clear button */ + button = GTK_WIDGET(gtk_tool_button_new(gtk_image_new_from_icon_name("general_delete", + (GtkIconSize)HILDON_ICON_PIXEL_SIZE_FINGER), + "Clear")); + gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, TRUE, 0); + + /* search signals */ + g_signal_connect(entry, "changed", G_CALLBACK(onSearchEntryChanged), this); + g_signal_connect(button, "clicked", G_CALLBACK(onSearchClearClicked), this); + + search_entry = entry; + return hbox; +} + + void MStarDict::CreateMainMenu() { @@ -401,7 +444,7 @@ MStarDict::SearchWord() if (oLibs->query_dictmask.empty()) return; - sWord = gtk_entry_get_text(GTK_ENTRY(search)); + sWord = gtk_entry_get_text(GTK_ENTRY(search_entry)); if (strcmp(sWord, "") == 0) { ShowNoResults(true); } else { @@ -494,7 +537,7 @@ MStarDict::ShowProgressIndicator(bool bShow) void MStarDict::GrabFocus() { - gtk_widget_grab_focus(GTK_WIDGET(search)); + gtk_widget_grab_focus(GTK_WIDGET(search_entry)); } int diff --git a/src/mstardict.hpp b/src/mstardict.hpp index 6bb0343..d4cffc8 100644 --- a/src/mstardict.hpp +++ b/src/mstardict.hpp @@ -41,7 +41,7 @@ class MStarDict { GtkWidget *window; GtkWidget *label_widget; GtkWidget *results_widget; - GtkWidget *search; + GtkWidget *search_entry; GtkWidget *results_view; GtkWidget *results_view_scroll; @@ -51,6 +51,8 @@ class MStarDict { MStarDict *mStarDict); static gboolean onSearchEntryChanged(GtkEditable *editable, MStarDict *mStarDict); + static gboolean onSearchClearClicked(GtkButton *button, + MStarDict *mStarDict); static gboolean onDictionariesMenuItemClicked(GtkButton *button, MStarDict *mStarDict); static gboolean onQuitMenuItemClicked(GtkButton *button, @@ -75,6 +77,7 @@ class MStarDict { GtkWidget *CreateLookupProgressDialog(bool *cancel); void DestroyLookupProgressDialog(GtkWidget *dialog); void CreateMainWindow(); + GtkWidget *CreateSearchBar(); void CreateMainMenu(); void SearchWord(); diff --git a/src/transwin.cpp b/src/transwin.cpp index 8734c7c..e6608b7 100644 --- a/src/transwin.cpp +++ b/src/transwin.cpp @@ -88,6 +88,7 @@ TransWin::CreateTransWidget(SearchResult *result) label = gtk_label_new("Expresion"); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_widget_set_size_request(label, 750, -1); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); if (exp) { gtk_label_set_markup(GTK_LABEL(label), exp); diff --git a/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp b/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp index 8bb78e8..9004ddd 100644 --- a/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp +++ b/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp @@ -92,10 +92,10 @@ static void html_topango(const std::string& str, std::string &pango, size_t &pan const char *q, *p; static const char* xml_entrs[] = { "lt;", "gt;", "amp;", "apos;", "quot;", 0 }; static const int xml_ent_len[] = { 3, 3, 4, 5, 5 }; - static const char* html_entries[] = {"nbsp;", 0}; - static const int html_entry_len[] = {5}; - static const char* html_values[] = {" "}; - static const int html_value_len[] = {1}; + static const char* html_entries[] = {"nbsp;", "middot;", "agrave;", "eacute;", 0}; + static const int html_entry_len[] = {5, 7, 7, 7 }; + static const char* html_values[] = {" ", "·", "à", "é" }; + static const int html_value_len[] = {1, 1, 1, 1}; size_t cur_pos; int i; char *etext;