Imported version 0.4-3 v0.4-3
authorRoman Moravcik <roman.moravcik@gmail.com>
Thu, 18 Feb 2010 16:44:24 +0000 (17:44 +0100)
committerRoman Moravcik <roman.moravcik@gmail.com>
Thu, 18 Feb 2010 16:44:24 +0000 (17:44 +0100)
debian/changelog
debian/control
src/libwrapper.cpp
src/mstardict.cpp
src/mstardict.hpp
src/transwin.cpp
stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp

index 15b6d18..350d405 100644 (file)
@@ -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 <roman.moravcik@gmail.com>  Wed, 10 Feb 2010 15:03:58 +0100
+
 mstardict (0.4-2) unstable; urgency=low
 
   * Reimplemented parser.
index 084c92f..26dbe34 100644 (file)
@@ -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.
index e4c00cb..1e448dc 100644 (file)
@@ -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:
index 886d451..1b9e0a6 100644 (file)
@@ -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
index 6bb0343..d4cffc8 100644 (file)
@@ -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();
index 8734c7c..e6608b7 100644 (file)
@@ -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);
index 8bb78e8..9004ddd 100644 (file)
@@ -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;