Skip to content
Snippets Groups Projects
Commit 9c252dd0 authored by Daniel Brötzmann's avatar Daniel Brötzmann
Browse files

fix: Preview: Hide download hint if we sent the file

Fixes #11036
parent 318c1eaf
No related branches found
No related tags found
No related merge requests found
...@@ -61,12 +61,14 @@ def __init__(self, ...@@ -61,12 +61,14 @@ def __init__(self,
thumb_path: Optional[Path], thumb_path: Optional[Path],
size: int, size: int,
widget: Any, widget: Any,
from_us: bool = False,
context: Optional[str] = None context: Optional[str] = None
) -> None: ) -> None:
self._uri = uri self._uri = uri
self._urlparts = urlparts self._urlparts = urlparts
self._filename = filename_from_uri(uri) self._filename = filename_from_uri(uri)
self._widget = widget self._widget = widget
self._from_us = from_us
self._context = context self._context = context
self.account = widget.account self.account = widget.account
...@@ -109,6 +111,10 @@ def is_audio(self) -> bool: ...@@ -109,6 +111,10 @@ def is_audio(self) -> bool:
def uri(self) -> str: def uri(self) -> str:
return self._uri return self._uri
@property
def from_us(self) -> bool:
return self._from_us
@property @property
def context(self) -> Optional[str]: def context(self) -> Optional[str]:
return self._context return self._context
...@@ -275,7 +281,7 @@ def is_previewable(self, ...@@ -275,7 +281,7 @@ def is_previewable(self,
def create_preview(self, def create_preview(self,
uri: str, uri: str,
widget: Any, widget: Any,
is_self: bool, from_us: bool,
context: Optional[str] = None context: Optional[str] = None
) -> None: ) -> None:
if uri.startswith('geo:'): if uri.startswith('geo:'):
...@@ -283,10 +289,10 @@ def create_preview(self, ...@@ -283,10 +289,10 @@ def create_preview(self,
preview.update_widget() preview.update_widget()
return return
preview = self._process_web_uri(uri, widget, context) preview = self._process_web_uri(uri, widget, from_us, context)
if not preview.orig_exists(): if not preview.orig_exists():
if context is not None and not is_self: if context is not None and not from_us:
allow_in_public = app.settings.get('preview_anonymous_muc') allow_in_public = app.settings.get('preview_anonymous_muc')
if context == 'public' and not allow_in_public: if context == 'public' and not allow_in_public:
preview.update_widget() preview.update_widget()
...@@ -307,6 +313,7 @@ def create_preview(self, ...@@ -307,6 +313,7 @@ def create_preview(self,
def _process_web_uri(self, def _process_web_uri(self,
uri: str, uri: str,
widget: Any, widget: Any,
from_us: bool,
context: Optional[str] = None context: Optional[str] = None
) -> Preview: ) -> Preview:
urlparts = urlparse(uri) urlparts = urlparse(uri)
...@@ -322,6 +329,7 @@ def _process_web_uri(self, ...@@ -322,6 +329,7 @@ def _process_web_uri(self,
thumb_path, thumb_path,
size, size,
widget, widget,
from_us,
context=context) context=context)
def _on_orig_load_finished(self, def _on_orig_load_finished(self,
......
...@@ -78,7 +78,7 @@ def create_timestamp_widget(timestamp: datetime) -> Gtk.Label: ...@@ -78,7 +78,7 @@ def create_timestamp_widget(timestamp: datetime) -> Gtk.Label:
return label return label
@staticmethod @staticmethod
def create_name_widget(name: str, is_self: bool) -> Gtk.Label: def create_name_widget(name: str, from_us: bool) -> Gtk.Label:
label = Gtk.Label() label = Gtk.Label()
label.set_selectable(True) label.set_selectable(True)
label.set_ellipsize(Pango.EllipsizeMode.END) label.set_ellipsize(Pango.EllipsizeMode.END)
...@@ -86,7 +86,7 @@ def create_name_widget(name: str, is_self: bool) -> Gtk.Label: ...@@ -86,7 +86,7 @@ def create_name_widget(name: str, is_self: bool) -> Gtk.Label:
label.get_style_context().add_class('conversation-nickname') label.get_style_context().add_class('conversation-nickname')
label.set_markup(GLib.markup_escape_text(name)) label.set_markup(GLib.markup_escape_text(name))
if is_self: if from_us:
label.get_style_context().add_class('gajim-outgoing-nickname') label.get_style_context().add_class('gajim-outgoing-nickname')
else: else:
label.get_style_context().add_class('gajim-incoming-nickname') label.get_style_context().add_class('gajim-incoming-nickname')
......
...@@ -118,9 +118,9 @@ def __init__(self, ...@@ -118,9 +118,9 @@ def __init__(self,
if self._is_groupchat: if self._is_groupchat:
our_nick = get_group_chat_nick(self._account, self._contact.jid) our_nick = get_group_chat_nick(self._account, self._contact.jid)
is_self = name == our_nick from_us = name == our_nick
else: else:
is_self = kind == 'outgoing' from_us = kind == 'outgoing'
is_previewable = False is_previewable = False
if additional_data is not None: if additional_data is not None:
...@@ -132,7 +132,7 @@ def __init__(self, ...@@ -132,7 +132,7 @@ def __init__(self,
context = get_muc_context(self._contact.jid) context = get_muc_context(self._contact.jid)
self._message_widget = PreviewWidget(account) self._message_widget = PreviewWidget(account)
app.preview_manager.create_preview( app.preview_manager.create_preview(
text, self._message_widget, is_self, context) text, self._message_widget, from_us, context)
else: else:
self._message_widget = MessageWidget(account) self._message_widget = MessageWidget(account)
self._message_widget.add_with_styling(text, nickname=name) self._message_widget.add_with_styling(text, nickname=name)
...@@ -145,7 +145,7 @@ def __init__(self, ...@@ -145,7 +145,7 @@ def __init__(self,
if self._contact.jid == self._client.get_own_jid().bare: if self._contact.jid == self._client.get_own_jid().bare:
name = _('Me') name = _('Me')
name_widget = self.create_name_widget(name, is_self) name_widget = self.create_name_widget(name, from_us)
self._meta_box = Gtk.Box(spacing=6) self._meta_box = Gtk.Box(spacing=6)
self._meta_box.set_hexpand(True) self._meta_box.set_hexpand(True)
......
...@@ -168,7 +168,8 @@ def update(self, preview: Preview, data: Optional[GdkPixbufType]) -> None: ...@@ -168,7 +168,8 @@ def update(self, preview: Preview, data: Optional[GdkPixbufType]) -> None:
self._ui.save_as_button.hide() self._ui.save_as_button.hide()
self._ui.open_folder_button.hide() self._ui.open_folder_button.hide()
allow_in_public = app.settings.get('preview_anonymous_muc') allow_in_public = app.settings.get('preview_anonymous_muc')
if preview.context == 'public' and not allow_in_public: if (preview.context == 'public' and not
allow_in_public and not preview.from_us):
image = Gtk.Image.new_from_icon_name( image = Gtk.Image.new_from_icon_name(
'dialog-question', Gtk.IconSize.DIALOG) 'dialog-question', Gtk.IconSize.DIALOG)
self._ui.icon_button.set_image(image) self._ui.icon_button.set_image(image)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment