def __init__(self): super(Main, self).__init__() if not os.path.exists(dbPath): os.mkdir(dbPath) if os.path.exists(os.path.join(dbPath[:-3], u'db.pkl')): pass # TODO: convert old db to new else: dialog = Settings() dialog.exec_() self.db = DB(dbPath) self.db.finished.connect(self.enableButtons) self.db.artistsStatisticsChanged.connect(self.updateArtistsStatistics) self.db.albumsStatisticsChanged.connect(self.updateAlbumsStatistics) from interfaces.main import Ui_main self.ui = Ui_main() widget = QtGui.QWidget() self.ui.setupUi(widget) self.ui.artists = View(self.db.artists, TableView( self.__settings.value(u'artistsView').toByteArray() ), Main.__dbsettings.value( u'image/artist/enabled', 2 ).toBool(), self.ui.splitter) delegate = ADRItemDelegate() self.ui.artists.view.setItemDelegateForColumn(0, delegate) self.ui.albums = View(self.db.albums, ADRTableView( self.__settings.value(u'albumsView').toByteArray() ), Main.__dbsettings.value( u'image/album/enabled', 2 ).toBool(), self.ui.splitter) self.ui.tracks = View(self.db.tracks, TableView( self.__settings.value(u'tracksView').toByteArray() ), None, self.ui.splitter) self.ui.tracks.view.setAlternatingRowColors(True) self.ui.artists.view.selectionModel().selectionChanged.connect( self.ui.albums.model.setSelection ) self.ui.albums.view.selectionModel().selectionChanged.connect( self.ui.tracks.model.setSelection ) self.ui.plugins = {} self.ui.splitter.restoreState( self.__settings.value(u'splitters').toByteArray() ) self.setCentralWidget(widget) self.rt = Distributor(self.db.iterator()) self.rt.stepped.connect(self.statusBar().showMessage) self.rt.finished.connect(self.enableButtons) self.ui.local.clicked.connect(self.disableButtons) self.ui.local.clicked.connect(self.db.start) self.ui.remote.clicked.connect(self.disableButtons) self.ui.remote.clicked.connect(self.rt.start) self.ui.close.clicked.connect(self.close) self.ui.save.clicked.connect(self.save) self.ui.settings.clicked.connect(self.showSettings) self.statusBar() self.setWindowTitle(u'gayeogi ' + __version__) self.translators = list() self.loadPluginsTranslators() self.loadPlugins()
def showSettings(self): u"""Show settings dialog and then update accordingly.""" def __save(): self.removePluginsTranslators() self.loadPluginsTranslators() self.loadPlugins() dialog = Settings() dialog.ok.clicked.connect(__save) dialog.exec_()
def __init__(self): QtGui.QMainWindow.__init__(self) self.statistics = None if not os.path.exists(dbPath): os.mkdir(dbPath) self.db = DB() from interfaces.main import Ui_main self.ui = Ui_main() widget = QtGui.QWidget() self.ui.setupUi(widget) self.ui.artists.setHeaderLabels([u'Artist']) self.ui.artists.itemSelectionChanged.connect(self.fillAlbums) delegate = ADRItemDelegate() self.ui.artists.setItemDelegateForColumn(0, delegate) self.ui.albums = ADRTreeWidget() self.ui.albums.setHeaderLabels([u'Year', u'Album']) self.ui.albums.buttonClicked.connect(self.setAnalog) self.ui.albums.itemSelectionChanged.connect(self.fillTracks) self.ui.verticalLayout_4.addWidget(self.ui.albums) self.ui.tracks.setHeaderLabels(['#', u'Title']) self.ui.plugins = {} self.ui.splitter.restoreState( self.__settings.value(u'splitters').toByteArray()) self.setCentralWidget(widget) self.library = (version, {}, {}, {}, {}, [False]) self.ignores = self.__settings.value(u'ignores', []).toPyObject() if self.ignores == None: self.ignores = [] if not os.path.exists(os.path.join(dbPath, u'db.pkl')): dialog = Settings() dialog.exec_() else: self.library = self.db.read() self.update() directory = self.__settings.value(u'directory', []).toPyObject() if type(directory) != list: directory = [(unicode(directory), 2)] self.fs = Filesystem(directory, self.library, self.ignores) self.fs.stepped.connect(self.statusBar().showMessage) self.fs.updated.connect(self.update) self.rt = Distributor(self.library) self.rt.stepped.connect(self.statusBar().showMessage) self.rt.updated.connect(self.update) self.ui.local.clicked.connect(self.local) self.ui.remote.clicked.connect(self.remote) self.ui.close.clicked.connect(self.close) self.ui.save.clicked.connect(self.save) self.ui.settings.clicked.connect(self.showSettings) self.ui.artistFilter.textEdited.connect(self.filter_) self.ui.albumFilter.textEdited.connect(self.filter_) self.ui.trackFilter.textEdited.connect(self.filter_) self.statusBar() self.setWindowTitle(u'gayeogi ' + version) self.translators = list() self.loadPluginsTranslators() self.loadPlugins()
def showSettings(self): u"""Show settings dialog and then update accordingly.""" def __save(): directory = self.__settings.value(u'directory', []).toPyObject() if type(directory) != list: directory = [(unicode(directory), 2)] self.ignores = self.__settings.value(u'ignores', []).toPyObject() self.fs.actualize(directory, self.ignores) self.removePluginsTranslators() self.loadPluginsTranslators() self.loadPlugins() dialog = Settings() dialog.ok.clicked.connect(__save) dialog.exec_()