diff --git a/doc/images/qt-simulator.png b/doc/images/qt-simulator.png index 94f2906481e334204de9984e09b82b55661e8cbd..77db21123beb6f1c9f916bdf763a376a8230da98 100644 Binary files a/doc/images/qt-simulator.png and b/doc/images/qt-simulator.png differ diff --git a/doc/images/qtcreator-add-resource-wizard.png b/doc/images/qtcreator-add-resource-wizard.png index 688f1efae83bf108817a7a0b6bd5ea1ba4f40f10..5109123f16e15b50f1dac39127dcf5d0d3353376 100644 Binary files a/doc/images/qtcreator-add-resource-wizard.png and b/doc/images/qtcreator-add-resource-wizard.png differ diff --git a/doc/images/qtcreator-build-dependencies.png b/doc/images/qtcreator-build-dependencies.png index d51a11be8afe4a5eac36d571b48ff959e0b78535..de5b3ca59a9f53f704c3943583984eb9f63301d0 100644 Binary files a/doc/images/qtcreator-build-dependencies.png and b/doc/images/qtcreator-build-dependencies.png differ diff --git a/doc/images/qtcreator-cmake-build-settings.png b/doc/images/qtcreator-cmake-build-settings.png index d1db5840083be66b074bfd2de503b22923f22138..406c447eafa7e9591fe0e0c5797ca5edd3ea0757 100644 Binary files a/doc/images/qtcreator-cmake-build-settings.png and b/doc/images/qtcreator-cmake-build-settings.png differ diff --git a/doc/images/qtcreator-cmakeexecutable.png b/doc/images/qtcreator-cmakeexecutable.png index 08391df622c7434e5788be9a63551ec0e24c8981..b6f8f3a9218434ce96477fe663a0bb95fd625bae 100644 Binary files a/doc/images/qtcreator-cmakeexecutable.png and b/doc/images/qtcreator-cmakeexecutable.png differ diff --git a/doc/images/qtcreator-custom-project-wizards.png b/doc/images/qtcreator-custom-project-wizards.png index fa96ec606f44d479b22bad4e5348aa38e805b64d..e201501c690063d65e184a0c6713044b631101d3 100644 Binary files a/doc/images/qtcreator-custom-project-wizards.png and b/doc/images/qtcreator-custom-project-wizards.png differ diff --git a/doc/images/qtcreator-debugger-views.png b/doc/images/qtcreator-debugger-views.png index d00acb7a9e0600a98a212428aaefb23fcc573df6..dc6dde6b318105a33378018395c2cdd8c1a609aa 100644 Binary files a/doc/images/qtcreator-debugger-views.png and b/doc/images/qtcreator-debugger-views.png differ diff --git a/doc/images/qtcreator-editor-settings.png b/doc/images/qtcreator-editor-settings.png index 3074d58a680d5fad62fe8458d27e75189546259a..27da784a8eb5802b10bf6909c6b125e792066af7 100644 Binary files a/doc/images/qtcreator-editor-settings.png and b/doc/images/qtcreator-editor-settings.png differ diff --git a/doc/images/qtcreator-gs-build-example-open.png b/doc/images/qtcreator-gs-build-example-open.png index 1ebdc4d6c7f69367c92f29e24681fafaf81270b4..27fce0197b0e20d96c7adb57dd8e5e0d561e28a8 100644 Binary files a/doc/images/qtcreator-gs-build-example-open.png and b/doc/images/qtcreator-gs-build-example-open.png differ diff --git a/doc/images/qtcreator-locator-customize.png b/doc/images/qtcreator-locator-customize.png index 2239070d72967300aa7eefe82a14bbf92bc6e209..d5dde2b313ebb575498a6805a99f70aba526683e 100644 Binary files a/doc/images/qtcreator-locator-customize.png and b/doc/images/qtcreator-locator-customize.png differ diff --git a/doc/images/qtcreator-locator-open.png b/doc/images/qtcreator-locator-open.png index 451580afcf1cdc2327ed9ec3905a32884a92331c..9f2255baaae9f3b58a20a35e1cfef58bea12f243 100644 Binary files a/doc/images/qtcreator-locator-open.png and b/doc/images/qtcreator-locator-open.png differ diff --git a/doc/images/qtcreator-locator.png b/doc/images/qtcreator-locator.png index 5b5e2dae00545b4c74ab84a5846c324beadf3ff2..f0f23c525dd45270ac95772e5055824bb06e25f4 100644 Binary files a/doc/images/qtcreator-locator.png and b/doc/images/qtcreator-locator.png differ diff --git a/doc/images/qtcreator-navigate-customfilter.png b/doc/images/qtcreator-navigate-customfilter.png index 6ccb2a79da480f90e46ca8ded42869e28c742788..2d8c30e15152561609b2257ec32f9cf6eae52556 100644 Binary files a/doc/images/qtcreator-navigate-customfilter.png and b/doc/images/qtcreator-navigate-customfilter.png differ diff --git a/doc/images/qtcreator-navigate-popup.png b/doc/images/qtcreator-navigate-popup.png index 175b0a41b46ca9a2048112f8e19f80a6b2d1aed5..6ba97e88c8c288526e3e38d016017a45e7575ce9 100644 Binary files a/doc/images/qtcreator-navigate-popup.png and b/doc/images/qtcreator-navigate-popup.png differ diff --git a/doc/images/qtcreator-new-mobile-project.png b/doc/images/qtcreator-new-mobile-project.png index adc657cd9e706f1ae49c3351af9e3e1f0151bb70..b47951da16252abe6d43dede9d18b3c13ba64d68 100644 Binary files a/doc/images/qtcreator-new-mobile-project.png and b/doc/images/qtcreator-new-mobile-project.png differ diff --git a/doc/images/qtcreator-new-project.png b/doc/images/qtcreator-new-project.png index 54c74efac0e920016552aa17c0bd8c538e9e8262..fed25bfdbd0f1be80123b9d25a40cf94b1dad8f0 100644 Binary files a/doc/images/qtcreator-new-project.png and b/doc/images/qtcreator-new-project.png differ diff --git a/doc/images/qtcreator-projectpane.png b/doc/images/qtcreator-projectpane.png index 5a6322b7099b62effc22f2752172e72fd2bfc66a..7a01673fcf06238384749b3a3bcc7fc36bb9f4ee 100644 Binary files a/doc/images/qtcreator-projectpane.png and b/doc/images/qtcreator-projectpane.png differ diff --git a/doc/images/qtcreator-qt4-qtversions-win-mingw.png b/doc/images/qtcreator-qt4-qtversions-win-mingw.png index c210a8ef4cd337c664cb46a35a311fea4fa80653..61ed8589756967fe27627802266b3a75b1a0e7ae 100644 Binary files a/doc/images/qtcreator-qt4-qtversions-win-mingw.png and b/doc/images/qtcreator-qt4-qtversions-win-mingw.png differ diff --git a/doc/images/qtcreator-qt4-qtversions-win-msvc.png b/doc/images/qtcreator-qt4-qtversions-win-msvc.png index 86811a3fa552c718bc24476a92022264e471cd1c..090247c503ea60e2e4e9e1b87a8917e6da028107 100644 Binary files a/doc/images/qtcreator-qt4-qtversions-win-msvc.png and b/doc/images/qtcreator-qt4-qtversions-win-msvc.png differ diff --git a/doc/images/qtcreator-qt4-qtversions-win-symbian.png b/doc/images/qtcreator-qt4-qtversions-win-symbian.png index 455179365d600e161354a5f7f06a3974713d54b2..eaf9beaaa0060b34d69db6b3db8424375f6bd35e 100644 Binary files a/doc/images/qtcreator-qt4-qtversions-win-symbian.png and b/doc/images/qtcreator-qt4-qtversions-win-symbian.png differ diff --git a/doc/images/qtcreator-qt4-s60sdks.png b/doc/images/qtcreator-qt4-s60sdks.png index cefbcffc92a50dea20759abce7703c5481f36956..71256929c23ddb86f12dd9b73ac040df7d12102e 100644 Binary files a/doc/images/qtcreator-qt4-s60sdks.png and b/doc/images/qtcreator-qt4-s60sdks.png differ diff --git a/doc/images/qtcreator-session-manager.png b/doc/images/qtcreator-session-manager.png index 786239c183b8afaa814e2c09393d299679f739ea..d20c531936e3783eb61d54286c00809f675b1187 100644 Binary files a/doc/images/qtcreator-session-manager.png and b/doc/images/qtcreator-session-manager.png differ diff --git a/doc/images/qtcreator-togglebookmark.png b/doc/images/qtcreator-togglebookmark.png index 57c78815a4437c2e81c681192176045ffb230455..7d946b7122f267dc1d9c2b05035fe47272bc52ef 100644 Binary files a/doc/images/qtcreator-togglebookmark.png and b/doc/images/qtcreator-togglebookmark.png differ diff --git a/doc/images/qtcreator-welcome-session.png b/doc/images/qtcreator-welcome-session.png index 9e1acbba3673617d52463eef324a4c9de026df66..0c0f5036ff0ef1adb12170d66a4466455d13c330 100644 Binary files a/doc/images/qtcreator-welcome-session.png and b/doc/images/qtcreator-welcome-session.png differ diff --git a/doc/qt-defines.qdocconf b/doc/qt-defines.qdocconf index 1470f19c95d40c189456116cdedec03a6d71d6f8..f3239272c78f9eea6d32c7aed00c004330708070 100644 --- a/doc/qt-defines.qdocconf +++ b/doc/qt-defines.qdocconf @@ -65,7 +65,8 @@ styledirs = $SRCDIR/templates/style scripts.HTML = functions.js \ jquery.js -styles.HTML = style.css \ - style_ie6.css \ - style_ie7.css \ - style_ie8.css +styles.HTML = OfflineStyle.css \ + style.css \ + style_ie6.css \ + style_ie7.css \ + style_ie8.css diff --git a/doc/templates/scripts/functions.js b/doc/templates/scripts/functions.js index 013542764d2b8c5d5fd6a949858c14e9e488a2e8..58a02485910795af2fc1d6ac2c141d7a298b3aec 100644 --- a/doc/templates/scripts/functions.js +++ b/doc/templates/scripts/functions.js @@ -1,10 +1,8 @@ - /* START non link areas where cursor should change to pointing hand */ $('.t_button').mouseover(function() { $('.t_button').css('cursor','pointer'); /*document.getElementById(this.id).style.cursor='pointer';*/ }); - /* END non link areas */ $('#smallA').click(function() { $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','smaller'); @@ -20,6 +18,7 @@ $('#medA').click(function() { $('.content p').css('font','13px/20px Verdana'); $('.content li').css('font','400 13px/1 Verdana'); $('.content li').css('line-height','14px'); + $('.content .toc li').css('font', 'normal 10px/1.2 Verdana'); $('.content table').css('font','13px/1.2 Verdana'); $('.content .heading').css('font','600 16px/1 Arial'); $('.content .indexboxcont li').css('font','600 13px/1 Verdana'); @@ -34,27 +33,160 @@ $('#bigA').click(function() { $(this).addClass('active') }); -function doSearch(str){ - -if (str.length>3) - { - alert('start search'); - // document.getElementById("refWrapper").innerHTML=""; - return; - } - else - return; - -// var url="indexSearch.php"; -// url=url+"?q="+str; - // url=url+"&sid="+Math.random(); - // var url="http://localhost:8983/solr/select?"; - // url=url+"&q="+str; - // url=url+"&fq=&start=0&rows=10&fl=&qt=&wt=&explainOther=&hl.fl="; - - // $.get(url, function(data){ - // alert(data); - // document.getElementById("refWrapper").innerHTML=data; - //}); - -} \ No newline at end of file +$('.feedclose').click(function() { + $('.bd').show(); + $('.hd').show(); + $('.footer').show(); + $('#feedbackBox').hide(); + $('#blurpage').hide(); +}); + +$('.feedback').click(function() { + $('.bd').hide(); + $('.hd').hide(); + $('.footer').hide(); + $('#feedbackBox').show(); + $('#blurpage').show(); +}); +var lookupCount = 0; +var articleCount = 0; +var exampleCount = 0; +var qturl = ""; // change from "http://doc.qt.nokia.com/4.6/" to 0 so we can have relative links + +function processNokiaData(response){ + var propertyTags = response.getElementsByTagName('page'); + + for (var i=0; i< propertyTags.length; i++) { + var linkStart = "<li class=\"liveResult\"><a href='"+qturl+""; + var linkEnd = "</a></li>"; + + if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'APIPage'){ + lookupCount++; + + + for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){ + full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue; + full_li_element = full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd; + + $('#ul001').append(full_li_element); + $('#ul001 .defaultLink').css('display','none'); + + } + } + + if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Article'){ + articleCount++; + + + for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){ + full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue; + full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ; + + $('#ul002').append(full_li_element); + $('#ul002 .defaultLink').css('display','none'); + + } + } + if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Example'){ + exampleCount++; + + + for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){ + full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue; + full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ; + + $('#ul003').append(full_li_element); + $('#ul003 .defaultLink').css('display','none'); + + } + } + if(i==propertyTags.length){$('#pageType').removeClass('loading');} + + } + + if(lookupCount == 0){$('#ul001').prepend('<li class=\"liveResult noMatch\">Found no result</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');} + if(articleCount == 0){$('#ul002').prepend('<li class=\"liveResult noMatch\">Found no result</li>');$('#ul002 li').css('display','block');} + if(exampleCount == 0){$('#ul003').prepend('<li class=\"liveResult noMatch\">Found no result</li>');$('#ul003 li').css('display','block');} + // reset count variables; + lookupCount=0; + articleCount = 0; + exampleCount = 0; + +} +//build regular expression object to find empty string or any number of blank +var blankRE=/^\s*$/; +function CheckEmptyAndLoadList() +{ + var pageUrl = window.location.href; + var pageVal = $('title').html(); + $('#feedUrl').remove(); + $('#pageVal').remove(); + $('#feedform').append('<input id="feedUrl" name="feedUrl" value="'+pageUrl+'" style="display:none;">'); + $('#feedform').append('<input id="pageVal" name="pageVal" value="'+pageVal+'" style="display:none;">'); + $('.liveResult').remove(); + $('.defaultLink').css('display','block'); + var value = document.getElementById('pageType').value; + if((blankRE.test(value)) || (value.length < 3)) + { + //empty inputbox + // load default li elements into the ul if empty + // loadAllList(); // replaced + $('.defaultLink').css('display','block'); + // $('.liveResult').css('display','none'); + }else{ + $('.defaultLink').css('display','none'); + } +} +/* +$(window).resize(function(){ +if($(window).width()<400) + $('body').addClass('offline'); +else + $('body').removeClass('offline'); + }); + */ +// Loads on doc ready + $(document).ready(function () { + //alert(pageUrl); + //$('#pageUrl').attr('foo',pageUrl); + var pageTitle = $('title').html(); + var currentString = $('#pageType').val() ; + if(currentString.length < 1){ + $('.defaultLink').css('display','block'); + CheckEmptyAndLoadList(); + } + + $('#pageType').keyup(function () { + var searchString = $('#pageType').val() ; + if ((searchString == null) || (searchString.length < 3)) { + $('#pageType').removeClass('loading'); + $('.liveResult').remove(); // replaces removeResults(); + CheckEmptyAndLoadList(); + $('.report').remove(); + // debug$('.content').prepend('<li>too short or blank</li>'); // debug + return; + } + if (this.timer) clearTimeout(this.timer); + this.timer = setTimeout(function () { + $('#pageType').addClass('loading'); + // debug$('.content').prepend('<li>new search started </li>');// debug + // debug$('.content').prepend('<p class=\"report\">Search string ' +searchString +'</p>'); // debug + + $.ajax({ + contentType: "application/x-www-form-urlencoded", + url: 'http://' + location.host + '/nokiasearch/GetDataServlet', + data: 'searchString='+searchString, + dataType:'xml', + type: 'post', + success: function (response, textStatus) { + + $('.liveResult').remove(); // replaces removeResults(); + $('#pageType').removeClass('loading'); + + processNokiaData(response); + + } + }); + }, 500); + }); + }); diff --git a/doc/templates/scripts/narrow.js b/doc/templates/scripts/narrow.js new file mode 100644 index 0000000000000000000000000000000000000000..12d0ce89d566ae1d2418f5859c31a2d84f974dc3 --- /dev/null +++ b/doc/templates/scripts/narrow.js @@ -0,0 +1,78 @@ +var narrowInit = function() { + /* TODO: + Could probably be more efficient, not hardcoding each element to be created + */ + // 1: Create search form + var narrowSearch = $('<div id="narrowsearch"></div>'); + var searchform = $("#qtdocsearch"); + narrowSearch.append(searchform); + $("#qtdocheader .content .qtref").after(narrowSearch); + + // 2: Create dropdowns + var narrowmenu = $('<ul id="narrowmenu" class="sf-menu"></ul>'); + + // Lookup + var lookuptext = $("#lookup h2").attr("title"); + $("#lookup ul").removeAttr("id"); + $("#lookup ul li").removeAttr("class"); + $("#lookup ul li").removeAttr("style"); + var lookupul = $("#lookup ul"); + var lookuplist = $('<li></li>'); + var lookuplink = $('<a href="#"></a>'); + lookuplink.append(lookuptext); + lookuplist.append(lookuplink); + lookuplist.append(lookupul); + narrowmenu.append(lookuplist); + + // Topics + var topicstext = $("#topics h2").attr("title"); + $("#topics ul").removeAttr("id"); + $("#topics ul li").removeAttr("class"); + $("#topics ul li").removeAttr("style"); + var topicsul = $("#topics ul"); + var topicslist = $('<li></li>'); + var topicslink = $('<a href="#"></a>'); + topicslink.append(topicstext); + topicslist.append(topicslink); + topicslist.append(topicsul); + narrowmenu.append(topicslist); + + // Examples + var examplestext = $("#examples h2").attr("title"); + $("#examples ul").removeAttr("id"); + $("#examples ul li").removeAttr("class"); + $("#examples ul li").removeAttr("style"); + var examplesul = $("#examples ul"); + var exampleslist = $('<li></li>'); + var exampleslink = $('<a href="#"></a>'); + exampleslink.append(examplestext); + exampleslist.append(exampleslink); + exampleslist.append(examplesul); + narrowmenu.append(exampleslist); + + $("#shortCut").after(narrowmenu); + $('ul#narrowmenu').superfish({ + delay: 100, + autoArrows: false, + disableHI: true + }); +} + +$(document).ready(function(){ + if ($('body').hasClass('narrow')) { + narrowInit(); + } +}); + +$(window).bind('resize', function () { + if($(window).width()<600) { + $('body').addClass('narrow'); + + if ($("#narrowsearch").length == 0) { + narrowInit(); + } + } + else { + $('body').removeClass('narrow'); + } +}); \ No newline at end of file diff --git a/doc/templates/scripts/superfish.js b/doc/templates/scripts/superfish.js new file mode 100644 index 0000000000000000000000000000000000000000..c6a9c7de0459ad3bec593e697175d60fa5b74228 --- /dev/null +++ b/doc/templates/scripts/superfish.js @@ -0,0 +1,121 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +;(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + $arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')), + over = function(){ + var $$ = $(this), menu = getMenu($$); + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : {opacity:'show'}, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){} + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); + return this; + } + }); + +})(jQuery); diff --git a/doc/templates/style/OfflineStyle.css b/doc/templates/style/OfflineStyle.css new file mode 100644 index 0000000000000000000000000000000000000000..51ea3541b1e889dbead077e3cd43bddf66a3f028 --- /dev/null +++ b/doc/templates/style/OfflineStyle.css @@ -0,0 +1,836 @@ +@media screen +{ + html + { + color: #000000; + background: #FFFFFF; + } + body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td + { + margin: 0; + padding: 0; + } + table + { + border-collapse: collapse; + border-spacing: 0; + } + fieldset, img + { + border: 0; + } + address, caption, cite, code, dfn, em, strong, th, var, optgroup + { + font-style: inherit; + font-weight: inherit; + } + del, ins + { + text-decoration: none; + } + li + { + list-style: none; + } + caption, th + { + text-align: left; + } + h1, h2, h3, h4, h5, h6 + { + font-size: 100%; + } + q:before, q:after + { + content: ''; + } + abbr, acronym + { + border: 0; + font-variant: normal; + } + sup + { + vertical-align: baseline; + } + sub + { + vertical-align: baseline; + } + tt, .qmlreadonly span, .qmldefault span + { + word-spacing:5px; + } + .heading + { + font: normal 600 16px/1.0 Arial; + } + .subtitle + { + font-size: 13px; + } + .small-subtitle + { + font-size: 13px; + } + legend + { + color: #000000; + } + input, button, textarea, select, optgroup, option + { + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + } + input, button, textarea, select + { + font-size: 100%; + } + body + { + font: normal 13px/1.2 Verdana; + color: #363534; + } + strong + { + font-weight: bold; + } + em + { + font-style: italic; + } + a + { + color: #00732f; + text-decoration: none; + } + .header, .footer, .wrapper + { + /*min-width: 600px;*/ + max-width: 1500px; + margin: 0 5px; + } + .wrapper + { + position:relative; + top:50px; + } + .wrapper .bd + { + position: relative; + } + + .header, .footer + { + display: block; + clear: both; + overflow: hidden; + } + .header + { + height: 115px; + position: relative; + } + + + .header .qtref + { + position: absolute; + top: 28px; + left: 88px; + width: 302px; + height: 22px; + } + .header .qtref span + { + display: block; + height: 22px; + } + .wrap .content h1 + { + font: 600 18px/1.2 Arial; + } + .wrap .content h2 + { + font: 600 16px/1.2 Arial; + } + .wrap .content h3 + { + font: 600 14px/1.2 Arial; + } + .wrap .content h4 + { + font: 600 12px/1.2 Arial; + } + + .wrap .content p + { + line-height: 20px; + padding: 5px; + } + .wrap .content table p + { + line-height: 20px; + padding: 0px; + } + .wrap .content ul + { + padding-left: 25px; + padding-top: 10px; + } + a:hover + { + color: #4c0033; + text-decoration: underline; + } + .content a:visited + { + color: #4c0033; + text-decoration: none; + } + .content a:visited:hover + { + color: #4c0033; + text-decoration: underline; + } + + pre + { + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; + overflow-x: auto; + } + table, pre + { + -moz-border-radius: 7px 7px 7px 7px; + background-color: #F6F6F6; + border: 1px solid #E6E6E6; + border-collapse: separate; + font-size: 11px; + /*min-width: 395px;*/ + margin-bottom: 25px; + display: inline-block; + } + thead + { + margin-top: 5px; + font:600 12px/1.2 Arial; + } + th + { + padding: 5px 15px 5px 15px; + background-color: #E1E1E1; + /* border-bottom: 1px solid #E6E6E6;*/ + border-left: 1px solid #E6E6E6; + /* border-right: 1px solid #E6E6E6;*/ + } + td + { + padding: 3px 15px 3px 20px; + /* border-left: 1px solid #E6E6E6; + border-right: 1px solid #E6E6E6;*/ + } + tr.odd td:hover, tr.even td:hover + { + /* border-right: 1px solid #C3C3C3; + border-left: 1px solid #C3C3C3;*/ + } + + td.rightAlign + { + padding: 3px 15px 3px 10px; + } + table tr.odd + { + border-left: 1px solid #E6E6E6; + background-color: #F6F6F6; + color: #66666E; + } + table tr.even + { + border-left: 1px solid #E6E6E6; + background-color: #ffffff; + color: #66666E; + } + table tr.odd td:hover, table tr.even td:hover + { + background-color: #E6E6E6; + } + + span.comment + { + color: #8B0000; + font-style: italic; + } + span.string, span.char + { + color: #254117; + } + + .qmltype + { + text-align: center; + font-size: 160%; + } + .qmlreadonly + { + float: right; + color: #254117; + } + + .qmldefault + { + float: right; + color: red; + } + + .footer + { + border-top:1px solid #E5E5E5; + min-height: 100px; + color: #797775; + font: normal 9px/1 Verdana; + text-align: center; + padding-top: 40px; + margin: 0; + } + + + .wrap + { + margin: 0 5px 0 5px; + } + .wrap .toolbar + { + display:block; + } + + .wrap .breadcrumb ul li + { + float: left; + background: url(../images/breadcrumb.png) no-repeat 0 5px; + padding-left: 15px; + margin-left: 15px; + font-weight: bold; + } + .wrap .breadcrumb ul li.last + { + font-weight: normal; + } + .wrap .breadcrumb ul li a + { + /* color: #363534;*/ + color: #00732F; + } + .wrap .breadcrumb ul li.first + { + background-image: none; + padding-left: 0; + margin-left: 0; + } + .wrap .content + { + word-wrap:break-word; + } + .wrap .content li + { + padding-left: 12px; + background: url(../images/bullet_sq.png) no-repeat 0 5px; + font: inherit; + /* color: #44a51c;*/ + margin-bottom: 10px; + } + + .wrap .content ol li { + background:none; + font: inherit; + margin-bottom:10px; + padding-left: 0px; + } + + .wrap .content ol li { + list-style-type:decimal; + } + + .wrap .content .descr ol li { + margin-left: 45px; + + } + + .offline .wrap .content + { + padding-top: 15px; + } + + .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + hr + { + background-color: #E6E6E6; + border: 1px solid #E6E6E6; + height: 1px; + width: 100%; + text-align: left; + margin: 5px 0px 5px 0px; + } + + .content .alignedsummary + { + margin: 5px; + width:100%; + } + + + .toc + { + float: right; + -moz-border-radius: 7px 7px 7px 7px; + background-color: #F6F6F6; + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; + height: auto; + width: 200px; + } + + .toc h3, .generic a + { + font: 600 12px/1.2 Arial; + } + + .wrap .content .toc ul + { + padding-left: 0px; + } + + + .wrap .content .toc .level2 + { + margin-left: 15px; + } + + .wrap .content .toc .level3 + { + margin-left: 30px; + } + + .content .toc li + { + font: normal 10px/1.2 Verdana; + background: url(../images/bullet_dn.png) no-repeat 0 5px; + } + + + .generic{ + max-width:75%; + } + .generic td{ + padding:0; + } + + .generic .odd .alphaChar{ + background-color: #F6F6F6; + } + + .generic .even .alphaChar{ + background-color: #FFFFFF; + } + + .highlightedCode + { + margin:10px; + } + + .flowList{ + vertical-align:top; + } + .alphaChar{ + width:100%; + background-color:#F6F6F6; + border:1px solid #E6E6E6; + font-size:12pt; + padding-left:10px; + margin-top:10px; + margin-bottom:10px; + } + + .flowList dl{ + } + .flowList dd{ + display:inline-block; + margin-left:10px; + width:250px; + } + .wrap .content .flowList p{ + padding:0px; + } + + .relpage + { + -moz-border-radius: 7px 7px 7px 7px; + border: 1px solid #DDDDDD; + padding: 25px 25px; + clear: both; + } + .relpage ul + { + float: none; + padding: 15px; + } + .content .relpage li + { + font: normal 11px/1.2 Verdana; + } + h3.fn, span.fn + { + background-color: #F6F6F6; + border-width: 1px; + border-style: solid; + border-color: #E6E6E6; + font-weight: bold; + word-spacing:3px; + } + + .functionIndex { + font-size:12pt; + word-spacing:10px; + margin-bottom:10px; + background-color: #F6F6F6; + border-width: 1px; + border-style: solid; + border-color: #E6E6E6; + width:100%; + } + + .centerAlign { text-align:center;} + .rightAlign {text-align:right;} + .leftAlign {text-align:left;} + .topAlign{vertical-align:top } + .functionIndex a{display:inline-block;} + + /* start index box */ + .indexbox + { + width: 100%; + display:inline-block; + } + + .indexboxcont { display: block; } + + .indexboxbar + { + border-bottom:1px solid #E5E5E5; + margin-bottom: 25px; + } + + .indexboxcont .section + { + display: inline-block; + padding:0 2% 0 1%; + vertical-align:top; + } + + .indexboxcont .section { + float: left; + } + + .indexboxcont .section p + { + padding-top: 20px; + padding-bottom: 20px; + } + .indexboxcont .sectionlist + { + display: inline-block; + vertical-align:top; + padding: 0; + } + .indexboxcont .sectionlist ul + { + margin-bottom: 20px; + } + + .indexboxcont .sectionlist ul li + { + line-height: 12px; + } + + .content .indexboxcont li + { + font: normal 600 13px/1 Verdana; + } + + .indexbox a:hover, .indexbox a:visited:hover + { + color: #4c0033; + text-decoration: underline; + } + + .indexbox a:visited + { + color: #00732f; + text-decoration: none; + } + + .indexbox .indexIcon { + width: 11%; + } + + + .indexboxcont:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + body.offline + { + background-image: none; + } + + .offline .footer { + margin: 0; + } + .offline .header + { + width: 100%; + margin: 0; + height: auto; + background-color: #ffffff; + padding: 10px 0 5px 0; + overflow: visible; + border-bottom: solid #E5E5E5 1px; + z-index:1; + position:fixed; + } + + .offline .header .content + { + } + .offline .header .qtref + { + color: #00732F; + position: static; + float: left; + margin-left: 5px; + font: bold 18px/1 Arial; + } + + .offline .header .qtref:visited + { + color: #00732F; + } + .offline .header .qtref:hover + { + color: #00732F; + text-decoration:none; + } + .offline .header .qtref span + { + background-image: none; + text-indent: 0; + text-decoration:none; + } + + .offline .wrap + { + margin: 0 5px 0 5px; + } + + .offline .wrap .toolbar + { + display:block; + padding-top:5px; + } + + .offline .wrap .breadcrumb ul li { + font-weight: normal; + } + + .offline .wrap .breadcrumb ul li a { + /*color: #44a51c;*/ + } + + .offline .wrap .breadcrumb ul li.last a { + /*color: #363534;*/ + } + + + + .narrow .indexboxcont .section { + width: 64%; + padding-left: 0; + } + + .narrow .indexboxcont .sectionlist { + width: 32.5%; + } + + .header .icon, + .sidebar, + .feedback, + .t_button, + .feedback, + #feedbackBox, + #feedback, + #blurpage, + .indexbox .indexIcon span, + .wrapper .hd, + .offline .indexbox .indexIcon, + .offline .header #nav-logo, + #offlinemenu, + #offlinesearch, + .offline .header #nav-topright, + .offline .header #shortCut , + .offline .wrapper .hd, + .offline .wrapper .ft, + .offline .sidebar, + .offline .wrap .feedback + { + display:none; + } + + /* end offline mode */ +#narrowmenu { + display: none; + float: right; + margin: 15px 40px 0 0; + font-size: 11px; + } + + .narrow #narrowmenu { + display: block; + } + + #narrowsearch{ + display:none; + } + + #narrowmenu ul + { + border-bottom:solid 1px #E5E5E5; + border-left:solid 1px #E5E5E5; + border-right:solid 1px #E5E5E5; + } + + #narrowmenu a { + line-height: 1.1; + background: url(../images/arrow_down.png) no-repeat 100% 50%; + white-space: nowrap; + padding: 0 16px 0 5px; + } + + #narrowmenu li { + margin-left: 20px; + } + + #narrowmenu li li { + margin: 0 0 5px 0; + } + + #narrowmenu li li a { + padding: 0; + background-image: none; + } + + #narrowmenu li, + #narrowmenu li ul { + background-color: #fff; + } + + #narrowmenu li ul { + width: auto; + padding: 5px; + margin-top:-15px; + } + + .sf-menu li:hover ul, .sf-menu li.sfHover ul { + top: 1.2em; + } +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + line-height: 1.0; +} +.sf-menu ul { + position: absolute; + top: -999em; + width: 10em; /* left offset of submenus need to match (see below) */ +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; /* fixes IE7 'sticky bug' */ +} +.sf-menu li { + float: left; + position: relative; +} +.sf-menu a { + display: block; + position: relative; +} +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + left: 0; + top: 2.5em; /* match top ul list item height */ + z-index: 99; +} +ul.sf-menu li:hover li ul, +ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, +ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} + +} +/* end of screen media */ + +/* start of print media */ + +@media print +{ + input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft + { + display: none; + background: none; + } + .content + { + position: absolute; + top: 0px; + left: 0px; + background: none; + display: block; + } +} +/* end of print media */ diff --git a/doc/templates/style/narrow.css b/doc/templates/style/narrow.css new file mode 100644 index 0000000000000000000000000000000000000000..05159aa568db9471e8b07a42cbbe96f7e50d97f8 --- /dev/null +++ b/doc/templates/style/narrow.css @@ -0,0 +1,250 @@ + /* start narrow mode */ + + body.narrow + { + background-image: none; + } + + .narrow a { + color: #44a51c; + } + + .narrow .header, .narrow .header .content, .narrow .footer, .narrow .wrapper { + margin: 0 7px; + min-width: 300px; + } + + .narrow .footer { + margin: 0; + } + .narrow .header + { + width: 100%; + margin: 0; + height: auto; + background: #fff url(../images/header_bg.png) repeat-x 0 100%; + padding: 10px 0 5px 0; + overflow: visible; + } + + .narrow .header .content + { + } + + .narrow .header #nav-logo + { + display: none; + } + + .narrow .header .qtref + { + width: auto; + height: auto; + color: #363534; + position: static; + float: left; + margin-left: 25px; + font: bold 18px/1 Arial; + } + + .narrow .header .qtref a + { + color: #363534; + } + + .narrow .header .qtref span + { + background-image: none; + text-indent: 0; + } + + .narrow .header #nav-topright + { + display: none; + } + + .narrow .header #shortCut + { + clear: both; + font-weight: normal; + position: static; + float: left; + margin: 15px 0 0 25px; + overflow: hidden; + padding: 0; + height: auto; + } + + .narrow .header #shortCut ul + { + float: none; + margin: 0; + width: auto; + font-size: 11px; + } + + .narrow .header #shortCut ul li + { + background-image: none; + } + + .narrow .header #shortCut ul .shortCut-topleft-active, + .narrow .header #shortCut ul .shortCut-topleft-inactive + { + background-image: none; + height: auto; + padding: 0; + width: auto; + } + .narrow .header #shortCut ul li a + { + color: #44a51c; + } + + .narrow .wrapper .hd + { + background: url(../images/bg_ul_blank.png) no-repeat 0 0; + } + + .narrow .wrapper .bd + { + background: url(../images/bg_l_blank.png) repeat-y 0 0; + } + + .narrow .wrapper .ft + { + background: url(../images/bg_ll_blank.png) no-repeat 0 0; + } + + .narrow .sidebar + { + display: none; + } + + .narrow .wrap + { + margin: 0 5px 0 5px; + } + + .narrow .wrap .toolbar + { + border-bottom: none; + } + + .narrow .wrap .content + { + padding-top: 15px; + } + + .narrow .wrap .feedback + { + display: none; + } + + .narrow .wrap .breadcrumb ul li { + font-weight: normal; + } + + .narrow .wrap .breadcrumb ul li a { + color: #44a51c; + } + + .narrow .wrap .breadcrumb ul li.last a { + color: #363534; + } + + #narrowsearch { + display: none; + } + + .narrow #narrowsearch { + display: block; + float: right; + margin-right: 25px; + _position: relative; + } + + .narrow #narrowsearch fieldset { + _position: absolute; + _margin-top: -1px; + } + + .narrow #narrowsearch { + background: url("http://doc.qt.nokia.com/prototype/html/images/sprites-combined.png") no-repeat scroll -6px -348px transparent; + height: 21px; + padding: 2px 0 0 5px; + width: 167px; + } + + .narrow #narrowsearch input { + border: none; + font: 13px/1.2 Verdana; + height: 19px; + outline: none; + padding: 0; + width: 158px; + *border: 1px solid #fff; + *height: 17px; + _height: 18px; + } + + .narrow .indexbox .indexIcon { + display: none; + } + + .narrow .indexboxcont .section { + width: 64%; + padding-left: 0; + } + + .narrow .indexboxcont .sectionlist { + width: 32.5%; + } + + #narrowmenu { + display: none; + float: right; + margin: 15px 40px 0 0; + font-size: 11px; + } + + .narrow #narrowmenu { + display: block; + } + + #narrowmenu a { + line-height: 1.1; + background: url(../images/arrow_down.png) no-repeat 100% 50%; + white-space: nowrap; + padding: 0 16px 0 5px; + } + + #narrowmenu li { + margin-left: 20px; + } + + #narrowmenu li li { + margin: 0 0 5px 0; + } + + #narrowmenu li li a { + padding: 0; + background-image: none; + } + + #narrowmenu li, + #narrowmenu li ul { + background-color: #fff; + margin-top:-1px; + } + + #narrowmenu li ul { + width: auto; + padding: 5px; + } + + .sf-menu li:hover ul, .sf-menu li.sfHover ul { + top: 1.2em; + } + + /* end narrow mode */ diff --git a/doc/templates/style/style.css b/doc/templates/style/style.css index 7be80d5f153d4fc9014e55db58b87614c4672973..47fe2e0a04ad2d2e2ef25cfa291aaec056436ef0 100644 --- a/doc/templates/style/style.css +++ b/doc/templates/style/style.css @@ -39,7 +39,7 @@ h1, h2, h3, h4, h5, h6 { font-size: 100%; - font-weight: normal; +/* font-weight: normal; */ } q:before, q:after { @@ -57,6 +57,23 @@ sub { vertical-align: baseline; + } + tt, .qmlreadonly span, .qmldefault span + { + word-spacing:5px; + } + .heading + { + font: normal 600 16px/1.0 Arial; + padding-bottom: 15px; + } + .subtitle + { + font-size: 13px; + } + .small-subtitle + { + font-size: 13px; } legend { @@ -73,7 +90,6 @@ { font-size: 100%; } - /* Page style */ html { background-color: #e5e5e5; @@ -92,11 +108,16 @@ { font-style: italic; } + a + { + color: #00732f; + text-decoration: none; + } .header, .footer, .wrapper { min-width: 600px; max-width: 1500px; - margin: 0 6px; + margin: 0 30px; } .wrapper { @@ -106,23 +127,19 @@ { padding-left: 216px; height: 15px; - background: url(../images/bg_ul.png) no-repeat 0 0; + background: url(../images/page.png) no-repeat 0 0; overflow: hidden; } .offline .wrapper .hd { - background: url(../images/bg_ul_blank.png) no-repeat 0 0; + background: url(../images/page.png) no-repeat 0 -15px; } .wrapper .hd span { height: 15px; display: block; - background: url(../images/bg_ur.png) no-repeat 100% 0; overflow: hidden; - } - .offline .wrapper .hd span - { - /* background: url(../images/bg_ur_blank.png) no-repeat 100% 0; */ + background: url(../images/page.png) no-repeat 100% -30px; } .wrapper .bd { @@ -137,18 +154,18 @@ { padding-left: 216px; height: 15px; - background: url(../images/bg_ll.png) no-repeat 0 0; + background: url(../images/page.png) no-repeat 0 -75px; overflow: hidden; } .offline .wrapper .ft { - background: url(../images/bg_ll_blank.png) no-repeat 0 0; + background: url(../images/page.png) no-repeat 0 -90px; } .wrapper .ft span { height: 15px; display: block; - background: url(../images/bg_lr.png) no-repeat 100% 0; + background: url(../images/page.png) no-repeat 100% -60px; overflow: hidden; } .header, .footer @@ -182,186 +199,9 @@ width: 302px; height: 22px; text-indent: -999em; - background: url(../images/header.png) no-repeat 0 0; - } - /* header elements */ - #nav-topright - { - height: 70px; - } - - #nav-topright ul - { - list-style-type: none; - float: right; - width: 370px; - margin-top: 11px; - } - - #nav-topright li - { - display: inline-block; - margin-right: 20px; - float: left; - } - - #nav-topright li.nav-topright-last - { - margin-right: 0; - } - - #nav-topright li a - { - background: transparent url(../images/sprites-combined.png) no-repeat; - height: 18px; - display: block; - overflow: hidden; - text-indent: -9999px; - } - - #nav-topright li.nav-topright-home a - { - width: 65px; - background-position: -2px -91px; - } - - #nav-topright li.nav-topright-home a:hover - { - background-position: -2px -117px; - } - - - #nav-topright li.nav-topright-dev a - { - width: 30px; - background-position: -76px -91px; - } - - #nav-topright li.nav-topright-dev a:hover - { - background-position: -76px -117px; - } - - - #nav-topright li.nav-topright-labs a - { - width: 40px; - background-position: -114px -91px; - } - - #nav-topright li.nav-topright-labs a:hover - { - background-position: -114px -117px; - } - - #nav-topright li.nav-topright-doc a - { - width: 32px; - background-position: -162px -91px; - } - - #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a - { - background-position: -162px -117px; - } - - #nav-topright li.nav-topright-blog a - { - width: 40px; - background-position: -203px -91px; - } - - #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a - { - background-position: -203px -117px; - } - - #nav-topright li.nav-topright-shop a - { - width: 40px; - background-position: -252px -91px; - } - - #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a - { - background-position: -252px -117px; - } - - #nav-logo - { - background: transparent url( "../images/sprites-combined.png" ) no-repeat 0 -225px; - left: -3px; - position: absolute; - width: 75px; - height: 75px; - top: 13px; - } - #nav-logo a - { - width: 75px; - height: 75px; - display: block; - text-indent: -9999px; - overflow: hidden; - } - /* Clearing */ - .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after - { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - /* ^ Clearing */ - - - - .shortCut-topleft-inactive - { - padding-left: 3px; - background: transparent url( "../images/sprites-combined.png" ) repeat 0px -58px; - height: 20px; - /*width: 93px;*/ - } - .shortCut-topleft-inactive span - { - font-variant: normal; - } - #shortCut - { - padding-top: 10px; - font-weight: bolder; - color: #b0adab; - } - #shortCut ul - { - list-style-type: none; - float: left; - width: 347px; - margin-left: 100px; - } - #shortCut li - { - display: inline-block; - margin-right: 25px; - float: left; - white-space: nowrap; - } - #shortCut li a - { - color: #b0adab; - text-decoration: none; - } - #shortCut li a:hover - { - color: #44a51c; - text-decoration: none; + background: url(../images/sprites-combined.png) no-repeat -78px -235px; } - /* end of header elements */ - - /* menu element */ .sidebar { float: left; @@ -369,32 +209,32 @@ width: 200px; font-size: 11px; } - .sidebar a - { - color: #00732f; - text-decoration: none; - } - .offline .sidebar, .offline .feedback + + .offline .sidebar, .offline .feedback, .offline .t_button { display: none; } + .sidebar .searchlabel { padding: 0 0 2px 17px; font: normal bold 11px/1.2 Verdana; } + .sidebar .search { padding: 0 15px 0 16px; } + .sidebar .search form { - width: 167px; - height: 21px; - padding: 2px 0 0 5px; - background: url(../images/form_bg.png) no-repeat 0 0; + background: url(../images/sprites-combined.png) no-repeat -6px -348px; + height:21px; + padding:2px 0 0 5px; + width:167px; } - .sidebar .search form fieldset input#searchstring + + .sidebar .search form input#pageType { width: 158px; height: 19px; @@ -403,35 +243,68 @@ outline: none; font: 13px/1.2 Verdana; } + .sidebar .box { padding: 17px 15px 5px 16px; } + .sidebar .box .first { background-image: none; } + .sidebar .box h2 { font: normal 18px/1.2 Arial; - padding: 15px 0 0 40px; + padding: 0; min-height: 32px; } + .sidebar .box h2 span + { + overflow: hidden; + display: inline-block; + } .sidebar .box#lookup h2 { - background: url(../images/api_lookup.png) no-repeat 0 0; + background-image: none; + } + .sidebar #lookup.box h2 span + { + background: url(../images/sprites-combined.png) no-repeat -6px -311px; + width: 27px; + height: 35px; + margin-right: 13px; } .sidebar .box#topics h2 { - background: url(../images/api_topics.png) no-repeat 0 0; + background-image: none; + } + .sidebar #topics.box h2 span + { + background: url(../images/sprites-combined.png) no-repeat -94px -311px; + width: 27px; + height: 32px; + margin-right: 13px; } .sidebar .box#examples h2 { - background: url(../images/api_examples.png) no-repeat 0 0; + background-image: none; + } + .sidebar #examples.box h2 span + { + background: url(../images/sprites-combined.png) no-repeat -48px -311px; + width: 30px; + height: 31px; + margin-right: 9px; } + .sidebar .box .list { display: block; + max-height:200px; + overflow-y:auto; + overflow-x:none; } .sidebar .box .live { @@ -443,33 +316,34 @@ { text-decoration: underline; } + .sidebar .box ul + { + padding:10px; + } .sidebar .box ul li { padding-left: 12px; background: url(../images/bullet_gt.png) no-repeat 0 5px; - margin-bottom: 15px; + margin-bottom: 5px; } .sidebar .bottombar { background: url(../images/box_bg.png) repeat-x 0 bottom; } - /* content elements */ .wrap { - overflow: hidden; + margin: 0 5px 0 208px; + overflow: visible; } .offline .wrap { margin: 0 5px 0 5px; } - /* tool bar */ .wrap .toolbar { background-color: #fafafa; border-bottom: 1px solid #d1d1d1; - height: 20px; - margin-left: 3px; - margin-right: 5px; + height: 20px; position: relative; } .wrap .toolbar .toolblock @@ -487,7 +361,7 @@ { padding: 0 0 10px 21px; right: 5px; - vertical-align: top; + vertical-align: middle; overflow: hidden; } .wrap .toolbar .toolbuttons .active @@ -507,32 +381,56 @@ font-weight: bold; color: #B0ADAB; } - #smallA + + .toolbuttons #print + { + border-left: 1px solid #c5c4c4; + margin-top: 0; + padding-left: 7px; + text-indent: 0; + } + .toolbuttons #print a + { + width: 16px; + height: 16px; + } + + .toolbuttons #print a span + { + width: 16px; + height: 16px; + text-indent: -999em; + display: block; + overflow: hidden; + background: url(../images/sprites-combined.png) no-repeat -137px -311px; + } + + .toolbuttons #smallA { font-size: 10pt; } - #medA + .toolbuttons #medA { font-size: 12pt; } - #bigA + .toolbuttons #bigA { font-size: 14pt; + margin-right: 7px; } + #smallA:hover, #medA:hover, #bigA:hover { color: #00732F; } - #print + + .offline .wrap .breadcrumb { - font-size: 14pt; - line-height: 20pt; } - #printIcon + + .wrap .breadcrumb ul { - margin-left: 5px; } - /* bread crumbs */ .wrap .breadcrumb ul li { float: left; @@ -545,6 +443,10 @@ { font-weight: normal; } + .wrap .breadcrumb ul li a + { + color: #363534; + } .wrap .breadcrumb ul li.first { background-image: none; @@ -553,30 +455,31 @@ } .wrap .content { - padding: 8px; - position: relative; + padding: 30px; + word-wrap:break-word; } - /* text elements */ - .heading + + .wrap .content li { - font: normal 600 16px/1.0 Arial; - padding-bottom: 15px; + padding-left: 12px; + background: url(../images/bullet_sq.png) no-repeat 0 5px; + font: normal 400 10pt/1 Verdana; + /* color: #44a51c;*/ + margin-bottom: 10px; } - - .subtitle + .content li:hover { - font-size: 13px; + /* text-decoration: underline;*/ } - .small-subtitle + .offline .wrap .content { - font-size: 13px; + padding-top: 15px; } - + .wrap .content h1 { font: 600 18px/1.2 Arial; - padding-bottom: 15px; } .wrap .content h2 { @@ -588,31 +491,18 @@ } .wrap .content p { - line-height:20px; - padding:10px 5px 10px 5px; - } - .wrap .content ul - { - padding-left: 10px; - } - .wrap .content li - { - padding-left: 12px; - background: url(../images/bullet_sq.png) no-repeat 0 5px; - font: normal 400 10pt/1 Verdana; - margin-bottom: 10px; - line-height: 14px; + line-height: 20px; + padding: 5px; } - - .wrap .content li ul + .wrap .content table p { - margin-top: 10px; - } - - a + line-height: 20px; + padding: 0px; + } + .wrap .content ul { - color: #00732F; - text-decoration: none; + padding-left: 25px; + padding-top: 10px; } a:hover { @@ -624,22 +514,26 @@ color: #4c0033; text-decoration: none; } - .offline .wrap .content + .content a:visited:hover { - padding-top: 15px; - } - .footer + color: #4c0033; + text-decoration: underline; + } .footer { min-height: 100px; color: #797775; font: normal 9px/1 Verdana; text-align: center; padding-top: 40px; + background-color: #E6E7E8; + margin: 0; } .feedback { - float: right; - padding-right: 10px; + float: none; + position: absolute; + right: 15px; + bottom: 10px; font: normal 8px/1 Verdana; color: #B0ADAB; } @@ -650,37 +544,244 @@ color: #00732F; text-decoration: underline; } + .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + #nav-topright + { + height: 70px; + } + + #nav-topright ul + { + list-style-type: none; + float: right; + width: 370px; + margin-top: 11px; + } + + #nav-topright li + { + display: inline-block; + margin-right: 20px; + float: left; + } + + #nav-topright li.nav-topright-last + { + margin-right: 0; + } + + #nav-topright li a + { + background: transparent url(../images/sprites-combined.png) no-repeat; + height: 18px; + display: block; + overflow: hidden; + text-indent: -9999px; + } + + #nav-topright li.nav-topright-home a + { + width: 65px; + background-position: -2px -91px; + } + + #nav-topright li.nav-topright-home a:hover + { + background-position: -2px -117px; + } + + + #nav-topright li.nav-topright-dev a + { + width: 30px; + background-position: -76px -91px; + } + + #nav-topright li.nav-topright-dev a:hover + { + background-position: -76px -117px; + } + + + #nav-topright li.nav-topright-labs a + { + width: 40px; + background-position: -114px -91px; + } + + #nav-topright li.nav-topright-labs a:hover + { + background-position: -114px -117px; + } + + #nav-topright li.nav-topright-doc a + { + width: 32px; + background-position: -162px -91px; + } + + #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a + { + background-position: -162px -117px; + } + + #nav-topright li.nav-topright-blog a + { + width: 40px; + background-position: -203px -91px; + } + + #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a + { + background-position: -203px -117px; + } + + #nav-topright li.nav-topright-shop a + { + width: 40px; + background-position: -252px -91px; + } + + #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a + { + background-position: -252px -117px; + } + + #nav-logo + { + background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px; + left: -3px; + position: absolute; + width: 75px; + height: 75px; + top: 13px; + } + #nav-logo a + { + width: 75px; + height: 75px; + display: block; + text-indent: -9999px; + overflow: hidden; + } + + + .shortCut-topleft-inactive + { + padding-left: 3px; + background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px; + height: 20px; + width: 47px; + } + .shortCut-topleft-inactive span + { + font-variant: normal; + } + .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover + { + text-decoration:none; + } + #shortCut + { + padding-top: 10px; + font-weight: bolder; + color: #b0adab; + } + #shortCut ul + { + list-style-type: none; + float: left; + width: 347px; + margin-left: 100px; + } + #shortCut li + { + display: inline-block; + margin-right: 25px; + float: left; + white-space: nowrap; + } + #shortCut li a + { + color: #b0adab; + } + #shortCut li a:hover + { + color: #44a51c; + } + hr { - background-color: #e0e0e0; + background-color: #E6E6E6; + border: 1px solid #E6E6E6; height: 1px; width: 100%; text-align: left; margin: 15px 0px 15px 0px; } - + .content .alignedsummary { - margin: 6px; + margin: 15px; + } + pre + { + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; + overflow-x: auto; } - /* tables */ table, pre { -moz-border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #E6E6E6; border-collapse: separate; - font-size: 11px; - min-width: 395px; + font-size: 11px; + /*min-width: 395px;*/ margin-bottom: 25px; + display: inline-block; + } + thead + { + margin-top: 5px; + font:600 12px/1.2 Arial; + } + th + { + padding: 5px 15px 5px 15px; + background-color: #E1E1E1; + /* border-bottom: 1px solid #E6E6E6;*/ + border-left: 1px solid #E6E6E6; + /* border-right: 1px solid #E6E6E6;*/ + } + td + { + padding: 3px 15px 3px 20px; + /* border-left: 1px solid #E6E6E6; + border-right: 1px solid #E6E6E6;*/ + } + tr.odd td:hover, tr.even td:hover + { + /* border-right: 1px solid #C3C3C3; + border-left: 1px solid #C3C3C3;*/ } - thead{margin-top: 5px;} - th{ padding: 3px 6px 3px 6px; font-weight: bold; } - td{padding: 3px 6px 3px 10px;} + + td.rightAlign + { + padding: 3px 15px 3px 10px; + } table tr.odd { border-left: 1px solid #E6E6E6; - background-color: #F6F6F6; + background-color: #F6F6F6; color: #66666E; } table tr.even @@ -689,14 +790,11 @@ background-color: #ffffff; color: #66666E; } - table tr.odd:hover - { - background-color: #E6E6E6; - } - table tr.even:hover + table tr.odd td:hover, table tr.even td:hover { background-color: #E6E6E6; } + span.comment { color: #8B0000; @@ -706,15 +804,7 @@ { color: #254117; } - pre - { - -moz-border-radius:7px 7px 7px 7px; - background-color:#F6F6F6; - border:1px solid #DDDDDD; - margin:0 20px 10px 0; - padding:10px; - overflow-x:auto; - } + .qmltype { text-align: center; @@ -725,24 +815,28 @@ float: right; color: #254117; } - .qmldefault. + + .qmldefault { float: right; color: red; } + .qmldoc { } + *.qmlitem p { } + #feedbackBox { - display:none; - -moz-border-radius:7px 7px 7px 7px; - border:1px solid #DDDDDD; - position:fixed; - top:100px; + display: none; + -moz-border-radius: 7px 7px 7px 7px; + border: 1px solid #DDDDDD; + position: fixed; + top: 100px; left: 33%; height: 190px; width: 400px; @@ -750,29 +844,29 @@ background-color: #e6e7e8; z-index: 4; } - #feedcloseX a + #feedcloseX { - display:inline; + display: inline; padding: 5px 5px 0 0; - margin-bottom:3px; + margin-bottom: 3px; color: #363534; - font-weight:600; + font-weight: 600; float: right; text-decoration: none; } + #feedbox - /* here */ { - display:inline; + display: inline; width: 370px; height: 120px; - margin:0px 25px 10px 15px; + margin: 0px 25px 10px 15px; } #feedsubmit { - display:inline; - float:right; - margin:4px 32px 0 0; + display: inline; + float: right; + margin: 4px 32px 0 0; } #blurpage { @@ -788,28 +882,77 @@ } .toc { - float: right; - -moz-border-radius:7px 7px 7px 7px; - background-color:#F6F6F6; - border:1px solid #DDDDDD; - margin:0 20px 10px 10px; - padding:10px 6px 10px 10px; + float: right; + -moz-border-radius: 7px 7px 7px 7px; + background-color: #F6F6F6; + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; height: auto; width: 200px; } - .toc h3 + .toc h3, .generic a { - font:600 12px/1.2 Arial; + font: 600 12px/1.2 Arial; } + .generic{ + max-width:75%; + } + .generic td{ + padding:0; + } + + .generic .odd .alphaChar{ + background-color: #F6F6F6; + } + + .generic .even .alphaChar{ + background-color: #FFFFFF; + } + + .alignedsummary{} + .propsummary{} + .memItemLeft{} + .memItemRight{} + .bottomAlign{} + .highlightedCode + { + margin:10px; + } + .LegaleseLeft{} + .valuelist{} + .annotated{} + .obsolete{} + .compat{} + .flags{} + .qmlsummary{} + .qmlitem{} + .qmlproto{} + .qmlname{} + .qmlreadonly{} + .qmldefault{} + .qmldoc{} + .qt-style{} + .redFont{} + code{} + .wrap .content .toc ul { - float: left; -/* padding: 6px; */ - + padding-left: 0px; + } + + + .wrap .content .toc .level2 + { + margin-left: 15px; + } + + .wrap .content .toc .level3 + { + margin-left: 30px; } - .content .toc li { @@ -817,134 +960,220 @@ background: url(../images/bullet_dn.png) no-repeat 0 5px; } - .relpage + .relpage { -moz-border-radius: 7px 7px 7px 7px; border: 1px solid #DDDDDD; padding: 25px 25px; - clear:both; + clear: both; } .relpage ul { float: none; padding: 15px; } - .content .relpage li + .content .relpage li { font: normal 11px/1.2 Verdana; } - /* edit */ h3.fn, span.fn { background-color: #F6F6F6; border-width: 1px; border-style: solid; border-color: #E6E6E6; - font-weight: bold; - padding-left: 3px; - /* padding: 6px 0px 6px 10px;*/ - /* margin: 42px 0px 0px 0px;*/ + font-weight: bold; + word-spacing:3px; } - /* edit */ - .indexbox - { - width: 100%; - } - .content .indexboxcont li - { - font: normal 600 13px/1 Verdana; - } + .functionIndex { + font-size:12pt; + word-spacing:10px; + margin-bottom:10px; + background-color: #F6F6F6; + border-width: 1px; + border-style: solid; + border-color: #E6E6E6; + width:100%; + } + + .centerAlign + { + text-align:center; + } + + .rightAlign + { + text-align:right; + } - /* .indexbox a - { - color: #00732f; - text-decoration: none; - }*/ - .indexbox a:hover, .indexbox a:visited:hover - { - color: #4c0033; - text-decoration: underline; - } - .indexbox a:visited + + .leftAlign + { + text-align:left; + } + + .topAlign{ + vertical-align:top + } + + .functionIndex a{ + display:inline-block; + } + + /* start index box */ + .indexbox { - color: #00732f; - text-decoration: none; + width: 100%; + display:inline-block; } .indexboxcont { display: block; + /* overflow: hidden;*/ } .indexboxbar { - background: transparent url( "../images/horBar.png" ) repeat-x left bottom; + background: transparent url(../images/horBar.png ) repeat-x left bottom; margin-bottom: 25px; + /* background-image: none; + border-bottom: 1px solid #e2e2e2;*/ } .indexboxcont .section { - display: inline-block; + display: inline-block; width: 49%; *width:42%; _width:42%; padding:0 2% 0 1%; vertical-align:top; + } .indexboxcont .indexIcon - { + { width: 11%; *width:18%; _width:18%; overflow:hidden; + } + +.indexboxcont .section { + float: left; +} + .indexboxcont .section p - { + { padding-top: 20px; padding-bottom: 20px; } - .indexboxcont .sectionlist { display: inline-block; - width: 33%; - margin-right: -2px; - vertical-align: top; + vertical-align:top; + width: 32.5%; padding: 0; - } - .tricol - { - } .indexboxcont .sectionlist ul { - padding-left: 15px; margin-bottom: 20px; } -/* + .indexboxcont .sectionlist ul li { line-height: 12px; } -*/ - .lastcol + + .content .indexboxcont li + { + font: normal 600 13px/1 Verdana; + } + + .indexbox a:hover, .indexbox a:visited:hover { - display: inline-block; - vertical-align: top; - padding: 0; - max-width: 25%; + color: #4c0033; + text-decoration: underline; } - .tricol .lastcol + .indexbox a:visited { - margin-left:-6px; + color: #00732f; + text-decoration: none; } + + .indexbox .indexIcon { + width: 11%; + } - /*.toc ul*/ + + .indexbox .indexIcon span + { + display: block; + } + + .indexbox.guide .indexIcon span + { + width: 96px; + height: 137px; + background: url(../images/sprites-combined.png) no-repeat -5px -376px; + padding: 0; + } + + .indexbox.tools .indexIcon span + { + width: 115px; + height: 137px; + background: url(../images/sprites-combined.png) no-repeat -111px -376px; + padding: 0; + } + .indexboxcont:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + +.sidebar .search form input.loading +{ + background:url("../images/spinner.gif") no-repeat scroll right center transparent; +} + + /* end of screen media */ + +.flowList{ +vertical-align:top; +} +.alphaChar{ +width:100%; +background-color:#F6F6F6; +border:1px solid #E6E6E6; +font-size:12pt; +padding-left:10px; +margin-top:10px; +margin-bottom:10px; +} + +.flowList dl{ +} +.flowList dd{ +display:inline-block; +margin-left:10px; +width:250px; +} +.wrap .content .flowList p{ +padding:0px; +} +pre.highlightedCode { + display: block; + overflow:hidden; +} - /* end page elements */ } /* end of screen media */ @@ -952,7 +1181,7 @@ @media print { - .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft + input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft { display: none; background: none; diff --git a/doc/templates/style/superfish.css b/doc/templates/style/superfish.css new file mode 100644 index 0000000000000000000000000000000000000000..0cf0f7dc960245acd4b5e77bf0f3310ffdd98a8b --- /dev/null +++ b/doc/templates/style/superfish.css @@ -0,0 +1,51 @@ +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + line-height: 1.0; +} +.sf-menu ul { + position: absolute; + top: -999em; + width: 10em; /* left offset of submenus need to match (see below) */ +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; /* fixes IE7 'sticky bug' */ +} +.sf-menu li { + float: left; + position: relative; +} +.sf-menu a { + display: block; + position: relative; +} +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + left: 0; + top: 2.5em; /* match top ul list item height */ + z-index: 99; +} +ul.sf-menu li:hover li ul, +ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, +ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} diff --git a/doc/templates/style/superfish_skin.css b/doc/templates/style/superfish_skin.css new file mode 100644 index 0000000000000000000000000000000000000000..8d84827c4125f738e2f412dc880c39cedc1378ff --- /dev/null +++ b/doc/templates/style/superfish_skin.css @@ -0,0 +1,83 @@ + +/*** DEMO SKIN ***/ +.sf-menu { + float: left; + margin-bottom: 1em; +} +.sf-menu a { + border-left: 1px solid #fff; + border-top: 1px solid #CFDEFF; + padding: .75em 1em; + text-decoration:none; +} +.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ + color: #13a; +} +.sf-menu li { + background: #BDD2FF; +} +.sf-menu li li { + background: #AABDE6; +} +.sf-menu li li li { + background: #9AAEDB; +} +.sf-menu li:hover, .sf-menu li.sfHover, +.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { + background: #CFDEFF; + outline: 0; +} + +/*** arrows **/ +.sf-menu a.sf-with-ul { + padding-right: 2.25em; + min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ +} +.sf-sub-indicator { + position: absolute; + display: block; + right: .75em; + top: 1.05em; /* IE6 only */ + width: 10px; + height: 10px; + text-indent: -999em; + overflow: hidden; + background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ +} +a > .sf-sub-indicator { /* give all except IE6 the correct values */ + top: .8em; + background-position: 0 -100px; /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +a:focus > .sf-sub-indicator, +a:hover > .sf-sub-indicator, +a:active > .sf-sub-indicator, +li:hover > a > .sf-sub-indicator, +li.sfHover > a > .sf-sub-indicator { + background-position: -10px -100px; /* arrow hovers for modern browsers*/ +} + +/* point right for anchors in subs */ +.sf-menu ul .sf-sub-indicator { background-position: -10px 0; } +.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } +/* apply hovers to modern browsers */ +.sf-menu ul a:focus > .sf-sub-indicator, +.sf-menu ul a:hover > .sf-sub-indicator, +.sf-menu ul a:active > .sf-sub-indicator, +.sf-menu ul li:hover > a > .sf-sub-indicator, +.sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: -10px 0; /* arrow hovers for modern browsers*/ +} + +/*** shadows for all but IE6 ***/ +.sf-shadow ul { + background: url('../images/shadow.png') no-repeat bottom right; + padding: 0 8px 9px 0; + -moz-border-radius-bottomleft: 17px; + -moz-border-radius-topright: 17px; + -webkit-border-top-right-radius: 17px; + -webkit-border-bottom-left-radius: 17px; +} +.sf-shadow ul.sf-shadow-off { + background: transparent; +} diff --git a/share/qtcreator/translations/extract-customwizards.xq.in b/share/qtcreator/translations/extract-customwizards.xq.in index 0511c217d48bb80423b6eb58b7b887a20b31472f..2112c4be8399a94d91f92574dd0df6d838ac5893 100644 --- a/share/qtcreator/translations/extract-customwizards.xq.in +++ b/share/qtcreator/translations/extract-customwizards.xq.in @@ -1,6 +1,8 @@ let $files := ( $$CUSTOMWIZARD_FILES ) let $prefix := string(\"QT_TRANSLATE_NOOP("ProjectExplorer::CustomWizard", "\") let $suffix := concat(\"")\", codepoints-to-string(10)) +where empty($files) +return for $file in $files let $doc := doc($file) for $text in ($doc/*:wizard/*:description, $doc/*:wizard/*:displayname, $doc/*:wizard/*:displaycategory, $doc/*:wizard/*:fieldpagetitle, $doc/*:wizard/*:fields/*:field/*:fielddescription) diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro index a16da1983d011dcfd65e0c13d61cbf7cd61ac935..75e551205eb07e2c89d99d1066ce5bfaa6586dd1 100644 --- a/share/qtcreator/translations/translations.pro +++ b/share/qtcreator/translations/translations.pro @@ -1,6 +1,7 @@ include(../../../qtcreator.pri) -LANGUAGES = cs de es fr hu it ja pl ru sl +LANGUAGES = de pl ru +#LANGUAGES = cs es fr hu it ja sl # var, prepend, append defineReplace(prependAll) { diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp index f60b2c32defcab32a7cac038f5da23045b0d59b7..cb2af604c6f234e9a49d5eb759a08ee5f875035f 100644 --- a/src/libs/extensionsystem/pluginview.cpp +++ b/src/libs/extensionsystem/pluginview.cpp @@ -221,16 +221,13 @@ int PluginView::parsePluginSpecs(QTreeWidgetItem *parentItem, Qt::CheckState &gr ++loadCount; } - if (!m_whitelist.contains(spec->name())) + if (!m_whitelist.contains(spec->name())) { pluginItem->setData(C_LOAD, Qt::CheckStateRole, state); - else { - QColor disabledColor = palette().color(QPalette::Disabled,QPalette::WindowText).lighter(120); + } else { pluginItem->setData(C_LOAD, Qt::CheckStateRole, Qt::Checked); - pluginItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - pluginItem->setSizeHint(C_LOAD, QSize(1,1)); - pluginItem->setForeground(C_LOAD, QBrush(disabledColor)); // QBrush(Qt::white, Qt::NoBrush)); - //pluginItem->setBackground(C_LOAD, QBrush(Qt::white, Qt::NoBrush)); + pluginItem->setFlags(Qt::ItemIsSelectable); } + pluginItem->setToolTip(C_LOAD, tr("Load on Startup")); m_specToItem.insert(spec, pluginItem); @@ -333,7 +330,7 @@ void PluginView::updatePluginSettings(QTreeWidgetItem *item, int column) child->setData(C_LOAD, Qt::CheckStateRole, state); } else { child->setData(C_LOAD, Qt::CheckStateRole, Qt::Checked); - child->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + child->setFlags(Qt::ItemIsSelectable); } } updatePluginDependencies(); @@ -347,6 +344,9 @@ void PluginView::updatePluginDependencies() { foreach (PluginSpec *spec, PluginManager::instance()->loadQueue()) { bool disableIndirectly = false; + if (m_whitelist.contains(spec->name())) + continue; + foreach(const PluginSpec *depSpec, spec->dependencySpecs()) { if (!depSpec->isEnabled() || depSpec->isDisabledIndirectly()) { disableIndirectly = true; diff --git a/src/plugins/coreplugin/basemode.h b/src/plugins/coreplugin/basemode.h index 1e0fcbcc13c9f9712f75fbc0338770de017bd48b..8266931729db1159a74a72250a0e7aa968160b7b 100644 --- a/src/plugins/coreplugin/basemode.h +++ b/src/plugins/coreplugin/basemode.h @@ -59,12 +59,14 @@ public: QWidget *widget() { return m_widget; } QString id() const { return m_id; } QList<int> context() const { return m_context; } + QString contextHelpId() const { return m_helpId; } void setDisplayName(const QString &name) { m_displayName = name; } void setIcon(const QIcon &icon) { m_icon = icon; } void setPriority(int priority) { m_priority = priority; } void setWidget(QWidget *widget) { m_widget = widget; } void setId(const QString &id) { m_id = id; } + void setContextHelpId(const QString &helpId) { m_helpId = helpId; } void setContext(const QList<int> &context) { m_context = context; } private: @@ -73,6 +75,7 @@ private: int m_priority; QWidget *m_widget; QString m_id; + QString m_helpId; QList<int> m_context; }; diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp index 61c2223b7fe13e4f56b918aff423444049d1d855..5fe93bcb651873f044010d6513ada291d66acdca 100644 --- a/src/plugins/coreplugin/filemanager.cpp +++ b/src/plugins/coreplugin/filemanager.cpp @@ -328,13 +328,18 @@ void FileManager::removeFileInfo(IFile *file) void FileManager::removeFileInfo(const QString &fileName, IFile *file) { const QString &fixedName = fixFileName(fileName); - d->m_states[fixedName].lastUpdatedState.remove(file); + if (d->m_states[fixedName].lastUpdatedState.contains(file)) { + d->m_states[fixedName].lastUpdatedState.remove(file); - if (d->m_states.value(fixedName).lastUpdatedState.isEmpty()) { - d->m_states.remove(fixedName); - if (!fixedName.isEmpty()) { - d->m_fileWatcher->removePath(fixedName); + if (d->m_states.value(fixedName).lastUpdatedState.isEmpty()) { + d->m_states.remove(fixedName); + if (!fixedName.isEmpty()) { + d->m_fileWatcher->removePath(fixedName); + } } + } else { + // We could not find the fileinfo, try harder to remove it + removeFileInfo(file); } } diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index ce449df8e16a2c8e1ca5ed86a56909776ceff8e2..a5b2fba5a2c9f82ae70a0ac88ea1f0a9f1acabf7 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -1051,6 +1051,7 @@ Core::IEditor * CVSPlugin::showOutputInEditor(const QString& title, const QStrin return 0; s.replace(QLatin1Char(' '), QLatin1Char('_')); e->setSuggestedFileName(s); + e->setForceReadOnly(true); if (!source.isEmpty()) e->setSource(source); if (codec) diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp index 6eb8bd8d47f983fc90a9e60f2ac29809e4818198..9f842de177f3c6c711a9e47b73a4dc2280b09a17 100644 --- a/src/plugins/designer/formeditorplugin.cpp +++ b/src/plugins/designer/formeditorplugin.cpp @@ -129,16 +129,16 @@ void FormEditorPlugin::initializeTemplates() const QString formFileType = QLatin1String(Constants::FORM_FILE_TYPE); wizardParameters.setDisplayName(tr("Qt Designer Form")); wizardParameters.setId(QLatin1String("D.Form")); - wizardParameters.setDescription(tr("Creates a Qt Designer form along with a matching class (C++ header and source file) " - "for implementation purposes. You can add the form and class to an existing Qt C++ Project.")); + wizardParameters.setDescription(tr("Creates a Qt Designer form that you can add to a Qt C++ project. " + "This is useful if you already have an existing class for the UI business logic.")); addAutoReleasedObject(new FormWizard(wizardParameters, this)); #ifdef CPP_ENABLED wizardParameters.setKind(Core::IWizard::ClassWizard); wizardParameters.setDisplayName(tr("Qt Designer Form Class")); wizardParameters.setId(QLatin1String("C.FormClass")); - wizardParameters.setDescription(tr("Creates a Qt Designer form that you can add to a Qt C++ project. " - "This is useful if you already have an existing class for the UI business logic.")); + wizardParameters.setDescription(tr("Creates a Qt Designer form along with a matching class (C++ header and source file) " + "for implementation purposes. You can add the form and class to an existing Qt C++ Project.")); addAutoReleasedObject(new FormClassWizard(wizardParameters, this)); addAutoReleasedObject(new CppSettingsPage); #endif diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index ef8e5844bcfb0ae18aa7172f970e9e991fb504e9..8d039d9486eeb9e5f0563a3c060f1e12f9679642 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -351,6 +351,12 @@ public: Input(int k, int m, const QString &t) : m_key(k), m_modifiers(m), m_text(t) { + // On Mac, QKeyEvent::text() returns non-empty strings for + // cursor keys. This breaks some of the logic later on + // relying on text() being empty for "special" keys. + // FIXME: Check the real conditions. + if (m_text.size() == 1 && m_text.at(0).unicode() < ' ') + m_text.clear(); // m_xkey is only a cache. m_xkey = (m_text.size() == 1 ? m_text.at(0).unicode() : m_key); } @@ -929,7 +935,8 @@ bool FakeVimHandler::Private::wantsOverride(QKeyEvent *ev) if (m_subsubmode == SearchSubSubMode) return true; // Not sure this feels good. People often hit Esc several times - if (isNoVisualMode() && m_mode == CommandMode) + if (isNoVisualMode() && m_mode == CommandMode + && m_opcount.isEmpty() && m_mvcount.isEmpty()) return false; return true; } diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index ae205f06a93513bfb0329b8a544da2d6ef99f4d7..7abe9ea1cb653e2d21fd4b857cfa027e2a98a650 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -188,6 +188,7 @@ VCSBase::VCSBaseEditor rc->setCodec(VCSBase::VCSBaseEditor::getCodec(source)); } m_core->editorManager()->activateEditor(outputEditor); + rc->setForceReadOnly(true); return rc; } diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp index 79707b977a57de33984f7dddf1538781247b34f4..edc20b511b798416e40bb741a5de11affd99e859 100644 --- a/src/plugins/help/generalsettingspage.cpp +++ b/src/plugins/help/generalsettingspage.cpp @@ -108,18 +108,18 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent) } m_ui.homePageLineEdit->setText(m_homePage); - m_startOption = engine.customValue(QLatin1String("StartOption"), 2).toInt(); - m_ui.helpStartComboBox->setCurrentIndex(m_startOption); + int startOption = engine.customValue(QLatin1String("StartOption"), 2).toInt(); + m_ui.helpStartComboBox->setCurrentIndex(startOption); - m_helpOption = engine.customValue(QLatin1String("ContextHelpOption"), 0).toInt(); - m_ui.contextHelpComboBox->setCurrentIndex(m_helpOption); + int helpOption = engine.customValue(QLatin1String("ContextHelpOption"), 0).toInt(); + m_ui.contextHelpComboBox->setCurrentIndex(helpOption); connect(m_ui.currentPageButton, SIGNAL(clicked()), this, SLOT(setCurrentPage())); connect(m_ui.blankPageButton, SIGNAL(clicked()), this, SLOT(setBlankPage())); connect(m_ui.defaultPageButton, SIGNAL(clicked()), this, SLOT(setDefaultPage())); HelpViewer *viewer = CentralWidget::instance()->currentHelpViewer(); - if (viewer == 0) + if (!viewer) m_ui.currentPageButton->setEnabled(false); m_ui.errorLabel->setVisible(false); diff --git a/src/plugins/help/generalsettingspage.h b/src/plugins/help/generalsettingspage.h index dbfc97e39b3d077ebbbfb6b7b53daf5f75402fb8..9d8370b58139ad758db97b1f1ebb1f2a7a35e296 100644 --- a/src/plugins/help/generalsettingspage.h +++ b/src/plugins/help/generalsettingspage.h @@ -76,8 +76,6 @@ private: QFont m_font; QFontDatabase m_fontDatabase; - int m_helpOption; - int m_startOption; QString m_homePage; QString m_searchKeywords; diff --git a/src/plugins/help/searchwidget.cpp b/src/plugins/help/searchwidget.cpp index 1e2536ce4b64d5392bff55f70a0c822bf08dbf28..933abd368908412229f4811342104d53a4a13707 100644 --- a/src/plugins/help/searchwidget.cpp +++ b/src/plugins/help/searchwidget.cpp @@ -56,6 +56,7 @@ SearchWidget::SearchWidget() : zoomCount(0) , m_progress(0) , searchEngine(0) + , resultWidget(0) { } diff --git a/src/plugins/locator/ilocatorfilter.h b/src/plugins/locator/ilocatorfilter.h index 7ab276e5b7f219aeb38e7aa7b8543fbb4baad116..f3207c208734ce6d347f98513a6e56f2452934ac 100644 --- a/src/plugins/locator/ilocatorfilter.h +++ b/src/plugins/locator/ilocatorfilter.h @@ -43,14 +43,18 @@ class ILocatorFilter; struct FilterEntry { - FilterEntry() {} + FilterEntry() + : filter(0) + , resolveFileIcon(false) + {} + FilterEntry(ILocatorFilter *fromFilter, const QString &name, const QVariant &data, const QIcon &icon = QIcon()) - : filter(fromFilter) - , displayName(name) - , internalData(data) - , displayIcon(icon) - , resolveFileIcon(false) + : filter(fromFilter) + , displayName(name) + , internalData(data) + , displayIcon(icon) + , resolveFileIcon(false) {} bool operator==(const FilterEntry &other) const { diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index ff1cd160d9c76e6326ff7789c8b8d3b5acd1dd51..9d4bd97c5d419b8e080c24cce4df4dd940a7e7e9 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -624,6 +624,7 @@ VCSBase::VCSBaseEditor *MercurialClient::createVCSEditor(const QString &kind, QS } core->editorManager()->activateEditor(outputEditor); + baseEditor->setForceReadOnly(true); return baseEditor; } diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 49ea0afd3814e2a3df103e7d8827c363c72340a8..b693ff58543b0ca638e5fdf8d858872f8f6287cd 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -1194,6 +1194,7 @@ Core::IEditor * PerforcePlugin::showOutputInEditor(const QString& title, const Q PerforceEditor *e = qobject_cast<PerforceEditor*>(editor->widget()); if (!e) return 0; + e->setForceReadOnly(true); e->setSource(source); s.replace(QLatin1Char(' '), QLatin1Char('_')); e->setSuggestedFileName(s); diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index c8bbb792ed5df86389b85071f81b3374fdd81593..156d5ce9f8fdcc2318b33179812838df5862559f 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -35,28 +35,21 @@ SUBDIRS = plugin_coreplugin \ plugin_mercurial \ debugger/dumper.pro -SUPPORT_QT_QML = $$(QTCREATOR_WITH_QML) - -!isEmpty(SUPPORT_QT_QML) { - message("Adding support for Qt/QML projects.") - DEFINES += QTCREATOR_WITH_QML - - contains(QT_CONFIG, declarative) { - - SUBDIRS += plugin_qmlprojectmanager - - include(private_headers.pri) - exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) { - SUBDIRS += plugin_qmldesigner \ - plugin_qmlinspector - } else { - warning() - warning("QmlDesigner and QmlInspector plugins have been disabled") - warning("The plugins depend on on private headers from QtDeclarative module.") - warning("To enable them, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.") - warning() - } - } +contains(QT_CONFIG, declarative) { + + SUBDIRS += plugin_qmlprojectmanager + + include(private_headers.pri) + exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) { + SUBDIRS += plugin_qmldesigner \ + plugin_qmlinspector + } else { + warning() + warning("QmlDesigner and QmlInspector plugins have been disabled") + warning("The plugins depend on on private headers from QtDeclarative module.") + warning("To enable them, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.") + warning() + } } plugin_coreplugin.subdir = coreplugin diff --git a/src/plugins/projectexplorer/images/targetseparatorbackground.png b/src/plugins/projectexplorer/images/targetseparatorbackground.png index 2205cf22650fa021af75814ee8c1811c0728bd7d..cd5a9ee069c05def36d9cc12024797bae6632672 100644 Binary files a/src/plugins/projectexplorer/images/targetseparatorbackground.png and b/src/plugins/projectexplorer/images/targetseparatorbackground.png differ diff --git a/src/plugins/projectexplorer/ioutputparser.cpp b/src/plugins/projectexplorer/ioutputparser.cpp index 2b43514bab6bbde453a0f4f7dda5cc57fecc513f..0974c661b4b1ca9623179ac63f1c238c7eaea4f6 100644 --- a/src/plugins/projectexplorer/ioutputparser.cpp +++ b/src/plugins/projectexplorer/ioutputparser.cpp @@ -51,9 +51,9 @@ void IOutputParser::appendOutputParser(IOutputParser *parser) m_parser = parser; connect(parser, SIGNAL(addOutput(QString)), - this, SLOT(outputAdded(QString))); + this, SLOT(outputAdded(QString)), Qt::DirectConnection); connect(parser, SIGNAL(addTask(ProjectExplorer::Task)), - this, SLOT(taskAdded(ProjectExplorer::Task))); + this, SLOT(taskAdded(ProjectExplorer::Task)), Qt::DirectConnection); } IOutputParser *IOutputParser::takeOutputParserChain() diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 25d31abaa50fa088522f355574533cc0dbcf8958..ed704fc789a4622f622dacdab2c76c082213d4e1 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -275,6 +275,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er d->m_projectsMode->setWidget(d->m_proWindow); d->m_projectsMode->setContext(QList<int>() << pecontext); d->m_projectsMode->setEnabled(session()->startupProject()); + d->m_projectsMode->setContextHelpId(QLatin1String("Managing Projects")); addAutoReleasedObject(d->m_projectsMode); d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow)); @@ -1015,54 +1016,37 @@ QList<Project *> ProjectExplorerPlugin::openProjects(const QStringList &fileName ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); QList<IProjectManager*> projectManagers = pm->getObjects<IProjectManager>(); - //QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - // bool blocked = blockSignals(true); QList<Project*> openedPro; foreach (const QString &fileName, fileNames) { if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(fileName))) { - foreach (IProjectManager *manager, projectManagers) + foreach (IProjectManager *manager, projectManagers) { if (manager->mimeType() == mt.type()) { - if (Project *pro = manager->openProject(fileName)) - openedPro += pro; + if (Project *pro = manager->openProject(fileName)) { + if (pro->restoreSettings()) { + connect(pro, SIGNAL(fileListChanged()), this, SIGNAL(fileListChanged())); + d->m_session->addProject(pro); + // Make sure we always have a current project / node + if (!d->m_currentProject && !openedPro.isEmpty()) + setCurrentNode(pro->rootProjectNode()); + openedPro += pro; + } else { + delete pro; + } + } d->m_session->reportProjectLoadingProgress(); break; } + } } } - //blockSignals(blocked); + updateActions(); if (openedPro.isEmpty()) { - if (debug) - qDebug() << "ProjectExplorerPlugin - Could not open any projects!"; - QApplication::restoreOverrideCursor(); - return QList<Project *>(); - } - - QList<Project *>::iterator it, end; - end = openedPro.end(); - for (it = openedPro.begin(); it != end; ) { - if (debug) - qDebug()<<"restoring settings for "<<(*it)->file()->fileName(); - if ((*it)->restoreSettings()) { - connect(*it, SIGNAL(fileListChanged()), this, SIGNAL(fileListChanged())); - ++it; - } else { - delete *it; - it = openedPro.erase(it); - } + qDebug() << "ProjectExplorerPlugin - Could not open any projects!"; + } else { + Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT); } - d->m_session->addProjects(openedPro); - - // Make sure we always have a current project / node - if (!d->m_currentProject && !openedPro.isEmpty()) - setCurrentNode(openedPro.first()->rootProjectNode()); - - updateActions(); - - Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT); - QApplication::restoreOverrideCursor(); - return openedPro; } diff --git a/src/plugins/projectexplorer/sessiondialog.ui b/src/plugins/projectexplorer/sessiondialog.ui index 7418b159947bc86ef03d0716d12732048e218e1e..98895f94d3d76051aa41f615ef45a851a0858a48 100644 --- a/src/plugins/projectexplorer/sessiondialog.ui +++ b/src/plugins/projectexplorer/sessiondialog.ui @@ -82,7 +82,7 @@ <item row="2" column="0" rowspan="2"> <widget class="QLabel" name="whatsASessionLabel"> <property name="text"> - <string><a href="qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">What is a Session?</a></string> + <string><a href="qthelp://com.nokia.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a></string> </property> </widget> </item> diff --git a/src/plugins/projectexplorer/targetselector.cpp b/src/plugins/projectexplorer/targetselector.cpp index 61a582a40d97ca44d5a3b0335990401fc4f92b8c..70601a8b0350812821970c6c4734836a5bf8c584 100644 --- a/src/plugins/projectexplorer/targetselector.cpp +++ b/src/plugins/projectexplorer/targetselector.cpp @@ -137,7 +137,7 @@ int TargetSelector::targetWidth() const QSize TargetSelector::minimumSizeHint() const { - return QSize((targetWidth() + 1) * m_targets.size() + (ADDBUTTON_WIDTH + 1) * 2 + 1, TARGET_HEIGHT + 2); + return QSize((targetWidth() + 1) * m_targets.size() + (ADDBUTTON_WIDTH + 1) * 2 + 3, TARGET_HEIGHT + 4); } void TargetSelector::mousePressEvent(QMouseEvent *event) @@ -191,11 +191,20 @@ void TargetSelector::paintEvent(QPaintEvent *event) QSize size = minimumSizeHint(); //draw frame p.drawLine(1, 0, size.width() - 2, 0); + p.drawLine(1, size.height() - 3, size.width() - 2, size.height() - 3); + p.drawLine(1, 1, 1, size.height() - 4); + p.drawLine(size.width() - 2, 1, size.width() - 2, size.height() - 4); + + //draw shadow + p.setPen(QColor(0, 0, 0, 50)); + p.drawLine(1, size.height() - 2, size.width() - 2, size.height() - 2); + p.setPen(QColor(0, 0, 0, 20)); + p.drawLine(0, size.height() - 2, 0, size.height() - 9); + p.drawLine(size.width()-1, size.height() - 2, size.width()-1, size.height() - 9); p.drawLine(1, size.height() - 1, size.width() - 2, size.height() - 1); - p.drawLine(0, 1, 0, size.height() - 2); - p.drawLine(size.width() - 1, 1, size.width() - 1, size.height() - 2); + //draw targets - int x = 1; + int x = 2; int index = 0; QFontMetrics fm(font()); if (m_removeButtonEnabled) @@ -231,7 +240,7 @@ void TargetSelector::paintEvent(QPaintEvent *event) // Build int margin = 2; // position centered within the rounded buttons QFontMetrics fm = fontMetrics(); - QRect textRect(x + margin, size.height() - fm.height() - 5, targetWidth()/2, fm.height()); + QRect textRect(x + margin, size.height() - fm.height() - 7, targetWidth()/2, fm.height()); p.setPen(buildSelected ? Qt::black : Qt::white); if (index!=m_currentTargetIndex) p.setPen(QColor(0x555555)); diff --git a/src/plugins/projectexplorer/targetsettingswidget.cpp b/src/plugins/projectexplorer/targetsettingswidget.cpp index 8eaae582827f25d2eb9ffa9625d949137bb6c465..c5a101664d3d04e055583adae44f384685e12e52 100644 --- a/src/plugins/projectexplorer/targetsettingswidget.cpp +++ b/src/plugins/projectexplorer/targetsettingswidget.cpp @@ -21,6 +21,19 @@ TargetSettingsWidget::TargetSettingsWidget(QWidget *parent) : this, SIGNAL(removeButtonClicked())); connect(m_targetSelector, SIGNAL(currentChanged(int,int)), this, SIGNAL(currentChanged(int,int))); + + m_shadow = new QWidget(this); + + // Create shadow below targetselector + m_targetSelector->raise(); + QPalette shadowPal = palette(); + QLinearGradient grad(0, 0, 0, 2); + grad.setColorAt(0, QColor(0, 0, 0, 60)); + grad.setColorAt(1, Qt::transparent); + shadowPal.setBrush(QPalette::All, QPalette::Window, grad); + m_shadow->setPalette(shadowPal); + m_shadow->setAutoFillBackground(true); + updateTargetSelector(); } @@ -102,9 +115,15 @@ bool TargetSettingsWidget::isRemoveButtonEnabled() const return m_targetSelector->isRemoveButtonEnabled(); } +void TargetSettingsWidget::resizeEvent(QResizeEvent *e) +{ + QWidget::resizeEvent(e); + m_shadow->setGeometry(0, m_targetSelector->height() + 3, width(), 2); +} + void TargetSettingsWidget::updateTargetSelector() { - m_targetSelector->setGeometry((WIDTH-m_targetSelector->minimumSizeHint().width())/2, 12, + m_targetSelector->setGeometry((WIDTH-m_targetSelector->minimumSizeHint().width())/2, 13, m_targetSelector->minimumSizeHint().width(), m_targetSelector->minimumSizeHint().height()); } diff --git a/src/plugins/projectexplorer/targetsettingswidget.h b/src/plugins/projectexplorer/targetsettingswidget.h index fee4e77fb20cfd97c401b44091bf77de2b1a9572..4a9fa6fd08a9684e710e27d84eb4edde23052843 100644 --- a/src/plugins/projectexplorer/targetsettingswidget.h +++ b/src/plugins/projectexplorer/targetsettingswidget.h @@ -43,6 +43,7 @@ signals: void currentChanged(int targetIndex, int subIndex); protected: + void resizeEvent(QResizeEvent *); void changeEvent(QEvent *e); private: @@ -50,6 +51,7 @@ private: Ui::TargetSettingsWidget *ui; TargetSelector *m_targetSelector; + QWidget *m_shadow; }; } // namespace Internal diff --git a/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp b/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp index 5c53e588720bd81a549c6ebbe51b5cea1b6e0bf7..035930e006655da0fa48039a30267cdd59874b03 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp @@ -112,24 +112,21 @@ void ColorButton::paintEvent(QPaintEvent *event) QPainter p(this); - QRect r(0, 0, width(), height()); + + QRect r(0, 0, width() - 2, height() - 2); if (isEnabled()) p.setBrush(color); else p.setBrush(Qt::transparent); - p.setPen(Qt::black); - - if (!m_noColor) { - p.drawRect(r); - } else { - p.fillRect(r, Qt::white); - p.fillRect(0, 0, width() /2, height() /2, QColor(Qt::gray)); - p.fillRect(width() /2, height() /2, width() /2, height() /2, QColor(Qt::gray)); - p.setBrush(Qt::transparent); - p.drawRect(r); - } + p.setPen(QColor(0x444444)); + p.drawRect(r.translated(1, 1)); + p.setPen(QColor(0x101010)); + p.drawRect(r); + p.setPen(QColor(255, 255, 255, 40)); + p.drawRect(r.adjusted(1, 1, -1, -1)); + p.setRenderHint(QPainter::Antialiasing, true); QVector<QPointF> points; if (isChecked()) { points.append(QPointF(2, 3)); @@ -140,8 +137,9 @@ void ColorButton::paintEvent(QPaintEvent *event) points.append(QPointF(2, 9)); points.append(QPointF(2, 3)); } - p.setPen("#707070"); - p.setBrush(Qt::white); + p.translate(0.5, 0.5); + p.setBrush(QColor(0xaaaaaa)); + p.setPen(QColor(0x444444)); p.drawPolygon(points); } @@ -186,6 +184,9 @@ void HueControl::paintEvent(QPaintEvent *event) } } + p.setPen(QColor(0x404040)); + p.drawRect(QRect(1, 1, width() - 1, height() - 1).adjusted(10, 5, -20, -5)); + p.drawPixmap(10, 5, m_cache); QVector<QPointF> points; @@ -196,12 +197,19 @@ void HueControl::paintEvent(QPaintEvent *event) points.append(QPointF(25, y + 5)); points.append(QPointF(25, y - 5)); - p.setPen(Qt::black); p.setBrush(Qt::NoBrush); + p.setPen(QColor(0x101010)); p.drawRect(QRect(0, 0, width() - 1, height() - 1).adjusted(10, 5, -20, -5)); + p.setPen(QColor(255, 255, 255, 60)); + p.drawRect(QRect(1, 1, width() - 3, height() - 3).adjusted(10, 5, -20, -5)); - p.setPen(Qt::black); - p.setBrush(QColor("#707070")); + p.setRenderHint(QPainter::Antialiasing, true); + p.translate(0.5, 1.5); + p.setPen(QColor(0, 0, 0, 120)); + p.drawPolygon(points); + p.translate(0, -1); + p.setPen(0x222222); + p.setBrush(QColor(0x707070)); p.drawPolygon(points); } @@ -286,7 +294,6 @@ void ColorBox::setColor(const QColor &color) if (oldsaturation != saturation()) emit saturationChanged(); if (oldvalue != value()) emit valueChanged(); if (oldAlpha != alpha()) emit alphaChanged(); - emit colorChanged(); } void ColorBox::setSaturation(int newsaturation) @@ -347,22 +354,33 @@ void ColorBox::paintEvent(QPaintEvent *event) for (int x = 0; x < width; x++) { QColor c; - c.setHsv(fixedHue, (x*255) / 120, 255 - (y*255) / 120); + c.setHsv(fixedHue, (x*255) / width, 255 - (y*255) / height); chacheP.setPen(c); chacheP.drawPoint(x ,y); } } + p.setBrush(Qt::NoBrush); + p.setPen(QColor(0x505050)); + QRect r(0, 0, width() -1, height() - 1); + p.drawRect(r.adjusted(6, 6, -2, -2)); + p.setPen(QColor(0x404040)); + p.drawRect(r.adjusted(5, 5, -3, -3)); + p.setPen(QColor(0x101010)); + p.drawRect(r.adjusted(4, 4, -4, -4)); p.drawPixmap(5, 5, m_cache); - int x = clamp(m_color.hsvSaturationF() * 120, 0, 120) + 5; - int y = clamp(120 - m_color.valueF() * 120, 0, 120) + 5; + int x = clamp(m_color.hsvSaturationF() * 120, 0, 119) + 5; + int y = clamp(120 - m_color.valueF() * 120, 0, 119) + 5; - p.setPen(Qt::white); - p.drawEllipse(x - 2, y - 2, 4, 4); + p.setPen(QColor(255, 255, 255, 50)); + p.drawLine(5, y, x-1, y); + p.drawLine(x+1, y, width()-7, y); + p.drawLine(x, 5, x, y-1); + p.drawLine(x, y+1, x, height()-7); - p.setPen(Qt::black); - p.drawRect(QRect(0, 0, width() - 1, height() -1).adjusted(4, 4, -4, -4)); + p.setPen(QColor(255, 255, 255, 60)); + p.drawRect(r.adjusted(5, 5, -5, -5)); } void ColorBox::mousePressEvent(QMouseEvent *e) @@ -375,6 +393,8 @@ void ColorBox::mousePressEvent(QMouseEvent *e) void ColorBox::mouseReleaseEvent(QMouseEvent * /* event */) { + if (m_mousePressed) + emit colorChanged(); m_mousePressed = false; } @@ -525,43 +545,54 @@ void GradientLine::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); QPainter p(this); - p.setRenderHint(QPainter::Antialiasing, true); - QPen pen(Qt::black); - pen.setWidth(1); - p.setPen(pen); - QLinearGradient linearGradient(QPointF(2, 0), QPointF(width() -2, 0)); + QLinearGradient linearGradient(QPointF(0, 0), QPointF(width(), 0)); for (int i =0; i < m_stops.size(); i++) linearGradient.setColorAt(m_stops.at(i), m_colorList.at(i)); + p.setBrush(Qt::NoBrush); + p.setPen(QColor(0x444444)); + p.drawRect(9, 31, width() - 14, height() - 32); + p.setBrush(linearGradient); - p.drawRoundedRect(8, 30, width() - 16, height() - 32, 5, 5); + p.setPen(QColor(0x222222)); + p.drawRect(8, 30, width() - 14, height() - 32); + p.setPen(QColor(255, 255, 255, 40)); + p.drawRect(9, 31, width() - 16, height() - 34); + + p.setPen(Qt::black); for (int i =0; i < m_colorList.size(); i++) { int localYOffset = 0; QColor arrowColor(Qt::black); if (i == currentColorIndex()) { localYOffset = m_yOffset; - arrowColor = QColor("#cdcdcd"); + arrowColor = QColor(0xeeeeee); } p.setPen(arrowColor); if (i == 0 || i == (m_colorList.size() - 1)) localYOffset = 0; - int pos = qreal((width() - 20)) * m_stops.at(i) + 10; + int pos = qreal((width() - 16)) * m_stops.at(i) + 9; p.setBrush(arrowColor); QVector<QPointF> points; - points.append(QPointF(pos + 0.5, 28 + localYOffset)); //triangle - points.append(QPointF(pos - 3.5, 22 + localYOffset)); - points.append(QPointF(pos + 4.5, 22 + localYOffset)); + points.append(QPointF(pos + 0.5, 28.5 + localYOffset)); //triangle + points.append(QPointF(pos - 3.5, 22.5 + localYOffset)); + points.append(QPointF(pos + 4.5, 22.5 + localYOffset)); + p.setRenderHint(QPainter::Antialiasing, true); p.drawPolygon(points); - - if (i == currentColorIndex()) - p.fillRect(pos - 6, 9 + localYOffset, 13, 13, invertColor(m_colorList.at(i))); - - p.fillRect(pos - 4, 11 + localYOffset, 9, 9, m_colorList.at(i)); + p.setRenderHint(QPainter::Antialiasing, false); + p.setBrush(Qt::NoBrush); + p.setPen(QColor(0x424242)); + p.drawRect(pos - 4, 9 + localYOffset, 10, 11); + p.setPen(QColor(0x141414)); + p.setBrush(m_colorList.at(i)); + p.drawRect(pos - 5, 8 + localYOffset, 10, 11); + p.setBrush(Qt::NoBrush); + p.setPen(QColor(255, 255, 255, 30)); + p.drawRect(pos - 4, 9 + localYOffset, 8, 9); } } @@ -576,7 +607,7 @@ void GradientLine::mousePressEvent(QMouseEvent *event) m_dragActive = false; if ((yPos > 10) && (yPos < 30)) for (int i =0; i < m_stops.size(); i++) { - int pos = qreal((width() - 20)) * m_stops.at(i) + 10; + int pos = qreal((width() - 16)) * m_stops.at(i) + 9; if (((xPos + 5) > pos) && ((xPos - 5) < pos)) { draggedIndex = i; m_dragActive = true; @@ -596,7 +627,7 @@ void GradientLine::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { if (m_dragActive == false && m_create) { - qreal stopPos = qreal(event->pos().x() - 10) / qreal((width() - 20)); + qreal stopPos = qreal(event->pos().x() - 9) / qreal((width() - 15)); int index = -1; for (int i =0; i < m_stops.size() - 1; i++) { if ((stopPos > m_stops.at(i)) && (index == -1)) @@ -621,11 +652,10 @@ void GradientLine::mouseMoveEvent(QMouseEvent *event) { if (m_dragActive) { int xPos = event->pos().x(); - int pos = qreal((width() - 20)) * m_stops.at(currentColorIndex()) + 10; + int pos = qreal((width() - 20)) * m_stops.at(currentColorIndex()) + 8; int offset = m_dragOff ? 2 : 20; if (xPos < pos + offset && xPos > pos - offset) { m_dragOff = false; - qDebug() << xPos; int xDistance = event->pos().x() - m_dragStart.x(); qreal distance = qreal(xDistance) / qreal((width() - 20)); qreal newStop = m_stops.at(currentColorIndex()) + distance; diff --git a/src/plugins/qmldesigner/designercore/filemanager/changepropertyvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/changepropertyvisitor.cpp index 9192e95ed8a7ac5e581a7337c46bbdacde45892a..2256a342d526907d4898419f273615904da6c40c 100644 --- a/src/plugins/qmldesigner/designercore/filemanager/changepropertyvisitor.cpp +++ b/src/plugins/qmldesigner/designercore/filemanager/changepropertyvisitor.cpp @@ -196,6 +196,7 @@ void ChangePropertyVisitor::insertIntoArray(QmlJS::AST::UiArrayBinding *ast) UiObjectMember *lastMember = 0; for (UiArrayMemberList *iter = ast->members; iter; iter = iter->next) { + lastMember = iter->member; } if (!lastMember) diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp index b08bb5ba3923e0aa52e4b7691c1d99d112ba8136..1e82fc64e0e8fe04b456bf67d6ea0f08bfddf1fc 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp @@ -67,10 +67,6 @@ GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent { ui->setupUi(this); -#ifndef QTCREATOR_WITH_QML - ui->demosExamplesFrameQml->hide(); -#endif - ui->didYouKnowTextBrowser->viewport()->setAutoFillBackground(false); connect(ui->tutorialTreeWidget, SIGNAL(activated(QString)), SLOT(slotOpenHelpPage(const QString&))); @@ -82,11 +78,9 @@ GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent ui->tutorialTreeWidget->addItem(tr("Creating a Qt C++ Application"), QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-writing-program.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Creating a Mobile Application"), - QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-mobile-example?view=split")); -#ifdef QTCREATOR_WITH_QML + QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-mobile-example.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Creating a Qt Quick Application"), QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-qml-application.html?view=split")); -#endif srand(QDateTime::currentDateTime().toTime_t()); QStringList tips = tipsOfTheDay(); diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui index 833f644622ad3e637961544bd2769891ec35fc9e..9f03d493557ab5546e66d5c78e71cd75d7d3fe7c 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui @@ -119,7 +119,7 @@ </widget> </item> <item row="1" column="1"> - <widget class="QFrame" name="demosExamplesFrameQml"> + <widget class="QFrame" name="demosExamplesFrame_2"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> <horstretch>0</horstretch> @@ -137,7 +137,7 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="Utils::WelcomeModeLabel" name="demoTitleLabeldemosExamplesFrameQml"> + <widget class="Utils::WelcomeModeLabel" name="demoTitleLabel_2"> <property name="text"> <string>Explore Qt Quick Examples</string> </property> diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp index bdf6e5e358520347f915218e4ed1e6217d637bcb..b6bf6e44b463cde6a18a133705a51ef8606457e2 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp @@ -379,7 +379,9 @@ void QemuRuntimeManager::startRuntime() m_qemuProcess->setProcessEnvironment(env); m_qemuProcess->setWorkingDirectory(rt.m_root); - const QString app = root % QLatin1String("madlib/") % rt.m_bin + const QString app =(QFileInfo(rt.m_bin).isRelative() + ? root % QLatin1String("madlib/") % rt.m_bin // Fremantle. + : rt.m_bin) // Haramattan. #ifdef Q_OS_WIN % QLatin1String(".exe") #endif diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp index 5278d21299c1d330b4d4d7cb6da0fb330516bb01..0d87d9deae3e0b53adcf4cc9dc7c85b2eea03937 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp @@ -109,6 +109,7 @@ S60DeviceRunConfigurationWidget::S60DeviceRunConfigurationWidget( connect(SymbianUtils::SymbianDeviceManager::instance(), SIGNAL(updated()), this, SLOT(updateSerialDevices())); // Serial devices control + m_serialPortsCombo->setSizeAdjustPolicy(QComboBox::AdjustToContents); connect(m_serialPortsCombo, SIGNAL(activated(int)), this, SLOT(setSerialPort(int))); QHBoxLayout *serialPortHBoxLayout = new QHBoxLayout; serialPortHBoxLayout->addWidget(m_serialPortsCombo); diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 9c798ef195efab4f0ff34d0fb448e4d89f7f7fcb..160ebef9caba7a6fee134908e5f32778b2b985ea 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -995,7 +995,7 @@ void Qt4ProFileNode::applyAsyncEvaluate() m_project->decrementPendingEvaluateFutures(); } -Qt4ProjectType proFileTemplateTypeToProjectType(ProFileEvaluator::TemplateType type) +static Qt4ProjectType proFileTemplateTypeToProjectType(ProFileEvaluator::TemplateType type) { switch (type) { case ProFileEvaluator::TT_Unknown: diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro index 448067a9e85c7b191a562237e505ae31bb0aafc1..f4c492ac33b7189a631d9b4a1d4caa263de35912 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.pro +++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro @@ -96,7 +96,7 @@ FORMS += makestep.ui \ wizards/targetsetuppage.ui RESOURCES += qt4projectmanager.qrc \ wizards/wizards.qrc -DEFINES += PROPARSER_THREAD_SAFE +DEFINES += PROPARSER_THREAD_SAFE PROEVALUATOR_THREAD_SAFE include(../../shared/proparser/proparser.pri) include(qt-s60/qt-s60.pri) include(qt-maemo/qt-maemo.pri) diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index ef7e456461eb04dd8fb1f0593a52a87eb9f8a583..1799dde4ba80b43ef444fb1b4bcb9428f4d80692 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -1113,6 +1113,7 @@ Core::IEditor * SubversionPlugin::showOutputInEditor(const QString& title, const SubversionEditor *e = qobject_cast<SubversionEditor*>(editor->widget()); if (!e) return 0; + e->setForceReadOnly(true); s.replace(QLatin1Char(' '), QLatin1Char('_')); e->setSuggestedFileName(s); if (!source.isEmpty()) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index b4193e4fe6b4abd2ae2164d4c7a92e8ce086ec8e..1993ff7918d48fc4093d1ad045726fc5c017c0e3 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -1190,7 +1190,6 @@ void BaseTextEditor::keyPressEvent(QKeyEvent *e) break; pos = cpos; } - setTextCursor(textCursor()); // make cursor visible return; } else switch (e->key()) { @@ -1234,7 +1233,6 @@ void BaseTextEditor::keyPressEvent(QKeyEvent *e) | Qt::MetaModifier)) == Qt::NoModifier && !textCursor().hasSelection()) { handleBackspaceKey(); - setTextCursor(textCursor()); // make cursor visible e->accept(); return; } @@ -3525,7 +3523,7 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) toggleBlockVisible(c); d->moveCursorVisible(false); } - } else if (e->pos().x() > markWidth) { + } else if (d->m_lineNumbersVisible && e->pos().x() > markWidth) { QTextCursor selection = cursor; selection.setVisualNavigation(true); d->extraAreaSelectionAnchorBlockNumber = selection.blockNumber(); @@ -3691,6 +3689,8 @@ void BaseTextEditor::handleHomeKey(bool anchor) setTextCursor(cursor); } + +#define SET_AND_RETURN(cursor) setTextCursor(cursor); return // make cursor visible and reset vertical x movement void BaseTextEditor::handleBackspaceKey() { QTextCursor cursor = textCursor(); @@ -3710,7 +3710,7 @@ void BaseTextEditor::handleBackspaceKey() if (!tabSettings.m_smartBackspace) { cursor.deletePreviousChar(); - return; + SET_AND_RETURN(cursor); } QTextBlock currentBlock = cursor.block(); @@ -3718,7 +3718,7 @@ void BaseTextEditor::handleBackspaceKey() const QString blockText = currentBlock.text(); if (cursor.atBlockStart() || tabSettings.firstNonSpace(blockText) < positionInBlock) { cursor.deletePreviousChar(); - return; + SET_AND_RETURN(cursor); } int previousIndent = 0; @@ -3737,10 +3737,11 @@ void BaseTextEditor::handleBackspaceKey() cursor.setPosition(currentBlock.position(), QTextCursor::KeepAnchor); cursor.insertText(tabSettings.indentationString(previousNonEmptyBlockText)); cursor.endEditBlock(); - return; + SET_AND_RETURN(cursor); } } cursor.deletePreviousChar(); + SET_AND_RETURN(cursor); } void BaseTextEditor::wheelEvent(QWheelEvent *e) diff --git a/src/plugins/vcsbase/VCSBase.mimetypes.xml b/src/plugins/vcsbase/VCSBase.mimetypes.xml index 501171c1eec1c8b9bbe781eec3b2ece08bc221d0..73203bfdd83160fda6eb9e9447b1fcfc3259c9c3 100644 --- a/src/plugins/vcsbase/VCSBase.mimetypes.xml +++ b/src/plugins/vcsbase/VCSBase.mimetypes.xml @@ -11,7 +11,7 @@ at a C++ patch. --> <magic priority="10"> - <match value="+++ " type="string" offset="0:10000"/> + <match value="
+++ " type="string" offset="0:10000"/> </magic> </mime-type> </mime-info> diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 815a062247577e3b54652e266ee1d4ad800c99b4..2e6520c00b28b1824702a9a87a1c8f2d85b9dadb 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -82,7 +82,8 @@ public: Core::IEditor *duplicate(QWidget * /*parent*/) { return 0; } QString id() const { return m_id; } - bool isTemporary() const { return true; } + bool isTemporary() const { return m_temporary; } + void setTemporary(bool t) { m_temporary = t; } signals: void describeRequested(const QString &source, const QString &change); @@ -91,12 +92,14 @@ signals: private: QString m_id; QList<int> m_context; + bool m_temporary; }; VCSBaseEditorEditable::VCSBaseEditorEditable(VCSBaseEditor *editor, const VCSBaseEditorParameters *type) : BaseTextEditorEditable(editor), - m_id(type->id) + m_id(type->id), + m_temporary(false) { Core::UniqueIDManager *uidm = Core::UniqueIDManager::instance(); m_context << uidm->uniqueIdentifier(QLatin1String(type->context)) @@ -118,8 +121,6 @@ public: virtual QWidget *toolBar() { return m_toolBar; } QComboBox *diffFileBrowseComboBox() const { return m_diffFileBrowseComboBox; } - bool isTemporary() const { return true; } - private: QToolBar *m_toolBar; QComboBox *m_diffFileBrowseComboBox; @@ -181,7 +182,6 @@ VCSBaseEditor::VCSBaseEditor(const VCSBaseEditorParameters *type, QWidget *paren if (VCSBase::Constants::Internal::debug) qDebug() << "VCSBaseEditor::VCSBaseEditor" << type->type << type->id; - setReadOnly(true); viewport()->setMouseTracking(true); setBaseTextDocument(new Internal::VCSBaseTextDocument); setMimeType(QLatin1String(d->m_parameters->mimeType)); @@ -212,6 +212,23 @@ VCSBaseEditor::~VCSBaseEditor() delete d; } +void VCSBaseEditor::setForceReadOnly(bool b) +{ + Internal::VCSBaseTextDocument *vbd = qobject_cast<Internal::VCSBaseTextDocument*>(baseTextDocument()); + VCSBaseEditorEditable *eda = qobject_cast<VCSBaseEditorEditable *>(editableInterface()); + QTC_ASSERT(vbd != 0 && eda != 0, return); + setReadOnly(b); + vbd->setForceReadOnly(b); + eda->setTemporary(b); +} + +bool VCSBaseEditor::isForceReadOnly() const +{ + const Internal::VCSBaseTextDocument *vbd = qobject_cast<const Internal::VCSBaseTextDocument*>(baseTextDocument()); + QTC_ASSERT(vbd, return false); + return vbd->isForceReadOnly(); +} + QString VCSBaseEditor::source() const { return d->m_source; @@ -502,7 +519,9 @@ void VCSBaseEditor::mouseDoubleClickEvent(QMouseEvent *e) void VCSBaseEditor::keyPressEvent(QKeyEvent *e) { - if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { + // Do not intercept return in editable patches. + if (d->m_parameters->type == DiffOutput && isReadOnly() + && (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return)) { jumpToChangeFromDiff(textCursor()); return; } diff --git a/src/plugins/vcsbase/vcsbaseeditor.h b/src/plugins/vcsbase/vcsbaseeditor.h index c6062298bd37b668a086b480d77f4d36a51a1523..19aa82ab7af55a84c503268f19929d91ccd910be 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.h +++ b/src/plugins/vcsbase/vcsbaseeditor.h @@ -105,6 +105,13 @@ public: virtual ~VCSBaseEditor(); + /* Force read-only: Make it a read-only, temporary file. + * Should be set to true by version control views. It is not on + * by default since it should not trigger when patches are opened as + * files. */ + void setForceReadOnly(bool b); + bool isForceReadOnly() const; + QString source() const; void setSource(const QString &source); diff --git a/src/plugins/vcsbase/vcsbasetextdocument.cpp b/src/plugins/vcsbase/vcsbasetextdocument.cpp index 3a5590e145d375afb74d78dd7a10aad180e2c563..6a409b8fb38515f23e0b0ad86c9bf90582c6aef5 100644 --- a/src/plugins/vcsbase/vcsbasetextdocument.cpp +++ b/src/plugins/vcsbase/vcsbasetextdocument.cpp @@ -31,16 +31,31 @@ using namespace VCSBase::Internal; -VCSBaseTextDocument::VCSBaseTextDocument() +VCSBaseTextDocument::VCSBaseTextDocument() : + m_forceReadOnly(false) { } bool VCSBaseTextDocument::isReadOnly() const { - return true; + return m_forceReadOnly ? + true : + TextEditor::BaseTextDocument::isReadOnly(); } bool VCSBaseTextDocument::isModified() const { - return false; + return m_forceReadOnly ? + false : + TextEditor::BaseTextDocument::isModified(); +} + +void VCSBaseTextDocument::setForceReadOnly(bool b) +{ + m_forceReadOnly = b; +} + +bool VCSBaseTextDocument::isForceReadOnly() const +{ + return m_forceReadOnly; } diff --git a/src/plugins/vcsbase/vcsbasetextdocument.h b/src/plugins/vcsbase/vcsbasetextdocument.h index f7bdd403f1ca5639abc31fccf264284136093be5..46845f080449e31d144b9ea96726e1993576daa6 100644 --- a/src/plugins/vcsbase/vcsbasetextdocument.h +++ b/src/plugins/vcsbase/vcsbasetextdocument.h @@ -44,6 +44,12 @@ public: bool isReadOnly() const; bool isModified() const; + + void setForceReadOnly(bool b); + bool isForceReadOnly() const; + +private: + bool m_forceReadOnly; }; } // namespace Internal diff --git a/src/plugins/welcome/welcomemode.h b/src/plugins/welcome/welcomemode.h index 3779bf434bc02c22a2447eba3317b9e6c5ca8fb7..42acdb73785bdfb9e529e8d2dd43c103c445c2e9 100644 --- a/src/plugins/welcome/welcomemode.h +++ b/src/plugins/welcome/welcomemode.h @@ -62,7 +62,7 @@ public: QString id() const; QList<int> context() const; void activated(); - QString contextHelpId() const { return QLatin1String("Qt Creator"); } + QString contextHelpId() const { return QLatin1String("Qt Creator Manual"); } void initPlugins(); private slots: diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index a7ad13bbf00a6247a2bd9f49179338f3a5f549c9..c33069b90d692734650f8ee0d236b33f74769013 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -153,6 +153,10 @@ ProFileOption::ProFileOption() #endif cache = 0; + +#ifdef PROEVALUATOR_THREAD_SAFE + base_inProgress = false; +#endif } ProFileOption::~ProFileOption() @@ -2032,7 +2036,21 @@ ProFileEvaluator::Private::VisitReturn ProFileEvaluator::Private::visitProFile(P if (m_parsePreAndPostFiles) { +#ifdef PROEVALUATOR_THREAD_SAFE + { + QMutexLocker locker(&m_option->mutex); + if (m_option->base_inProgress) { + QThreadPool::globalInstance()->releaseThread(); + m_option->cond.wait(&m_option->mutex); + QThreadPool::globalInstance()->reserveThread(); + } else +#endif if (m_option->base_valuemap.isEmpty()) { +#ifdef PROEVALUATOR_THREAD_SAFE + m_option->base_inProgress = true; + locker.unlock(); +#endif + // ### init QMAKE_QMAKE, QMAKE_SH // ### init QMAKE_EXT_{C,H,CPP,OBJ} // ### init TEMPLATE_PREFIX @@ -2139,7 +2157,16 @@ ProFileEvaluator::Private::VisitReturn ProFileEvaluator::Private::visitProFile(P evaluateFeatureFile(QLatin1String("default_pre.prf"), &m_option->base_valuemap, &m_option->base_functions); + +#ifdef PROEVALUATOR_THREAD_SAFE + locker.relock(); + m_option->base_inProgress = false; + m_option->cond.wakeAll(); +#endif } +#ifdef PROEVALUATOR_THREAD_SAFE + } +#endif m_valuemapStack.top() = m_option->base_valuemap; m_functionDefs = m_option->base_functions; diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h index 58f682e6a9c5349e5ae23a46b6e7bb2ff7a293b5..60890f5f3d960cc938e20858791db4fa807562a3 100644 --- a/src/shared/proparser/profileevaluator.h +++ b/src/shared/proparser/profileevaluator.h @@ -189,6 +189,11 @@ struct ProFileOption ProFileEvaluator::FunctionDefs base_functions; QStringList feature_roots; QString qmakespec_name; +#ifdef PROEVALUATOR_THREAD_SAFE + QMutex mutex; + QWaitCondition cond; + bool base_inProgress; +#endif }; QT_END_NAMESPACE diff --git a/src/shared/symbianutils/launcher.cpp b/src/shared/symbianutils/launcher.cpp index 25dc3959350bd9b418ed2922d63074840cad5515..0948ca02c92e98dcab05b1c036f6bffc2c8eaaf6 100644 --- a/src/shared/symbianutils/launcher.cpp +++ b/src/shared/symbianutils/launcher.cpp @@ -363,7 +363,7 @@ void Launcher::handleResult(const TrkResult &result) logMessage("TEXT TRACE: " + msg); } } else { - logMessage("APPLICATION OUTPUT: " + result.data); + logMessage("APPLICATION OUTPUT: " + stringFromArray(result.data)); msg = result.data; } msg.replace("\r\n", "\n"); @@ -446,7 +446,10 @@ void Launcher::handleResult(const TrkResult &result) if (itemType == 0 // process && result.data.size() >= 10 && d->m_session.pid == extractInt(result.data.data() + 6)) { - copyFileFromRemote(); + if (d->m_startupActions & ActionDownload) + copyFileFromRemote(); + else + disconnectTrk(); } break; } diff --git a/src/shared/symbianutils/trkdevice.cpp b/src/shared/symbianutils/trkdevice.cpp index 72d91723a8b1a29c3865f2d79eea81617a008ad9..35ec22790afaccb3909c4278eaafc17bc0e31448 100644 --- a/src/shared/symbianutils/trkdevice.cpp +++ b/src/shared/symbianutils/trkdevice.cpp @@ -624,10 +624,11 @@ private: void readMessages(); QByteArray m_trkReadBuffer; + bool linkEstablishmentMode; }; ReaderThreadBase::ReaderThreadBase(const QSharedPointer<DeviceContext> &context) : - m_context(context) + m_context(context), linkEstablishmentMode(true) { static const int trkResultMetaId = qRegisterMetaType<trk::TrkResult>(); Q_UNUSED(trkResultMetaId) @@ -650,7 +651,7 @@ void ReaderThreadBase::readMessages() { TrkResult r; QByteArray rawData; - while (extractResult(&m_trkReadBuffer, m_context->serialFrame, &r, &rawData)) { + while (extractResult(&m_trkReadBuffer, m_context->serialFrame, &r, linkEstablishmentMode, &rawData)) { emit messageReceived(r, rawData); } } diff --git a/src/shared/symbianutils/trkutils.cpp b/src/shared/symbianutils/trkutils.cpp index 40c448d02f3b642e7199184988fc7298e4b0636a..fd9978c736ff4364d92a00e6fa1825bd07a093e7 100644 --- a/src/shared/symbianutils/trkutils.cpp +++ b/src/shared/symbianutils/trkutils.cpp @@ -287,20 +287,30 @@ ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame, ushort& mux) return firstDelimiterPos != -1 ? firstDelimiterPos : buffer.size(); } -bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByteArray *rawData) +bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, bool &linkEstablishmentMode, QByteArray *rawData) { result->clear(); if(rawData) rawData->clear(); - const ushort len = isValidTrkResult(*buffer, serialFrame, result->multiplex); - if (!len) - return false; + ushort len = isValidTrkResult(*buffer, serialFrame, result->multiplex); // handle receiving application output, which is not a regular command const int delimiterPos = serialFrame ? 4 : 0; + if (linkEstablishmentMode) { + //when "hot connecting" a device, we can receive partial frames. + //this code resyncs by discarding data until a TRK frame is found + while (buffer->length() > delimiterPos + && result->multiplex != MuxTextTrace + && !(result->multiplex == MuxTrk && buffer->at(delimiterPos) == 0x7e)) { + buffer->remove(0,1); + len = isValidTrkResult(*buffer, serialFrame, result->multiplex); + } + } + if (!len) + return false; if (buffer->at(delimiterPos) != 0x7e) { result->isDebugOutput = true; result->data = buffer->mid(delimiterPos, len); - *buffer->remove(0, delimiterPos + len); + buffer->remove(0, delimiterPos + len); return true; } // FIXME: what happens if the length contains 0xfe? @@ -308,7 +318,7 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt const QByteArray data = decode7d(buffer->mid(delimiterPos + 1, len - 2)); if(rawData) *rawData = data; - *buffer->remove(0, delimiterPos + len); + buffer->remove(0, delimiterPos + len); byte sum = 0; for (int i = 0; i < data.size(); ++i) // 3 = 2 * 0xfe + sum @@ -323,6 +333,7 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt //logMessage(" CURR DATA: " << stringFromArray(data)); //QByteArray prefix = "READ BUF: "; //logMessage((prefix + "HEADER: " + stringFromArray(header).toLatin1()).data()); + linkEstablishmentMode = false; //have received a good TRK packet, therefore in sync return true; } diff --git a/src/shared/symbianutils/trkutils_p.h b/src/shared/symbianutils/trkutils_p.h index ce81076e41a036bfef04deb3932f0ec77a5fac04..7a147064da6a0a9f6e62bece2d3c3d33f52a30cc 100644 --- a/src/shared/symbianutils/trkutils_p.h +++ b/src/shared/symbianutils/trkutils_p.h @@ -43,7 +43,7 @@ void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteO // returns a QByteArray containing optionally // the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame); -bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0); +bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, bool& linkEstablishmentMode, QByteArray *rawData = 0); } // namespace trk diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index e0ffeb88cf08a1955febd47417752b44406bf431..89429e2a92cdb48e7a819392c3f0b7607c1a9c37 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -1106,8 +1106,10 @@ void TestCore::testBasicStates() // state2 -> state1 view->setCurrentState(state1); QCOMPARE(view->currentState(), state1); - QCOMPARE(view->methodCalls().size(), ++expectedViewMethodCount); - QCOMPARE(view->methodCalls().last(), TestView::MethodCall("stateChanged", QStringList() << "state1" << "state2")); + expectedViewMethodCount += 2; // Since commit fa640f66db we're always going through the base state + QCOMPARE(view->methodCalls().size(), expectedViewMethodCount); + QCOMPARE(view->methodCalls().at(view->methodCalls().size()-2), TestView::MethodCall("stateChanged", QStringList() << QString() << "state2")); + QCOMPARE(view->methodCalls().at(view->methodCalls().size()-1), TestView::MethodCall("stateChanged", QStringList() << "state1" << QString())); QCOMPARE(rect2Instance.property("x").toInt(), 0); // state1 -> baseState diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h index 5e81e3aabe0e1983bcf025fb38e15d19cf62cb52..f3cbc8ebe8e6ae725d0165015d6eab96202f6f88 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.h +++ b/tests/auto/qml/qmldesigner/coretests/testcore.h @@ -164,7 +164,6 @@ private slots: void testCopyModelRewriter1(); void testCopyModelRewriter2(); void testSubComponentManager(); - void testComponentLoadingTabWidget(); void testAnchorsAndRewriting(); void testAnchorsAndRewritingCenter();