Daniel Brötzmann pushed to branch master at gajim / gajim

Commits:

4 changed files:

Changes:

  • gajim/data/gui/preview.ui
    1 1
     <?xml version="1.0" encoding="UTF-8"?>
    
    2
    -<!-- Generated with glade 3.38.2 -->
    
    2
    +<!-- Generated with glade 3.40.0 -->
    
    3 3
     <interface>
    
    4 4
       <requires lib="gtk+" version="3.24"/>
    
    5
    -  <object class="GtkBox" id="preview_box">
    
    5
    +  <object class="GtkStack" id="preview_stack">
    
    6 6
         <property name="visible">True</property>
    
    7 7
         <property name="can-focus">False</property>
    
    8
    -    <property name="spacing">12</property>
    
    8
    +    <property name="hhomogeneous">False</property>
    
    9
    +    <property name="vhomogeneous">False</property>
    
    10
    +    <property name="transition-duration">50</property>
    
    11
    +    <property name="transition-type">crossfade</property>
    
    9 12
         <child>
    
    10
    -      <object class="GtkEventBox" id="icon_event_box">
    
    13
    +      <object class="GtkBox">
    
    14
    +        <property name="width-request">300</property>
    
    15
    +        <property name="height-request">200</property>
    
    11 16
             <property name="visible">True</property>
    
    12 17
             <property name="can-focus">False</property>
    
    13
    -        <property name="no-show-all">True</property>
    
    14
    -        <property name="halign">start</property>
    
    15
    -        <signal name="realize" handler="_on_realize" swapped="no"/>
    
    18
    +        <property name="orientation">vertical</property>
    
    19
    +        <property name="spacing">12</property>
    
    20
    +        <property name="homogeneous">True</property>
    
    16 21
             <child>
    
    17
    -          <object class="GtkButton" id="icon_button">
    
    22
    +          <object class="GtkSpinner">
    
    18 23
                 <property name="visible">True</property>
    
    19
    -            <property name="can-focus">True</property>
    
    20
    -            <property name="receives-default">False</property>
    
    21
    -            <property name="relief">none</property>
    
    22
    -            <signal name="button-press-event" handler="_on_button_press_event" swapped="no"/>
    
    23
    -            <signal name="clicked" handler="_on_content_button_clicked" swapped="no"/>
    
    24
    -            <child>
    
    25
    -              <placeholder/>
    
    26
    -            </child>
    
    24
    +            <property name="can-focus">False</property>
    
    25
    +            <property name="valign">end</property>
    
    26
    +            <property name="active">True</property>
    
    27
    +          </object>
    
    28
    +          <packing>
    
    29
    +            <property name="expand">False</property>
    
    30
    +            <property name="fill">True</property>
    
    31
    +            <property name="position">0</property>
    
    32
    +          </packing>
    
    33
    +        </child>
    
    34
    +        <child>
    
    35
    +          <object class="GtkLabel">
    
    36
    +            <property name="visible">True</property>
    
    37
    +            <property name="can-focus">False</property>
    
    38
    +            <property name="valign">start</property>
    
    39
    +            <property name="label" translatable="yes">Loading Preview…</property>
    
    27 40
                 <style>
    
    28
    -              <class name="preview-image-button"/>
    
    41
    +              <class name="dim-label"/>
    
    29 42
                 </style>
    
    30 43
               </object>
    
    44
    +          <packing>
    
    45
    +            <property name="expand">False</property>
    
    46
    +            <property name="fill">True</property>
    
    47
    +            <property name="position">1</property>
    
    48
    +          </packing>
    
    31 49
             </child>
    
    32 50
           </object>
    
    33 51
           <packing>
    
    34
    -        <property name="expand">False</property>
    
    35
    -        <property name="fill">True</property>
    
    36
    -        <property name="position">0</property>
    
    52
    +        <property name="name">loading</property>
    
    37 53
           </packing>
    
    38 54
         </child>
    
    39 55
         <child>
    
    40
    -      <object class="GtkBox" id="right_box">
    
    56
    +      <object class="GtkBox">
    
    41 57
             <property name="visible">True</property>
    
    42 58
             <property name="can-focus">False</property>
    
    43
    -        <property name="orientation">vertical</property>
    
    44
    -        <property name="spacing">3</property>
    
    59
    +        <property name="spacing">12</property>
    
    45 60
             <child>
    
    46
    -          <object class="GtkBox" id="progress_box">
    
    61
    +          <object class="GtkEventBox" id="icon_event_box">
    
    62
    +            <property name="visible">True</property>
    
    47 63
                 <property name="can-focus">False</property>
    
    48 64
                 <property name="no-show-all">True</property>
    
    49
    -            <property name="spacing">12</property>
    
    65
    +            <property name="halign">start</property>
    
    66
    +            <signal name="realize" handler="_on_realize" swapped="no"/>
    
    50 67
                 <child>
    
    51
    -              <object class="GtkProgressBar" id="progressbar">
    
    68
    +              <object class="GtkButton" id="icon_button">
    
    52 69
                     <property name="visible">True</property>
    
    53
    -                <property name="can-focus">False</property>
    
    54
    -                <property name="valign">center</property>
    
    55
    -              </object>
    
    56
    -              <packing>
    
    57
    -                <property name="expand">False</property>
    
    58
    -                <property name="fill">True</property>
    
    59
    -                <property name="position">0</property>
    
    60
    -              </packing>
    
    61
    -            </child>
    
    62
    -            <child>
    
    63
    -              <object class="GtkLabel" id="progress_text">
    
    64
    -                <property name="visible">True</property>
    
    65
    -                <property name="can-focus">False</property>
    
    66
    -                <property name="valign">center</property>
    
    67
    -                <property name="width-chars">4</property>
    
    68
    -                <property name="single-line-mode">True</property>
    
    69
    -                <style>
    
    70
    -                  <class name="dim-label"/>
    
    71
    -                  <class name="small-label"/>
    
    72
    -                </style>
    
    73
    -              </object>
    
    74
    -              <packing>
    
    75
    -                <property name="expand">False</property>
    
    76
    -                <property name="fill">True</property>
    
    77
    -                <property name="position">1</property>
    
    78
    -              </packing>
    
    79
    -            </child>
    
    80
    -            <child>
    
    81
    -              <object class="GtkEventBox">
    
    82
    -                <property name="visible">True</property>
    
    83
    -                <property name="can-focus">False</property>
    
    84
    -                <property name="valign">end</property>
    
    85
    -                <signal name="realize" handler="_on_realize" swapped="no"/>
    
    70
    +                <property name="can-focus">True</property>
    
    71
    +                <property name="receives-default">False</property>
    
    72
    +                <property name="relief">none</property>
    
    73
    +                <signal name="button-press-event" handler="_on_button_press_event" swapped="no"/>
    
    74
    +                <signal name="clicked" handler="_on_content_button_clicked" swapped="no"/>
    
    86 75
                     <child>
    
    87
    -                  <object class="GtkButton" id="cancel_download_button">
    
    88
    -                    <property name="visible">True</property>
    
    89
    -                    <property name="can-focus">True</property>
    
    90
    -                    <property name="receives-default">False</property>
    
    91
    -                    <property name="tooltip-text" translatable="yes">Cancel Download</property>
    
    92
    -                    <property name="relief">none</property>
    
    93
    -                    <signal name="clicked" handler="_on_cancel_download_clicked" swapped="no"/>
    
    94
    -                    <child>
    
    95
    -                      <object class="GtkImage">
    
    96
    -                        <property name="visible">True</property>
    
    97
    -                        <property name="can-focus">False</property>
    
    98
    -                        <property name="icon-name">process-stop-symbolic</property>
    
    99
    -                      </object>
    
    100
    -                    </child>
    
    101
    -                    <style>
    
    102
    -                      <class name="border"/>
    
    103
    -                      <class name="flat"/>
    
    104
    -                    </style>
    
    105
    -                  </object>
    
    76
    +                  <placeholder/>
    
    106 77
                     </child>
    
    78
    +                <style>
    
    79
    +                  <class name="preview-image-button"/>
    
    80
    +                </style>
    
    107 81
                   </object>
    
    108
    -              <packing>
    
    109
    -                <property name="expand">False</property>
    
    110
    -                <property name="fill">True</property>
    
    111
    -                <property name="pack-type">end</property>
    
    112
    -                <property name="position">2</property>
    
    113
    -              </packing>
    
    114 82
                 </child>
    
    115 83
               </object>
    
    116 84
               <packing>
    
    117 85
                 <property name="expand">False</property>
    
    118 86
                 <property name="fill">True</property>
    
    119
    -            <property name="pack-type">end</property>
    
    120 87
                 <property name="position">0</property>
    
    121 88
               </packing>
    
    122 89
             </child>
    
    123 90
             <child>
    
    124
    -          <object class="GtkBox" id="content_box">
    
    91
    +          <object class="GtkBox" id="right_box">
    
    125 92
                 <property name="visible">True</property>
    
    126 93
                 <property name="can-focus">False</property>
    
    127 94
                 <property name="orientation">vertical</property>
    
    128
    -            <property name="spacing">6</property>
    
    95
    +            <property name="spacing">3</property>
    
    129 96
                 <child>
    
    130
    -              <object class="GtkEventBox">
    
    131
    -                <property name="visible">True</property>
    
    97
    +              <object class="GtkBox" id="progress_box">
    
    132 98
                     <property name="can-focus">False</property>
    
    133
    -                <property name="halign">center</property>
    
    134
    -                <signal name="realize" handler="_on_realize" swapped="no"/>
    
    99
    +                <property name="no-show-all">True</property>
    
    100
    +                <property name="spacing">12</property>
    
    135 101
                     <child>
    
    136
    -                  <object class="GtkButton" id="image_button">
    
    102
    +                  <object class="GtkProgressBar" id="progressbar">
    
    137 103
                         <property name="visible">True</property>
    
    138
    -                    <property name="can-focus">True</property>
    
    139
    -                    <property name="receives-default">False</property>
    
    140
    -                    <property name="relief">none</property>
    
    141
    -                    <signal name="button-press-event" handler="_on_button_press_event" swapped="no"/>
    
    142
    -                    <signal name="clicked" handler="_on_content_button_clicked" swapped="no"/>
    
    143
    -                    <child>
    
    144
    -                      <placeholder/>
    
    145
    -                    </child>
    
    104
    +                    <property name="can-focus">False</property>
    
    105
    +                    <property name="valign">center</property>
    
    106
    +                  </object>
    
    107
    +                  <packing>
    
    108
    +                    <property name="expand">False</property>
    
    109
    +                    <property name="fill">True</property>
    
    110
    +                    <property name="position">0</property>
    
    111
    +                  </packing>
    
    112
    +                </child>
    
    113
    +                <child>
    
    114
    +                  <object class="GtkLabel" id="progress_text">
    
    115
    +                    <property name="visible">True</property>
    
    116
    +                    <property name="can-focus">False</property>
    
    117
    +                    <property name="valign">center</property>
    
    118
    +                    <property name="width-chars">4</property>
    
    119
    +                    <property name="single-line-mode">True</property>
    
    146 120
                         <style>
    
    147
    -                      <class name="preview-image-button"/>
    
    121
    +                      <class name="dim-label"/>
    
    122
    +                      <class name="small-label"/>
    
    148 123
                         </style>
    
    149 124
                       </object>
    
    125
    +                  <packing>
    
    126
    +                    <property name="expand">False</property>
    
    127
    +                    <property name="fill">True</property>
    
    128
    +                    <property name="position">1</property>
    
    129
    +                  </packing>
    
    150 130
                     </child>
    
    151
    -              </object>
    
    152
    -              <packing>
    
    153
    -                <property name="expand">False</property>
    
    154
    -                <property name="fill">True</property>
    
    155
    -                <property name="position">0</property>
    
    156
    -              </packing>
    
    157
    -            </child>
    
    158
    -            <child>
    
    159
    -              <object class="GtkLinkButton" id="link_button">
    
    160
    -                <property name="can-focus">True</property>
    
    161
    -                <property name="receives-default">False</property>
    
    162
    -                <property name="no-show-all">True</property>
    
    163
    -                <property name="halign">start</property>
    
    164
    -                <property name="relief">none</property>
    
    165
    -              </object>
    
    166
    -              <packing>
    
    167
    -                <property name="expand">False</property>
    
    168
    -                <property name="fill">True</property>
    
    169
    -                <property name="position">1</property>
    
    170
    -              </packing>
    
    171
    -            </child>
    
    172
    -          </object>
    
    173
    -          <packing>
    
    174
    -            <property name="expand">False</property>
    
    175
    -            <property name="fill">True</property>
    
    176
    -            <property name="position">1</property>
    
    177
    -          </packing>
    
    178
    -        </child>
    
    179
    -        <child>
    
    180
    -          <object class="GtkBox" id="button_box">
    
    181
    -            <property name="visible">True</property>
    
    182
    -            <property name="can-focus">False</property>
    
    183
    -            <property name="spacing">6</property>
    
    184
    -            <child>
    
    185
    -              <object class="GtkEventBox">
    
    186
    -                <property name="visible">True</property>
    
    187
    -                <property name="can-focus">False</property>
    
    188
    -                <property name="valign">end</property>
    
    189
    -                <signal name="realize" handler="_on_realize" swapped="no"/>
    
    190 131
                     <child>
    
    191
    -                  <object class="GtkButton" id="download_button">
    
    192
    -                    <property name="can-focus">True</property>
    
    193
    -                    <property name="receives-default">False</property>
    
    194
    -                    <property name="no-show-all">True</property>
    
    195
    -                    <property name="tooltip-text" translatable="yes">Download</property>
    
    196
    -                    <property name="relief">none</property>
    
    197
    -                    <signal name="clicked" handler="_on_download" swapped="no"/>
    
    132
    +                  <object class="GtkEventBox">
    
    133
    +                    <property name="visible">True</property>
    
    134
    +                    <property name="can-focus">False</property>
    
    135
    +                    <property name="valign">end</property>
    
    136
    +                    <signal name="realize" handler="_on_realize" swapped="no"/>
    
    198 137
                         <child>
    
    199
    -                      <object class="GtkImage">
    
    138
    +                      <object class="GtkButton" id="cancel_download_button">
    
    200 139
                             <property name="visible">True</property>
    
    201
    -                        <property name="can-focus">False</property>
    
    202
    -                        <property name="icon-name">folder-download-symbolic</property>
    
    140
    +                        <property name="can-focus">True</property>
    
    141
    +                        <property name="receives-default">False</property>
    
    142
    +                        <property name="tooltip-text" translatable="yes">Cancel Download</property>
    
    143
    +                        <property name="relief">none</property>
    
    144
    +                        <signal name="clicked" handler="_on_cancel_download_clicked" swapped="no"/>
    
    145
    +                        <child>
    
    146
    +                          <object class="GtkImage">
    
    147
    +                            <property name="visible">True</property>
    
    148
    +                            <property name="can-focus">False</property>
    
    149
    +                            <property name="icon-name">process-stop-symbolic</property>
    
    150
    +                          </object>
    
    151
    +                        </child>
    
    152
    +                        <style>
    
    153
    +                          <class name="border"/>
    
    154
    +                          <class name="flat"/>
    
    155
    +                        </style>
    
    203 156
                           </object>
    
    204 157
                         </child>
    
    205
    -                    <style>
    
    206
    -                      <class name="border"/>
    
    207
    -                      <class name="flat"/>
    
    208
    -                    </style>
    
    209 158
                       </object>
    
    159
    +                  <packing>
    
    160
    +                    <property name="expand">False</property>
    
    161
    +                    <property name="fill">True</property>
    
    162
    +                    <property name="pack-type">end</property>
    
    163
    +                    <property name="position">2</property>
    
    164
    +                  </packing>
    
    210 165
                     </child>
    
    211 166
                   </object>
    
    212 167
                   <packing>
    
    213 168
                     <property name="expand">False</property>
    
    214 169
                     <property name="fill">True</property>
    
    215 170
                     <property name="pack-type">end</property>
    
    216
    -                <property name="position">1</property>
    
    171
    +                <property name="position">0</property>
    
    217 172
                   </packing>
    
    218 173
                 </child>
    
    219 174
                 <child>
    
    220
    -              <object class="GtkEventBox">
    
    175
    +              <object class="GtkBox" id="content_box">
    
    221 176
                     <property name="visible">True</property>
    
    222 177
                     <property name="can-focus">False</property>
    
    223
    -                <property name="valign">end</property>
    
    224
    -                <signal name="realize" handler="_on_realize" swapped="no"/>
    
    178
    +                <property name="orientation">vertical</property>
    
    179
    +                <property name="spacing">6</property>
    
    225 180
                     <child>
    
    226
    -                  <object class="GtkButton" id="save_as_button">
    
    227
    -                    <property name="can-focus">True</property>
    
    228
    -                    <property name="receives-default">False</property>
    
    229
    -                    <property name="no-show-all">True</property>
    
    230
    -                    <property name="tooltip-text" translatable="yes">Save as...</property>
    
    231
    -                    <signal name="clicked" handler="_on_save_as" swapped="no"/>
    
    181
    +                  <object class="GtkEventBox">
    
    182
    +                    <property name="visible">True</property>
    
    183
    +                    <property name="can-focus">False</property>
    
    184
    +                    <property name="halign">center</property>
    
    185
    +                    <signal name="realize" handler="_on_realize" swapped="no"/>
    
    232 186
                         <child>
    
    233
    -                      <object class="GtkImage">
    
    187
    +                      <object class="GtkButton" id="image_button">
    
    234 188
                             <property name="visible">True</property>
    
    235
    -                        <property name="can-focus">False</property>
    
    236
    -                        <property name="icon-name">document-save-as-symbolic</property>
    
    189
    +                        <property name="can-focus">True</property>
    
    190
    +                        <property name="receives-default">False</property>
    
    191
    +                        <property name="relief">none</property>
    
    192
    +                        <signal name="button-press-event" handler="_on_button_press_event" swapped="no"/>
    
    193
    +                        <signal name="clicked" handler="_on_content_button_clicked" swapped="no"/>
    
    194
    +                        <child>
    
    195
    +                          <placeholder/>
    
    196
    +                        </child>
    
    197
    +                        <style>
    
    198
    +                          <class name="preview-image-button"/>
    
    199
    +                        </style>
    
    237 200
                           </object>
    
    238 201
                         </child>
    
    239
    -                    <style>
    
    240
    -                      <class name="border"/>
    
    241
    -                      <class name="flat"/>
    
    242
    -                    </style>
    
    243 202
                       </object>
    
    203
    +                  <packing>
    
    204
    +                    <property name="expand">False</property>
    
    205
    +                    <property name="fill">True</property>
    
    206
    +                    <property name="position">0</property>
    
    207
    +                  </packing>
    
    244 208
                     </child>
    
    245
    -              </object>
    
    246
    -              <packing>
    
    247
    -                <property name="expand">False</property>
    
    248
    -                <property name="fill">True</property>
    
    249
    -                <property name="pack-type">end</property>
    
    250
    -                <property name="position">2</property>
    
    251
    -              </packing>
    
    252
    -            </child>
    
    253
    -            <child>
    
    254
    -              <object class="GtkEventBox">
    
    255
    -                <property name="visible">True</property>
    
    256
    -                <property name="can-focus">False</property>
    
    257
    -                <property name="valign">end</property>
    
    258
    -                <signal name="realize" handler="_on_realize" swapped="no"/>
    
    259 209
                     <child>
    
    260
    -                  <object class="GtkButton" id="open_folder_button">
    
    210
    +                  <object class="GtkLinkButton" id="link_button">
    
    261 211
                         <property name="can-focus">True</property>
    
    262 212
                         <property name="receives-default">False</property>
    
    263 213
                         <property name="no-show-all">True</property>
    
    264
    -                    <property name="tooltip-text" translatable="yes">Open folder</property>
    
    265
    -                    <signal name="clicked" handler="_on_open_folder" swapped="no"/>
    
    266
    -                    <child>
    
    267
    -                      <object class="GtkImage">
    
    268
    -                        <property name="visible">True</property>
    
    269
    -                        <property name="can-focus">False</property>
    
    270
    -                        <property name="icon-name">folder-symbolic</property>
    
    271
    -                      </object>
    
    272
    -                    </child>
    
    273
    -                    <style>
    
    274
    -                      <class name="border"/>
    
    275
    -                      <class name="flat"/>
    
    276
    -                    </style>
    
    214
    +                    <property name="halign">start</property>
    
    215
    +                    <property name="relief">none</property>
    
    277 216
                       </object>
    
    217
    +                  <packing>
    
    218
    +                    <property name="expand">False</property>
    
    219
    +                    <property name="fill">True</property>
    
    220
    +                    <property name="position">1</property>
    
    221
    +                  </packing>
    
    278 222
                     </child>
    
    279 223
                   </object>
    
    280 224
                   <packing>
    
    281 225
                     <property name="expand">False</property>
    
    282 226
                     <property name="fill">True</property>
    
    283
    -                <property name="pack-type">end</property>
    
    284
    -                <property name="position">3</property>
    
    227
    +                <property name="position">1</property>
    
    285 228
                   </packing>
    
    286 229
                 </child>
    
    287 230
                 <child>
    
    288
    -              <object class="GtkBox">
    
    231
    +              <object class="GtkBox" id="button_box">
    
    289 232
                     <property name="visible">True</property>
    
    290 233
                     <property name="can-focus">False</property>
    
    291
    -                <property name="halign">start</property>
    
    292
    -                <property name="orientation">vertical</property>
    
    234
    +                <property name="spacing">6</property>
    
    293 235
                     <child>
    
    294
    -                  <object class="GtkLabel" id="file_name">
    
    236
    +                  <object class="GtkEventBox">
    
    295 237
                         <property name="visible">True</property>
    
    296
    -                    <property name="can-focus">True</property>
    
    297
    -                    <property name="selectable">True</property>
    
    298
    -                    <property name="ellipsize">end</property>
    
    299
    -                    <property name="single-line-mode">True</property>
    
    300
    -                    <property name="max-width-chars">30</property>
    
    301
    -                    <property name="xalign">0</property>
    
    302
    -                    <style>
    
    303
    -                      <class name="dim-label"/>
    
    304
    -                      <class name="small-label"/>
    
    305
    -                    </style>
    
    238
    +                    <property name="can-focus">False</property>
    
    239
    +                    <property name="valign">end</property>
    
    240
    +                    <signal name="realize" handler="_on_realize" swapped="no"/>
    
    241
    +                    <child>
    
    242
    +                      <object class="GtkButton" id="download_button">
    
    243
    +                        <property name="can-focus">True</property>
    
    244
    +                        <property name="receives-default">False</property>
    
    245
    +                        <property name="no-show-all">True</property>
    
    246
    +                        <property name="tooltip-text" translatable="yes">Download</property>
    
    247
    +                        <property name="relief">none</property>
    
    248
    +                        <signal name="clicked" handler="_on_download" swapped="no"/>
    
    249
    +                        <child>
    
    250
    +                          <object class="GtkImage">
    
    251
    +                            <property name="visible">True</property>
    
    252
    +                            <property name="can-focus">False</property>
    
    253
    +                            <property name="icon-name">folder-download-symbolic</property>
    
    254
    +                          </object>
    
    255
    +                        </child>
    
    256
    +                        <style>
    
    257
    +                          <class name="border"/>
    
    258
    +                          <class name="flat"/>
    
    259
    +                        </style>
    
    260
    +                      </object>
    
    261
    +                    </child>
    
    306 262
                       </object>
    
    307 263
                       <packing>
    
    308 264
                         <property name="expand">False</property>
    
    309 265
                         <property name="fill">True</property>
    
    310
    -                    <property name="position">0</property>
    
    266
    +                    <property name="pack-type">end</property>
    
    267
    +                    <property name="position">1</property>
    
    311 268
                       </packing>
    
    312 269
                     </child>
    
    313 270
                     <child>
    
    314
    -                  <object class="GtkLabel" id="file_size">
    
    271
    +                  <object class="GtkEventBox">
    
    315 272
                         <property name="visible">True</property>
    
    316
    -                    <property name="can-focus">True</property>
    
    317
    -                    <property name="selectable">True</property>
    
    318
    -                    <property name="single-line-mode">True</property>
    
    319
    -                    <property name="max-width-chars">30</property>
    
    320
    -                    <property name="xalign">0</property>
    
    321
    -                    <style>
    
    322
    -                      <class name="dim-label"/>
    
    323
    -                      <class name="small-label"/>
    
    324
    -                    </style>
    
    273
    +                    <property name="can-focus">False</property>
    
    274
    +                    <property name="valign">end</property>
    
    275
    +                    <signal name="realize" handler="_on_realize" swapped="no"/>
    
    276
    +                    <child>
    
    277
    +                      <object class="GtkButton" id="save_as_button">
    
    278
    +                        <property name="can-focus">True</property>
    
    279
    +                        <property name="receives-default">False</property>
    
    280
    +                        <property name="no-show-all">True</property>
    
    281
    +                        <property name="tooltip-text" translatable="yes">Save as...</property>
    
    282
    +                        <signal name="clicked" handler="_on_save_as" swapped="no"/>
    
    283
    +                        <child>
    
    284
    +                          <object class="GtkImage">
    
    285
    +                            <property name="visible">True</property>
    
    286
    +                            <property name="can-focus">False</property>
    
    287
    +                            <property name="icon-name">document-save-as-symbolic</property>
    
    288
    +                          </object>
    
    289
    +                        </child>
    
    290
    +                        <style>
    
    291
    +                          <class name="border"/>
    
    292
    +                          <class name="flat"/>
    
    293
    +                        </style>
    
    294
    +                      </object>
    
    295
    +                    </child>
    
    325 296
                       </object>
    
    326 297
                       <packing>
    
    327 298
                         <property name="expand">False</property>
    
    328 299
                         <property name="fill">True</property>
    
    329
    -                    <property name="position">1</property>
    
    300
    +                    <property name="pack-type">end</property>
    
    301
    +                    <property name="position">2</property>
    
    330 302
                       </packing>
    
    331 303
                     </child>
    
    332 304
                     <child>
    
    333
    -                  <object class="GtkLabel" id="info_message">
    
    305
    +                  <object class="GtkEventBox">
    
    334 306
                         <property name="visible">True</property>
    
    335
    -                    <property name="can-focus">True</property>
    
    336
    -                    <property name="selectable">True</property>
    
    337
    -                    <property name="ellipsize">end</property>
    
    338
    -                    <property name="single-line-mode">True</property>
    
    339
    -                    <property name="max-width-chars">30</property>
    
    340
    -                    <property name="xalign">0</property>
    
    341
    -                    <style>
    
    342
    -                      <class name="dim-label"/>
    
    343
    -                      <class name="small-label"/>
    
    344
    -                    </style>
    
    307
    +                    <property name="can-focus">False</property>
    
    308
    +                    <property name="valign">end</property>
    
    309
    +                    <signal name="realize" handler="_on_realize" swapped="no"/>
    
    310
    +                    <child>
    
    311
    +                      <object class="GtkButton" id="open_folder_button">
    
    312
    +                        <property name="can-focus">True</property>
    
    313
    +                        <property name="receives-default">False</property>
    
    314
    +                        <property name="no-show-all">True</property>
    
    315
    +                        <property name="tooltip-text" translatable="yes">Open folder</property>
    
    316
    +                        <signal name="clicked" handler="_on_open_folder" swapped="no"/>
    
    317
    +                        <child>
    
    318
    +                          <object class="GtkImage">
    
    319
    +                            <property name="visible">True</property>
    
    320
    +                            <property name="can-focus">False</property>
    
    321
    +                            <property name="icon-name">folder-symbolic</property>
    
    322
    +                          </object>
    
    323
    +                        </child>
    
    324
    +                        <style>
    
    325
    +                          <class name="border"/>
    
    326
    +                          <class name="flat"/>
    
    327
    +                        </style>
    
    328
    +                      </object>
    
    329
    +                    </child>
    
    345 330
                       </object>
    
    346 331
                       <packing>
    
    347 332
                         <property name="expand">False</property>
    
    348 333
                         <property name="fill">True</property>
    
    349
    -                    <property name="position">2</property>
    
    334
    +                    <property name="pack-type">end</property>
    
    335
    +                    <property name="position">3</property>
    
    336
    +                  </packing>
    
    337
    +                </child>
    
    338
    +                <child>
    
    339
    +                  <object class="GtkBox">
    
    340
    +                    <property name="visible">True</property>
    
    341
    +                    <property name="can-focus">False</property>
    
    342
    +                    <property name="halign">start</property>
    
    343
    +                    <property name="orientation">vertical</property>
    
    344
    +                    <child>
    
    345
    +                      <object class="GtkLabel" id="file_name">
    
    346
    +                        <property name="visible">True</property>
    
    347
    +                        <property name="can-focus">True</property>
    
    348
    +                        <property name="selectable">True</property>
    
    349
    +                        <property name="ellipsize">end</property>
    
    350
    +                        <property name="single-line-mode">True</property>
    
    351
    +                        <property name="max-width-chars">30</property>
    
    352
    +                        <property name="xalign">0</property>
    
    353
    +                        <style>
    
    354
    +                          <class name="dim-label"/>
    
    355
    +                          <class name="small-label"/>
    
    356
    +                        </style>
    
    357
    +                      </object>
    
    358
    +                      <packing>
    
    359
    +                        <property name="expand">False</property>
    
    360
    +                        <property name="fill">True</property>
    
    361
    +                        <property name="position">0</property>
    
    362
    +                      </packing>
    
    363
    +                    </child>
    
    364
    +                    <child>
    
    365
    +                      <object class="GtkLabel" id="file_size">
    
    366
    +                        <property name="visible">True</property>
    
    367
    +                        <property name="can-focus">True</property>
    
    368
    +                        <property name="selectable">True</property>
    
    369
    +                        <property name="single-line-mode">True</property>
    
    370
    +                        <property name="max-width-chars">30</property>
    
    371
    +                        <property name="xalign">0</property>
    
    372
    +                        <style>
    
    373
    +                          <class name="dim-label"/>
    
    374
    +                          <class name="small-label"/>
    
    375
    +                        </style>
    
    376
    +                      </object>
    
    377
    +                      <packing>
    
    378
    +                        <property name="expand">False</property>
    
    379
    +                        <property name="fill">True</property>
    
    380
    +                        <property name="position">1</property>
    
    381
    +                      </packing>
    
    382
    +                    </child>
    
    383
    +                    <child>
    
    384
    +                      <object class="GtkLabel" id="info_message">
    
    385
    +                        <property name="visible">True</property>
    
    386
    +                        <property name="can-focus">True</property>
    
    387
    +                        <property name="selectable">True</property>
    
    388
    +                        <property name="ellipsize">end</property>
    
    389
    +                        <property name="single-line-mode">True</property>
    
    390
    +                        <property name="max-width-chars">30</property>
    
    391
    +                        <property name="xalign">0</property>
    
    392
    +                        <style>
    
    393
    +                          <class name="dim-label"/>
    
    394
    +                          <class name="small-label"/>
    
    395
    +                        </style>
    
    396
    +                      </object>
    
    397
    +                      <packing>
    
    398
    +                        <property name="expand">False</property>
    
    399
    +                        <property name="fill">True</property>
    
    400
    +                        <property name="position">2</property>
    
    401
    +                      </packing>
    
    402
    +                    </child>
    
    403
    +                  </object>
    
    404
    +                  <packing>
    
    405
    +                    <property name="expand">True</property>
    
    406
    +                    <property name="fill">True</property>
    
    407
    +                    <property name="pack-type">end</property>
    
    408
    +                    <property name="position">4</property>
    
    350 409
                       </packing>
    
    351 410
                     </child>
    
    352 411
                   </object>
    
    353 412
                   <packing>
    
    354
    -                <property name="expand">True</property>
    
    413
    +                <property name="expand">False</property>
    
    355 414
                     <property name="fill">True</property>
    
    356 415
                     <property name="pack-type">end</property>
    
    357
    -                <property name="position">4</property>
    
    416
    +                <property name="position">2</property>
    
    358 417
                   </packing>
    
    359 418
                 </child>
    
    360 419
               </object>
    
    361 420
               <packing>
    
    362 421
                 <property name="expand">False</property>
    
    363 422
                 <property name="fill">True</property>
    
    364
    -            <property name="pack-type">end</property>
    
    365
    -            <property name="position">2</property>
    
    423
    +            <property name="position">1</property>
    
    366 424
               </packing>
    
    367 425
             </child>
    
    368 426
           </object>
    
    369 427
           <packing>
    
    370
    -        <property name="expand">False</property>
    
    371
    -        <property name="fill">True</property>
    
    428
    +        <property name="name">preview</property>
    
    372 429
             <property name="position">1</property>
    
    373 430
           </packing>
    
    374 431
         </child>
    
    375 432
         <style>
    
    376
    -      <class name="preview-box"/>
    
    433
    +      <class name="preview-stack"/>
    
    377 434
         </style>
    
    378 435
       </object>
    
    379 436
     </interface>

  • gajim/data/style/gajim.css
    ... ... @@ -644,7 +644,7 @@ .code-widget-header button {
    644 644
     }
    
    645 645
     
    
    646 646
     /* PreviewWidget */
    
    647
    -.preview-box {
    
    647
    +.preview-stack > box {
    
    648 648
         border: 1px solid;
    
    649 649
         border-color: @borders;
    
    650 650
         border-radius: 4px;
    

  • gajim/gtk/builder.pyi
    ... ... @@ -701,7 +701,7 @@ class PreferencesBuilder(Builder):
    701 701
     
    
    702 702
     
    
    703 703
     class PreviewBuilder(Builder):
    
    704
    -    preview_box: Gtk.Box
    
    704
    +    preview_stack: Gtk.Stack
    
    705 705
         icon_event_box: Gtk.EventBox
    
    706 706
         icon_button: Gtk.Button
    
    707 707
         right_box: Gtk.Box
    

  • gajim/gtk/preview.py
    ... ... @@ -67,7 +67,7 @@ def __init__(self, account: str) -> None:
    67 67
     
    
    68 68
             self._ui = get_builder('preview.ui')
    
    69 69
             self._ui.connect_signals(self)
    
    70
    -        self.add(self._ui.preview_box)
    
    70
    +        self.add(self._ui.preview_stack)
    
    71 71
     
    
    72 72
             leftclick_action = app.settings.get('preview_leftclick_action')
    
    73 73
             self._ui.icon_button.set_tooltip_text(
    
    ... ... @@ -93,6 +93,7 @@ def get_text(self) -> str:
    93 93
     
    
    94 94
         @ensure_not_destroyed
    
    95 95
         def update_progress(self, _preview: Preview, progress: float) -> None:
    
    96
    +        self._ui.preview_stack.set_visible_child_name('preview')
    
    96 97
             self._ui.download_button.hide()
    
    97 98
     
    
    98 99
             self._ui.progress_box.show()
    
    ... ... @@ -105,6 +106,7 @@ def update_progress(self, _preview: Preview, progress: float) -> None:
    105 106
         def update(self, preview: Preview, data: GdkPixbufType | None) -> None:
    
    106 107
             self._preview = preview
    
    107 108
     
    
    109
    +        self._ui.preview_stack.set_visible_child_name('preview')
    
    108 110
             self._ui.progress_box.hide()
    
    109 111
             self._ui.info_message.hide()
    
    110 112