| ... |
... |
@@ -12,6 +12,7 @@ |
|
12
|
12
|
# You should have received a copy of the GNU General Public License
|
|
13
|
13
|
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
|
|
14
|
14
|
|
|
|
15
|
+from typing import Any
|
|
15
|
16
|
from typing import Tuple
|
|
16
|
17
|
from typing import Optional
|
|
17
|
18
|
|
| ... |
... |
@@ -25,6 +26,8 @@ |
|
25
|
26
|
from gajim.common import ged
|
|
26
|
27
|
from gajim.common.i18n import _
|
|
27
|
28
|
|
|
|
29
|
+from gajim.common.styling import PreBlock
|
|
|
30
|
+
|
|
28
|
31
|
log = logging.getLogger('gajim.gui.conversation.code_widget')
|
|
29
|
32
|
|
|
30
|
33
|
|
| ... |
... |
@@ -61,12 +64,12 @@ def __init__(self, account: str) -> None: |
|
61
|
64
|
|
|
62
|
65
|
self.add(self._scrolled)
|
|
63
|
66
|
|
|
64
|
|
- def _on_copy(self, _button):
|
|
|
67
|
+ def _on_copy(self, _button: Gtk.Button) -> None:
|
|
65
|
68
|
text = self._textview.get_code()
|
|
66
|
69
|
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
|
67
|
70
|
clipboard.set_text(text, -1)
|
|
68
|
71
|
|
|
69
|
|
- def add_content(self, block):
|
|
|
72
|
+ def add_content(self, block: PreBlock):
|
|
70
|
73
|
code, lang = self._prepare_code(block.text)
|
|
71
|
74
|
lang_name = self._textview.set_language(lang)
|
|
72
|
75
|
if lang is None:
|
| ... |
... |
@@ -107,7 +110,7 @@ def __init__(self) -> None: |
|
107
|
110
|
if style_scheme is not None:
|
|
108
|
111
|
self.get_buffer().set_style_scheme(style_scheme)
|
|
109
|
112
|
|
|
110
|
|
- def _get_style_scheme(self):
|
|
|
113
|
+ def _get_style_scheme(self) -> Optional[GtkSource.StyleScheme]:
|
|
111
|
114
|
if app.css_config.prefer_dark:
|
|
112
|
115
|
style_scheme = self._style_scheme_manager.get_scheme(
|
|
113
|
116
|
'solarized-dark')
|
| ... |
... |
@@ -116,12 +119,12 @@ def _get_style_scheme(self): |
|
116
|
119
|
'solarized-light')
|
|
117
|
120
|
return style_scheme
|
|
118
|
121
|
|
|
119
|
|
- def _on_style_changed(self, *args):
|
|
|
122
|
+ def _on_style_changed(self, *args: Any) -> None:
|
|
120
|
123
|
style_scheme = self._get_style_scheme()
|
|
121
|
124
|
if style_scheme is not None:
|
|
122
|
125
|
self.get_buffer().set_style_scheme(style_scheme)
|
|
123
|
126
|
|
|
124
|
|
- def set_language(self, language_string: Optional[str]) -> None:
|
|
|
127
|
+ def set_language(self, language_string: Optional[str]) -> str:
|
|
125
|
128
|
if language_string is None:
|
|
126
|
129
|
language_string = 'python3'
|
|
127
|
130
|
|
| ... |
... |
@@ -129,6 +132,8 @@ def set_language(self, language_string: Optional[str]) -> None: |
|
129
|
132
|
if lang is None:
|
|
130
|
133
|
lang = self._source_manager.get_language('python3')
|
|
131
|
134
|
|
|
|
135
|
+ assert lang is not None
|
|
|
136
|
+
|
|
132
|
137
|
log.debug('Code snippet lang: %s', lang.get_name())
|
|
133
|
138
|
self.get_buffer().set_language(lang)
|
|
134
|
139
|
return lang.get_name()
|