128
115
public void buildUI() {
129
cellTrack = new CellRendererText();
130
cellTitle = new CellRendererText();
131
cellLength = new CellRendererText();
132
cellArtist = new CellRendererText();
133
cellAlbum = new SmartAlbumRenderer();
134
cellGenre = new CellRendererText();
135
cellYear = new CellRendererText();
136
cellRating = new CellRendererPixbuf();
137
cellSkips = new CellRendererText();
138
cellPlays = new CellRendererText();
140
cellRating.xalign = 0.0f;
142
//cellTitle.editable = false;
143
//cellTitle.edited.connect(cellTitleEdited);
145
/* id is always first and is stored as an int. Then the rest are (1)
146
* strings (for simplicity), and include:
147
* #, track, title, artist, album, genre, comment, year, rating, (9)
148
* bitrate, play count, last played, date added, file name, (5)
149
* bpm, length, file size, (3) */
150
var to_use = new GLib.List<TreeViewColumn>();
151
var originalOrder = new GLib.List<TreeViewColumn>();
152
var correctStringOrder = new GLib.List<string>();
153
to_use = tvs.get_columns();
155
/* put them in the order for treemodel */
156
foreach(var tvc in to_use) {
157
originalOrder.append(tvc);
158
correctStringOrder.append(tvc.title);
162
foreach(TreeViewColumn tvc in originalOrder) {
163
if(!(tvc.title == " " || tvc.title == "id")) {
164
if(tvc.title == "Length")
165
insert_column_with_data_func(-1, tvc.title, cellLength, cellHelper.lengthTreeViewFiller);
166
else if(tvc.title == "Rating")
167
insert_column_with_data_func(-1, tvc.title, cellRating, cellHelper.ratingTreeViewFiller);
168
else if(tvc.title == "Date")
169
insert_column_with_data_func(-1, tvc.title, cellYear, cellHelper.dateTreeViewFiller);
170
else if(tvc.title == "Episode")
171
insert_column_with_data_func(-1, tvc.title, cellTrack, cellHelper.intelligentTreeViewFiller);
172
else if(tvc.title == "Name")
173
insert_column_with_data_func(-1, tvc.title, cellTitle, cellHelper.stringTreeViewFiller);
174
else if(tvc.title == "Artist")
175
insert_column_with_data_func(-1, tvc.title, cellArtist, cellHelper.stringTreeViewFiller);
176
else if(tvc.title == "Comment")
177
insert_column_with_data_func(-1, tvc.title, new CellRendererText(), cellHelper.stringTreeViewFiller);
178
else if(tvc.title == "Category")
179
insert_column_with_data_func(-1, tvc.title, new CellRendererText(), cellHelper.stringTreeViewFiller);
180
else if(tvc.title == "Podcast")
181
insert_column_with_data_func(-1, tvc.title, cellAlbum, cellHelper.smartAlbumFiller);
183
insert_column(tvc, index);
187
get_column(index).resizable = true;
188
get_column(index).reorderable = false;
189
get_column(index).clickable = true;
190
get_column(index).sort_column_id = index;
191
get_column(index).set_sort_indicator(false);
192
get_column(index).visible = tvc.visible;
193
get_column(index).sizing = Gtk.TreeViewColumnSizing.FIXED;
194
get_column(index).fixed_width = tvc.fixed_width;
196
else if(tvc.title == " ") {
197
insert_column(tvc, index);
199
tvc.fixed_width = 24;
200
tvc.clickable = false;
201
tvc.sort_column_id = -1;
202
tvc.resizable = false;
203
tvc.reorderable = false;
205
tvc.clear_attributes (tvc.get_cells().nth_data(0));
206
tvc.clear_attributes (tvc.get_cells().nth_data(1));
208
tvc.set_cell_data_func(tvc.get_cells().nth_data(0), iconDataFunc);
209
tvc.set_cell_data_func(tvc.get_cells().nth_data(1), iconDataFunc);
211
else if(tvc.title == "id") {
212
insert_column(tvc, index);
215
insert_column(tvc, index);
218
get_column(index).get_button().button_press_event.connect(viewHeaderClick);
219
get_column(index).notify["width"].connect(viewHeadersResized);
224
118
set_compare_func(view_compare_func);
225
119
set_search_func(view_search_func);
226
120
set_value_func(view_value_func);
228
//rearrangeColumns(correctStringOrder);
229
//viewColumnsChanged();
231
122
button_press_event.connect(viewClick);
233
//cursor_changed.connect_after(() => { update_rating_menu(); });
234
123
button_release_event.connect(viewClickRelease);
235
//columns_changed.connect(viewColumnsChanged);
237
125
// column chooser menu
238
columnChooserMenu = new Gtk.Menu();
239
126
columnEpisode = new CheckMenuItem.with_label("Episode");
240
127
columnName = new CheckMenuItem.with_label("Name");
241
128
columnLength = new CheckMenuItem.with_label("Length");