Merge pull request #1987 from onionshare/mig/improve-icons
Improve icons with FA and better dark/light mode. Change 'Ready to [mode]' to 'Stopped' for clearer UX. Add licenses
|
@ -81,13 +81,13 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||
|
||||
# Server status indicator icons
|
||||
self.status_bar.server_status_image_stopped = QtGui.QImage(
|
||||
GuiCommon.get_resource_path("images/server_stopped.png")
|
||||
GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_server_stopped.svg")
|
||||
)
|
||||
self.status_bar.server_status_image_working = QtGui.QImage(
|
||||
GuiCommon.get_resource_path("images/server_working.png")
|
||||
GuiCommon.get_resource_path("images/server_working.svg")
|
||||
)
|
||||
self.status_bar.server_status_image_started = QtGui.QImage(
|
||||
GuiCommon.get_resource_path("images/server_started.png")
|
||||
GuiCommon.get_resource_path("images/server_started.svg")
|
||||
)
|
||||
|
||||
# Server status indicator on the status bar
|
||||
|
|
Before Width: | Height: | Size: 688 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
|
After Width: | Height: | Size: 426 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"/></svg>
|
After Width: | Height: | Size: 915 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#daa1f7" d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"/></svg>
|
After Width: | Height: | Size: 915 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"/></svg>
|
After Width: | Height: | Size: 574 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"/></svg>
|
After Width: | Height: | Size: 536 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z"/></svg>
|
After Width: | Height: | Size: 479 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffffff" d="M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"/></svg>
|
After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 646 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#33d17a" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
|
After Width: | Height: | Size: 426 B |
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 638 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#33d17a" d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"/></svg>
|
After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 412 B |
Before Width: | Height: | Size: 738 B |
1
desktop/onionshare/resources/images/history_requests.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#33d17a" d="M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"/></svg>
|
After Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 754 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
|
After Width: | Height: | Size: 411 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"/></svg>
|
After Width: | Height: | Size: 900 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#9141ac" d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"/></svg>
|
After Width: | Height: | Size: 915 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"/></svg>
|
After Width: | Height: | Size: 559 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"/></svg>
|
After Width: | Height: | Size: 521 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"/></svg>
|
After Width: | Height: | Size: 402 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"/></svg>
|
After Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 221 B |
1
desktop/onionshare/resources/images/open_folder.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"/></svg>
|
After Width: | Height: | Size: 803 B |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 347 B |
1
desktop/onionshare/resources/images/server_started.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#33d17a" d="M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"/></svg>
|
After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 342 B |
Before Width: | Height: | Size: 349 B |
1
desktop/onionshare/resources/images/server_working.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#FFD43B" d="M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"/></svg>
|
After Width: | Height: | Size: 681 B |
|
@ -99,6 +99,7 @@
|
|||
"gui_settings_button_help": "Help",
|
||||
"gui_settings_version_label": "You are using OnionShare {}",
|
||||
"gui_settings_help_label": "Need help? See <a href='https://docs.onionshare.org'>docs.onionshare.org</a>",
|
||||
"gui_settings_license_label": "OnionShare is licensed under the GPL v3.<br>Third-party licenses can be viewed here:<br><a href='https://github.com/onionshare/onionshare/tree/main/licenses'>https://github.com/onionshare/onionshare/tree/main/licenses</a>",
|
||||
"settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.\nSupports next-gen .onion addresses: {}.",
|
||||
"connecting_to_tor": "Connecting to the Tor network",
|
||||
"update_available": "New OnionShare out. <a href='{}'>Click here</a> to get it.<br><br>You are using {} and the latest is {}.",
|
||||
|
@ -131,15 +132,15 @@
|
|||
"gui_url_instructions": "First, send the OnionShare address below:",
|
||||
"gui_url_instructions_public_mode": "Send the OnionShare address below:",
|
||||
"gui_client_auth_instructions": "Next, send the private key to allow access to your OnionShare service:",
|
||||
"gui_status_indicator_share_stopped": "Ready to share",
|
||||
"gui_status_indicator_share_stopped": "Stopped",
|
||||
"gui_status_indicator_share_working": "Starting…",
|
||||
"gui_status_indicator_share_scheduled": "Scheduled…",
|
||||
"gui_status_indicator_share_started": "Sharing",
|
||||
"gui_status_indicator_receive_stopped": "Ready to receive",
|
||||
"gui_status_indicator_receive_stopped": "Stopped",
|
||||
"gui_status_indicator_receive_working": "Starting…",
|
||||
"gui_status_indicator_receive_scheduled": "Scheduled…",
|
||||
"gui_status_indicator_receive_started": "Receiving",
|
||||
"gui_status_indicator_chat_stopped": "Ready to chat",
|
||||
"gui_status_indicator_chat_stopped": "Stopped",
|
||||
"gui_status_indicator_chat_working": "Starting…",
|
||||
"gui_status_indicator_chat_scheduled": "Scheduled…",
|
||||
"gui_status_indicator_chat_started": "Chatting",
|
||||
|
|
|
@ -126,6 +126,11 @@ class SettingsTab(QtWidgets.QWidget):
|
|||
help_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
|
||||
help_label.setOpenExternalLinks(True)
|
||||
|
||||
license_label = QtWidgets.QLabel(strings._("gui_settings_license_label"))
|
||||
license_label.setAlignment(QtCore.Qt.AlignHCenter)
|
||||
license_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
|
||||
license_label.setOpenExternalLinks(True)
|
||||
|
||||
# Buttons
|
||||
self.save_button = QtWidgets.QPushButton(strings._("gui_settings_button_save"))
|
||||
self.save_button.clicked.connect(self.save_clicked)
|
||||
|
@ -146,6 +151,8 @@ class SettingsTab(QtWidgets.QWidget):
|
|||
layout.addWidget(version_label)
|
||||
layout.addWidget(help_label)
|
||||
layout.addSpacing(20)
|
||||
layout.addWidget(license_label)
|
||||
layout.addSpacing(20)
|
||||
layout.addLayout(buttons_layout)
|
||||
layout.addStretch()
|
||||
|
||||
|
|
|
@ -201,9 +201,9 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget):
|
|||
self.filesize_label.hide()
|
||||
|
||||
# Folder button
|
||||
folder_pixmap = QtGui.QPixmap.fromImage(
|
||||
QtGui.QImage(GuiCommon.get_resource_path("images/open_folder.png"))
|
||||
)
|
||||
image = QtGui.QImage(GuiCommon.get_resource_path("images/open_folder.svg"))
|
||||
scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
|
||||
folder_pixmap = QtGui.QPixmap.fromImage(scaled_image)
|
||||
folder_icon = QtGui.QIcon(folder_pixmap)
|
||||
self.folder_button = QtWidgets.QPushButton()
|
||||
self.folder_button.clicked.connect(self.open_folder)
|
||||
|
@ -788,10 +788,10 @@ class History(QtWidgets.QWidget):
|
|||
Update the 'completed' widget.
|
||||
"""
|
||||
if self.completed_count == 0:
|
||||
image = GuiCommon.get_resource_path("images/history_completed_none.png")
|
||||
image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_completed_none.svg")
|
||||
else:
|
||||
image = GuiCommon.get_resource_path("images/history_completed.png")
|
||||
self.completed_label.setText(f'<img src="{image}" /> {self.completed_count}')
|
||||
image = GuiCommon.get_resource_path("images/history_completed.svg")
|
||||
self.completed_label.setText(f'<img src="{image}" height="10" /> {self.completed_count}')
|
||||
self.completed_label.setToolTip(
|
||||
strings._("history_completed_tooltip").format(self.completed_count)
|
||||
)
|
||||
|
@ -801,12 +801,12 @@ class History(QtWidgets.QWidget):
|
|||
Update the 'in progress' widget.
|
||||
"""
|
||||
if self.in_progress_count == 0:
|
||||
image = GuiCommon.get_resource_path("images/history_in_progress_none.png")
|
||||
image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_in_progress_none.svg")
|
||||
else:
|
||||
image = GuiCommon.get_resource_path("images/history_in_progress.png")
|
||||
image = GuiCommon.get_resource_path("images/history_in_progress.svg")
|
||||
|
||||
self.in_progress_label.setText(
|
||||
f'<img src="{image}" /> {self.in_progress_count}'
|
||||
f'<img src="{image}" height="10" /> {self.in_progress_count}'
|
||||
)
|
||||
self.in_progress_label.setToolTip(
|
||||
strings._("history_in_progress_tooltip").format(self.in_progress_count)
|
||||
|
@ -817,11 +817,11 @@ class History(QtWidgets.QWidget):
|
|||
Update the 'web requests' widget.
|
||||
"""
|
||||
if self.requests_count == 0:
|
||||
image = GuiCommon.get_resource_path("images/history_requests_none.png")
|
||||
image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_requests_none.svg")
|
||||
else:
|
||||
image = GuiCommon.get_resource_path("images/history_requests.png")
|
||||
image = GuiCommon.get_resource_path("images/history_requests.svg")
|
||||
|
||||
self.requests_label.setText(f'<img src="{image}" /> {self.requests_count}')
|
||||
self.requests_label.setText(f'<img src="{image}" height="10" /> {self.requests_count}')
|
||||
self.requests_label.setToolTip(
|
||||
strings._("history_requests_tooltip").format(self.requests_count)
|
||||
)
|
||||
|
|
|
@ -160,9 +160,9 @@ class ReceiveMode(Mode):
|
|||
self.common,
|
||||
self,
|
||||
self.history,
|
||||
QtGui.QIcon(GuiCommon.get_resource_path("images/receive_icon_toggle.png")),
|
||||
QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
|
||||
QtGui.QIcon(
|
||||
GuiCommon.get_resource_path("images/receive_icon_toggle_selected.png")
|
||||
GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
@ -135,9 +135,9 @@ class ShareMode(Mode):
|
|||
self.common,
|
||||
self,
|
||||
self.history,
|
||||
QtGui.QIcon(GuiCommon.get_resource_path("images/share_icon_toggle.png")),
|
||||
QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
|
||||
QtGui.QIcon(
|
||||
GuiCommon.get_resource_path("images/share_icon_toggle_selected.png")
|
||||
GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
@ -157,9 +157,9 @@ class WebsiteMode(Mode):
|
|||
self.common,
|
||||
self,
|
||||
self.history,
|
||||
QtGui.QIcon(GuiCommon.get_resource_path("images/share_icon_toggle.png")),
|
||||
QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
|
||||
QtGui.QIcon(
|
||||
GuiCommon.get_resource_path("images/share_icon_toggle_selected.png")
|
||||
GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
@ -217,14 +217,13 @@ class Tab(QtWidgets.QWidget):
|
|||
|
||||
# Persistent image
|
||||
self.persistent_image_label = QtWidgets.QLabel()
|
||||
self.persistent_image_label.setPixmap(
|
||||
QtGui.QPixmap.fromImage(
|
||||
QtGui.QImage(
|
||||
GuiCommon.get_resource_path("images/persistent_enabled.png")
|
||||
)
|
||||
image = QtGui.QImage(
|
||||
GuiCommon.get_resource_path(
|
||||
f"images/{self.common.gui.color_mode}_persistent_enabled.svg"
|
||||
)
|
||||
)
|
||||
self.persistent_image_label.setFixedSize(20, 20)
|
||||
scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
|
||||
self.persistent_image_label.setPixmap(QtGui.QPixmap.fromImage(scaled_image))
|
||||
|
||||
# Create the close warning dialog -- the dialog widget needs to be in the constructor
|
||||
# in order to test it
|
||||
|
@ -480,23 +479,31 @@ class Tab(QtWidgets.QWidget):
|
|||
)
|
||||
|
||||
def set_server_status_indicator_stopped(self, label_text):
|
||||
self.change_icon.emit(self.tab_id, "images/server_stopped.png")
|
||||
self.change_icon.emit(
|
||||
self.tab_id, f"images/{self.common.gui.color_mode}_server_stopped.svg"
|
||||
)
|
||||
image = self.status_bar.server_status_image_stopped
|
||||
scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
|
||||
self.status_bar.server_status_image_label.setPixmap(
|
||||
QtGui.QPixmap.fromImage(self.status_bar.server_status_image_stopped)
|
||||
QtGui.QPixmap.fromImage(scaled_image)
|
||||
)
|
||||
self.status_bar.server_status_label.setText(label_text)
|
||||
|
||||
def set_server_status_indicator_working(self, label_text):
|
||||
self.change_icon.emit(self.tab_id, "images/server_working.png")
|
||||
self.change_icon.emit(self.tab_id, "images/server_working.svg")
|
||||
image = self.status_bar.server_status_image_working
|
||||
scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
|
||||
self.status_bar.server_status_image_label.setPixmap(
|
||||
QtGui.QPixmap.fromImage(self.status_bar.server_status_image_working)
|
||||
QtGui.QPixmap.fromImage(scaled_image)
|
||||
)
|
||||
self.status_bar.server_status_label.setText(label_text)
|
||||
|
||||
def set_server_status_indicator_started(self, label_text):
|
||||
self.change_icon.emit(self.tab_id, "images/server_started.png")
|
||||
self.change_icon.emit(self.tab_id, "images/server_started.svg")
|
||||
image = self.status_bar.server_status_image_started
|
||||
scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
|
||||
self.status_bar.server_status_image_label.setPixmap(
|
||||
QtGui.QPixmap.fromImage(self.status_bar.server_status_image_started)
|
||||
QtGui.QPixmap.fromImage(scaled_image)
|
||||
)
|
||||
self.status_bar.server_status_label.setText(label_text)
|
||||
|
||||
|
|
|
@ -35,7 +35,12 @@ with open(os.path.join("..", "cli", "onionshare_cli", "resources", "version.txt"
|
|||
version = version[0:-5]
|
||||
|
||||
# Build
|
||||
include_files = [(os.path.join("..", "LICENSE.txt"), "LICENSE.txt")]
|
||||
include_files = [
|
||||
(os.path.join("..", "LICENSE.txt"), "LICENSE.txt"),
|
||||
(os.path.join("..", "licenses", "license-obfs4.txt"), "license-obfs4.txt"),
|
||||
(os.path.join("..", "licenses", "license-snowflake.txt"), "license-snowflake.txt"),
|
||||
(os.path.join("..", "licenses", "license-tor.txt"), "license-tor.txt")
|
||||
]
|
||||
|
||||
if platform.system() == "Windows":
|
||||
include_msvcr = True
|
||||
|
|
|
@ -132,7 +132,7 @@ class TestTabs(GuiBaseTest):
|
|||
self.assertFalse(self.gui.tabs.widget(1).new_tab.isVisible())
|
||||
self.assertTrue(self.gui.tabs.widget(1).share_mode.isVisible())
|
||||
self.assertEqual(
|
||||
self.gui.status_bar.server_status_label.text(), "Ready to share"
|
||||
self.gui.status_bar.server_status_label.text(), "Stopped"
|
||||
)
|
||||
|
||||
# New tab, receive files
|
||||
|
@ -141,7 +141,7 @@ class TestTabs(GuiBaseTest):
|
|||
self.assertFalse(self.gui.tabs.widget(2).new_tab.isVisible())
|
||||
self.assertTrue(self.gui.tabs.widget(2).receive_mode.isVisible())
|
||||
self.assertEqual(
|
||||
self.gui.status_bar.server_status_label.text(), "Ready to receive"
|
||||
self.gui.status_bar.server_status_label.text(), "Stopped"
|
||||
)
|
||||
|
||||
# New tab, publish website
|
||||
|
@ -150,7 +150,7 @@ class TestTabs(GuiBaseTest):
|
|||
self.assertFalse(self.gui.tabs.widget(3).new_tab.isVisible())
|
||||
self.assertTrue(self.gui.tabs.widget(3).website_mode.isVisible())
|
||||
self.assertEqual(
|
||||
self.gui.status_bar.server_status_label.text(), "Ready to share"
|
||||
self.gui.status_bar.server_status_label.text(), "Stopped"
|
||||
)
|
||||
|
||||
# New tab, chat mode
|
||||
|
@ -159,7 +159,7 @@ class TestTabs(GuiBaseTest):
|
|||
self.assertFalse(self.gui.tabs.widget(4).new_tab.isVisible())
|
||||
self.assertTrue(self.gui.tabs.widget(4).chat_mode.isVisible())
|
||||
self.assertEqual(
|
||||
self.gui.status_bar.server_status_label.text(), "Ready to chat"
|
||||
self.gui.status_bar.server_status_label.text(), "Stopped"
|
||||
)
|
||||
|
||||
# Close tabs
|
||||
|
|