__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Copyright 2015 Canonical, Ltd.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""" View policy
Contains some default key navigations
"""
import logging
from urwid import (
emit_signal,
Overlay,
Text,
)
from subiquitycore.ui.container import (
Columns,
Pile,
WidgetWrap,
)
from subiquitycore.ui.stretchy import StretchyOverlay
from subiquitycore.ui.utils import disabled, undisabled
log = logging.getLogger('subiquitycore.view')
class BaseView(WidgetWrap):
def local_help(self):
"""Help for what the user is currently looking at.
Returns title, documentation (or None, None).
"""
return None, None
def show_overlay(self, overlay_widget, **kw):
args = dict(
align='center',
width=('relative', 60),
min_width=80,
valign='middle',
height='pack'
)
PADDING = 3
# Don't expect callers to account for the padding if
# they pass a fixed width.
if 'width' in kw:
if isinstance(kw['width'], int):
kw['width'] += 2*PADDING
args.update(kw)
top = Pile([
('pack', Text("")),
Columns([
(PADDING, Text("")),
overlay_widget,
(PADDING, Text(""))
]),
('pack', Text("")),
])
self._w = Overlay(top_w=top, bottom_w=disabled(self._w), **args)
def show_stretchy_overlay(self, stretchy):
emit_signal(stretchy, 'opened')
stretchy.opened()
self._w = StretchyOverlay(disabled(self._w), stretchy)
def remove_overlay(self, stretchy=None):
if stretchy is not None:
one_above = None
cur = self._w
while isinstance(cur, (StretchyOverlay, Overlay)):
cur_stretchy = getattr(cur, 'stretchy', None)
if cur_stretchy is stretchy:
emit_signal(stretchy, 'closed')
stretchy.closed()
if one_above is not None:
one_above.bottom_w = cur.bottom_w
else:
self._w = undisabled(cur.bottom_w)
return
one_above = cur
cur = undisabled(cur.bottom_w)
else:
if isinstance(self._w, StretchyOverlay):
emit_signal(self._w.stretchy, 'closed')
self._w.stretchy.closed()
self._w = undisabled(self._w.bottom_w)
def cancel(self):
pass
def keypress(self, size, key):
key = super().keypress(size, key)
if key == 'esc':
if hasattr(self._w, 'bottom_w'):
self.remove_overlay()
return None
else:
self.cancel()
return None
return key
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| controllers | Folder | 0755 |
|
|
| models | Folder | 0755 |
|
|
| testing | Folder | 0755 |
|
|
| tests | Folder | 0755 |
|
|
| ui | Folder | 0755 |
|
|
| __init__.py | File | 710 B | 0644 |
|
| async_helpers.py | File | 2.27 KB | 0644 |
|
| context.py | File | 4.42 KB | 0644 |
|
| controller.py | File | 1.68 KB | 0644 |
|
| controllerset.py | File | 1.9 KB | 0644 |
|
| core.py | File | 4.5 KB | 0644 |
|
| file_util.py | File | 1.67 KB | 0644 |
|
| i18n.py | File | 1.7 KB | 0644 |
|
| log.py | File | 1.8 KB | 0644 |
|
| lsb_release.py | File | 947 B | 0644 |
|
| netplan.py | File | 5.34 KB | 0644 |
|
| palette.py | File | 4.53 KB | 0644 |
|
| prober.py | File | 1.96 KB | 0644 |
|
| pubsub.py | File | 1.22 KB | 0644 |
|
| screen.py | File | 4.9 KB | 0644 |
|
| snapd.py | File | 6.1 KB | 0644 |
|
| ssh.py | File | 3.54 KB | 0644 |
|
| tui.py | File | 12.98 KB | 0644 |
|
| tuicontroller.py | File | 3.38 KB | 0644 |
|
| utils.py | File | 5.71 KB | 0644 |
|
| view.py | File | 3.35 KB | 0644 |
|