Philipp Hörist pushed to branch master at gajim / gajim

Commits:

2 changed files:

Changes:

  • gajim/data/gui/httpupload_progress_dialog.ui
    ... ... @@ -2,13 +2,14 @@
    2 2
     <!-- Generated with glade 3.22.1 -->
    
    3 3
     <interface>
    
    4 4
       <requires lib="gtk+" version="3.20"/>
    
    5
    -  <object class="GtkBox" id="box">
    
    5
    +  <object class="GtkGrid" id="grid">
    
    6 6
         <property name="width_request">300</property>
    
    7 7
         <property name="visible">True</property>
    
    8 8
         <property name="can_focus">False</property>
    
    9 9
         <property name="border_width">18</property>
    
    10
    -    <property name="orientation">vertical</property>
    
    11
    -    <property name="spacing">6</property>
    
    10
    +    <property name="row_spacing">6</property>
    
    11
    +    <property name="column_spacing">12</property>
    
    12
    +    <property name="column_homogeneous">True</property>
    
    12 13
         <child>
    
    13 14
           <object class="GtkImage">
    
    14 15
             <property name="visible">True</property>
    
    ... ... @@ -17,40 +18,32 @@
    17 18
             <property name="icon_size">6</property>
    
    18 19
           </object>
    
    19 20
           <packing>
    
    20
    -        <property name="expand">False</property>
    
    21
    -        <property name="fill">True</property>
    
    22
    -        <property name="position">0</property>
    
    21
    +        <property name="left_attach">0</property>
    
    22
    +        <property name="top_attach">0</property>
    
    23 23
           </packing>
    
    24 24
         </child>
    
    25 25
         <child>
    
    26
    -      <object class="GtkLabel" id="label">
    
    26
    +      <object class="GtkLabel" id="file_name_label">
    
    27 27
             <property name="visible">True</property>
    
    28 28
             <property name="can_focus">False</property>
    
    29
    -        <property name="margin_top">6</property>
    
    30
    -        <property name="label">&lt;placeholder&gt;</property>
    
    31
    -        <style>
    
    32
    -          <class name="bold"/>
    
    33
    -        </style>
    
    29
    +        <property name="label">&lt;file name&gt;</property>
    
    34 30
           </object>
    
    35 31
           <packing>
    
    36
    -        <property name="expand">False</property>
    
    37
    -        <property name="fill">True</property>
    
    38
    -        <property name="position">1</property>
    
    32
    +        <property name="left_attach">0</property>
    
    33
    +        <property name="top_attach">2</property>
    
    39 34
           </packing>
    
    40 35
         </child>
    
    41 36
         <child>
    
    42 37
           <object class="GtkLabel" id="progress_label">
    
    43 38
             <property name="visible">True</property>
    
    44 39
             <property name="can_focus">False</property>
    
    45
    -        <property name="label">&lt;progress&gt;</property>
    
    46 40
             <style>
    
    47 41
               <class name="dim-label"/>
    
    48 42
             </style>
    
    49 43
           </object>
    
    50 44
           <packing>
    
    51
    -        <property name="expand">False</property>
    
    52
    -        <property name="fill">True</property>
    
    53
    -        <property name="position">2</property>
    
    45
    +        <property name="left_attach">0</property>
    
    46
    +        <property name="top_attach">3</property>
    
    54 47
           </packing>
    
    55 48
         </child>
    
    56 49
         <child>
    
    ... ... @@ -61,9 +54,8 @@
    61 54
             <property name="pulse_step">0.10000000149</property>
    
    62 55
           </object>
    
    63 56
           <packing>
    
    64
    -        <property name="expand">False</property>
    
    65
    -        <property name="fill">True</property>
    
    66
    -        <property name="position">3</property>
    
    57
    +        <property name="left_attach">0</property>
    
    58
    +        <property name="top_attach">4</property>
    
    67 59
           </packing>
    
    68 60
         </child>
    
    69 61
         <child>
    
    ... ... @@ -80,9 +72,23 @@
    80 72
             </style>
    
    81 73
           </object>
    
    82 74
           <packing>
    
    83
    -        <property name="expand">False</property>
    
    84
    -        <property name="fill">True</property>
    
    85
    -        <property name="position">4</property>
    
    75
    +        <property name="left_attach">0</property>
    
    76
    +        <property name="top_attach">5</property>
    
    77
    +      </packing>
    
    78
    +    </child>
    
    79
    +    <child>
    
    80
    +      <object class="GtkLabel" id="label">
    
    81
    +        <property name="visible">True</property>
    
    82
    +        <property name="can_focus">False</property>
    
    83
    +        <property name="margin_top">6</property>
    
    84
    +        <property name="label">&lt;placeholder&gt;</property>
    
    85
    +        <style>
    
    86
    +          <class name="bold"/>
    
    87
    +        </style>
    
    88
    +      </object>
    
    89
    +      <packing>
    
    90
    +        <property name="left_attach">0</property>
    
    91
    +        <property name="top_attach">1</property>
    
    86 92
           </packing>
    
    87 93
         </child>
    
    88 94
       </object>
    

  • gajim/dialogs.py
    ... ... @@ -32,6 +32,7 @@ from typing import Tuple # pylint: disable=unused-import
    32 32
     import os
    
    33 33
     import uuid
    
    34 34
     import logging
    
    35
    +import time
    
    35 36
     
    
    36 37
     from gi.repository import Gtk
    
    37 38
     from gi.repository import Gdk
    
    ... ... @@ -1588,8 +1589,11 @@ class ProgressWindow(Gtk.ApplicationWindow):
    1588 1589
             self.event = file.event
    
    1589 1590
             self.file = file
    
    1590 1591
             self._ui = get_builder('httpupload_progress_dialog.ui')
    
    1592
    +        file_name = os.path.basename(file.path)
    
    1593
    +        self._ui.file_name_label.set_text(file_name)
    
    1594
    +        self._start_time = time.time()
    
    1591 1595
     
    
    1592
    -        self.add(self._ui.box)
    
    1596
    +        self.add(self._ui.grid)
    
    1593 1597
     
    
    1594 1598
             self.pulse = GLib.timeout_add(100, self._pulse_progressbar)
    
    1595 1599
             self.show_all()
    
    ... ... @@ -1602,12 +1606,13 @@ class ProgressWindow(Gtk.ApplicationWindow):
    1602 1606
         def _on_httpupload_progress(self, obj):
    
    1603 1607
             if self.file != obj.file:
    
    1604 1608
                 return
    
    1609
    +
    
    1605 1610
             if obj.status == 'request':
    
    1606
    -            self._ui.label.set_text(_('Requesting HTTP Upload Slot…'))
    
    1611
    +            self._ui.label.set_text(_('Requesting HTTP File Upload Slot…'))
    
    1607 1612
             elif obj.status == 'close':
    
    1608 1613
                 self.destroy()
    
    1609 1614
             elif obj.status == 'upload':
    
    1610
    -            self._ui.label.set_text(_('Uploading file via HTTP File Upload…'))
    
    1615
    +            self._ui.label.set_text(_('Uploading via HTTP File Upload…'))
    
    1611 1616
             elif obj.status == 'update':
    
    1612 1617
                 self.update_progress(obj.seen, obj.total)
    
    1613 1618
             elif obj.status == 'encrypt':
    
    ... ... @@ -1633,9 +1638,17 @@ class ProgressWindow(Gtk.ApplicationWindow):
    1633 1638
             if self.pulse:
    
    1634 1639
                 GLib.source_remove(self.pulse)
    
    1635 1640
                 self.pulse = None
    
    1636
    -        self._ui.progressbar.set_fraction(float(seen) / total)
    
    1641
    +
    
    1637 1642
             size_total = round(total / (1024 * 1024), 1)
    
    1638 1643
             size_progress = round(seen / (1024 * 1024), 1)
    
    1644
    +
    
    1645
    +        time_now = time.time()
    
    1646
    +        mbytes_sec = round(size_progress / (time_now - self._start_time), 1)
    
    1647
    +
    
    1648
    +        self._ui.progressbar.set_fraction(float(seen) / total)
    
    1649
    +
    
    1639 1650
             self._ui.progress_label.set_text(
    
    1640
    -            _('%(progress)s of %(total)s MiB sent') % \
    
    1641
    -            {'progress': str(size_progress), 'total': str(size_total)})
    1651
    +            _('%(progress)s of %(total)s MiB sent (%(speed)s MiB/s)') % \
    
    1652
    +            {'progress': str(size_progress),
    
    1653
    +             'total': str(size_total),
    
    1654
    +             'speed': str(mbytes_sec)})