PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` from __future__ import print_function from __future__ import unicode_literals from . import View from tracer.resources.lang import _ from tracer.resources.applications import Applications from tracer.views.note_for_hidden import NoteForHiddenView from tracer.views.blocks import BlocksView from tracer.resources.pycomp import StringIO from sys import version_info import re class DefaultView(View): def render(self): def with_helpers_content(): content = "" types = [Applications.TYPES["SESSION"], Applications.TYPES["STATIC"], Applications.TYPES["ERASED"]] applications = (self.args.applications .with_helpers() .exclude_types(types) .unique() .sorted("helper")) for application in applications: helpers = "; ".join(application.helpers) if application.helper_contains_formating and not application.helper_contains_name: helpers += " # {}".format(application.name) content += " " + helpers + "\n" return content def without_helpers_content(): content = "" apps = (self.args.applications .exclude_types(Applications.TYPES["ERASED"]) .unique() .without_helpers() .sorted("name")) for application in apps: content += " " + application.name + "\n" return content def erased_content(): content = "" apps = (self.args.applications .filter_types([Applications.TYPES["ERASED"]]) .unique() .sorted("name")) for application in apps: content += " " + application.name + "\n" return content def unrestartable_content(app_type): content = "" applications = (self.args.applications .with_helpers() .filter_types([app_type]) .unique() .sorted("name")) for application in applications: content += " " + application.name + "\n" return content def note_content(): content = StringIO() view = NoteForHiddenView(content) view.assign("args", self.args.args) view.assign("total_count", len(self.args.applications)) view.assign("session_count", self.args.applications.count_type(Applications.TYPES["SESSION"])) view.assign("static_count", self.args.applications.count_type(Applications.TYPES["STATIC"])) view.render() return content.getvalue() if version_info.major >= 3 else content.getvalue().decode("utf8") blocks = [ {"title": " * " + _("Some applications using:"), "content": with_helpers_content()}, {"title": " * " + _("These applications manually:"), "content": without_helpers_content()}, {"title": " * " + _("Uninstalled applications:"), "content": erased_content()}, ] if self.args.args.all: blocks.append({ "title": " * " + _("These applications restarting your session:"), "content": unrestartable_content(Applications.TYPES["SESSION"]) }) blocks.append({ "title": " * " + _("These applications rebooting your computer:"), "content": unrestartable_content(Applications.TYPES["STATIC"]) }) else: blocks.append({"content": note_content()}) view = BlocksView(self.out) view.assign("blocks", blocks) if view.has_content_and_title(): self.print(_("You should restart:")) view.render()