Register a history item when an individual file is viewed that does not match a 'reserved' path

This commit is contained in:
Miguel Jacq 2019-09-02 18:01:56 +10:00
parent 113cd7eb4b
commit bd329c487c
3 changed files with 44 additions and 1 deletions

View file

@ -341,6 +341,37 @@ class ReceiveHistoryItem(HistoryItem):
self.label.setText(self.get_canceled_label_text(self.started))
class IndividualFileHistoryItem(HistoryItem):
"""
Individual file history item, for share mode viewing of individual files
"""
def __init__(self, common, path):
super(IndividualFileHistoryItem, self).__init__()
self.status = HistoryItem.STATUS_STARTED
self.common = common
self.visited = time.time()
self.visited_dt = datetime.fromtimestamp(self.visited)
# Labels
self.timestamp_label = QtWidgets.QLabel(self.visited_dt.strftime("%b %d, %I:%M%p"))
self.path_viewed_label = QtWidgets.QLabel(strings._('gui_individual_file_download').format(path))
# Layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.timestamp_label)
layout.addWidget(self.path_viewed_label)
self.setLayout(layout)
def update(self):
self.label.setText(self.get_finished_label_text(self.started_dt))
self.status = HistoryItem.STATUS_FINISHED
def cancel(self):
self.progress_bar.setFormat(strings._('gui_canceled'))
self.status = HistoryItem.STATUS_CANCELED
class VisitHistoryItem(HistoryItem):
"""
Download history item, for share mode

View file

@ -28,7 +28,7 @@ from onionshare.web import Web
from ..file_selection import FileSelection
from .threads import CompressThread
from .. import Mode
from ..history import History, ToggleHistory, ShareHistoryItem
from ..history import History, ToggleHistory, ShareHistoryItem, IndividualFileHistoryItem
from ...widgets import Alert
@ -230,6 +230,15 @@ class ShareMode(Mode):
Handle REQUEST_LOAD event.
"""
self.system_tray.showMessage(strings._('systray_page_loaded_title'), strings._('systray_page_loaded_message'))
if not event["path"].startswith(('/favicon.ico', '/download', self.web.static_url_path)) and event["path"] != '/':
item = IndividualFileHistoryItem(self.common, event["path"])
self.history.add(0, item)
self.toggle_history.update_indicator(True)
self.history.completed_count += 1
self.history.update_completed()
self.system_tray.showMessage(strings._('systray_individual_file_downloaded_title'), strings._('systray_individual_file_downloaded_message').format(event["path"]))
def handle_request_started(self, event):
"""