From aa725f11f80f6430fa3c40c7dff3761efa8e6dbf Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Wed, 28 Aug 2013 17:12:30 +0200 Subject: [PATCH] Adds variable icon sizes. --- src/_h5ai/client/css/inc/view-details.less | 58 ++++++ src/_h5ai/client/css/inc/view-grid.less | 61 ++++++- src/_h5ai/client/css/inc/view-icons.less | 56 ++++++ src/_h5ai/client/css/inc/view-list.less | 67 ------- src/_h5ai/client/css/inc/view.less | 37 ---- src/_h5ai/client/css/styles.less | 1 - src/_h5ai/client/images/size.svg | 194 +++++++++++++++++++++ src/_h5ai/client/js/inc/view/viewmode.js | 101 +++++++++-- src/_h5ai/conf/options.json | 7 +- 9 files changed, 458 insertions(+), 124 deletions(-) delete mode 100644 src/_h5ai/client/css/inc/view-list.less create mode 100644 src/_h5ai/client/images/size.svg diff --git a/src/_h5ai/client/css/inc/view-details.less b/src/_h5ai/client/css/inc/view-details.less index ae81517b..2348cf3c 100644 --- a/src/_h5ai/client/css/inc/view-details.less +++ b/src/_h5ai/client/css/inc/view-details.less @@ -65,3 +65,61 @@ } } } + + +.view-details-sized(@size) { + + li { + + &.item { + + a, a:active, a:visited { + height: @size + 6px; + } + + .label, .date, .size { + padding: ((@size - 16px)/2) 8px; + } + } + + .icon.square { + width: @size; + + img { + width: @size; + height: @size; + } + } + + .label { + margin: 0 230px 0 (@size + 16px); + } + } +} + + +#view.view-details { + &.size-16 { + .view-details-sized(16px) + } + + &.size-24 { + .view-details-sized(24px) + } + + &.size-32 { + .view-details-sized(32px) + } + + &.size-48 { + .view-details-sized(48px) + } + + &.size-64 { + .view-details-sized(64px) + } + + &.size-96 { + .view-details-sized(96px) + } +} diff --git a/src/_h5ai/client/css/inc/view-grid.less b/src/_h5ai/client/css/inc/view-grid.less index 1dca6349..225edad0 100644 --- a/src/_h5ai/client/css/inc/view-grid.less +++ b/src/_h5ai/client/css/inc/view-grid.less @@ -9,7 +9,7 @@ a, a:active, a:visited { float: left; margin: 2px; - width: 218px; + width: @small-icon-size + 186px; height: @small-icon-size + 6px; border: 1px solid rgba(0,0,0,0); @@ -50,3 +50,62 @@ } } } + + +.view-grid-sized(@size) { + + li { + + &.item { + + a, a:active, a:visited { + width: @size + 186px; + height: @size + 6px; + } + + .label, .date, .size { + padding: ((@size - 16px)/2) 8px; + } + } + + .icon.square { + width: @size; + + img { + width: @size; + height: @size; + } + } + + .label { + margin: 0 0 0 (@size + 8px); + } + } +} + + +#view.view-grid { + &.size-16 { + .view-grid-sized(16px) + } + + &.size-24 { + .view-grid-sized(24px) + } + + &.size-32 { + .view-grid-sized(32px) + } + + &.size-48 { + .view-grid-sized(48px) + } + + &.size-64 { + .view-grid-sized(64px) + } + + &.size-96 { + .view-grid-sized(96px) + } +} diff --git a/src/_h5ai/client/css/inc/view-icons.less b/src/_h5ai/client/css/inc/view-icons.less index 14148613..a5f48cea 100644 --- a/src/_h5ai/client/css/inc/view-icons.less +++ b/src/_h5ai/client/css/inc/view-icons.less @@ -25,6 +25,11 @@ display: block; height: @big-icon-size; margin-bottom: 6px; + + img { + max-width: @big-icon-size * 2; + max-height: @big-icon-size; + } } .label { @@ -44,3 +49,54 @@ height: 120px; } } + + +.view-icons-sized(@size) { + + li { + + &.item { + + a, a:active, a:visited { + width: @size * 2; + height: @size + 72px; + } + } + + .icon.rational { + height: @size; + + img { + max-width: @size * 2; + max-height: @size; + } + } + } +} + + +#view.view-icons { + &.size-16 { + .view-icons-sized(16px) + } + + &.size-24 { + .view-icons-sized(24px) + } + + &.size-32 { + .view-icons-sized(32px) + } + + &.size-48 { + .view-icons-sized(48px) + } + + &.size-64 { + .view-icons-sized(64px) + } + + &.size-96 { + .view-icons-sized(96px) + } +} diff --git a/src/_h5ai/client/css/inc/view-list.less b/src/_h5ai/client/css/inc/view-list.less deleted file mode 100644 index 4c2cd539..00000000 --- a/src/_h5ai/client/css/inc/view-list.less +++ /dev/null @@ -1,67 +0,0 @@ - -#view.view-list { - - li { - - &.header { - display: list-item; - } - - &.item { - - a, a:active, a:visited { - border-top: 1px solid @item-border-col-sep; - border-bottom: 1px solid @item-border-col-sep; - height: @big-icon-size + 6px; - - &:hover, &.hover { - border-color: @item-border-col-hover; - } - } - - // needs to be here, to not conflict with header fields - .icon { - padding: 8px; - } - .label, .date, .size { - padding: ((@big-icon-size - 16px)/2) 8px; - } - } - - &.item + .item { - - a, a:active, a:visited { - border-top: none; - } - } - - .icon.square { - display: inline-block; - position: absolute; - left: 0; - top: -5px; - width: @big-icon-size; - - img { - width: @big-icon-size; - height: @big-icon-size; - } - } - - .label { - margin: 0 230px 0 (@big-icon-size + 16px); - } - - .date { - position: absolute; - right: 100px; - top: 0; - } - - .size { - position: absolute; - right: 0; - top: 0; - } - } -} diff --git a/src/_h5ai/client/css/inc/view.less b/src/_h5ai/client/css/inc/view.less index 44ee1f15..c26bd130 100644 --- a/src/_h5ai/client/css/inc/view.less +++ b/src/_h5ai/client/css/inc/view.less @@ -56,13 +56,8 @@ @item-background-col-sel: rgba(0,0,0,0.02); @item-border-col-sel: @col-border-strong; -// @small-icon-size: 16px; @small-icon-size: 32px; @big-icon-size: 48px; -// @big-icon-size: 56px; -// @big-icon-size: 64px; -// @big-icon-size: 80px; -// @big-icon-size: 96px; #view { @@ -178,38 +173,6 @@ box-shadow: 0 0 0 1px #ddd; } } - - &.small { - - img { - max-width: @small-icon-size * 2; - max-height: @small-icon-size; - } - } - - &.big { - - img { - max-width: @big-icon-size * 2; - max-height: @big-icon-size; - } - } - - &.square { - - img { - max-width: @big-icon-size; - max-height: @big-icon-size; - } - } - - &.rational { - - img { - max-width: @big-icon-size * 2; - max-height: @big-icon-size; - } - } } .label { diff --git a/src/_h5ai/client/css/styles.less b/src/_h5ai/client/css/styles.less index 057d3dc3..b2fba482 100644 --- a/src/_h5ai/client/css/styles.less +++ b/src/_h5ai/client/css/styles.less @@ -20,7 +20,6 @@ @import "inc/view"; @import "inc/view-details"; @import "inc/view-icons"; -@import "inc/view-list"; @import "inc/view-grid"; // @import "inc/context-menu"; @import "inc/dropbox"; diff --git a/src/_h5ai/client/images/size.svg b/src/_h5ai/client/images/size.svg new file mode 100644 index 00000000..4d2b849b --- /dev/null +++ b/src/_h5ai/client/images/size.svg @@ -0,0 +1,194 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/_h5ai/client/js/inc/view/viewmode.js b/src/_h5ai/client/js/inc/view/viewmode.js index 045f8bf9..35048745 100644 --- a/src/_h5ai/client/js/inc/view/viewmode.js +++ b/src/_h5ai/client/js/inc/view/viewmode.js @@ -1,10 +1,12 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'core/store', 'core/event'], function (_, $, allsettings, resource, store, event) { - var modes = ['details', 'list', 'grid', 'icons'], + var modes = ['details', 'grid', 'icons'], + sizes = [16, 24, 32, 48, 64, 96], settings = _.extend({}, { - modes: modes + modes: modes, + sizes: sizes }, allsettings.view), storekey = 'viewmode', @@ -16,6 +18,32 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'c '' + '', + sizeTemplate = '
  • ' + + '' + + 'size' + + '[SIZE]' + + '' + + '
  • ', + + // sizeSelectorTemplate = '
  • ' + + // '' + + // 'size' + + // 'small' + + // '' + + // '