~wasta-linux/wasta-core-wily/master

« back to all changes in this revision

Viewing changes to install-files/firefox-addons/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/chrome/content/ui/filters.xul

  • Committer: Rik Shaw
  • Date: 2015-11-01 13:28:40 UTC
  • Revision ID: git-v1:59c62c9b2e4f4f1cf62db1f5dc1cf630feb99933
initial 15.10 commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0"?>
 
2
 
 
3
<!--
 
4
  - This file is part of Adblock Plus <https://adblockplus.org/>,
 
5
  - Copyright (C) 2006-2015 Eyeo GmbH
 
6
  -
 
7
  - Adblock Plus is free software: you can redistribute it and/or modify
 
8
  - it under the terms of the GNU General Public License version 3 as
 
9
  - published by the Free Software Foundation.
 
10
  -
 
11
  - Adblock Plus is distributed in the hope that it will be useful,
 
12
  - but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
  - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
  - GNU General Public License for more details.
 
15
  -
 
16
  - You should have received a copy of the GNU General Public License
 
17
  - along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
 
18
  -->
 
19
 
 
20
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 
21
<?xml-stylesheet href="chrome://adblockplus/skin/filters.css" type="text/css"?>
 
22
 
 
23
<!DOCTYPE dialog SYSTEM "chrome://adblockplus/locale/filters.dtd">
 
24
 
 
25
<dialog
 
26
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 
27
  title="&dialog.title;"
 
28
  id="abpFiltersWindow"
 
29
  onload="init()"
 
30
  buttons="accept"
 
31
  width="950"
 
32
  height="450"
 
33
  persist="screenX screenY width height sizemode"
 
34
  windowtype="abp:filters">
 
35
 
 
36
<script type="application/x-javascript;version=1.7" src="utils.js"/>
 
37
<script type="application/x-javascript;version=1.7" src="filters.js"/>
 
38
<script type="application/x-javascript;version=1.7" src="filters-subscriptionview.js"/>
 
39
<script type="application/x-javascript;version=1.7" src="filters-subscriptionactions.js"/>
 
40
<script type="application/x-javascript;version=1.7" src="filters-filterview.js"/>
 
41
<script type="application/x-javascript;version=1.7" src="filters-filteractions.js"/>
 
42
<script type="application/x-javascript;version=1.7" src="filters-backup.js"/>
 
43
<script type="application/x-javascript;version=1.7" src="filters-search.js"/>
 
44
 
 
45
<keyset id="filtersKeyset">
 
46
  <key id="subscription-update-key" key="T" modifiers="accel" command="subscription-update-command"/>
 
47
  <key id="subscription-update-all-key" key="T" modifiers="accel,shift" command="subscription-update-all-command"/>
 
48
  <key id="edit-key" keycode="VK_F2" oncommand="E(FilterActions.focused ? 'filters-edit-command' : 'subscription-editTitle-command').doCommand();"/>
 
49
  <key id="delete-key" keycode="VK_DELETE" oncommand="E(FilterActions.focused ? 'filters-delete-command' : 'subscription-delete-command').doCommand();"/>
 
50
  <key id="subscription-showHideFilters-key" key="R" modifiers="accel" command="subscription-showHideFilters-command"/>
 
51
  <key id="moveUp-key" keycode="VK_UP" modifiers="accel"/>
 
52
  <key id="moveDown-key" keycode="VK_DOWN" modifiers="accel"/>
 
53
  <key id="filters-add-key" keycode="VK_INSERT" oncommand="E('filters-add-command').doCommand();"/>
 
54
  <key id="filters-selectAll-key" key="A" modifiers="accel" oncommand="if (FilterActions.focused) E('filters-selectAll-command').doCommand();"/>
 
55
  <key id="filters-copy-key" key="C" modifiers="accel" oncommand="if (FilterActions.focused) E('filters-copy-command').doCommand();"/>
 
56
  <key id="filters-cut-key" key="X" modifiers="accel" oncommand="if (FilterActions.focused) E('filters-cut-command').doCommand();"/>
 
57
  <key id="filters-paste-key" key="V" modifiers="accel" oncommand="if (FilterActions.focused) E('filters-paste-command').doCommand();"/>
 
58
  <key id="backup-key" key="E" modifiers="accel" oncommand="E('backup').doCommand();"/>
 
59
  <key id="restore-key" key="I" modifiers="accel" oncommand="E('restoreOwnBackup').doCommand();"/>
 
60
  <key id="find-key" key="F" modifiers="accel" oncommand="if (FilterActions.visible) E('find-command').doCommand();"/>
 
61
  <key id="find-again-key" key="G" modifiers="accel" oncommand="if (FilterActions.visible) E('find-again-command').doCommand();"/>
 
62
  <key id="find-previous-key" key="G" modifiers="accel,shift" oncommand="if (FilterActions.visible) E('find-previous-command').doCommand();"/>
 
63
  <key id="find-again-key2" keycode="VK_F3" oncommand="if (FilterActions.visible) E('find-again-command').doCommand();"/>
 
64
  <key id="find-previous-key2" keycode="VK_F3" modifiers="shift" oncommand="if (FilterActions.visible) E('find-previous-command').doCommand();"/>
 
65
</keyset>
 
66
 
 
67
<commandset id="filtersCommandset">
 
68
  <command id="subscription-update-command" oncommand="SubscriptionActions.updateFilters();"/>
 
69
  <command id="subscription-update-all-command" oncommand="SubscriptionActions.updateAllFilters();"/>
 
70
  <command id="subscription-editTitle-command" oncommand="SubscriptionActions.editTitle();"/>
 
71
  <command id="subscription-delete-command" oncommand="SubscriptionActions.remove();"/>
 
72
  <command id="subscription-showHideFilters-command" oncommand="E('filtersGrippy').doCommand();"/>
 
73
  <command id="subscription-moveUp-command" oncommand="SubscriptionActions.moveUp();"/>
 
74
  <command id="subscription-moveDown-command" oncommand="SubscriptionActions.moveDown();"/>
 
75
  <command id="subscription-add-command" oncommand="SelectSubscription.start(event);"/>
 
76
  <command id="subscription-addSelected-command" oncommand="SelectSubscription.add();"/>
 
77
  <command id="subscription-addOther-command" oncommand="SelectSubscription.chooseOther();"/>
 
78
  <command id="group-add-command" oncommand="SubscriptionActions.addGroup();"/>
 
79
  <command id="filters-selectAll-command" oncommand="FilterActions.selectAll();"/>
 
80
  <command id="filters-edit-command" oncommand="FilterActions.startEditing();"/>
 
81
  <command id="filters-add-command" oncommand="FilterActions.insertFilter();"/>
 
82
  <command id="filters-delete-command" oncommand="FilterActions.deleteSelected();"/>
 
83
  <command id="filters-resetHitCounts-command" oncommand="FilterActions.resetHitCounts();"/>
 
84
  <command id="filters-moveUp-command" oncommand="FilterActions.moveUp();"/>
 
85
  <command id="filters-moveDown-command" oncommand="FilterActions.moveDown();"/>
 
86
  <command id="filters-copy-command" oncommand="FilterActions.copySelected(true);"/>
 
87
  <command id="filters-cut-command" oncommand="FilterActions.copySelected(false);"/>
 
88
  <command id="filters-paste-command" oncommand="FilterActions.paste();"/>
 
89
  <command id="find-command" oncommand="E('findbar').startFind(E('findbar').FIND_NORMAL)"/>
 
90
  <command id="find-again-command" oncommand="E('findbar').onFindAgainCommand(false)"/>
 
91
  <command id="find-previous-command" oncommand="E('findbar').onFindAgainCommand(true)"/>
 
92
</commandset>
 
93
 
 
94
<popupset id="filtersPopupset">
 
95
  <menupopup id="filters-view-menu1" onpopupshowing="FilterActions.fillColumnPopup(this);">
 
96
    <menuitem id="filters-view-filter1" label="&filter.column;" type="checkbox" disabled="true"/>
 
97
    <menuitem id="filters-view-slow1" label="&slow.column;" type="checkbox" oncommand="FilterActions.toggleColumn('col-slow')"/>
 
98
    <menuitem id="filters-view-enabled1" label="&enabled.column;" type="checkbox" oncommand="FilterActions.toggleColumn('col-enabled')"/>
 
99
    <menuitem id="filters-view-hitcount1" label="&hitcount.column;" type="checkbox" oncommand="FilterActions.toggleColumn('col-hitcount')"/>
 
100
    <menuitem id="filters-view-lasthit1" label="&lasthit.column;" type="checkbox" oncommand="FilterActions.toggleColumn('col-lasthit')"/>
 
101
    <menuseparator/>
 
102
    <menu id="filters-sort-menu1" label="&sort.label;">
 
103
      <menupopup id="filters-sort-popup1">
 
104
        <menuitem id="filters-sort-none1" label="&sort.none.label;" type="radio" name="sortColumn" oncommand="FilterView.sortBy(null)"/>
 
105
        <menuitem id="filters-sort-filter1" label="&filter.column;" type="radio" name="sortColumn" oncommand="FilterView.sortBy('col-filter')"/>
 
106
        <menuitem id="filters-sort-slow1" label="&slow.column;" type="radio" name="sortColumn" oncommand="FilterView.sortBy('col-slow')"/>
 
107
        <menuitem id="filters-sort-enabled1" label="&enabled.column;" type="radio" name="sortColumn" oncommand="FilterView.sortBy('col-enabled')"/>
 
108
        <menuitem id="filters-sort-hitcount1" label="&hitcount.column;" type="radio" name="sortColumn" oncommand="FilterView.sortBy('col-hitcount')"/>
 
109
        <menuitem id="filters-sort-lasthit1" label="&lasthit.column;" type="radio" name="sortColumn" oncommand="FilterView.sortBy('col-lasthit')"/>
 
110
        <menuseparator/>
 
111
        <menuitem id="filters-sort-asc1" label="&sort.ascending.label;" type="radio" name="sortOrder" oncommand="FilterActions.setSortOrder('ascending')"/>
 
112
        <menuitem id="filters-sort-desc1" label="&sort.descending.label;" type="radio" name="sortOrder" oncommand="FilterActions.setSortOrder('descending')"/>
 
113
      </menupopup>
 
114
    </menu>
 
115
  </menupopup>
 
116
  <tooltip id="filtersTooltip" onpopupshowing="FilterActions.fillTooltip(event);">
 
117
    <grid>
 
118
      <columns>
 
119
        <column/>
 
120
        <column flex="1"/>
 
121
      </columns>
 
122
      <rows>
 
123
        <row id="tooltip-filter-row" align="top">
 
124
          <label class="tooltipLabel" value="&filter.column;"/>
 
125
          <vbox id="tooltip-filter"/>
 
126
        </row>
 
127
        <row id="tooltip-hitcount-row">
 
128
          <label class="tooltipLabel" value="&hitcount.column;"/>
 
129
          <description id="tooltip-hitcount"/>
 
130
        </row>
 
131
        <row id="tooltip-lasthit-row">
 
132
          <label class="tooltipLabel" value="&lasthit.column;"/>
 
133
          <description id="tooltip-lasthit"/>
 
134
        </row>
 
135
      </rows>
 
136
    </grid>
 
137
 
 
138
    <description id="tooltip-additional"/>
 
139
  </tooltip>
 
140
</popupset>
 
141
 
 
142
<hbox id="content" flex="1">
 
143
  <tabbox id="tabs" flex="1" persist="selectedIndex">
 
144
    <tabs onselect="onTabChange(this.parentNode);">
 
145
      <tab label="&subscriptions.tab.label;"/>
 
146
      <tab label="&filters.tab.label;"/>
 
147
    </tabs>
 
148
    <tabpanels flex="1">
 
149
      <tabpanel id="subscriptionsTab" orient="vertical" flex="1">
 
150
        <hbox pack="end">
 
151
          <button id="selectSubscriptionButton" label="&addSubscription.label;…" command="subscription-add-command"/>
 
152
        </hbox>
 
153
 
 
154
        <panel id="selectSubscriptionPanel" type="arrow" position="bottomcenter topleft"
 
155
               orient="vertical" onkeypress="SelectSubscription.keyPress(event);">
 
156
          <menuitem id="selectSubscriptionTemplate" hidden="true"
 
157
              class="{localePrefix ? 'localeMatch' : ''}"
 
158
              label="{node.getAttribute('title')}"
 
159
              value="{node.getAttribute('url')}">
 
160
            <label class="selectSubscriptionItem" value="{node.getAttribute('title') + ' (' + node.getAttribute('specialization') + ')'}"/>
 
161
          </menuitem>
 
162
          <menulist id="selectSubscription">
 
163
            <menupopup/>
 
164
          </menulist>
 
165
          <hbox align="baseline">
 
166
            <label class="text-link" value="&addSubscriptionOther.label;" onclick="E('subscription-addOther-command').doCommand();"/>
 
167
            <spacer flex="1"/>
 
168
            <button id="selectSubscriptionAccept" default="true" label="&addSubscriptionAdd.label;" command="subscription-addSelected-command"/>
 
169
            <spacer flex="1"/>
 
170
            <button label="&addSubscriptionCancel.label;" oncommand="E('selectSubscriptionPanel').hidePopup();"/>
 
171
          </hbox>
 
172
        </panel>
 
173
 
 
174
        <richlistitem id="subscriptionTemplate" class="subscription" hidden="true" orient="vertical"
 
175
            onmousedown="this._wasSelected = (this.parentNode.selectedItem == this);"
 
176
            ondragstart="SubscriptionActions.startDrag(event, this);"
 
177
            ondragend="SubscriptionActions.endDrag();"
 
178
            ondragover="SubscriptionActions.dragOver(event);"
 
179
            ondrop="SubscriptionActions.drop(event, this);"
 
180
            oncontextmenu="SubscriptionActions.openMenu(event, this);">
 
181
          <vbox class="{subscription.disabled ? 'disabled' : ''}">
 
182
            <hbox align="center">
 
183
              <checkbox label="&subscription.enabled.label;" class="enabledCheckbox tabable" tabindex="-1"
 
184
                checked="{subscription.disabled ? 'false' : 'true'}" oncommand="SubscriptionActions.setDisabled(this, !this.checked);"/>
 
185
 
 
186
              <vbox flex="1">
 
187
                <hbox align="center">
 
188
                  <deck class="titleBox" flex="1" selectedIndex="0" onselect="event.stopPropagation();">
 
189
                    <description ondblclick="if (event.button == 0) TitleEditor.start(this, true);">
 
190
                      <description class="title" value="{subscription.title}" flex="1" crop="end"/>
 
191
                      (<if condition="{isExternal}">
 
192
                        <description value="&subscription.external.label;"/>
 
193
                      <else/>
 
194
                        <if condition="{subscription.homepage}">
 
195
                          <description class="link" value="&subscription.homepage.label;"
 
196
                            _url="{subscription.homepage}" tooltiptext="{subscription.homepage}"
 
197
                            onclick="if (event.button == 0) { event.stopPropagation();UI.loadInBrowser(this.getAttribute('_url')); }"/>,&#160;
 
198
                        </if>
 
199
                        <description class="link" value="&subscription.source.label;"
 
200
                          _url="{subscription.url}" tooltiptext="{subscription.url}"
 
201
                          onclick="if (event.button == 0) { event.stopPropagation();UI.loadInBrowser(this.getAttribute('_url')); }"/>
 
202
                      </if>)
 
203
                    </description>
 
204
                    <textbox oncontextmenu="event.stopPropagation();" class="titleEditor" onkeypress="TitleEditor.keyPress(event);" onblur="TitleEditor.end(true);"/>
 
205
                  </deck>
 
206
                </hbox>
 
207
                <hbox align="center">
 
208
                  <description flex="1" class="status">
 
209
                    <description value="&subscription.lastDownload.label;"/>&#160;
 
210
                    <if condition="{downloading}">
 
211
                      <description value="&subscription.lastDownload.inProgress;"/>
 
212
                    <elif condition="{!subscription.lastDownload}"/>
 
213
                      <description value="&subscription.lastDownload.unknown;"/>
 
214
                    <else/>
 
215
                      <description value="{formatTime(subscription.lastDownload * 1000)}"/>
 
216
                      <if condition="{subscription.downloadStatus}">
 
217
                        <description>
 
218
                          &#160;(<if condition="{subscription.downloadStatus == 'synchronize_invalid_url'}">
 
219
                            <description value="&subscription.lastDownload.invalidURL;"/>
 
220
                          <elif condition="{subscription.downloadStatus == 'synchronize_connection_error'}"/>
 
221
                            <description value="&subscription.lastDownload.connectionError;"/>
 
222
                          <elif condition="{subscription.downloadStatus == 'synchronize_invalid_data'}"/>
 
223
                            <description value="&subscription.lastDownload.invalidData;"/>
 
224
                          <elif condition="{subscription.downloadStatus == 'synchronize_checksum_mismatch'}"/>
 
225
                            <description value="&subscription.lastDownload.checksumMismatch;"/>
 
226
                          <else/>   <!-- synchronize_ok -->
 
227
                            <description value="&subscription.lastDownload.success;"/>
 
228
                          </if>)
 
229
                        </description>
 
230
                      </if>
 
231
                    </if>
 
232
                  </description>
 
233
                </hbox>
 
234
              </vbox>
 
235
 
 
236
              <button class="actionButton tabable" type="menu" label="&subscription.actions.label;" tabindex="-1">
 
237
                <menupopup class="actionMenu">
 
238
                  <menuitem label="&subscription.editTitle.label;" key="edit-key" command="subscription-editTitle-command"/>
 
239
                  <menuitem label="&subscription.update.label;" key="subscription-update-key" command="subscription-update-command"/>
 
240
                  <menuitem label="&subscription.showHideFilters.label;" key="subscription-showHideFilters-key" command="subscription-showHideFilters-command"/>
 
241
                  <menuitem label="&subscription.delete.label;…" key="delete-key" command="subscription-delete-command"/>
 
242
                  <menuseparator/>
 
243
                  <menuitem label="&subscription.moveUp.label;" key="moveUp-key" command="subscription-moveUp-command"/>
 
244
                  <menuitem label="&subscription.moveDown.label;" key="moveDown-key" command="subscription-moveDown-command"/>
 
245
                </menupopup>
 
246
              </button>
 
247
            </hbox>
 
248
 
 
249
            <description class="warning" hidden="{!subscription.upgradeRequired}">&subscription.minVersion.warning;</description>
 
250
            <description class="warning" hidden="{!disabledFilters}">
 
251
              &subscription.disabledFilters.warning;
 
252
              <description class="link" value="&subscription.disabledFilters.enable;" onclick="SubscriptionActions.enableFilters(this);"/>
 
253
            </description>
 
254
          </vbox>
 
255
        </richlistitem>
 
256
 
 
257
        <deck id="noSubscriptionsDeck" flex="1">
 
258
          <description flex="1">&noSubscriptions.text;</description>
 
259
          <richlistbox id="subscriptions" class="initialFocus" flex="1"
 
260
              onselect="onSelectionChange(this);"
 
261
              ondragover="SubscriptionActions.dragOver(event);"
 
262
              ondrop="SubscriptionActions.drop(event, null);"
 
263
              onkeypress="SubscriptionActions.keyPress(event);">
 
264
          </richlistbox>
 
265
        </deck>
 
266
 
 
267
        <description>
 
268
          <checkbox id="acceptableAds" label="&acceptableAds2.label;" oncommand="ListManager.allowAcceptableAds(this.checked);"/>
 
269
          <label class="text-link" value="&viewList.label;" onclick="UI.loadInBrowser(Prefs.subscriptions_exceptionsurl);"/>
 
270
          <label class="text-link" value="&readMore.label;" onclick="UI.loadDocLink('acceptable_ads');"/>
 
271
        </description>
 
272
      </tabpanel>
 
273
      <tabpanel id="filtersTab" orient="vertical" flex="1">
 
274
        <hbox pack="end">
 
275
          <button id="addGroupButton" label="&addGroup.label;" command="group-add-command"/>
 
276
        </hbox>
 
277
 
 
278
        <richlistitem id="groupTemplate" class="subscription" hidden="true" orient="vertical"
 
279
            onmousedown="this._wasSelected = (this.parentNode.selectedItem == this);"
 
280
            ondragstart="SubscriptionActions.startDrag(event, this);"
 
281
            ondragend="SubscriptionActions.endDrag();"
 
282
            ondragover="SubscriptionActions.dragOver(event);"
 
283
            ondrop="SubscriptionActions.drop(event, this);"
 
284
            oncontextmenu="SubscriptionActions.openMenu(event, this);">
 
285
          <hbox class="{subscription.disabled ? 'disabled' : ''}" align="center">
 
286
            <checkbox label="&subscription.enabled.label;" class="enabledCheckbox tabable" tabindex="-1"
 
287
              checked="{subscription.disabled ? 'false' : 'true'}" oncommand="SubscriptionActions.setDisabled(this, !this.checked);"/>
 
288
            <hbox align="center" flex="1">
 
289
              <deck class="titleBox" flex="1" selectedIndex="0" onselect="event.stopPropagation();">
 
290
                <description class="title" value="{subscription.title}" crop="end" ondblclick="if (event.button == 0) TitleEditor.start(this, true);"/>
 
291
                <textbox oncontextmenu="event.stopPropagation();" class="titleEditor" onkeypress="TitleEditor.keyPress(event);" onblur="TitleEditor.end(true);"/>
 
292
              </deck>
 
293
            </hbox>
 
294
            <button class="actionButton tabable" type="menu" label="&subscription.actions.label;" tabindex="-1">
 
295
              <menupopup class="actionMenu">
 
296
                <menuitem label="&subscription.editTitle.label;" key="edit-key" command="subscription-editTitle-command"/>
 
297
                <menuitem label="&subscription.showHideFilters.label;" key="subscription-showHideFilters-key" command="subscription-showHideFilters-command"/>
 
298
                <menuitem label="&subscription.delete.label;…" key="delete-key" command="subscription-delete-command"/>
 
299
                <menuseparator/>
 
300
                <menuitem label="&subscription.moveUp.label;" key="moveUp-key" command="subscription-moveUp-command"/>
 
301
                <menuitem label="&subscription.moveDown.label;" key="moveDown-key" command="subscription-moveDown-command"/>
 
302
              </menupopup>
 
303
            </button>
 
304
          </hbox>
 
305
        </richlistitem>
 
306
 
 
307
        <deck id="noFiltersDeck" flex="1">
 
308
          <description flex="1">&noFilters.text;</description>
 
309
          <richlistbox id="groups" class="initialFocus" flex="1"
 
310
              onselect="onSelectionChange(this);"
 
311
              ondragover="SubscriptionActions.dragOver(event);"
 
312
              ondrop="SubscriptionActions.drop(event, null);"
 
313
              onkeypress="SubscriptionActions.keyPress(event);">
 
314
          </richlistbox>
 
315
        </deck>
 
316
      </tabpanel>
 
317
    </tabpanels>
 
318
  </tabbox>
 
319
 
 
320
  <splitter id="filtersSplitter" persist="state" orient="horizontal" collapse="after" state="collapsed" oncommand="FilterView.refresh();onSplitterStateChange(this);">
 
321
    <grippy id="filtersGrippy"/>
 
322
  </splitter>
 
323
 
 
324
  <vbox id="filtersContainer" persist="width height" width="500">
 
325
    <hbox pack="end">
 
326
      <button id="findButton" label="&find.label;" command="find-command"/>
 
327
      <button id="filterActionButton" type="menu" label="&filter.actions.label;">
 
328
        <menupopup id="filterActionMenu" onpopupshowing="FilterActions.fillActionsPopup();">
 
329
          <menuitem label="&filter.edit.label;" key="edit-key" command="filters-edit-command"/>
 
330
          <menuitem label="&filter.cut.label;" key="filters-cut-key" command="filters-cut-command"/>
 
331
          <menuitem label="&filter.copy.label;" key="filters-copy-key" command="filters-copy-command"/>
 
332
          <menuitem label="&filter.paste.label;" key="filters-paste-key" command="filters-paste-command"/>
 
333
          <menuitem label="&filter.delete.label;" key="delete-key" command="filters-delete-command"/>
 
334
          <menuseparator/>
 
335
          <menuitem label="&filter.selectAll.label;" key="filters-selectAll-key" command="filters-selectAll-command"/>
 
336
          <menuitem label="&filter.resetHitCounts.label;" command="filters-resetHitCounts-command"/>
 
337
          <menuseparator/>
 
338
          <menuitem label="&filter.moveUp.label;" key="moveUp-key" command="filters-moveUp-command"/>
 
339
          <menuitem label="&filter.moveDown.label;" key="moveDown-key" command="filters-moveDown-command"/>
 
340
          <menuseparator/>
 
341
          <menu id="viewMenu" label="&viewMenu.label;"/>
 
342
        </menupopup>
 
343
      </button>
 
344
      <button id="addFilterButton" label="&addFilter.label;" command="filters-add-command"/>
 
345
    </hbox>
 
346
    <tree id="filtersTree"
 
347
        flex="1"
 
348
        editable="true"
 
349
        seltype="multiple"
 
350
        enableColumnDrag="true"
 
351
        hidecolumnpicker="true"
 
352
        _removewarning="&filters.remove.warning;">
 
353
      <treecols context="filters-view-menu1">
 
354
        <treecol id="col-enabled" label="&enabled.column;" cycler="true" flex="0" persist="width ordinal sortDirection hidden"/>
 
355
        <splitter class="tree-splitter"/>
 
356
        <treecol id="col-filter" label="&filter.column;" flex="10" persist="width ordinal sortDirection hidden"/>
 
357
        <splitter class="tree-splitter"/>
 
358
        <treecol id="col-slow" label="!" display="&slow.column;" tooltiptext="&slow.column;" flex="0" width="16" persist="width ordinal sortDirection hidden"/>
 
359
        <splitter class="tree-splitter"/>
 
360
        <treecol id="col-hitcount" label="&hitcount.column;" flex="0" persist="width ordinal sortDirection hidden"/>
 
361
        <splitter class="tree-splitter"/>
 
362
        <treecol id="col-lasthit" label="&lasthit.column;" hidden="true" flex="4" persist="width ordinal sortDirection hidden"/>
 
363
      </treecols>
 
364
 
 
365
      <treechildren id="filtersTreeChildren"
 
366
          oncontextmenu="E('filterActionMenu').openPopupAtScreen(event.screenX, event.screenY, true);"
 
367
          tooltip="filtersTooltip"
 
368
          noGroupText="&noGroupSelected.text;"
 
369
          noFiltersText="&noFiltersInGroup.text;"
 
370
          ondragstart="FilterActions.startDrag(event);"
 
371
          ondragend="FilterActions.endDrag(event);"/>
 
372
    </tree>
 
373
  </vbox>
 
374
</hbox>
 
375
 
 
376
<findbar id="findbar"/>
 
377
 
 
378
<hbox id="buttons">
 
379
  <button id="backupButton" type="menu"
 
380
      label="&backupButton.label;"
 
381
      _backupDialogTitle="&backup.label;" _restoreDialogTitle="&restore.own.label;"
 
382
      _fileFilterComplete="&backup.complete.title;" _fileFilterCustom="&backup.custom.title;"
 
383
      _backupError="&backup.error;" _restoreError="&restore.error;"
 
384
      _restoreCompleteWarning="&restore.complete.warning;" _restoreCustomWarning="&restore.custom.warning;"
 
385
      _restoreVersionWarning="&restore.minVersion.warning;"
 
386
      oncommand="if (event.target == this) Utils.runAsync(() => this.open = true);">
 
387
    <menupopup onpopupshowing="Backup.fillRestorePopup();">
 
388
      <menuitem id="backup" key="backup-key" label="&backup.label;…" oncommand="Backup.backupToFile();"/>
 
389
      <menuseparator/>
 
390
      <menuitem id="restoreBackupTemplate" label="&restore.default.label;" hidden="true"/>
 
391
      <menuitem id="restoreOwnBackup" key="restore-key" label="&restore.own.label;…" oncommand="Backup.restoreFromFile();"/>
 
392
    </menupopup>
 
393
  </button>
 
394
 
 
395
  <spacer flex="1"/>
 
396
 
 
397
  <button id="close" dlgtype="accept" label="&close.label;"/>
 
398
</hbox>
 
399
 
 
400
</dialog>