diff --git a/lutris/gui/dialogs.py b/lutris/gui/dialogs/__init__.py similarity index 92% rename from lutris/gui/dialogs.py rename to lutris/gui/dialogs/__init__.py index f2c9a45d0..1b48ad391 100644 --- a/lutris/gui/dialogs.py +++ b/lutris/gui/dialogs/__init__.py @@ -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) diff --git a/lutris/gui/dialogs/download.py b/lutris/gui/dialogs/download.py new file mode 100644 index 000000000..d98161258 --- /dev/null +++ b/lutris/gui/dialogs/download.py @@ -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() diff --git a/lutris/gui/runnersdialog.py b/lutris/gui/runnersdialog.py index deb8eae60..aa7b849e6 100644 --- a/lutris/gui/runnersdialog.py +++ b/lutris/gui/runnersdialog.py @@ -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 diff --git a/lutris/runners/atari800.py b/lutris/runners/atari800.py index 7226845e0..155421e6d 100644 --- a/lutris/runners/atari800.py +++ b/lutris/runners/atari800.py @@ -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 diff --git a/lutris/runners/wine.py b/lutris/runners/wine.py index 8390720a6..5bbacbb4a 100644 --- a/lutris/runners/wine.py +++ b/lutris/runners/wine.py @@ -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 diff --git a/tests/benchmark_download.py b/tests/benchmark_download.py deleted file mode 100644 index 1e7f3bb0d..000000000 --- a/tests/benchmark_download.py +++ /dev/null @@ -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()