Example #1
0
 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()
Example #2
0
 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_()
Example #3
0
 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()
Example #4
0
 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_()