Commit 8f110b47 authored by Canek Peláez's avatar Canek Peláez
Browse files

Fix combo box behaviour and move stuff to UI file.

parent 3fe88536
Loading
Loading
Loading
Loading
+23 −1
Original line number Original line Diff line number Diff line
@@ -638,6 +638,26 @@
    <property name="step-increment">0.1</property>
    <property name="step-increment">0.1</property>
    <property name="page-increment">1.0</property>
    <property name="page-increment">1.0</property>
  </object>
  </object>
  <object class="GtkEntryCompletion" id="genre_completion">
    <property name="model">genre_model</property>
    <property name="text-column">0</property>
    <property name="inline-completion">True</property>
    <property name="inline-selection">True</property>
    <property name="popup-completion">False</property>
    <signal name="match-selected" handler="on_match_selected" swapped="no"/>
  </object>
  <object class="GtkPopover" id="popover">
    <property name="relative-to">reencode</property>
    <signal name="notify::visible" handler="popover_visibility_changed" swapped="no"/>
    <child>
      <object class="GtkProgressBar" id="bar">
        <property name="margin">12</property>
        <property name="visible">True</property>
        <property name="text">Reencoding...</property>
        <property name="show-text">True</property>
      </object>
    </child>
  </object>
  <template class="MLMApplicationWindow" parent="GtkApplicationWindow">
  <template class="MLMApplicationWindow" parent="GtkApplicationWindow">
    <property name="visible">False</property>
    <property name="visible">False</property>
    <property name="can-focus">False</property>
    <property name="can-focus">False</property>
@@ -1012,13 +1032,15 @@
                        <property name="active-id">0</property>
                        <property name="active-id">0</property>
                        <property name="has-entry">True</property>
                        <property name="has-entry">True</property>
                        <property name="model">genre_model</property>
                        <property name="model">genre_model</property>
                        <property name="entry_text-column">0</property>
                        <property name="entry-text-column">0</property>
                        <property name="popup-fixed-width">True</property>
                        <property name="id-column">1</property>
                        <property name="id-column">1</property>
                        <child internal-child="entry">
                        <child internal-child="entry">
                          <object class="GtkEntry" id="genre">
                          <object class="GtkEntry" id="genre">
                            <property name="can-focus">True</property>
                            <property name="can-focus">True</property>
                            <property name="hexpand">True</property>
                            <property name="hexpand">True</property>
                            <property name="text">Blues</property>
                            <property name="text">Blues</property>
                            <property name="completion">genre_completion</property>
                            <property name="tooltip-text" translatable="yes">Genre of the track</property>
                            <property name="tooltip-text" translatable="yes">Genre of the track</property>
                            <signal name="changed" handler="tags_changed" swapped="no"/>
                            <signal name="changed" handler="tags_changed" swapped="no"/>
                          </object>
                          </object>
+12 −21
Original line number Original line Diff line number Diff line
@@ -64,6 +64,12 @@ namespace MLM {
        [GtkChild]
        [GtkChild]
        private Gtk.MenuButton reencode;
        private Gtk.MenuButton reencode;


        [GtkChild]
        private Gtk.Popover popover;

        [GtkChild]
        private Gtk.ProgressBar bar;

        [GtkChild]
        [GtkChild]
        private Gtk.Frame frame;
        private Gtk.Frame frame;


@@ -216,8 +222,6 @@ namespace MLM {
        [GtkChild]
        [GtkChild]
        private Gtk.Label time;
        private Gtk.Label time;


        private Gtk.Popover popover;
        private Gtk.ProgressBar bar;
        private bool ignore_popover;
        private bool ignore_popover;


        private Application app;
        private Application app;
@@ -241,39 +245,25 @@ namespace MLM {
                var file = GLib.File.new_for_uri("resource:///mx/unam/MLM/mlm.css");
                var file = GLib.File.new_for_uri("resource:///mx/unam/MLM/mlm.css");
                provider.load_from_file(file);
                provider.load_from_file(file);
            } catch (GLib.Error e) {
            } catch (GLib.Error e) {
                stderr.printf("There was a problem loading ‘mlm.css’");
                stderr.printf("There was a problem loading ‘mlm.css’\n");
            }
            }
            Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
            Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
                                                      provider, 999);
                                                      provider, 999);
            var date_time = new GLib.DateTime.now_local();
            var date_time = new GLib.DateTime.now_local();
            year_adjustment.upper = date_time.get_year();
            year_adjustment.upper = date_time.get_year();


            /* Stupid GtkBuilder */
            var completion = genre_widget.completion;
            completion = new Gtk.EntryCompletion();
            completion.model = genre_model;
            completion.text_column = 0;
            completion.match_selected.connect(match_selected);

            _cover_data = null;
            _cover_data = null;
            _artist_data = null;
            _artist_data = null;


            bar = new Gtk.ProgressBar();
            bar.text = _("Reencoding...");
            bar.show_text = true;
            bar.visible = true;
            bar.margin = 12;

            popover = new Gtk.Popover(reencode);
            popover.add(bar);

            reencode.bind_property("active", popover, "visible",
            reencode.bind_property("active", popover, "visible",
                                   GLib.BindingFlags.BIDIRECTIONAL);
                                   GLib.BindingFlags.BIDIRECTIONAL);
            popover.notify["visible"].connect(popover_visibility_changed);
            ignore_popover = false;
            ignore_popover = false;

            genre_model.set_sort_column_id(0, Gtk.SortType.ASCENDING);
        }
        }


        private bool match_selected(Gtk.TreeModel m, Gtk.TreeIter i) {
        [GtkCallback]
        public bool on_match_selected(Gtk.TreeModel m, Gtk.TreeIter i) {
            genre_combobox.set_active_iter(i);
            genre_combobox.set_active_iter(i);
            return true;
            return true;
        }
        }
@@ -333,6 +323,7 @@ namespace MLM {
                cover_data = data;
                cover_data = data;
        }
        }


        [GtkCallback]
        public void popover_visibility_changed() {
        public void popover_visibility_changed() {
            if (ignore_popover)
            if (ignore_popover)
                return;
                return;