Omit fonts.css on QtWebKit clients

QTBUG-3467 prevents non-normal-face @font-face fonts from being used when
defined as such in CSS. To work around this, the desktop applications now
ship the Humbug font themselves, and this commit causes the server to no
longer send the problematic CSS rules to those clients.

We have some duplication insofar as we now have two minified CSS files, but
this is better than conditionally applying the CSS at page runtime.

(imported from commit 9a887f9fb8002d44171d366d1249ebbf21cc9c77)
This commit is contained in:
Luke Faraone
2013-07-01 14:13:26 -04:00
parent 0f839522a7
commit cf81c46c77
5 changed files with 364 additions and 336 deletions

View File

@@ -257,12 +257,25 @@ PIPELINE_CSS = {
), ),
'output_filename': 'min/portico.css' 'output_filename': 'min/portico.css'
}, },
# Two versions of the app CSS exist because of QTBUG-3467
'app-fontcompat': {
'source_filenames': (
'third/bootstrap-notify/css/bootstrap-notify.css',
'third/spectrum/spectrum.css',
'styles/zephyr.css',
'styles/pygments.css',
'styles/thirdparty-fonts.css',
# We don't want fonts.css on QtWebKit, so its omitted here
),
'output_filename': 'min/app-fontcompat.css'
},
'app': { 'app': {
'source_filenames': ( 'source_filenames': (
'third/bootstrap-notify/css/bootstrap-notify.css', 'third/bootstrap-notify/css/bootstrap-notify.css',
'third/spectrum/spectrum.css', 'third/spectrum/spectrum.css',
'styles/zephyr.css', 'styles/zephyr.css',
'styles/pygments.css', 'styles/pygments.css',
'styles/thirdparty-fonts.css',
'styles/fonts.css', 'styles/fonts.css',
), ),
'output_filename': 'min/app.css' 'output_filename': 'min/app.css'

View File

@@ -17,7 +17,12 @@ var page_params = {{ page_params }};
{% block customhead %} {% block customhead %}
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if nofontface %}
{# We can't use @font-face on qtwebkit, so use differently minified CSS #}
{% compressed_css 'app-fontcompat' %}
{% else %}
{% compressed_css 'app' %} {% compressed_css 'app' %}
{% endif %}
{% compressed_js 'app' %} {% compressed_js 'app' %}
{% if debug %} {% if debug %}

View File

@@ -1,40 +1,3 @@
/*!
Software from "Font Awesome 3.0.2" CSS is Copyright (c) 2012-2013 Dave Gandy
and is provided under the following license:
--
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--
*/
/*
* Portions of this file are under the following license:
*
* Font Awesome 3.0.2 License
* -------------------------------------------------------
* - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
* - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
* http://opensource.org/licenses/mit-license.html
* - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
* - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
* "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
*/
@font-face { @font-face {
font-family: 'Humbug'; font-family: 'Humbug';
src: url('../third/sourcesans/SourceSansPro-ExtraLight-webfont.eot'); src: url('../third/sourcesans/SourceSansPro-ExtraLight-webfont.eot');
@@ -179,302 +142,3 @@
} }
@font-face {
font-family: 'FontAwesome';
src: url('../third/fontawesome/fontawesome3-webfont.eot?v=3.0.1');
src: url('../third/fontawesome/fontawesome3-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'),
url('../third/fontawesome/fontawesome3-webfont.woff?v=3.0.1') format('woff'),
url('../third/fontawesome/fontawesome3-webfont.ttf?v=3.0.1') format('truetype'),
url('../third/fontawesome/fontawesome3-webfont.svg#FontAwesome') format('svg');
font-weight: normal;
font-style: normal;
}
/* Font Awesome styles
------------------------------------------------------- */
[class^="icon-vector-"],
[class*=" icon-vector-"] {
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
text-decoration: inherit;
-webkit-font-smoothing: antialiased;
/* sprites.less reset */
display: inline;
width: auto;
height: auto;
line-height: normal;
vertical-align: baseline;
background-image: none;
background-position: 0% 0%;
background-repeat: repeat;
margin-top: 0;
}
/* more sprites.less reset */
.icon-vector-white,
.nav-pills > .active > a > [class^="icon-vector-"],
.nav-pills > .active > a > [class*=" icon-vector-"],
.nav-list > .active > a > [class^="icon-vector-"],
.nav-list > .active > a > [class*=" icon-vector-"],
.navbar-inverse .nav > .active > a > [class^="icon-vector-"],
.navbar-inverse .nav > .active > a > [class*=" icon-vector-"],
.dropdown-menu > li > a:hover > [class^="icon-vector-"],
.dropdown-menu > li > a:hover > [class*=" icon-vector-"],
.dropdown-menu > .active > a > [class^="icon-vector-"],
.dropdown-menu > .active > a > [class*=" icon-vector-"],
.dropdown-submenu:hover > a > [class^="icon-vector-"],
.dropdown-submenu:hover > a > [class*=" icon-vector-"] {
background-image: none;
}
[class^="icon-vector-"]:before,
[class*=" icon-vector-"]:before {
text-decoration: inherit;
display: inline-block;
speak: none;
}
/* makes sure icons active on rollover in links */
a [class^="icon-vector-"],
a [class*=" icon-vector-"] {
display: inline-block;
}
/* makes the font 33% larger relative to the icon container */
.icon-vector-large:before {
vertical-align: -10%;
font-size: 1.3333333333333333em;
}
.btn [class^="icon-vector-"],
.nav [class^="icon-vector-"],
.btn [class*=" icon-vector-"],
.nav [class*=" icon-vector-"] {
display: inline;
/* keeps button heights with and without icons the same */
}
.btn [class^="icon-vector-"].icon-vector-large,
.nav [class^="icon-vector-"].icon-vector-large,
.btn [class*=" icon-vector-"].icon-vector-large,
.nav [class*=" icon-vector-"].icon-vector-large {
line-height: .9em;
}
.btn [class^="icon-vector-"].icon-vector-spin,
.nav [class^="icon-vector-"].icon-vector-spin,
.btn [class*=" icon-vector-"].icon-vector-spin,
.nav [class*=" icon-vector-"].icon-vector-spin {
display: inline-block;
}
.nav-tabs [class^="icon-vector-"],
.nav-pills [class^="icon-vector-"],
.nav-tabs [class*=" icon-vector-"],
.nav-pills [class*=" icon-vector-"] {
/* keeps button heights with and without icons the same */
}
.nav-tabs [class^="icon-vector-"],
.nav-pills [class^="icon-vector-"],
.nav-tabs [class*=" icon-vector-"],
.nav-pills [class*=" icon-vector-"],
.nav-tabs [class^="icon-vector-"].icon-vector-large,
.nav-pills [class^="icon-vector-"].icon-vector-large,
.nav-tabs [class*=" icon-vector-"].icon-vector-large,
.nav-pills [class*=" icon-vector-"].icon-vector-large {
line-height: .9em;
}
li [class^="icon-vector-"],
.nav li [class^="icon-vector-"],
li [class*=" icon-vector-"],
.nav li [class*=" icon-vector-"] {
display: inline-block;
width: 1.25em;
text-align: center;
}
li [class^="icon-vector-"].icon-vector-large,
.nav li [class^="icon-vector-"].icon-vector-large,
li [class*=" icon-vector-"].icon-vector-large,
.nav li [class*=" icon-vector-"].icon-vector-large {
/* increased font size for icon-vector-large */
width: 1.5625em;
}
ul.icons {
list-style-type: none;
text-indent: -0.75em;
}
ul.icons li [class^="icon-vector-"],
ul.icons li [class*=" icon-vector-"] {
width: .75em;
}
.icon-vector-muted {
color: #eeeeee;
}
.icon-vector-border {
border: solid 1px #eeeeee;
padding: .2em .25em .15em;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.icon-vector-small {
font-size: 0.8em;
}
.icon-vector-2x {
font-size: 2em;
}
.icon-vector-2x.icon-vector-border {
border-width: 2px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.icon-vector-3x {
font-size: 3em;
}
.icon-vector-3x.icon-vector-border {
border-width: 3px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.icon-vector-4x {
font-size: 4em;
}
.icon-vector-4x.icon-vector-border {
border-width: 4px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
[class^="icon-vector-"].pull-left,
[class*=" icon-vector-"].pull-left {
margin-right: .3em;
}
[class^="icon-vector-"].pull-right,
[class*=" icon-vector-"].pull-right {
margin-left: .3em;
}
.btn [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .18em;
}
.btn [class^="icon-vector-"].icon-vector-spin.icon-vector-large,
.btn [class*=" icon-vector-"].icon-vector-spin.icon-vector-large {
line-height: .8em;
}
.btn.btn-small [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-small [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-small [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-small [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .25em;
}
.btn.btn-large [class^="icon-vector-"],
.btn.btn-large [class*=" icon-vector-"] {
margin-top: 0;
}
.btn.btn-large [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .05em;
}
.btn.btn-large [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-left.icon-vector-2x {
margin-right: .2em;
}
.btn.btn-large [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-left: .2em;
}
.icon-vector-spin {
display: inline-block;
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
}
@-moz-keyframes spin {
0% { -moz-transform: rotate(0deg); }
100% { -moz-transform: rotate(359deg); }
}
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(359deg); }
}
@-o-keyframes spin {
0% { -o-transform: rotate(0deg); }
100% { -o-transform: rotate(359deg); }
}
@-ms-keyframes spin {
0% { -ms-transform: rotate(0deg); }
100% { -ms-transform: rotate(359deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(359deg); }
}
@-moz-document url-prefix() {
.icon-vector-spin {
height: .9em;
}
.btn .icon-vector-spin {
height: auto;
}
.icon-vector-spin.icon-vector-large {
height: 1.25em;
}
.btn .icon-vector-spin.icon-vector-large {
height: .75em;
}
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.icon-vector-star:before { content: "\f005"; }
.icon-vector-star-empty:before { content: "\f006"; }
.icon-vector-paper-clip:before { content: "\f0c6"; }
.icon-vector-random:before { content: "\f074"; }
.icon-vector-desktop:before { content: "\f108"; }
.icon-vector-mobile-phone:before { content: "\f10b"; }
.icon-vector-lock:before { content: "\f023"; }
.icon-vector-bell:before { content: "\f0a2"; }
.icon-vector-comments:before { content: "\f086"; }
.icon-vector-quote-left:before { content: "\f10d"; }
.icon-vector-road:before { content: "\f018"; }
.icon-vector-search:before { content: "\f002"; }
.icon-vector-picture:before { content: "\f03e"; }
.icon-vector-home:before { content: "\f015"; }
.icon-vector-group:before { content: "\f0c0"; }
.icon-vector-info-sign:before { content: "\f05a"; }
.icon-vector-user:before { content: "\f007"; }
.icon-vector-font:before { content: "\f031"; }
.icon-vector-thumbs-up:before { content: "\f087"; }
.icon-vector-github:before { content: "\f09b"; }
.icon-vector-sitemap:before { content: "\f0e8"; }
.icon-vector-edit:before { content: "\f044"; }
.icon-vector-bullhorn:before { content: "\f0a1"; }
.icon-vector-list:before { content: "\f03a"; }
.icon-vector-cog:before { content: "\f013"; }
.icon-vector-check:before { content: "\f046"; }
.icon-vector-check-empty:before { content: "\f096"; }
.icon-vector-comment:before { content: "\f075"; }
.icon-vector-narrow:before { content: "\f054"; }
.icon-vector-minus-sign:before { content: "\f056"; }
.icon-vector-plus-sign:before { content: "\f055"; }
.icon-vector-pencil:before { content: "\f040"; }
.icon-vector-eraser:before { content: "\f12d"; }
.icon-vector-envelope:before { content: "\f003"; }
.icon-vector-tag:before { content: "\f02b"; }
.icon-vector-question-sign:before { content: "\f059"; }
.icon-vector-remove:before { content: "\f00d"; }
.icon-vector-angle-down:before { content: "\f107"; }
.icon-vector-chevron-up:before { content: "\f077"; }
.icon-vector-chevron-down:before { content: "\f078"; }
.icon-vector-caret-right:before { content: "\f0da"; }

View File

@@ -0,0 +1,336 @@
/*!
Software from "Font Awesome 3.0.2" CSS is Copyright (c) 2012-2013 Dave Gandy
and is provided under the following license:
--
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--
*/
/*
* Portions of this file are under the following license:
*
* Font Awesome 3.0.2 License
* -------------------------------------------------------
* - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
* - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
* http://opensource.org/licenses/mit-license.html
* - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
* - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
* "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
*/
@font-face {
font-family: 'FontAwesome';
src: url('../third/fontawesome/fontawesome3-webfont.eot?v=3.0.1');
src: url('../third/fontawesome/fontawesome3-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'),
url('../third/fontawesome/fontawesome3-webfont.woff?v=3.0.1') format('woff'),
url('../third/fontawesome/fontawesome3-webfont.ttf?v=3.0.1') format('truetype'),
url('../third/fontawesome/fontawesome3-webfont.svg#FontAwesome') format('svg');
font-weight: normal;
font-style: normal;
}
/* Font Awesome styles
------------------------------------------------------- */
[class^="icon-vector-"],
[class*=" icon-vector-"] {
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
text-decoration: inherit;
-webkit-font-smoothing: antialiased;
/* sprites.less reset */
display: inline;
width: auto;
height: auto;
line-height: normal;
vertical-align: baseline;
background-image: none;
background-position: 0% 0%;
background-repeat: repeat;
margin-top: 0;
}
/* more sprites.less reset */
.icon-vector-white,
.nav-pills > .active > a > [class^="icon-vector-"],
.nav-pills > .active > a > [class*=" icon-vector-"],
.nav-list > .active > a > [class^="icon-vector-"],
.nav-list > .active > a > [class*=" icon-vector-"],
.navbar-inverse .nav > .active > a > [class^="icon-vector-"],
.navbar-inverse .nav > .active > a > [class*=" icon-vector-"],
.dropdown-menu > li > a:hover > [class^="icon-vector-"],
.dropdown-menu > li > a:hover > [class*=" icon-vector-"],
.dropdown-menu > .active > a > [class^="icon-vector-"],
.dropdown-menu > .active > a > [class*=" icon-vector-"],
.dropdown-submenu:hover > a > [class^="icon-vector-"],
.dropdown-submenu:hover > a > [class*=" icon-vector-"] {
background-image: none;
}
[class^="icon-vector-"]:before,
[class*=" icon-vector-"]:before {
text-decoration: inherit;
display: inline-block;
speak: none;
}
/* makes sure icons active on rollover in links */
a [class^="icon-vector-"],
a [class*=" icon-vector-"] {
display: inline-block;
}
/* makes the font 33% larger relative to the icon container */
.icon-vector-large:before {
vertical-align: -10%;
font-size: 1.3333333333333333em;
}
.btn [class^="icon-vector-"],
.nav [class^="icon-vector-"],
.btn [class*=" icon-vector-"],
.nav [class*=" icon-vector-"] {
display: inline;
/* keeps button heights with and without icons the same */
}
.btn [class^="icon-vector-"].icon-vector-large,
.nav [class^="icon-vector-"].icon-vector-large,
.btn [class*=" icon-vector-"].icon-vector-large,
.nav [class*=" icon-vector-"].icon-vector-large {
line-height: .9em;
}
.btn [class^="icon-vector-"].icon-vector-spin,
.nav [class^="icon-vector-"].icon-vector-spin,
.btn [class*=" icon-vector-"].icon-vector-spin,
.nav [class*=" icon-vector-"].icon-vector-spin {
display: inline-block;
}
.nav-tabs [class^="icon-vector-"],
.nav-pills [class^="icon-vector-"],
.nav-tabs [class*=" icon-vector-"],
.nav-pills [class*=" icon-vector-"] {
/* keeps button heights with and without icons the same */
}
.nav-tabs [class^="icon-vector-"],
.nav-pills [class^="icon-vector-"],
.nav-tabs [class*=" icon-vector-"],
.nav-pills [class*=" icon-vector-"],
.nav-tabs [class^="icon-vector-"].icon-vector-large,
.nav-pills [class^="icon-vector-"].icon-vector-large,
.nav-tabs [class*=" icon-vector-"].icon-vector-large,
.nav-pills [class*=" icon-vector-"].icon-vector-large {
line-height: .9em;
}
li [class^="icon-vector-"],
.nav li [class^="icon-vector-"],
li [class*=" icon-vector-"],
.nav li [class*=" icon-vector-"] {
display: inline-block;
width: 1.25em;
text-align: center;
}
li [class^="icon-vector-"].icon-vector-large,
.nav li [class^="icon-vector-"].icon-vector-large,
li [class*=" icon-vector-"].icon-vector-large,
.nav li [class*=" icon-vector-"].icon-vector-large {
/* increased font size for icon-vector-large */
width: 1.5625em;
}
ul.icons {
list-style-type: none;
text-indent: -0.75em;
}
ul.icons li [class^="icon-vector-"],
ul.icons li [class*=" icon-vector-"] {
width: .75em;
}
.icon-vector-muted {
color: #eeeeee;
}
.icon-vector-border {
border: solid 1px #eeeeee;
padding: .2em .25em .15em;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.icon-vector-small {
font-size: 0.8em;
}
.icon-vector-2x {
font-size: 2em;
}
.icon-vector-2x.icon-vector-border {
border-width: 2px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.icon-vector-3x {
font-size: 3em;
}
.icon-vector-3x.icon-vector-border {
border-width: 3px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.icon-vector-4x {
font-size: 4em;
}
.icon-vector-4x.icon-vector-border {
border-width: 4px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
[class^="icon-vector-"].pull-left,
[class*=" icon-vector-"].pull-left {
margin-right: .3em;
}
[class^="icon-vector-"].pull-right,
[class*=" icon-vector-"].pull-right {
margin-left: .3em;
}
.btn [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .18em;
}
.btn [class^="icon-vector-"].icon-vector-spin.icon-vector-large,
.btn [class*=" icon-vector-"].icon-vector-spin.icon-vector-large {
line-height: .8em;
}
.btn.btn-small [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-small [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-small [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-small [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .25em;
}
.btn.btn-large [class^="icon-vector-"],
.btn.btn-large [class*=" icon-vector-"] {
margin-top: 0;
}
.btn.btn-large [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-top: .05em;
}
.btn.btn-large [class^="icon-vector-"].pull-left.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-left.icon-vector-2x {
margin-right: .2em;
}
.btn.btn-large [class^="icon-vector-"].pull-right.icon-vector-2x,
.btn.btn-large [class*=" icon-vector-"].pull-right.icon-vector-2x {
margin-left: .2em;
}
.icon-vector-spin {
display: inline-block;
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
}
@-moz-keyframes spin {
0% { -moz-transform: rotate(0deg); }
100% { -moz-transform: rotate(359deg); }
}
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(359deg); }
}
@-o-keyframes spin {
0% { -o-transform: rotate(0deg); }
100% { -o-transform: rotate(359deg); }
}
@-ms-keyframes spin {
0% { -ms-transform: rotate(0deg); }
100% { -ms-transform: rotate(359deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(359deg); }
}
@-moz-document url-prefix() {
.icon-vector-spin {
height: .9em;
}
.btn .icon-vector-spin {
height: auto;
}
.icon-vector-spin.icon-vector-large {
height: 1.25em;
}
.btn .icon-vector-spin.icon-vector-large {
height: .75em;
}
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.icon-vector-star:before { content: "\f005"; }
.icon-vector-star-empty:before { content: "\f006"; }
.icon-vector-paper-clip:before { content: "\f0c6"; }
.icon-vector-random:before { content: "\f074"; }
.icon-vector-desktop:before { content: "\f108"; }
.icon-vector-mobile-phone:before { content: "\f10b"; }
.icon-vector-lock:before { content: "\f023"; }
.icon-vector-bell:before { content: "\f0a2"; }
.icon-vector-comments:before { content: "\f086"; }
.icon-vector-quote-left:before { content: "\f10d"; }
.icon-vector-road:before { content: "\f018"; }
.icon-vector-search:before { content: "\f002"; }
.icon-vector-picture:before { content: "\f03e"; }
.icon-vector-home:before { content: "\f015"; }
.icon-vector-group:before { content: "\f0c0"; }
.icon-vector-info-sign:before { content: "\f05a"; }
.icon-vector-user:before { content: "\f007"; }
.icon-vector-font:before { content: "\f031"; }
.icon-vector-thumbs-up:before { content: "\f087"; }
.icon-vector-github:before { content: "\f09b"; }
.icon-vector-sitemap:before { content: "\f0e8"; }
.icon-vector-edit:before { content: "\f044"; }
.icon-vector-bullhorn:before { content: "\f0a1"; }
.icon-vector-list:before { content: "\f03a"; }
.icon-vector-cog:before { content: "\f013"; }
.icon-vector-check:before { content: "\f046"; }
.icon-vector-check-empty:before { content: "\f096"; }
.icon-vector-comment:before { content: "\f075"; }
.icon-vector-narrow:before { content: "\f054"; }
.icon-vector-minus-sign:before { content: "\f056"; }
.icon-vector-plus-sign:before { content: "\f055"; }
.icon-vector-pencil:before { content: "\f040"; }
.icon-vector-eraser:before { content: "\f12d"; }
.icon-vector-envelope:before { content: "\f003"; }
.icon-vector-tag:before { content: "\f02b"; }
.icon-vector-question-sign:before { content: "\f059"; }
.icon-vector-remove:before { content: "\f00d"; }
.icon-vector-angle-down:before { content: "\f107"; }
.icon-vector-chevron-up:before { content: "\f077"; }
.icon-vector-chevron-down:before { content: "\f078"; }
.icon-vector-caret-right:before { content: "\f0da"; }

View File

@@ -579,12 +579,22 @@ def home(request):
{'user_profile': user_profile, {'user_profile': user_profile,
'page_params' : page_params, 'page_params' : page_params,
'avatar_url': avatar_url(user_profile), 'avatar_url': avatar_url(user_profile),
'nofontface': is_buggy_ua(request.META["HTTP_USER_AGENT"]),
'show_debug': 'show_debug':
settings.DEBUG and ('show_debug' in request.GET), settings.DEBUG and ('show_debug' in request.GET),
'show_invites': show_invites 'show_invites': show_invites
}, },
context_instance=RequestContext(request)) context_instance=RequestContext(request))
def is_buggy_ua(agent):
"""Discrimiate CSS served to clients based on User Agent
Due to QTBUG-3467, @font-face is not supported in QtWebKit.
This may get fixed in the future, but for right now we can
just serve the more conservative CSS to all our desktop apps.
"""
return "Humbug Desktop/" in agent
def get_pointer_backend(request, user_profile): def get_pointer_backend(request, user_profile):
return json_success({'pointer': user_profile.pointer}) return json_success({'pointer': user_profile.pointer})