Combined speed dial resize and thumbnail sizes
This commit is contained in:
parent
fa4de7b723
commit
4422f640cb
3 changed files with 164 additions and 33 deletions
|
@ -30,7 +30,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#content {
|
#content {
|
||||||
margin-top: 10px;
|
margin-top: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.shortcut {
|
div.shortcut {
|
||||||
|
@ -90,6 +90,11 @@
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.shortcut a img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.waiter img {
|
.waiter img {
|
||||||
margin-top: 38px;
|
margin-top: 38px;
|
||||||
}
|
}
|
||||||
|
@ -142,23 +147,54 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
div.config {
|
div.config {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.config span {
|
div.config span {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.config span:hover {
|
div.config span.config_option:hover {
|
||||||
color: #999;
|
color: #999;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.config span.config_label {
|
||||||
|
color: #ccc;
|
||||||
|
cursor: default;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.config span.config_option {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.osd {
|
||||||
|
top: 9px;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.osd span {
|
||||||
|
border: 1px solid #999;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
padding: 8px;
|
||||||
|
color: #999;
|
||||||
|
-webkit-border-bottom-left-radius: 10px;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
sc = JSON.decode ({json_data});
|
var sc = JSON.decode ({json_data});
|
||||||
|
|
||||||
var encodeSafe = function (obj) {
|
var encodeSafe = function (obj) {
|
||||||
var str = JSON.encode (obj);
|
var str = JSON.encode (obj);
|
||||||
|
@ -227,10 +263,9 @@
|
||||||
|
|
||||||
var renameShortcut = function (id)
|
var renameShortcut = function (id)
|
||||||
{
|
{
|
||||||
var name = prompt ("{enter_shortcut_name}", "");
|
|
||||||
if (!name) return;
|
|
||||||
|
|
||||||
var num = id.substr (1) - 1;
|
var num = id.substr (1) - 1;
|
||||||
|
var name = prompt ("{enter_shortcut_name}", sc.shortcuts[num].title);
|
||||||
|
if (!name) return;
|
||||||
|
|
||||||
$(id).getLast ().set ('html', name);
|
$(id).getLast ().set ('html', name);
|
||||||
sc.shortcuts[num].title = name;
|
sc.shortcuts[num].title = name;
|
||||||
|
@ -266,10 +301,18 @@
|
||||||
var buildSpeeddial = function ()
|
var buildSpeeddial = function ()
|
||||||
{
|
{
|
||||||
var width = 3;
|
var width = 3;
|
||||||
|
var thumb = 160;
|
||||||
|
|
||||||
|
if (sc.thumb)
|
||||||
|
{
|
||||||
|
thumb = sc.thumb;
|
||||||
|
setThumbSize(thumb);
|
||||||
|
}
|
||||||
|
|
||||||
if (sc.width)
|
if (sc.width)
|
||||||
{
|
{
|
||||||
width = sc.width;
|
width = sc.width;
|
||||||
$('wrap').style.width = (width * 220) + 'px';
|
$('wrap').style.width = (width * (thumb + 60)) + 'px';
|
||||||
}
|
}
|
||||||
|
|
||||||
sc.shortcuts.each (function (item, index, sc)
|
sc.shortcuts.each (function (item, index, sc)
|
||||||
|
@ -319,23 +362,39 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var setWidth = function ()
|
var setSize = function ()
|
||||||
{
|
{
|
||||||
var width = prompt ("{enter_dial_width}", "");
|
var rows = Math.ceil (sc.shortcuts.length / sc.width);
|
||||||
if (!width || isNaN (width)) return;
|
var size = prompt ("{enter_dial_size}", sc.width + 'x' + rows);
|
||||||
|
|
||||||
sc.width = width;
|
if (!size) return;
|
||||||
|
|
||||||
$('content').empty ();
|
var pos = size.indexOf('x');
|
||||||
buildSpeeddial ();
|
|
||||||
|
|
||||||
console.log ("speed_dial-save '" + encodeSafe (sc) + "'");
|
if (pos <= 0)
|
||||||
}
|
{
|
||||||
|
alert ("{invalid_dial_size}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var setCount = function ()
|
var cols = size.substr(0, pos);
|
||||||
{
|
rows = size.substr(pos+1);
|
||||||
var count = prompt ("{enter_shortcut_count}", "");
|
|
||||||
if (!count || isNaN (count)) return;
|
if (isNaN (cols) || isNaN (rows) || cols == 0 || rows == 0)
|
||||||
|
{
|
||||||
|
alert ("{invalid_dial_size}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size.indexOf('.') >= 0)
|
||||||
|
{
|
||||||
|
alert ("{invalid_dial_size}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.width = cols;
|
||||||
|
|
||||||
|
var count = cols * rows;
|
||||||
|
|
||||||
sc.shortcuts = sc.shortcuts.slice (0, count);
|
sc.shortcuts = sc.shortcuts.slice (0, count);
|
||||||
|
|
||||||
|
@ -352,30 +411,99 @@
|
||||||
console.log ("speed_dial-save '" + encodeSafe (sc) + "'");
|
console.log ("speed_dial-save '" + encodeSafe (sc) + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var setThumbSize = function (size)
|
||||||
|
{
|
||||||
|
var i;
|
||||||
|
var rules = document.styleSheets[0].cssRules;
|
||||||
|
|
||||||
|
var width = 3;
|
||||||
|
if (sc.width)
|
||||||
|
width = sc.width;
|
||||||
|
|
||||||
|
var height = Math.round (size / 1.5);
|
||||||
|
|
||||||
|
$('wrap').style.width = (width * (size + 60)) + 'px';
|
||||||
|
|
||||||
|
for (i = 0; i < rules.length; i++)
|
||||||
|
{
|
||||||
|
switch (rules[i].selectorText)
|
||||||
|
{
|
||||||
|
case 'div.shortcut a':
|
||||||
|
rules[i].style.width = size + 'px';
|
||||||
|
rules[i].style.height = height + 'px';
|
||||||
|
break;
|
||||||
|
case 'div.shortcut':
|
||||||
|
rules[i].style.width = (size + 40) + 'px';
|
||||||
|
rules[i].style.height = (height + 43) + 'px';
|
||||||
|
break;
|
||||||
|
case '.cross':
|
||||||
|
rules[i].style.marginLeft = (size + 20) + 'px';
|
||||||
|
break;
|
||||||
|
case 'h1':
|
||||||
|
rules[i].style.fontSize = (size / 4 + 10) + 'px';
|
||||||
|
rules[i].style.height = (size / 4 - 10) + 'px';
|
||||||
|
break;
|
||||||
|
case 'h4 span::before':
|
||||||
|
rules[i].style.visibility = (size < 160) ? 'hidden' : 'visible';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sc.thumb != size)
|
||||||
|
{
|
||||||
|
sc.thumb = size;
|
||||||
|
console.log ("speed_dial-save '" + encodeSafe (sc) + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.addEvent ('domready', function () {
|
window.addEvent ('domready', function () {
|
||||||
buildSpeeddial ();
|
buildSpeeddial ();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var key_id = 's';
|
||||||
|
var key_timeout;
|
||||||
|
|
||||||
document.onkeypress = function ()
|
document.onkeypress = function ()
|
||||||
{
|
{
|
||||||
var id = $('s' + String.fromCharCode (event.which));
|
key_id = key_id + String.fromCharCode (event.which);
|
||||||
|
|
||||||
if ($(id))
|
clearTimeout (key_timeout);
|
||||||
|
|
||||||
|
$('dialing').innerText = key_id.substr(1);
|
||||||
|
$('dialing').style.visibility = 'visible';
|
||||||
|
|
||||||
|
if ($(key_id))
|
||||||
{
|
{
|
||||||
if (getAction (id))
|
if (key_id.substr(1) * 10 > sc.shortcuts.length)
|
||||||
document.location = $(id).children[1];
|
{
|
||||||
return false;
|
if (getAction (key_id))
|
||||||
|
document.location = $(key_id).children[1];
|
||||||
|
key_id = 's';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
key_timeout = setTimeout ('if (getAction (key_id)) document.location = $(key_id).children[1]; key_id = \'s\'', 3000);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
key_id = 's';
|
||||||
|
|
||||||
return true
|
if (key_id.length <= 1)
|
||||||
|
$('dialing').style.visibility = 'hidden';
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<div class="osd" >
|
||||||
|
<span id="dialing"></span>
|
||||||
|
</div>
|
||||||
<div class="config">
|
<div class="config">
|
||||||
<span onclick="javascript:setWidth()">{set_dial_width}</span>
|
<span onclick="javascript:setSize()" class="config_option">{set_dial_size}</span>
|
||||||
<span onclick="javascript:setCount()">{set_shortcut_count}</span>
|
<span class="config_label">{set_thumb_size}</span>
|
||||||
|
<span onclick="javascript:setThumbSize(80)" class="config_option">{set_thumb_small}</span>
|
||||||
|
<span onclick="javascript:setThumbSize(160)" class="config_option">{set_thumb_normal}</span>
|
||||||
|
<span onclick="javascript:setThumbSize(240)" class="config_option">{set_thumb_big}</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="wrap">
|
<div id="wrap">
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
|
|
@ -1226,7 +1226,7 @@ midori_browser_add_speed_dial (MidoriBrowser* browser)
|
||||||
g_regex_unref (reg_unsafe);
|
g_regex_unref (reg_unsafe);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((img = midori_view_get_snapshot (MIDORI_VIEW (view), 160, 107)))
|
if ((img = midori_view_get_snapshot (MIDORI_VIEW (view), 240, 160)))
|
||||||
{
|
{
|
||||||
GRegex* regex;
|
GRegex* regex;
|
||||||
gchar* replace;
|
gchar* replace;
|
||||||
|
|
|
@ -3515,10 +3515,13 @@ midori_view_set_uri (MidoriView* view,
|
||||||
"{enter_shortcut_address}", _("Enter shortcut address"),
|
"{enter_shortcut_address}", _("Enter shortcut address"),
|
||||||
"{enter_shortcut_name}", _("Enter shortcut title"),
|
"{enter_shortcut_name}", _("Enter shortcut title"),
|
||||||
"{are_you_sure}", _("Are you sure you want to delete this shortcut?"),
|
"{are_you_sure}", _("Are you sure you want to delete this shortcut?"),
|
||||||
"{set_dial_width}", _("Set number of columns"),
|
"{set_dial_size}", _("Set number of columns and rows"),
|
||||||
"{enter_dial_width}", _("Enter number of columns:"),
|
"{enter_dial_width}", _("Enter number of columns and rows:"),
|
||||||
"{set_shortcut_count}", _("Set number of shortcuts"),
|
"{invalid_dial_size}", _("Invalid input for the size of the speed dial"),
|
||||||
"{enter_shortcut_count}", _("Enter number of shortcuts:"), NULL);
|
"{set_thumb_size}", _("Thumb size:"),
|
||||||
|
"{set_thumb_small}", _("Small"),
|
||||||
|
"{set_thumb_normal}", _("Medium"),
|
||||||
|
"{set_thumb_big}", _("Big"), NULL);
|
||||||
|
|
||||||
|
|
||||||
midori_view_load_alternate_string (view,
|
midori_view_load_alternate_string (view,
|
||||||
|
@ -5112,7 +5115,7 @@ thumb_view_load_status_cb (MidoriView* thumb_view,
|
||||||
if (katze_object_get_enum (thumb_view, "load-status") != MIDORI_LOAD_FINISHED)
|
if (katze_object_get_enum (thumb_view, "load-status") != MIDORI_LOAD_FINISHED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
img = midori_view_get_snapshot (MIDORI_VIEW (thumb_view), 160, 107);
|
img = midori_view_get_snapshot (MIDORI_VIEW (thumb_view), 240, 160);
|
||||||
gdk_pixbuf_save_to_buffer (img, &file_content, &sz, "png", NULL, "compression", "7", NULL);
|
gdk_pixbuf_save_to_buffer (img, &file_content, &sz, "png", NULL, "compression", "7", NULL);
|
||||||
encoded = g_base64_encode ((guchar *)file_content, sz );
|
encoded = g_base64_encode ((guchar *)file_content, sz );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue