Convenience code for debugging

This commit is contained in:
Kovid Goyal 2022-09-09 12:20:28 +05:30
parent be89da2271
commit 5131224b59
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -7,7 +7,8 @@ from typing import IO, Callable, Dict, List, Tuple, Union
from .conf.utils import uniq from .conf.utils import uniq
from .constants import supports_primary_selection from .constants import supports_primary_selection
from .fast_data_types import ( from .fast_data_types import (
GLFW_CLIPBOARD, get_boss, get_clipboard_mime, set_clipboard_data_types GLFW_CLIPBOARD, GLFW_PRIMARY_SELECTION, get_boss, get_clipboard_mime,
set_clipboard_data_types
) )
DataType = Union[bytes, 'IO[bytes]'] DataType = Union[bytes, 'IO[bytes]']
@ -52,6 +53,11 @@ class Clipboard:
q = data.read(io.DEFAULT_BUFFER_SIZE) q = data.read(io.DEFAULT_BUFFER_SIZE)
output(q) output(q)
def get_mime_data(self, mime: str) -> bytes:
ans: List[bytes] = []
self.get_mime(mime, ans.append)
return b''.join(ans)
def get_available_mime_types_for_paste(self) -> Tuple[str, ...]: def get_available_mime_types_for_paste(self) -> Tuple[str, ...]:
if self.enabled: if self.enabled:
parts: List[bytes] = [] parts: List[bytes] = []
@ -97,3 +103,17 @@ def set_primary_selection(x: Union[str, bytes]) -> None:
def get_primary_selection() -> str: def get_primary_selection() -> str:
return get_boss().primary_selection.get_text() return get_boss().primary_selection.get_text()
def develop() -> Tuple[Clipboard, Clipboard]:
from .constants import is_macos, detect_if_wayland_ok
from .fast_data_types import set_boss
from .main import init_glfw_module
glfw_module = 'cocoa' if is_macos else ('wayland' if detect_if_wayland_ok() else 'x11')
class Boss:
clipboard = Clipboard()
primary_selection = Clipboard(GLFW_PRIMARY_SELECTION)
init_glfw_module(glfw_module)
set_boss(Boss()) # type: ignore
return Boss.clipboard, Boss.primary_selection