コード例 #1
0
ファイル: MainWindow.py プロジェクト: dakk/edenget
 def networkError(self):
     _ = LLocale()._
     md = gtk.MessageDialog(self.window, gtk.DIALOG_DESTROY_WITH_PARENT,
                            gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE,
                            _("Cannot connect to the server."))
     md.set_title(_("Network Error"))
     md.run()
     md.destroy()
コード例 #2
0
	def runNext(self):
		_ = LLocale()._
		self.activeTaskLock.acquire()
		self.activeTask = self.getNextTask()
			
		if self.activeTask != None:
			self.mainWindow.statusBar.push(0, _("Downloading ")+self.tasksList[self.activeTask[1]][1]+"...")
			self.activeTask[0].start()
		self.activeTaskLock.release()		
コード例 #3
0
ファイル: MainWindow.py プロジェクト: dakk/edenget
 def onBookmark(self, isSave):
     _ = LLocale()._
     if isSave:
         self.bookmarks.add(self.selectedManga)
         self.statusBar.push(0, _("Bookmark saved."))
     else:
         self.bookmarks.delete(self.selectedManga)
         self.statusBar.push(0, _("Bookmark removed."))
     self.onBookmarkPopulate()
コード例 #4
0
	def __init__(self, mainw):
		_ = LLocale()._
		self.mainWindow = mainw
		
		SecondaryWindow.__init__(self, _("Edenget - Download Queue"))
		self.window.set_default_size(400, 500)
		self.window.set_modal(False)
		
		mainBox = gtk.VBox()
		self.window.add(mainBox)
		
		sw = gtk.ScrolledWindow()
		sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
		sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
		mainBox.pack_start(sw, True, True, 0)
		
		self.tasksList = gtk.ListStore(int, str, int)
		self.tasksListView = gtk.TreeView(self.tasksList)
		self.tasksListView.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
		
		rendererText = gtk.CellRendererText()
		column = gtk.TreeViewColumn("", rendererText, text=0)
		column.set_sort_column_id(0)
		self.tasksListView.append_column(column)
		
		rendererText = gtk.CellRendererText()
		column = gtk.TreeViewColumn(_("File"), rendererText, text=1)
		column.set_sort_column_id(1)
		self.tasksListView.append_column(column)	
		
		column = gtk.TreeViewColumn(_("Progress"), gtk.CellRendererProgress(), value=2)
		column.set_sort_column_id(2)
		self.tasksListView.append_column(column)
  
  
		selection = self.tasksListView.get_selection()
		selection.set_mode(gtk.SELECTION_MULTIPLE)
		selection.connect("changed", self.onSelectedTasks)
		
		sw.add(self.tasksListView)
		
		
		# Toolbar
		toolbar = gtk.Toolbar()
		toolbar.set_style(gtk.TOOLBAR_BOTH_HORIZ)

		#iconw = gtk.Image()
		#iconw.set_from_stock(gtk.STOCK_DELETE, gtk.ICON_SIZE_LARGE_TOOLBAR)
		#toolbar.append_item(_("Delete"), "", "Private", iconw, self.onDeleteTask)	

		iconw = gtk.Image()
		iconw.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_LARGE_TOOLBAR)
		toolbar.append_item(_("Close"), "", "Private", iconw, lambda w: self.changeVisibility())	
		  
		mainBox.pack_start(toolbar, False, False, 0)
コード例 #5
0
ファイル: MainWindow.py プロジェクト: dakk/edenget
    def onAbout(self, window):
        _ = LLocale()._
        d = gtk.AboutDialog()
        d.set_authors(["Davide Gessa ([email protected])"])
        d.set_license(license)
        d.set_comments(_("A multiplatform batch downloader for mangaeden.com"))
        d.set_wrap_license(True)

        d.set_logo(
            window.render_icon(gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_DIALOG))
        d.set_name("EdenGet")
        d.run()
        d.destroy()
コード例 #6
0
ファイル: MainWindow.py プロジェクト: dakk/edenget
    def onDownloadAll(self, window):
        if self.mangaInfo == None:
            _ = LLocale()._
            md = gtk.MessageDialog(self.window, gtk.DIALOG_DESTROY_WITH_PARENT,
                                   gtk.MESSAGE_WARNING, gtk.BUTTONS_CLOSE,
                                   _("You should select a manga."))
            md.set_title(_("No manga selected"))
            md.run()
            md.destroy()
            return

        if self.preferencesWindow.folderUri == None:
            self.preferencesWindow.onChooseDestination(window)

        for x in self.mangaEden.getMangaChaptersList(self.selectedManga[1]):
            self.queueWindow.add(self.mangaEden, self.selectedManga[1], x[0],
                                 self.preferencesWindow.folderUri,
                                 self.formatCombo.get_active_text())
