120
125
self.starscale.connect("rating-changed", self.starscale_rating_changed_db)
129
w, h = gtk.icon_size_lookup(self.glade.get_widget("toolbar1").get_icon_size())
130
self.tbShuffle = self.glade.get_widget("tbShuffle")
132
pb = gtk.gdk.pixbuf_new_from_file_at_size(os.path.join(helpers.install_dir(), "images", "badaman_dice.png"), w, h)
133
img.set_from_pixbuf(pb)
134
self.tbShuffle.set_icon_widget(img)
124
137
self.scale = self.glade.get_widget("hscale1")
125
138
self.scale.set_update_policy(gtk.UPDATE_CONTINUOUS)
149
162
self.tvplaylist = gtk.TreeView()
163
#~ self.tvplaylist.set_fixed_height_mode(40)
150
164
self.tvplaylist.connect("row_activated", self.tvplaylist_rowactivated_cb)
151
165
self.tvplaylist.enable_model_drag_dest([('text/plain', 0, 0)], gtk.gdk.ACTION_COPY)
152
166
self.tvplaylist.connect("drag-data-received", self.tvplaylist_drag_data_received)
452
468
COLUMN_SUBSONGS, sid.subsongs,
453
469
COLUMN_DEFAULT_SONG, sid.startsong,
454
470
COLUMN_PATH, self.escape(sid.path),
471
COLUMN_HASH, sid.hash
456
473
def next_prev_track(self, relation):
474
model = self.tvplaylist.get_model()
475
number_of_rows = model.iter_n_children(None)
457
477
if self.now_playing_iter:
458
model = self.tvplaylist.get_model()
459
478
path = model.get_path(self.now_playing_iter)
462
next_iter = model.get_iter(path[0] + relation)
479
if self.tbShuffle.get_active():
480
next_iter = model.get_iter(random.randint(0, number_of_rows-1))
484
next_iter = model.get_iter(path[0] + relation)
465
488
path = model.get(next_iter, COLUMN_PATH)[0]
466
489
sid = self.main.database.get_sid(path) #sidinfo.get_md5_hash(path)
467
490
self.main.play(sid)
485
509
logging.info("… done")
487
511
os.execv(sys.argv[0], sys.argv)
489
514
def mnuShuffle_activate_cb(self, widget):
490
515
model = self.tvplaylist.get_model()
491
516
number_of_rows = model.iter_n_children(None)
493
model.set_default_sort_func(lambda *args: random.randint(-30000, 30000))
494
model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
495
model.set_default_sort_func(lambda *args: random.randint(-30000, 30000))
496
model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
499
self.tvplaylist.freeze_child_notify()
500
self.tvplaylist.set_model(None)
520
model.set_default_sort_func(lambda *a: 0)
521
model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
523
#~ self.tvplaylist.freeze_child_notify()
501
524
iter = model.get_iter_first()
505
#~ print((c/number_of_rows)*100.0)
507
new_pos = random.randint(0, number_of_rows-1)
508
model.swap(iter, model.iter_nth_child(None, new_pos))
526
#~ iter = model.iter_nth_child(None, random.randint(0, number_of_rows-1))
527
l.append(model.get(iter, *xrange(0, COLUMN_HASH+1)))
509
528
iter = model.iter_next(iter)
510
self.tvplaylist.set_model(model)
511
self.tvplaylist.thaw_child_notify()
531
#~ for i in range(0, 100):
534
iter_new = model.append()
536
COLUMN_INDICATOR, i[0],
540
COLUMN_COPYRIGHT, i[4],
541
COLUMN_SUBSONGS, i[5],
542
COLUMN_DEFAULT_SONG, i[6],
514
549
def mnuBestRated_activate_cb(self, widget):
515
550
sids = self.main.database.get_best_rated()
797
832
self.tvplaylist.freeze_child_notify()
798
model.set_default_sort_func(lambda *args: -1)
833
model.set_default_sort_func(lambda *args: 0)
799
834
model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
803
838
data.sort(reverse=not not drop_info)
804
839
for sids in self.main.database.iter_sids(data, 999):
805
840
self.tvplaylist.thaw_child_notify()
841
#~ while gtk.events_pending(): gtk.main_iteration()
808
844
path, position = drop_info
974
1012
def tbPrev_clicked_cb(self, widget):
975
1013
self.next_prev_track(-1)
1014
def tbShuffle_toggled_cb(self, widget):
977
1017
def tbPlayStop_clicked_cb(self, widget):
978
1018
if self.main.playsid.playing: