summaryrefslogtreecommitdiffstats
path: root/browser/components/downloads/content/downloads.css
blob: 1819ffbda41d92bf80a7f87ef9e69103d7a62f7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

/*** Downloads Panel ***/

#downloadsListBox > richlistitem:not([selected]) button {
  /* Only focus buttons in the selected item. */
  -moz-user-focus: none;
}

#downloadsSummary:not([inprogress]) > vbox > #downloadsSummaryProgress,
#downloadsSummary:not([inprogress]) > vbox > #downloadsSummaryDetails,
#downloadsFooter:not([showingsummary]) #downloadsSummary {
  display: none;
}

#downloadsFooter[showingsummary] > stack:hover > #downloadsSummary,
#downloadsFooter[showingsummary] > stack:not(:hover) > #downloadsFooterButtons {
  /* If we used "visibility: hidden;" then the mouseenter event of
     #downloadsHistory wouldn't be triggered immediately, and the hover styling
     of the button would not apply until the mouse is moved again.

     "-moz-user-focus: ignore;" prevents the elements with "opacity: 0;" from
     being focused with the keyboard. */
  opacity: 0;
  -moz-user-focus: ignore;
}

/*** Downloads View ***/

#downloadsRichListBox > richlistitem button {
  /* These buttons should never get focus, as that would "disable"
     the downloads view controller (it's only used when the richlistbox
     is focused). */
  -moz-user-focus: none;
}

/*** Visibility of controls inside download items ***/

.download-state[buttonhidden] > toolbarseparator,
.download-state[buttonhidden] > .downloadButton {
  display: none;
}

.download-state:not([state="6"],/* Blocked (parental) */
                    [state="8"],/* Blocked (dirty)    */
                    [state="9"] /* Blocked (policy)   */)
                                           .downloadBlockedBadge,

.download-state:not([state="-1"],/* Starting (initial) */
                    [state="5"], /* Starting (queued)  */
                    [state="0"], /* Downloading        */
                    [state="4"], /* Paused             */
                    [state="7"]  /* Scanning           */)
                                           .downloadProgress,

.download-state:not([state="0"]  /* Downloading        */)
                                           .downloadPauseMenuItem,

.download-state:not([state="4"]  /* Paused             */)
                                           .downloadResumeMenuItem,

/* Blocked (dirty) downloads that have not been confirmed and
   have temporary data. */
.download-state:not([state="8"]  /* Blocked (dirty)    */)
                                           .downloadUnblockMenuItem,

.download-state[state="8"]:not(.temporary-block) .downloadUnblockMenuItem,

.download-state:not([state="1"], /* Finished           */
                    [state="2"], /* Failed             */
                    [state="3"], /* Canceled           */
                    [state="6"], /* Blocked (parental) */
                    [state="8"], /* Blocked (dirty)    */
                    [state="9"]  /* Blocked (policy)   */)
                                           .downloadRemoveFromHistoryMenuItem,

.download-state:not([state="-1"],/* Starting (initial) */
                    [state="0"], /* Downloading        */
                    [state="1"], /* Finished           */
                    [state="4"], /* Paused             */
                    [state="5"]  /* Starting (queued)  */)
                                           .downloadShowMenuItem,

.download-state[state="1"]:not([exists])   .downloadShowMenuItem,

.download-state:not([state="-1"],/* Starting (initial) */
                    [state="0"], /* Downloading        */
                    [state="1"], /* Finished           */
                    [state="4"], /* Paused             */
                    [state="5"], /* Starting (queued)  */
                    [state="8"]  /* Blocked (dirty)    */)
                                           .downloadCommandsSeparator,

.download-state[state="1"]:not([exists])   .downloadCommandsSeparator,

.download-state[state="8"]:not(.temporary-block) .downloadCommandsSeparator,

/* the system-viewer context menu items are only shown for certain mime-types
   and can be individually enabled via prefs */
.download-state:not([viewable-internally]) .downloadUseSystemDefaultMenuItem,
.download-state                            .downloadUseSystemDefaultMenuItem:not([enabled]),
.download-state                            .downloadAlwaysUseSystemDefaultMenuItem:not([enabled]),
.download-state:not([viewable-internally]) .downloadAlwaysUseSystemDefaultMenuItem {
  display: none;
}

/*** Visibility of download button labels ***/

.download-state:not([state="-1"],/* Starting (initial) */
                    [state="5"], /* Starting (queued)  */
                    [state="0"], /* Downloading        */
                    [state="4"]  /* Paused             */)
                                           .downloadCancel,

.download-state:not([state="2"], /* Failed             */
                    [state="3"]  /* Canceled           */)
                                           .downloadRetry,

.download-state:not([state="1"]  /* Finished           */)
                                           .downloadShow {
  display: none;
}

/*** Downloads panel ***/

#downloadsPanel[hasdownloads] #emptyDownloads,
#downloadsPanel:not([hasdownloads]) #downloadsListBox {
  display: none;
}

/*** Downloads panel multiview (main view and blocked-downloads subview) ***/

/* Make the panel wide enough to show the download list items without improperly
   truncating them. */
#downloadsPanel-multiView > .panel-viewcontainer,
#downloadsPanel-multiView > .panel-viewcontainer > .panel-viewstack {
  max-width: unset;
}

/* DownloadsSubview styles: */

/* Hide all status labels by default and selectively display one at a time,
   depending on the state of the Download. */
.subviewbutton.download > .toolbarbutton-text > .status-text,
/* When a Download is not hovered at all, hide the secondary action button. */
.subviewbutton.download:not(:hover) > .action-button,
/* Always hide the label of the secondary action button. */
.subviewbutton.download > .action-button > .toolbarbutton-text {
  display: none;
}

/* When a Download is _not_ hovered, display the full status message. */
.subviewbutton.download:not(:hover) > .toolbarbutton-text > .status-full,
/* When a Download is hovered when the file doesn't exist and cannot be retried,
   keep showing the full status message. */
.subviewbutton.download:hover:is(:not([canShow]),:not([exists])):not([canRetry]) > .toolbarbutton-text > .status-full,
/* When a Download is hovered and the it can be retried, but the action button
   is _not_ hovered, keep showing the full status message. */
.subviewbutton.download:hover[canRetry]:not(.downloadHoveringButton) > .toolbarbutton-text > .status-full,
/* When a Download is hovered and the file can be opened, but the action button
   is _not_ hovered, show the 'Open File' status label. */
.subviewbutton.download:hover[canShow][exists]:not(.downloadHoveringButton) > .toolbarbutton-text > .status-open,
/* When a Download is hovered - its action button explicitly - and it can be
   retried, show the 'Retry Download' label. */
.subviewbutton.download:hover[canRetry].downloadHoveringButton > .toolbarbutton-text > .status-retry,
/* When a Download is hovered - its action button explicitly - and the file can
   be shown in the OS's shell, show the 'Open Containing Folder' label. */
.subviewbutton.download:hover[canShow][exists].downloadHoveringButton > .toolbarbutton-text > .status-show {
  display: inline;
}