Move DownloadDialog to the dialogs package

This commit is contained in:
Mathieu Comandon 2019-01-18 15:15:56 -08:00
parent ebe1381391
commit 91397f58e7
6 changed files with 39 additions and 83 deletions

View file

@ -6,7 +6,6 @@ from lutris import api, pga, runtime, settings
from lutris.gui.util import open_uri
from lutris.gui.logdialog import LogTextView
from lutris.gui.widgets.dialogs import Dialog
from lutris.gui.widgets.download_progress import DownloadProgressBox
from lutris.util import datapath
from lutris.util.log import logger
@ -132,38 +131,6 @@ class FileDialog(Gtk.FileChooserDialog):
self.destroy()
class DownloadDialog(Gtk.Dialog):
"""Dialog showing a download in progress."""
def __init__(self, url=None, dest=None, title=None, label=None, downloader=None):
Gtk.Dialog.__init__(self, title or "Downloading file")
self.set_size_request(485, 104)
self.set_border_width(12)
params = {"url": url, "dest": dest, "title": label or "Downloading %s" % url}
self.download_box = DownloadProgressBox(params, downloader=downloader)
self.download_box.connect("complete", self.download_complete)
self.download_box.connect("cancel", self.download_cancelled)
self.connect("response", self.on_response)
self.get_content_area().add(self.download_box)
self.show_all()
self.download_box.start()
def download_complete(self, _widget, _data):
self.response(Gtk.ResponseType.OK)
self.destroy()
def download_cancelled(self, _widget, data):
self.response(Gtk.ResponseType.CANCEL)
self.destroy()
def on_response(self, dialog, response):
if response == Gtk.ResponseType.DELETE_EVENT:
self.download_box.downloader.cancel()
self.destroy()
class InstallOrPlayDialog(Gtk.Dialog):
def __init__(self, game_name):
Gtk.Dialog.__init__(self, "%s is already installed" % game_name)

View file

@ -0,0 +1,34 @@
from gi.repository import Gtk
from lutris.gui.widgets.download_progress import DownloadProgressBox
class DownloadDialog(Gtk.Dialog):
"""Dialog showing a download in progress."""
def __init__(self, url=None, dest=None, title=None, label=None, downloader=None):
Gtk.Dialog.__init__(self, title or "Downloading file")
self.set_size_request(485, 104)
self.set_border_width(12)
params = {"url": url, "dest": dest, "title": label or "Downloading %s" % url}
self.download_box = DownloadProgressBox(params, downloader=downloader)
self.download_box.connect("complete", self.download_complete)
self.download_box.connect("cancel", self.download_cancelled)
self.connect("response", self.on_response)
self.get_content_area().add(self.download_box)
self.show_all()
self.download_box.start()
def download_complete(self, _widget, _data):
self.response(Gtk.ResponseType.OK)
self.destroy()
def download_cancelled(self, _widget, data):
self.response(Gtk.ResponseType.CANCEL)
self.destroy()
def on_response(self, dialog, response):
if response == Gtk.ResponseType.DELETE_EVENT:
self.download_box.downloader.cancel()
self.destroy()

View file

@ -9,7 +9,8 @@ from lutris import runners
from lutris import settings
from lutris.util.log import logger
from lutris.gui.util import open_uri
from lutris.gui.dialogs import ErrorDialog, GtkBuilderDialog, DownloadDialog
from lutris.gui.dialogs import ErrorDialog, GtkBuilderDialog
from lutris.gui.dialogs.download import DownloadDialog
from lutris.gui.config.runner import RunnerConfigDialog
from lutris.gui.runnerinstalldialog import RunnerInstallDialog
from lutris.gui.widgets.utils import get_icon, ICON_SIZE, get_builder_from_file

View file

@ -2,7 +2,8 @@ import os.path
import logging
from lutris.config import LutrisConfig
from lutris.gui.dialogs import DownloadDialog, ErrorDialog
from lutris.gui.dialogs.download import DownloadDialog
from lutris.gui.dialogs import ErrorDialog
from lutris.runners.runner import Runner
from lutris.util import display, extract, system

View file

@ -6,7 +6,7 @@ import shutil
from lutris import runtime
from lutris.settings import RUNTIME_DIR
from lutris.gui.dialogs import FileDialog
from lutris.gui.dialogs import FileDialog, ErrorDialog
from lutris.runners.runner import Runner
from lutris.util.jobs import thread_safe_call
from lutris.util import display, system

View file

@ -1,47 +0,0 @@
import time
import urllib
import sys
import os
import gi
gi.require_version('Gdk', '3.0')
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GObject
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
from lutris.gui.dialogs import DownloadDialog
TEST_URL = "https://lutris.net/releases/lutris_0.3.0.tar.gz"
TEST_FILE_SIZE = 4582508
def timed(function):
def _wrapped(*args, **kwargs):
start_time = time.time()
retval = function(*args, **kwargs)
total = time.time() - start_time
print(function.__name__, (TEST_FILE_SIZE / total) / 1048576)
return retval
return _wrapped
@timed
def test_urlretrieve():
urllib.urlretrieve(TEST_URL, "/tmp/test-dl")
class DownloadDialogBenchmark(DownloadDialog):
def download_complete(self, _widget, _data):
print("Complete")
self.destroy()
Gtk.main_quit()
@timed
def test_download_dialog():
DownloadDialogBenchmark(TEST_URL, "/tmp/test-downloader")
Gtk.main()
test_download_dialog()
# test_urlretrieve()