144 lines
4.6 KiB
JavaScript
144 lines
4.6 KiB
JavaScript
|
document.addEventListener("DOMContentLoaded", Initialize(), false);
|
||
|
|
||
|
function Initialize(){
|
||
|
if (bg.hold){
|
||
|
setTimeout(function(){ Initialize(); },500);
|
||
|
chrome.runtime.sendMessage({command: "background_start"});
|
||
|
} else {
|
||
|
|
||
|
var theme = {
|
||
|
"ToolbarShow": false,
|
||
|
"ScrollbarPinList": 4,
|
||
|
"ScrollbarTabList": 16
|
||
|
};
|
||
|
|
||
|
if (localStorage.getItem("current_theme") != null && localStorage["theme"+localStorage["current_theme"]] != null){
|
||
|
theme = JSON.parse(localStorage["theme"+localStorage["current_theme"]]);
|
||
|
|
||
|
$("#toolbar").html(theme.toolbar);
|
||
|
|
||
|
var css_variables = "";
|
||
|
for (var css_variable in theme.ColorsSet){
|
||
|
css_variables = css_variables + "--" + css_variable + ":" + theme.ColorsSet[css_variable] + ";";
|
||
|
}
|
||
|
for (var css_variable in theme.TabsSizeSet){
|
||
|
css_variables = css_variables + "--" + css_variable + ":" + theme.TabsSizeSet[css_variable] + ";";
|
||
|
}
|
||
|
|
||
|
document.styleSheets[0].insertRule("body { "+css_variables+" }", 0);
|
||
|
}
|
||
|
|
||
|
if (navigator.userAgent.match("Firefox") === null){
|
||
|
document.styleSheets[0].insertRule("::-webkit-scrollbar { width:"+theme.ScrollbarTabList+"px; height:"+theme.ScrollbarPinList+"px; }", 0);
|
||
|
} else {
|
||
|
// I have no idea what is going on in latest build, but why top position for various things is different in firefox?????
|
||
|
if (theme.TabsSizeSetNumber > 1){
|
||
|
document.styleSheets[1].insertRule(".tab_header>.tab_title { margin-top: -1.5px; }", document.styleSheets[1].cssRules.length);
|
||
|
}
|
||
|
// document.styleSheets[1].insertRule("#toolbar_main { top: 1px; height: 25px; }", document.styleSheets[1].cssRules.length);
|
||
|
// document.styleSheets[1].insertRule(".button_img { position: relative; top: -1px; left: -1px; }", document.styleSheets[1].cssRules.length);
|
||
|
}
|
||
|
|
||
|
chrome.tabs.query({currentWindow: true}, function(tabs){
|
||
|
CurrentWindowId = tabs[0].windowId;
|
||
|
|
||
|
|
||
|
if (bg.opt.pin_list_multi_row){
|
||
|
$("#pin_list").css({"white-space": "normal", "overflow-x": "hidden"});
|
||
|
}
|
||
|
|
||
|
|
||
|
if (theme.ToolbarShow == true){
|
||
|
if (bg.opt_toolbar.filter_type == "url"){
|
||
|
$("#button_filter_type").addClass("url");
|
||
|
} else {
|
||
|
$("#button_filter_type").addClass("title");
|
||
|
}
|
||
|
$(".button").each(function(){
|
||
|
$(this).attr("title", chrome.i18n.getMessage(this.id));
|
||
|
});
|
||
|
$("#filter_box").attr("placeholder", bg.caption_searchbox);
|
||
|
$("#filter_box").css({"opacity": 1});
|
||
|
|
||
|
$(".on").removeClass("on");
|
||
|
$("#toolbar_tools, #toolbar_search").removeClass("hidden");
|
||
|
|
||
|
if (bg.opt_toolbar.active_toolbar_tool == ""){
|
||
|
$("#toolbar_tools, #toolbar_search").addClass("hidden");
|
||
|
}
|
||
|
if (bg.opt_toolbar.active_toolbar_tool == "tools" && $("#button_tools").length != 0){
|
||
|
$("#toolbar_search").addClass("hidden");
|
||
|
$("#button_tools").addClass("on");
|
||
|
}
|
||
|
if (bg.opt_toolbar.active_toolbar_tool == "search" && $("#button_search").length != 0){
|
||
|
$("#toolbar_tools").addClass("hidden");
|
||
|
$("#button_search").addClass("on");
|
||
|
}
|
||
|
$("#toolbar_separator").remove();
|
||
|
$("#toolbar_unused_buttons").remove();
|
||
|
} else {
|
||
|
$("#toolbar").children().remove();
|
||
|
}
|
||
|
|
||
|
|
||
|
tabs.forEach(function(Tab){
|
||
|
AppendTab({
|
||
|
tab: Tab,
|
||
|
Append: true
|
||
|
});
|
||
|
});
|
||
|
|
||
|
tabs.forEach(function(Tab){
|
||
|
if (bg.tabs[Tab.id] && !Tab.pinned){
|
||
|
$("#"+Tab.id).addClass(bg.tabs[Tab.id].o);
|
||
|
if ($("#"+bg.tabs[Tab.id].p).length > 0 && $("#"+bg.tabs[Tab.id].p).is(".tab") && $("#"+Tab.id).find( $("#ch"+bg.tabs[Tab.id].p)).length == 0){
|
||
|
$("#ch"+bg.tabs[Tab.id].p).append($("#"+Tab.id));
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
tabs.forEach(function(Tab){
|
||
|
if ($("#"+Tab.id)[0] && $("#"+Tab.id).parent().children().eq(bg.tabs[Tab.id].n)[0]){
|
||
|
if ($("#"+Tab.id).index() > bg.tabs[Tab.id].n){
|
||
|
$("#"+Tab.id).insertBefore($("#"+Tab.id).parent().children().eq(bg.tabs[Tab.id].n));
|
||
|
} else {
|
||
|
$("#"+Tab.id).insertAfter($("#"+Tab.id).parent().children().eq(bg.tabs[Tab.id].n));
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
tabs.forEach(function(Tab){
|
||
|
if ($("#"+Tab.id)[0] && $("#"+Tab.id).parent().children().eq(bg.tabs[Tab.id].n)[0]){
|
||
|
if ($("#"+Tab.id).index() < bg.tabs[Tab.id].n){
|
||
|
$("#"+Tab.id).insertAfter($("#"+Tab.id).parent().children().eq(bg.tabs[Tab.id].n));
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
delete theme;
|
||
|
|
||
|
SetIOEvents();
|
||
|
SetToolbarEvents();
|
||
|
SetTRefreshEvents();
|
||
|
SetTabEvents();
|
||
|
SetMenu();
|
||
|
RefreshGUI();
|
||
|
RefreshExpandStates();
|
||
|
UpdateData();
|
||
|
|
||
|
// Scroll to active tab
|
||
|
setTimeout(function(){ ScrollToTab($(".active")[0].id); },100);
|
||
|
|
||
|
|
||
|
|
||
|
if (navigator.userAgent.match("Vivaldi") !== null){
|
||
|
VivaldiRefreshMediaIcons();
|
||
|
}
|
||
|
|
||
|
});
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function log(m){
|
||
|
bg.log(m);
|
||
|
}
|