コード例 #7
0
		def run(self):
			_ = LLocale()._
			fname = None
			try:
				fname = self.mangaEden.getMangaChapter(self.mangaCode, self.chapterNumber, self.destination, self.formatType, self.stopEvent, self.progressFunc)
			except Exception as e:
				er = e.args[0]

				self.progressFunc("Failed")
				#print er

			self.qw.tasksLock.acquire()
			self.qw.tasks[self.i] = None
			self.qw.tasksLock.release()
			
			self.qw.runNext()

			#print "Download of", fname, "completed"	
			
			self.qw.mainWindow.statusBar.push(0, _("Download of ")+fname+_(" completed."))
コード例 #8
0
	def add(self, mangaEden, mangaCode, chapterNumber, destination, formatType="pdf"):
		_ = LLocale()._
		t = self.DownloadThread(self.n, mangaEden, mangaCode, chapterNumber, destination, formatType, self)
					
		self.n+=1				
		
		self.tasksListLock.acquire()
		it = self.tasksList.append([int(t.i), str(t.fileName), 0])	
		self.tasksListLock.release()
		t.progressFunc = (lambda progress: self.setRowProgress(it,progress))
				
		self.tasksLock.acquire()
		self.tasks.append([t, it])
		self.tasksLock.release()
		
		self.activeTaskLock.acquire()
		if self.activeTask == None:
			self.activeTaskLock.release()
			self.runNext()
			return
		self.activeTaskLock.release()
コード例 #9
0
ファイル: MainWindow.py プロジェクト: dakk/edenget
    def __init__(self):
        _ = LLocale()._
        self.queueWindow = QueueWindow.QueueWindow(self)
        self.preferencesWindow = PreferencesWindow.PreferencesWindow(self)
        self.preferencesWindow.loadPrefs()

        # Gtk stuffs
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect("destroy", self.destroy)
        self.window.set_title("EdenGet")
        self.window.set_default_size(400, 500)

        mainBox = gtk.VBox()
        self.window.add(mainBox)

        # Menu
        menubar = gtk.MenuBar()
        mainBox.pack_start(menubar, False, False, 0)

        # File menu
        menu_item = gtk.MenuItem(_("File"))
        menubar.append(menu_item)
        menu = gtk.Menu()
        menu_item.set_submenu(menu)

        it = gtk.ImageMenuItem(gtk.STOCK_QUIT)
        it.connect('activate', self.destroy)
        menu.append(it)

        # Edit menu
        menu_item = gtk.MenuItem(_("Edit"))
        menubar.append(menu_item)
        menu = gtk.Menu()
        menu_item.set_submenu(menu)

        it = gtk.MenuItem(_("Destination folder"))
        #it = gtk.ImageMenuItem(gtk.STOCK_HARDDISK)
        it.connect('activate',
                   lambda w: self.preferencesWindow.onChooseDestination(w))
        menu.append(it)

        it = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES)
        it.connect('activate',
                   lambda w: self.preferencesWindow.changeVisibility())
        menu.append(it)

        # Help menu
        menu_item = gtk.MenuItem(_("Help"))
        menubar.append(menu_item)
        menu = gtk.Menu()
        menu_item.set_submenu(menu)

        it = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
        it.connect('activate', self.onAbout)
        menu.append(it)

        # Button toolbar
        toolbar = gtk.Toolbar()

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_EXECUTE, 16)
        toolbar.append_item(_("Download Queue"), "", "Private", iconw,
                            lambda w: self.queueWindow.changeVisibility())

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_DIRECTORY, 16)
        toolbar.append_item(_("Destination Folder"), "", "Private", iconw,
                            self.preferencesWindow.onChooseDestination)

        self.languageCombo = gtk.combo_box_new_text()
        self.languageCombo.insert_text(1, "Italiano")
        self.languageCombo.insert_text(0, "English")
        self.languageCombo.set_active(1)
        self.languageCombo.connect(
            'changed', lambda w: th.Thread(target=self.onLanguageComboChanged,
                                           args=(w)).start())
        toolbar.append_element(gtk.TOOLBAR_CHILD_WIDGET, self.languageCombo,
                               None, None, None, None, None, None)

        self.formatCombo = gtk.combo_box_new_text()
        for x in MangaEden().formatTypes:
            self.formatCombo.insert_text(x, MangaEden().formatTypes[x])

        self.formatCombo.set_active(1)
        self.formatCombo.set_state(gtk.STATE_INSENSITIVE)
        toolbar.append_element(gtk.TOOLBAR_CHILD_WIDGET, self.formatCombo,
                               None, None, None, None, None, None)

        mainBox.pack_start(toolbar, False, False, 0)

        # Box
        hbox = gtk.HBox()
        mainBox.add(hbox)

        # VBox for mangalist
        vbox = gtk.VBox()
        hbox.add(vbox)

        notebook = gtk.Notebook()
        notebook.set_tab_pos(gtk.POS_TOP)
        vbox.add(notebook)

        # Search tab
        searchbox = gtk.VBox()
        notebook.prepend_page(searchbox, gtk.Label(_("Search")))

        self.searchEntry = gtk.Entry()
        self.searchEntry.connect('changed', self.onSearchTextModified)
        searchbox.pack_start(self.searchEntry, False, False, 0)

        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        searchbox.pack_start(sw, True, True, 0)

        self.searchList = gtk.ListStore(str, str)
        self.searchListView = gtk.TreeView(self.searchList)
        self.searchListView.connect(
            'cursor-changed', lambda w, l: th.Thread(
                target=self.onSelectedManga, args=(w, l)).start(),
            self.searchListView)
        self.searchListView.connect('button_press_event',
                                    self.onMangaListContextMenu)

        rendererText = gtk.CellRendererText()
        column = gtk.TreeViewColumn(_("Name"), rendererText, text=1)
        column.set_sort_column_id(1)
        self.searchListView.append_column(column)

        sw.add(self.searchListView)

        # Bookmarks tab
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        #vbox.pack_start(sw, True, True, 0)
        notebook.prepend_page(sw, gtk.Label(_("Bookmarks")))

        self.marksList = gtk.ListStore(str, str)
        self.marksListView = gtk.TreeView(self.marksList)
        self.marksListView.connect(
            'cursor-changed', lambda w, l: th.Thread(
                target=self.onSelectedManga, args=(w, l)).start(),
            self.marksListView)
        self.marksListView.connect('button_press_event',
                                   self.onMangaListContextMenu)

        rendererText = gtk.CellRendererText()
        column = gtk.TreeViewColumn(_("Name"), rendererText, text=1)
        column.set_sort_column_id(1)
        self.marksListView.append_column(column)

        sw.add(self.marksListView)

        # List tab
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        #vbox.pack_start(sw, True, True, 0)
        notebook.prepend_page(sw, gtk.Label(_("Full List")))

        self.mangaList = gtk.ListStore(str, str)
        self.mangaListView = gtk.TreeView(self.mangaList)
        self.mangaListView.connect(
            'cursor-changed', lambda w, l: th.Thread(
                target=self.onSelectedManga, args=(w, l)).start(),
            self.mangaListView)
        self.mangaListView.connect('button_press_event',
                                   self.onMangaListContextMenu)

        rendererText = gtk.CellRendererText()
        column = gtk.TreeViewColumn(_("Name"), rendererText, text=1)
        column.set_sort_column_id(1)
        self.mangaListView.append_column(column)

        sw.add(self.mangaListView)

        # VBox for chapter list
        vbox = gtk.VBox()
        hbox.add(vbox)

        self.mangaImage = gtk.Image()
        vbox.pack_start(self.mangaImage, False, False, 0)

        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        vbox.pack_start(sw, True, True, 0)

        self.chapterList = gtk.ListStore(str, str, str)
        self.chapterListView = gtk.TreeView(self.chapterList)
        self.chapterListView.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
        #self.chapterListView.connect('cursor-changed', self.onSelectedChapter)
        selection = self.chapterListView.get_selection()
        selection.set_mode(gtk.SELECTION_MULTIPLE)
        selection.connect(
            "changed",
            lambda w, d=None: th.Thread(target=self.onSelectedChapter,
                                        args=(w, d)).start())

        rendererText = gtk.CellRendererText()
        column = gtk.TreeViewColumn("", rendererText, text=0)
        column.set_sort_column_id(0)
        self.chapterListView.append_column(column)

        rendererText = gtk.CellRendererText()
        column = gtk.TreeViewColumn(_("Title"), rendererText, text=1)
        column.set_sort_column_id(1)
        self.chapterListView.append_column(column)

        sw.add(self.chapterListView)

        toolbar = gtk.Toolbar()

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_FLOPPY, 16)
        toolbar.append_item(_("Download"), "", "Private", iconw,
                            self.onDownload)

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_FLOPPY, 16)
        toolbar.append_item(_("Download All"), "", "Private", iconw,
                            self.onDownloadAll)

        vbox.pack_start(toolbar, False, False, 0)

        self.statusBar = gtk.Statusbar()
        self.statusBar.push(0, _("Ready."))
        mainBox.pack_start(self.statusBar, False, False, 0)

        self.window.show_all()

        self.mangaEden = MangaEden("", "")
        th.Thread(target=self.onLanguageComboChanged,
                  args=(self.window)).start()

        self.addBookmarkPopup = gtk.Menu()
        it = gtk.ImageMenuItem(gtk.STOCK_ADD)
        it.connect('activate', lambda w: self.onBookmark(True))
        #save = gtk.MenuItem(_("Save as bookmark")
        #save.connect('activate', lambda w: pass)
        self.addBookmarkPopup.append(it)
        self.addBookmarkPopup.show_all()

        self.removeBookmarkPopup = gtk.Menu()
        it = gtk.ImageMenuItem(gtk.STOCK_REMOVE)
        it.connect('activate', lambda w: self.onBookmark(False))
        #save = gtk.MenuItem(_("Save as bookmark")
        #save.connect('activate', lambda w: pass)
        self.removeBookmarkPopup.append(it)
        self.removeBookmarkPopup.show_all()

        notebook.connect('switch-page',
                         lambda w, p, p1: self.chapterList.clear())
        th.Thread(target=self.onBookmarkPopulate, args=()).start()