def change_label(self): # time.sleep(1) self.dialogLabel1.set_label(_('Done')) dialogLabel2 = Gtk.Label(label=_('(Press X)')) self.dialogVBox.add(dialogLabel2) css.add_css(self, '/home/user/musicbox/css/preferences.css') dialogLabel2.show() self.hotkeys_config()
def __init__(self, window_type, settings, settings_option, parent=None, values=None, path='/home'): Gtk.Window.__init__(self) self.window_type = window_type self.settings = settings self.settings_option = settings_option self.parent = parent self.values = values self.path = path try: if (os.path.exists(self.path) and os.path.isdir(self.path) and len(os.listdir(self.path)) > 0) or (self.window_type == widgets.STATISTICS_WINDOW and os.path.exists(self.path)): # Config window self.config_main_window() self.hbox = hbox = Gtk.HBox(homogeneous=False, spacing=20) self.add(hbox) # Left frame self.file_frame = None if self.window_type == widgets.STATISTICS_WINDOW: self.parse_stat_json() self.values.append(_('Exit')) self.file_frame = StatisticsFrame(parent=self, color=self.settings.get_option('preferences/theme'), date=self.values[0], songlist=self.statistics) else: self.file_frame = FileFrame(parent=self, path=self.path, color=self.settings.get_option('preferences/theme')) hbox.add(self.file_frame) # Right frame self.menu_frame = MenuFrame(parent=self, values=self.values, color=self.settings.get_option('preferences/theme')) hbox.add(self.menu_frame) if window_type == widgets.STATISTICS_WINDOW: self.menu_frame.set_size_request(100, 600) self.setup_hotkeys() self.set_app_paintable(True) self.connect("draw", self.area_draw) css.add_css(self, '/home/user/musicbox/css/preferences.css') self.show_all() self.add_list = {} self.delete_list = set() self.selected_rows = set() self.current_index = 0 self.menu_frame.treeview_menu.get_selection().select_path(Gtk.TreePath(self.current_index)) self.file_frame.fileSystemTreeView.get_selection().select_path(Gtk.TreePath(self.current_index)) else: if self.window_type == widgets.BANNER_WINDOW or self.window_type == widgets.MEDIA_WINDOW: DialogWindow(message=_('Insert media storage musicbox!'), color=self.settings.get_option('preferences/theme')) else: DialogWindow(message=_('Cant find path!'), color=self.settings.get_option('preferences/theme')) except Exception as err: if self.window_type == widgets.BANNER_WINDOW or self.window_type == widgets.MEDIA_WINDOW: DialogWindow(message=_('Insert media storage musicbox!') + ':\n' + str(err), color=self.settings.get_option('preferences/theme')) else: DialogWindow(message=_('Cant find path!'), color=self.settings.get_option('preferences/theme'))
def __init__(self): Gtk.HBox.__init__(self) self.set_hexpand(True) self.set_vexpand(True) self.left = 0 self.paid_label = Gtk.Label(label=_('PAID'), name='CreditLeft', halign=Gtk.Align.END, valign=Gtk.Align.START) self.left_label = Gtk.Label(label='0.0', name='CreditLeftValue') self.vbox = Gtk.VBox(valign=Gtk.Align.CENTER) self.vbox.add(self.left_label) self.image = Gtk.Image() pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale( '/home/user/musicbox/data/coin.png', MG[0] * 0.09, MG[0] * 0.09, False) self.image.set_from_pixbuf(pixbuf) self.overlay = Gtk.Overlay(hexpand=True, vexpand=True) self.overlay.add_overlay(self.image) self.overlay.add_overlay(self.vbox) self.pack_end(self.paid_label, False, True, 0) self.pack_end(self.overlay, False, True, 0) fake_label = ' ' * 15 if self.paid_label.get_text( ) == 'PAID' else ' ' * 10 self.pack_end(Gtk.Label(label=fake_label), False, True, 0)
def _on_menu_list_down(self, *_e): selection = self.menu_frame.treeview_menu.get_selection() (model, path) = selection.get_selected_rows() if len(path) > 0: selected_index = path[0].get_indices()[0] if selected_index < len(self.menu_frame.model_menu): row = selected_index + 1 self.menu_frame.treeview_menu.row_activated( Gtk.TreePath(row), Gtk.TreeViewColumn(None)) self.menu_frame.treeview_menu.set_cursor(Gtk.TreePath(row)) if self.window_type == widgets.STATISTICS_WINDOW: selection = self.menu_frame.treeview_menu.get_selection() (allmodel, allpath) = selection.get_selected() date = allmodel.get_value(allpath, 0) if date != _('Exit'): self.current_index = 0 self.file_frame.fileSystemTreeView.row_activated( Gtk.TreePath(self.current_index), Gtk.TreeViewColumn(None)) self.file_frame.fileSystemTreeView.set_cursor( Gtk.TreePath(self.current_index)) self.file_frame.refresh_frame(date) return True
def __init__(self, parent, data, settings): Gtk.Frame.__init__(self) self.set_label(_('Control Panel').upper()) self.parent = parent self.data = data self.settings = settings self.setup_settings_list()
def __init__(self): Gtk.Frame.__init__(self, hexpand=False) self.set_halign(Gtk.Align.CENTER) self.set_valign(Gtk.Align.START) self.set_name('OrderButton') self.label = Gtk.Label(label=_('ORDER')) self.add(self.label)
def __init__(self): Gtk.Grid.__init__(self, hexpand=True, vexpand=True, halign=Gtk.Align.CENTER) self.set_row_spacing(5) self.pixbuf_karaoke_center = GdkPixbuf.Pixbuf.new_from_file_at_scale('/home/user/musicbox/data/karaoke2.png', 89, 89, False) self.cost_value = 2.0 self.cost_currency = 'USD' self.karaoke_order = 1 self.cost_box = Gtk.Grid(halign=Gtk.Align.CENTER, valign=Gtk.Align.START) self.cost_label = Gtk.Label(label=_('ORDER')+'\n'+_('COST'), name='CostLabels', justify=Gtk.Justification.CENTER) self.cost_value_label = Gtk.Label(label='1.5 usd', name='CostValueLabels') self.cost_box.attach(self.cost_label, 0, 0, 1, 1) self.cost_box.attach(self.cost_value_label, 0, 1, 1, 1) self.karaoke_image = Gtk.Image() self.attach(self.cost_box, 0, 0, 1, 1) self.attach(self.karaoke_image, 0, 1, 1, 1)
def __init__(self, parent, data, settings): Gtk.Frame.__init__(self) self.set_label(_('Value').upper()) self.set_size_request(150,10) self.parent = parent self.data = data self.settings = settings self.alignment_values = Gtk.Alignment(xalign=0.5, yalign=0.5, xscale=0.5, yscale=0.2) self.alignment_values.set_padding(0,0,0,0) self.add(self.alignment_values)
def __init__(self, parent=None, message='None', apply_key=True, color=None, clbck=None, *clbck_args): Gtk.Window.__init__(self) # GObject.threads_init() self.parent = parent self.color = color self.message = message self.set_name('DialogWindow') self.set_decorated(False) self.set_app_paintable(True) # self.set_border_width(3) self.set_modal(True) self.set_size_request(300, 150) self.set_position(Gtk.WindowPosition.CENTER) self.screen = self.get_screen() self.visual = self.screen.get_rgba_visual() if self.visual != None and self.screen.is_composited(): self.set_visual(self.visual) # self.connect('destroy', Gtk.main_quit) dialogBox = Gtk.Box(homogeneous=False, spacing=1) self.add(dialogBox) # Dialog frame dialogFrame = Gtk.Frame() dialogFrame.set_name('DialogFrame_' + color) dialogBox.pack_start(dialogFrame, True, True, 1) # Dialog labels self.dialogVBox = Gtk.VBox(homogeneous=False, spacing=5) dialogFrame.add(self.dialogVBox) self.dialogLabel1 = Gtk.Label(label=self.message) self.dialogVBox.add(self.dialogLabel1) if apply_key: dialogLabel2 = Gtk.Label(label=_('(Press X)')) self.dialogVBox.add(dialogLabel2) self.hotkeys_config() self.connect("draw", self.area_draw) css.add_css(self, '/home/user/musicbox/css/preferences.css') self.show_all() # time.sleep(1) if clbck != None: import threading self.thread = threading.Thread(target=self.file_thread, args=(clbck, clbck_args)) self.thread.daemon = True self.thread.start()
def set_value_list(self, label, value): # for widget in widgets.ValuesFrame.alignment_values.get_children(): # widgets.ValuesFrame.alignment_values.remove(widget) widgets.ValuesFrame.set_size_request(300,300) for widget in self.alignment_values.get_children(): self.alignment_values.remove(widget) data = self.get_data_obj(self.data, label) if type(data) == widgets.ControlPanelRowNumerical: self.label_value = label_value = Gtk.Label(label='') # widgets.ValuesFrame.alignment_values.add(label_value) self.alignment_values.add(label_value) label_value.set_name('LabelValue') label_value.set_label(value) css.add_css(label_value, '/home/user/musicbox/css/preferences.css') label_value.show() elif type(data) == widgets.ControlPanelRowList: if len(data.values) > 0: self.model_values = model_values = Gtk.ListStore(str) for row in data.values: model_values.append([row[0],]) renderer = Gtk.CellRendererText() renderer.set_alignment(0.5, 0) column = Gtk.TreeViewColumn("Value", renderer, text=self.COLUMN_NAME) # column.set_fixed_width(300) # column.set_sizing(Gtk.TreeViewColumnSizing.FIXED) column.set_alignment(0.5) self.treeview_value = treeview_value = Gtk.TreeView() treeview_value.set_name('TreeValue') # widgets.ValuesFrame.alignment_values.add(treeview_value) self.alignment_values.add(treeview_value) treeview_value.set_model(model_values) treeview_value.set_headers_visible(False) treeview_value.append_column(column) # treeview_value.connect('cursor-changed', self._on_move_cursor_on_values) css.add_css(treeview_value, '/home/user/musicbox/css/preferences.css') treeview_value.show() treeview_value.set_cursor(Gtk.TreePath(0)) treeview_value.grab_focus() widgets.ValuesFrame.set_label(_('Value').upper())
def __init__(self): Gtk.VBox.__init__(self, vexpand=False, halign=Gtk.Align.START) # self.player_list = [self.pixbuf_ordered, None] self.pixbuf_ordered = GdkPixbuf.Pixbuf.new_from_file_at_scale( '/home/user/musicbox/data/ordered.png', 16, 24, False) self.player_list = [self.pixbuf_ordered, None] self.set_size_request(300, 100) self.max_cnt = 0 self.label = Gtk.Label(_('ORDERED') + ' ', name='OrderedSong') self.songs = OrderedList() self.count_label = Gtk.Label(self.songs.count, name='OrderedSong') self.order_list = [] self.hbox = Gtk.HBox() self.hbox.pack_start(self.label, False, True, 0) self.hbox.pack_start(self.count_label, False, True, 0) self.add(self.hbox) self.add(self.songs)
def _on_menu_list_exit(self, *_e): selection = self.menu_frame.treeview_menu.get_selection() (allmodel, allpath) = selection.get_selected() value = allmodel.get_value(allpath, 0) if value.lower() == _('Exit with saving').lower(): # Remove folders if len(self.delete_list) > 0: DialogWindow( self.parent, _('Wait...'), False, self.settings.get_option('preferences/theme'), shutil.rmtree, self.delete_list) self.parent.mainwindow.remove_media_path_list(self.delete_list) self.settings.set_option('preferences/changed', True, save=True) # Add folders if len(self.add_list) > 0: DialogWindow( self.parent, _('Wait...'), False, self.settings.get_option('preferences/theme'), shutil.copytree, self.add_list) self.parent.mainwindow.add_media_path_list() self.settings.set_option('preferences/changed', True, save=True) self.add_list.clear() self.delete_list.clear() self.selected_rows.clear() self.destroy() elif value.lower() == _('Exit without saving').lower(): self.add_list.clear() self.delete_list.clear() self.selected_rows.clear() self.destroy() elif value.lower() == _('Exit').lower(): self.add_list.clear() self.delete_list.clear() self.selected_rows.clear() self.destroy() else: if self.window_type == widgets.BANNER_WINDOW: if _('Add file').lower() in value.lower(): model = self.file_frame.fileSystemTreeView.get_model() path = model.get_iter(Gtk.TreePath(self.current_index)) if path != None: filepath = model.get_value(path, 2) if os.path.isdir(filepath): pass # if self.file_frame.fileSystemTreeView.expand_row(path, open_all=False): # self.file_frame.onRowExpanded( self.file_frame.fileSystemTreeView, model.get_iter(path[0]), path[0] ) # else: # self.file_frame.onRowCollapsed( self.file_frame.fileSystemTreeView, model.get_iter(path[0]), path[0] ) else: # copy banner to tmp dir if not os.path.exists('/home/user/musicbox/data/banner'): os.makedirs('/home/user/musicbox/data/banner') filepath_new = os.path.join( '/home/user/musicbox/data/banner', filepath.split('/')[-1] ) shutil.copyfile(filepath, filepath_new) # set banner path (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() if path != None: model.set_value(path, self.parent.COLUMN_VALUE, filepath.split('/')[-1]) # Show dialog window DialogWindow(message=_('Selected'), color=self.settings.get_option('preferences/theme')) if self.window_type == widgets.DEMO_WINDOW: if _('Add folder').lower() in value.lower(): model = self.file_frame.fileSystemTreeView.get_model() path = model.get_iter(Gtk.TreePath(self.current_index)) if path != None: filepath = model.get_value(path, 2) if os.path.isdir(filepath): # self.settings.set_option(self.settings_option, filepath, save=True) (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected_rows() path = path[0] if len(path) > 0 else None if path != None: model.set_value(model.get_iter(path), self.parent.COLUMN_VALUE, filepath) # Show dialog window DialogWindow(message=_('Selected'), color=self.settings.get_option('preferences/theme')) if self.window_type == widgets.MEDIA_WINDOW: if _('Add folder').lower() in value.lower(): model = self.file_frame.fileSystemTreeView.get_model() path = model.get_iter(Gtk.TreePath(self.current_index)) if path != None: filepath = model.get_value(path, 2) if os.path.isdir(filepath): fpath = filepath.split('/') if self.current_index not in self.selected_rows: self.add_list[filepath] = self.settings.get_option('preferences/media_path') + '/' + fpath[len(fpath)-1] self.selected_rows.add(self.current_index) self.mark_selection() # DialogWindow(message=_('Selected'), color=self.settings.get_option('preferences/theme')) else: del self.add_list[filepath] self.selected_rows.remove(self.current_index) self.mark_selection() # DialogWindow(message=_('Unselected'), color=self.settings.get_option('preferences/theme')) if _('Remove folder').lower() in value.lower(): model = self.file_frame.fileSystemTreeView.get_model() path = model.get_iter(Gtk.TreePath(self.current_index)) if path != None: filepath = model.get_value(path, 2) if os.path.isdir(filepath): if self.current_index not in self.selected_rows: self.delete_list.add(filepath) self.selected_rows.add(self.current_index) self.mark_selection() # DialogWindow(message=_('Selected'), color=self.settings.get_option('preferences/theme')) else: self.delete_list.remove(filepath) self.selected_rows.remove(self.current_index) self.mark_selection() # DialogWindow(message=_('Unselected'), color=self.settings.get_option('preferences/theme')) # elif 'Save'.lower() in value.lower(): # self.settings.save() # self.hide() # Gtk.main_quit() return True
def __init__(self, mainwindow=None): Gtk.Window.__init__(self) self.mainwindow = mainwindow self.settings = mainwindow.settings # Config Main Window self.config_main_window() # Main Frame self.main_frame = main_frame = Gtk.Frame() main_frame.set_name('PrefrerenceFrame_' + self.settings.get_option('preferences/theme')) self.add(main_frame) # Main VBox self.main_vbox = main_vbox = Gtk.VBox(homogeneous=False, spacing=5) main_frame.add(main_vbox) # Top Label self.label_frame = label_frame = Gtk.Frame() label_frame.set_name('LabelFrame_' + self.settings.get_option('preferences/theme')) main_vbox.pack_start(label_frame, False, True, 5) # main_vbox.add(label_frame) self.label = label = Gtk.Label(label='') label_frame.add(label) # Main HBox with tables self.main_hbox = main_hbox = Gtk.HBox(homogeneous=False, spacing=20) main_vbox.pack_start(main_hbox, True, True, 5) # main_vbox.add(main_hbox) widgets.create_frames(self, self.settings) # List with settings self.ControlPanelFrame = widgets.widgets.ControlPanelFrame main_hbox.add(self.ControlPanelFrame) # main_hbox.pack_start(self.ControlPanelFrame, True, True, 20) # List with values self.ValuesFrame = widgets.widgets.ValuesFrame main_hbox.add(self.ValuesFrame) # main_hbox.pack_start(self.ValuesFrame, True, True, 20) # Statistic vbox stat_vbox = Gtk.HBox(homogeneous=False, spacing=3) stat_vbox.set_name('StatVBox') self.stat_label11 = Gtk.Label(label=_('All orders:')) self.stat_label11.set_halign(1) # stat_vbox.pack_start(self.stat_label1, False, True, 5) self.stat_label12 = Gtk.Label(label=_('Date started:')) self.stat_label12.set_halign(1) # stat_vbox.pack_start(self.stat_label2, False, True, 5) stat_hbox1 = Gtk.VBox(homogeneous=False, spacing=3) stat_hbox1.pack_start(self.stat_label11, False, True, 0) stat_hbox1.pack_start(self.stat_label12, False, True, 0) stat_vbox.pack_start(stat_hbox1, False, True, 0) stat_hbox2 = Gtk.VBox(homogeneous=False, spacing=3) stat_alignment1 = Gtk.Alignment(xalign=0, yalign=0.5, xscale=0.5, yscale=0.5) stat_alignment1.set_padding(0,0,0,0) stat_hbox2.pack_start(stat_alignment1, True, True, 0) stat_alignment2 = Gtk.Alignment(xalign=0, yalign=0.5, xscale=0.5, yscale=0.5) stat_alignment2.set_padding(0,0,0,0) stat_hbox2.pack_start(stat_alignment2, True, True, 0) self.stat_label21 = Gtk.Label(label=str(self.settings.get_option('statistic/orders'))) self.stat_label22 = Gtk.Label(label=self.settings.get_option('statistic/start_date')) stat_alignment1.add(self.stat_label21) stat_alignment2.add(self.stat_label22) stat_vbox.pack_start(stat_hbox2, False, True, 3) main_vbox.pack_start(stat_vbox, False, True, 3) self.setup_hotkeys() css.add_css(self, '/home/user/musicbox/css/preferences.css') self.show_all()
def __init__(self): RingPanel.__init__(self, _('SONGS')) self.set_name('RingPanel_Songs') self.pixbuf_order_mark = GdkPixbuf.Pixbuf.new_from_file_at_scale('/home/user/musicbox/data/order_mark.png', 24, 24, False) self.order_list = []
def __init__(self, ml): RingPanel.__init__(self, _('ARTISTS')) self.set_name('RingPanel_Artist') self.ml_instance = ml.library self.count = ml.count self.init()
def _on_save_value(self, *_e): value = '' label = self.get_selected_value(widgets.ControlPanelFrame.treeview_settings.get_selection(), 0) if type(self.get_data_obj(self.data, label)) == widgets.ControlPanelRowNumerical: value = self.label_value.get_label() elif type(self.get_data_obj(self.data, label)) == widgets.ControlPanelRowList: value = self.get_selected_value(self.treeview_value.get_selection(), 0) obj = self.get_data_obj(self.data, label) if obj.name == 'exit': # self.parent.mainwindow.frame_songbar.on_artist_row_changed() self.make_exit(obj, value) else: if obj.name == 'theme': self.set_main_theme(obj, value) if obj.name == 'banner': if value.lower() == _('Select path').lower(): settings_option = 'preferences/' + obj.name self.file_window = files.FileWindow( window_type=widgets.BANNER_WINDOW, settings=self.settings, settings_option=settings_option, parent=self.parent, path='/media/usb0', # path='/home/user/Pictures', ############################### values=[_('Open folder/Add file'), _('Exit')] ) else: (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() model.set_value(path, self.COLUMN_VALUE, value) elif obj.name == 'demo_folders': if value.lower() == _('Select path').lower(): settings_option = 'preferences/' + obj.name self.file_window = files.FileWindow( window_type=widgets.DEMO_WINDOW, settings=self.parent.settings, settings_option=settings_option, parent=self.parent, path=self.settings.get_option('preferences/media_path'), values=[_('Add folder'), _('Exit')] ) else: (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() model.set_value(path, self.COLUMN_VALUE, value) elif obj.name == 'media_files': settings_option = 'preferences/' + obj.name if value.lower() == _('Add').lower(): self.file_window = files.FileWindow( window_type=widgets.MEDIA_WINDOW, settings=self.settings, settings_option=settings_option, parent=self.parent, # path='/media/usb0', path='/home/user/M', ############################### values=[_('Add folder'), _('Exit with saving'), _('Exit without saving')] ) elif value.lower() == _('Remove').lower(): self.file_window = files.FileWindow( window_type=widgets.MEDIA_WINDOW, settings=self.settings, settings_option=settings_option, parent=self.parent, path=self.settings.get_option('preferences/media_path'), values=[_('Remove folder'), _('Exit with saving'), _('Exit without saving')] ) else: (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() model.set_value(path, self.COLUMN_VALUE, value) elif obj.name == 'language': (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() model.set_value(path, self.COLUMN_VALUE, value) value = obj.get_value(value) self.settings.set_option('preferences/' + obj.name, value, save=True) self.parent.mainwindow.stop_all() python = sys.executable self.parent.save_settings() os.execl(python, python, '/home/user/musicbox/start.py') elif obj.name == 'update': upd = Updater('/media') ############################### if upd.check_usb(): if upd.find_file(): self.parent.mainwindow.stop_all() upd.unpack_update() upd.start_update() else: files.DialogWindow(message=_('Insert media storage!'), color=self.settings.get_option('preferences/theme')) else: files.DialogWindow(message=_('Insert media storage!'), color=self.settings.get_option('preferences/theme')) elif obj.name == 'equalizer': Equalizer(self.settings, self.parent.mainwindow.player , self.parent.mainwindow.demo_player) elif obj.name == 'statistics': path = '/home/user/musicbox/data/stat_ordered.json' if value.lower() == _('Show').lower(): self.file_window = files.FileWindow( window_type=widgets.STATISTICS_WINDOW, settings=self.settings, settings_option=None, parent=self.parent, path=path, values=[] ) elif value.lower() == _('Clear').lower(): if os.path.exists( path ): os.remove( path ) files.DialogWindow(message=_('Statistics is cleared'), color=self.settings.get_option('preferences/theme')) else: (model, path) = widgets.ControlPanelFrame.treeview_settings.get_selection().get_selected() model.set_value(path, self.COLUMN_VALUE, value) # if obj.name != None: # self.settings.set_option('preferences/' + obj.name, value, save=True) return True
from . import widgets from . import control_panel from . import values from tools.lang import _ data = [ widgets.ControlPanelRowNumerical(name='order', label=_('Order cost'), step=0.5, minimum=1, maximum=100), widgets.ControlPanelRowList(name='karaoke_order', label=_('Karaoke order cost'), values=[(_('Disable'), '0'), ('x1', '1'), ('x2', '2'), ('x3', '3'), ('x4', '4')]), widgets.ControlPanelRowList(name='currency', label=_('Choose currency'), values=[('USD', 'USD'), ('EUR', 'EUR'), ('ZLT', 'ZLT'), ('RUB', 'RUB'), ('UAH', 'UAH')]), widgets.ControlPanelRowList(name='language', label=_('Choose your language'), values=[('English', 'en_US'), ('Українська', 'uk_UA'), ('Русский', 'ru_RU'), ('Polska', 'pl_PL')]), widgets.ControlPanelRowList(name='demo_folders', label=_('Folder of the demonstration mode'), values=[(_('Disable'), 'disable'), (_('Select Path'), ''),