From f48f23c89d96520c1701083ba8616f751830e93b Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Wed, 22 Apr 2009 18:17:50 +0200 Subject: [PATCH] fully-fledged webkit-free welcome mode pros: - the non-webkit version is not castrated any more - i18n should become simpler - but need to make the buttons non-labels for optimal results - if we introduce delayed loading of the help plugin, we would get webkit loading out of the startup's critical path alltogether cons: - the page might be a bit harder to modify for some --- src/plugins/coreplugin/core.qrc | 43 +- src/plugins/coreplugin/coreplugin.cpp | 10 - src/plugins/coreplugin/coreplugin.pro | 8 +- .../html/images/bg_site_header_dark_grey.png | Bin 156 -> 0 bytes .../images/body_bg_circles_bottom_right.png | Bin 23017 -> 0 bytes .../html/images/body_bg_gradient.png | Bin 238 -> 0 bytes .../html/images/product_logo_mirror.png | Bin 51058 -> 0 bytes .../coreplugin/html/images/rc_bottom_left.png | Bin 181 -> 0 bytes .../coreplugin/html/images/rc_bottom_mid.png | Bin 126 -> 0 bytes .../html/images/rc_bottom_right.png | Bin 175 -> 0 bytes .../coreplugin/html/images/rc_mid_left.png | Bin 178 -> 0 bytes .../coreplugin/html/images/rc_mid_mid.png | Bin 158 -> 0 bytes .../coreplugin/html/images/rc_mid_right.png | Bin 174 -> 0 bytes .../coreplugin/html/images/rc_top_left.png | Bin 194 -> 0 bytes .../coreplugin/html/images/rc_top_mid.png | Bin 133 -> 0 bytes .../coreplugin/html/images/rc_top_right.png | Bin 199 -> 0 bytes src/plugins/coreplugin/html/qt.css | 378 -------- .../coreplugin/html/recent_projects.html | 41 - .../coreplugin/html/recent_sessions.html | 43 - src/plugins/coreplugin/html/welcome.html | 78 -- .../welcomemode}/btn_feedback.png | Bin .../welcomemode}/btn_feedback_hover.png | Bin .../welcomemode}/btn_getting_started.png | Bin .../btn_getting_started_hover.png | Bin .../welcomemode}/btn_restore_session.png | Bin .../btn_restore_session_hover.png | Bin .../welcomemode}/feedback-bar-background.png | Bin .../welcomemode}/feedback-text.png | Bin .../welcomemode}/list_bullet_arrow.png | Bin .../welcomemode/mode_project.png} | Bin .../welcomemode}/nokia_logo.png | Bin .../welcomemode}/product_logo.png | Bin .../images => images/welcomemode}/qt_logo.png | Bin .../images/welcomemode/rc_combined.png | Bin 0 -> 530 bytes src/plugins/coreplugin/welcomemode.cpp | 260 +++--- src/plugins/coreplugin/welcomemode.h | 9 +- src/plugins/coreplugin/welcomemode.ui | 821 ++++++++++++++++++ src/plugins/coreplugin/welcomemode_p.h | 82 ++ src/plugins/help/helpplugin.cpp | 14 +- 39 files changed, 1075 insertions(+), 712 deletions(-) delete mode 100644 src/plugins/coreplugin/html/images/bg_site_header_dark_grey.png delete mode 100644 src/plugins/coreplugin/html/images/body_bg_circles_bottom_right.png delete mode 100644 src/plugins/coreplugin/html/images/body_bg_gradient.png delete mode 100644 src/plugins/coreplugin/html/images/product_logo_mirror.png delete mode 100644 src/plugins/coreplugin/html/images/rc_bottom_left.png delete mode 100644 src/plugins/coreplugin/html/images/rc_bottom_mid.png delete mode 100644 src/plugins/coreplugin/html/images/rc_bottom_right.png delete mode 100644 src/plugins/coreplugin/html/images/rc_mid_left.png delete mode 100644 src/plugins/coreplugin/html/images/rc_mid_mid.png delete mode 100644 src/plugins/coreplugin/html/images/rc_mid_right.png delete mode 100644 src/plugins/coreplugin/html/images/rc_top_left.png delete mode 100644 src/plugins/coreplugin/html/images/rc_top_mid.png delete mode 100644 src/plugins/coreplugin/html/images/rc_top_right.png delete mode 100644 src/plugins/coreplugin/html/qt.css delete mode 100644 src/plugins/coreplugin/html/recent_projects.html delete mode 100644 src/plugins/coreplugin/html/recent_sessions.html delete mode 100644 src/plugins/coreplugin/html/welcome.html rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_feedback.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_feedback_hover.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_getting_started.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_getting_started_hover.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_restore_session.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/btn_restore_session_hover.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/feedback-bar-background.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/feedback-text.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/list_bullet_arrow.png (100%) rename src/plugins/coreplugin/{html/images/mode_Project.png => images/welcomemode/mode_project.png} (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/nokia_logo.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/product_logo.png (100%) rename src/plugins/coreplugin/{html/images => images/welcomemode}/qt_logo.png (100%) create mode 100644 src/plugins/coreplugin/images/welcomemode/rc_combined.png create mode 100644 src/plugins/coreplugin/welcomemode.ui create mode 100644 src/plugins/coreplugin/welcomemode_p.h diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc index bd8f3ad11f4..7ffa12b5710 100644 --- a/src/plugins/coreplugin/core.qrc +++ b/src/plugins/coreplugin/core.qrc @@ -1,34 +1,5 @@ <RCC> <qresource prefix="/core" > - <file>html/images/bg_site_header_dark_grey.png</file> - <file>html/images/body_bg_circles_bottom_right.png</file> - <file>html/images/body_bg_gradient.png</file> - <file>html/images/btn_feedback.png</file> - <file>html/images/btn_feedback_hover.png</file> - <file>html/images/btn_getting_started.png</file> - <file>html/images/btn_getting_started_hover.png</file> - <file>html/images/btn_restore_session.png</file> - <file>html/images/btn_restore_session_hover.png</file> - <file>html/images/feedback-bar-background.png</file> - <file>html/images/feedback-text.png</file> - <file>html/images/list_bullet_arrow.png</file> - <file>html/images/mode_Project.png</file> - <file>html/images/nokia_logo.png</file> - <file>html/images/product_logo.png</file> - <file>html/images/qt_logo.png</file> - <file>html/images/rc_bottom_left.png</file> - <file>html/images/rc_bottom_mid.png</file> - <file>html/images/rc_bottom_right.png</file> - <file>html/images/rc_mid_left.png</file> - <file>html/images/rc_mid_mid.png</file> - <file>html/images/rc_mid_right.png</file> - <file>html/images/rc_top_left.png</file> - <file>html/images/rc_top_mid.png</file> - <file>html/images/rc_top_right.png</file> - <file>html/qt.css</file> - <file>html/recent_projects.html</file> - <file>html/recent_sessions.html</file> - <file>html/welcome.html</file> <file>images/clean_pane_small.png</file> <file>images/clear.png</file> <file>images/closebutton.png</file> @@ -73,5 +44,19 @@ <file>images/unlocked.png</file> <file>images/extension.png</file> <file>images/darkclosebutton.png</file> + <file>images/welcomemode/btn_feedback.png</file> + <file>images/welcomemode/btn_feedback_hover.png</file> + <file>images/welcomemode/btn_getting_started.png</file> + <file>images/welcomemode/btn_getting_started_hover.png</file> + <file>images/welcomemode/btn_restore_session.png</file> + <file>images/welcomemode/btn_restore_session_hover.png</file> + <file>images/welcomemode/feedback-bar-background.png</file> + <file>images/welcomemode/feedback-text.png</file> + <file>images/welcomemode/list_bullet_arrow.png</file> + <file>images/welcomemode/mode_project.png</file> + <file>images/welcomemode/nokia_logo.png</file> + <file>images/welcomemode/product_logo.png</file> + <file>images/welcomemode/qt_logo.png</file> + <file>images/welcomemode/rc_combined.png</file> </qresource> </RCC> diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index e99f5b796b8..512ceb01b78 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -38,10 +38,6 @@ #include <extensionsystem/pluginmanager.h> #include <QtCore/QtPlugin> -#if !defined(QT_NO_WEBKIT) -#include <QtGui/QApplication> -#include <QtWebKit/QWebSettings> -#endif using namespace Core::Internal; @@ -72,12 +68,6 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage) Q_UNUSED(arguments); const bool success = m_mainWindow->init(errorMessage); if (success) { -#if !defined(QT_NO_WEBKIT) - QWebSettings *webSettings = QWebSettings::globalSettings(); - const QFont applicationFont = QApplication::font(); - webSettings->setFontFamily(QWebSettings::StandardFont, applicationFont.family()); - //webSettings->setFontSize(QWebSettings::DefaultFontSize, applicationFont.pointSize()); -#endif m_welcomeMode = new WelcomeMode; addObject(m_welcomeMode); diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index c3606c1f1bd..57fac677d04 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -75,6 +75,7 @@ SOURCES += mainwindow.cpp \ icore.cpp HEADERS += mainwindow.h \ welcomemode.h \ + welcomemode_p.h \ editmode.h \ tabpositionindicator.h \ fancyactionbar.h \ @@ -155,14 +156,11 @@ FORMS += dialogs/newdialog.ui \ dialogs/saveitemsdialog.ui \ dialogs/openwithdialog.ui \ editormanager/openeditorsview.ui \ - generalsettings.ui + generalsettings.ui \ + welcomemode.ui RESOURCES += core.qrc \ fancyactionbar.qrc -contains(QT_CONFIG, webkit) { - QT += webkit -} - linux-* { images.files = images/qtcreator_logo_*.png images.path = /share/pixmaps diff --git a/src/plugins/coreplugin/html/images/bg_site_header_dark_grey.png b/src/plugins/coreplugin/html/images/bg_site_header_dark_grey.png deleted file mode 100644 index 044c695a4dcf1d6b7338ba9e6433335a21c5be11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRv!2~1^#QbapQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JitIdH978H@CC#xce)j+We@P$+U<`9qNMK4@BNV~f*ua`0 z#H`uy^#1<(X5Yg=(%rNtYe84r!RdP#nRpny<~j7O`Z}o*XcB{`tDnm{r-UW|p64?~ diff --git a/src/plugins/coreplugin/html/images/body_bg_circles_bottom_right.png b/src/plugins/coreplugin/html/images/body_bg_circles_bottom_right.png deleted file mode 100644 index 543e35071ff5cfd574981b5c8e550384798b4325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23017 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 Z{|5}Ce_)CNG3@{V002ovPDHLkV1lRyFHisg diff --git a/src/plugins/coreplugin/html/images/body_bg_gradient.png b/src/plugins/coreplugin/html/images/body_bg_gradient.png deleted file mode 100644 index ebaa078c3e2abd0f1db7eafcc2be772e2e4c3e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmV<K01^L*P)<h;3K|Lk000e1NJLTq000R900N>20ssI2i??Az0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUykV!;ARCwC#(>o4>Fcd{WK-vFV{deiK zG?pj`MAp1^I-l#k_r6VTXY2`UtueNo)mj<*TPvk7_NwKa8T+}Vlo-3kVvLMkwh#hi z=lhH?W_E1zW9yntFq>ey>+W52_b$3KZJF*&ccv}Vo$1bWXSy?+U^c;Qg4qkRCGW!Q ojM*7uw#%4ZGv*($HS8<E0E&)F>tR~=y#N3J07*qoM6N<$f_v6w*Z=?k diff --git a/src/plugins/coreplugin/html/images/product_logo_mirror.png b/src/plugins/coreplugin/html/images/product_logo_mirror.png deleted file mode 100644 index d7aa9d1992f4a96ec4d804a315cd33bc52c98348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51058 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 Tk&|YW00000NkvXXu0mjf?3^fK diff --git a/src/plugins/coreplugin/html/images/rc_bottom_left.png b/src/plugins/coreplugin/html/images/rc_bottom_left.png deleted file mode 100644 index 106f92f462764872bf68c7cd678916bfcb1f5fa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X!aZFaLn>}1g>+|qu)Q#OTPGuXLXrZ*ip3AEzu*7g?osfE z7w0aU?=I9#5W80Tqw2?}=J&_4F1@LVdGqLukI$SFToUtbtB*YhFzS{*5yp^|sgUL# c#vqWu&@Lf%r`gg`6lev5r>mdKI;Vst06o$}NB{r; diff --git a/src/plugins/coreplugin/html/images/rc_bottom_mid.png b/src/plugins/coreplugin/html/images/rc_bottom_mid.png deleted file mode 100644 index 7c01362073cc8429573776f78e91f976c2c9dcec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X6g*uVLn>}1)qHz%v!2bSp|g=eLWnCu#w+dT!(ax11cv`- WS>yNR^-KY(W$<+Mb6Mw<&;$VW10{+8 diff --git a/src/plugins/coreplugin/html/images/rc_bottom_right.png b/src/plugins/coreplugin/html/images/rc_bottom_right.png deleted file mode 100644 index eed56c4f5c002a3e65ce04702b8b716b386de972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X0zF+ELn>}1)qHz%vz|@nz`~Si^1{rF4$iFm|Nr~Vv83){ zNWuG?xA!`{GURSMXJ3E+e*MpX2`}Hg^=`Ps-jfx`yDuZFj_G6YgeQ&jwybAhWMk+t Wk$+L}@6i^Z;S8RxelF{r5}E*9+Cqx} diff --git a/src/plugins/coreplugin/html/images/rc_mid_left.png b/src/plugins/coreplugin/html/images/rc_mid_left.png deleted file mode 100644 index d6dd8de8cf252ce6dabda8e755a97be8d7fa6d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^96)@UgAGUq7hjqPq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6@_@ZIEGZ*dUNR@Z-at>%f;S}V!IYHuHN`8H-UpyLcgk7 zrJzdv-<2KjZr-ij<-S*j;fL6q-=2>aGjub(VGIcNl~)y8ptfLHM8lm1TZRT-rv1&T a2N-^Ta$ISC=wC9>d<IWfKbLh*2~7a15I`dU diff --git a/src/plugins/coreplugin/html/images/rc_mid_mid.png b/src/plugins/coreplugin/html/images/rc_mid_mid.png deleted file mode 100644 index 26040bdd975238f2a3e4d92b372ecb7d10158609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^96)@Ug9%995p+EUq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6*+jiIEGZ*dUJ6jFM|RP^TCE2^%434VhwVg#lP=Xs;s=6 z7OVD0Jgi*#<AMkLyGmX<E%6rTba~Tc&obX$Xd44F!!l)!gn7EBHv!FJ@O1TaS?83{ F1OPERGj#v} diff --git a/src/plugins/coreplugin/html/images/rc_mid_right.png b/src/plugins/coreplugin/html/images/rc_mid_right.png deleted file mode 100644 index 2714b81f17fc8d92860a71976a0f2d3ff4bc7085..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^96)@UgAGUq7hjqPq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6$N;@IEGZ*dUMH8kU^2h)iJ?O$m&AlEMaM8M@DAVqs#7T zy}#aZV$)8${})d^WO!iuA$6HOgBa@#<^{`U$*GDhP+PDpqTx=1EklDZlXwEB0mJqR Wt?LTTxk5m*89ZJ6T-G@yGywpMpg5rb diff --git a/src/plugins/coreplugin/html/images/rc_top_left.png b/src/plugins/coreplugin/html/images/rc_top_left.png deleted file mode 100644 index ffed637a15f20d80abe92e54d3dc7119c3ba2218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XQaoK8Ln>}1{rU6LxVf-OpPiYxnMvR@lVJxhdrwv%@0>q( z=Ew;bGbvw5ah-cJGO}f&=!S+8zjNGOm%=7+BpzUz(GcP1>vm--BRhj;LUL;2v*XJd p^c7YxJn?Az|NsBv5C(w+hN5D=Da*Tl=mPCy@O1TaS?83{1OOn(LH+;$ diff --git a/src/plugins/coreplugin/html/images/rc_top_mid.png b/src/plugins/coreplugin/html/images/rc_top_mid.png deleted file mode 100644 index 10f5abd31c1d1938230c0c8d8554869c8d287305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X)ID7sLn>}1g>+|qNIk$TVPF66kNkWlH8!RM1C4~A|K-=K dOE56;FsLu(F#cUOc?wVqgQu&X%Q~loCII6CCWin3 diff --git a/src/plugins/coreplugin/html/images/rc_top_right.png b/src/plugins/coreplugin/html/images/rc_top_right.png deleted file mode 100644 index 830bb46c5d06ef57b0486566a05e8ac827a164f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XGCf@!Ln>}1g>+|qNOfSfZ}?#-U~gf)`3L*s=jZ4DS3dpk z&)?^7*B)R0{h5E{{zs3mzqg)op~QH@=1m;0wLIH=&vAD#6^R;%9B7!;vqF2qq{Ay4 vrnb(M_t^L_gn^kwbi<$j|K-;+H83zU7zxW&8uSH&T*lz(>gTe~DWM4f;9E?g diff --git a/src/plugins/coreplugin/html/qt.css b/src/plugins/coreplugin/html/qt.css deleted file mode 100644 index 9e4fb05b8cd..00000000000 --- a/src/plugins/coreplugin/html/qt.css +++ /dev/null @@ -1,378 +0,0 @@ -/************************************** -Nokia, QT Software CSS - IDE Startseite -**************************************/ - -/************************************** -Reset -**************************************/ -* { - - vertical-align: baseline; - font-weight: inherit; - font-family: inherit; - font-style: inherit; - padding: 0; - margin: 0; - -} - -/*image link*/ -a.img_link:link {text-decoration:none;} -a.img_link:visited {text-decoration:none} -a.img_link:active {text-decoration:none} -a.img_link:hover {text-decoration:none} - -/*regular link*/ -a:link {color:#5e5e5e; text-decoration:none;} -a:visited {color:#5e5e5e; text-decoration:none} -a:active {color:#5e5e5e; text-decoration:none} -a:hover {color:#5e5e5e; text-decoration:underline} - -p{ - - font-size:9pt; - - } - -strong{ - font-weight: bold; -} - -em { - font-style: italic; -} - -ul{ - - list-style-type: none; - margin:0px 0px; - padding:15px 0px; - - } - -li { - - background:url(images/list_bullet_arrow.png) top left no-repeat; - font-size:9pt; - padding:1px 0px 0px 22px; - margin:0px 0px 15px 0px; - } - -li:last-child{ - - margin:0px; - - } - - - - - -img { - - border: 0 none; - - } - -/*Welcome Headline*/ -h1{ - - font-size:2em; - font-weight:normal; - padding-bottom:22px; - - color:#4d4d4d; - - } - -/*Headlines Recent...*/ -h2{ - - font-size:18px; - font-weight:normal; - color:#7c92a1; - border-bottom:1px solid #a6b5c1; - padding:5px 0px 10px 0px; - - } - -.clear_float{ - - clear:both; - - } - -.clear_left{ - - clear:left; - - } - -.clear_right{ - - clear:right; - - } - -/************************************** -HTML / BODY -**************************************/ -html, body { - font-family: Arial, Trebuchet, Lucida, sans-serif; - color: #5e5e5e; - background:#d7d7d7 url(images/body_bg_gradient.png) top left repeat-x; - height:100%; -} - -/*Platzierung der Circles unten rechts*/ -.global_container { - position:relative; - width:100%; - min-height:100%; - min-width:550px; -} - - -.footer { - position:relative; - list-style-type:none; - margin:0; - padding:0; - width:100%; - height:55px; - margin-top:-86px; -} - -.feedback-bar { - position:relative; - list-style-type:none; - margin:0; - padding:0; - height: 31px; - width: 100%; - margin-top: 0px; - background-image: url(images/feedback-bar-background.png); -} - -a.btn_feedback { - background-image:url(images/btn_feedback.png); - width:102px; - height:26px; - display:block; - float:left; -} - -a.btn_feedback:hover { - background-image:url(images/btn_feedback_hover.png) -} - -.left-logo { - float:left; - background:none; - margin:0; - padding:0; - padding-left: 15px; - content:url(images/qt_logo.png); - } - -.right-logo { - float:right; - background:none; - margin: 0; - margin-right: 15px; - margin-top: 25px; - padding:0; - content:url(images/nokia_logo.png); - } - -/************************************** -Site Header -**************************************/ -.site_header{ - - height:21px; - background:#686868 url(images/bg_site_header_dark_grey.png) top left repeat-x; - - } - -.site_header p{ - - padding:3px 10px; - color:#fff; - - } - - -/************************************** -Content -**************************************/ -.content_container{ - - margin:0px auto; - - /*CUSTOMIZE WIDTH*/ - width:600px; - } - - -/************************************** -Layout TOP - Logo und Welcome Text -**************************************/ -.layout_top{ - - padding-top:50px; - min-height:250px; - - } - - -/*Product Logo*/ -.layout_top .product_logo{ - - float:left; - width:210px; - - } - -.layout_top .product_logo img{ - - - } - -/*Welcome Text*/ -.layout_top .welcome_text{ - - margin-left:210px; - padding-top:20px; - padding-bottom:30px; - - - } - -.layout_top .welcome_text p{ - - font-size:9pt; - line-height:180%; - - } - -.layout_top .welcome_text .get_started_container{ - - border-top:1px solid #a8a8a8; - margin-top:20px; - padding:10px 0px; - - } - -/*Getting started Button inlusive CSS HOVER*/ -a.btn_getting_started{ - - float:right; - display:block; - background-image:url(images/btn_getting_started.png); - width:133px; - height:29px; - - } - -a.btn_getting_started:hover{ - - background-image:url(images/btn_getting_started_hover.png) - - }; - - -/************************************** -Layout BOTTOM - Recent Projects und Recent Sessions -**************************************/ - - -/*ROUNDED CORNER BOX - fluid layout compatible*/ -.rc_box{} - -.rc_box .top{height:8px;} - -.rc_box .top .left{float:left; height:8px; width:8px; background:url(images/rc_top_left.png) top left no-repeat;} - -.rc_box .top .mid{margin-left:8px; margin-right:8px; height:8px; background:url(images/rc_top_mid.png) top left repeat-x;} - -.rc_box .top .right{float:right; height:8px; width:8px; background:url(images/rc_top_right.png) top left no-repeat;} - - -.rc_box .mid{} - -.rc_box .mid .mid{padding:0px 20px 0px 10px; min-height:203px; background:#e6e6e6 url(images/rc_mid_mid.png) top left repeat-x; border-left:1px solid #a6b5c1; border-right:1px solid #a6b5c1;} - -.rc_box .icon{ - - width:35px; - float:left; - padding-top:3px; - - } - -.rc_box .box_content{ - - margin-left:35px; - - } - - -.rc_box .bottom{height:8px;} - -.rc_box .bottom .left{float:left; height:8px; width:8px; background:url(images/rc_bottom_left.png) top left no-repeat;} - -.rc_box .bottom .mid{margin-left:8px; margin-right:8px; height:8px; background:url(images/rc_bottom_mid.png) top left repeat-x;} - -.rc_box .bottom .right{float:right; height:8px; width:8px; background:url(images/rc_bottom_right.png) top left no-repeat;} - -/*Layout Bottom*/ -.layout_bottom{ padding:10px 0px 50px 0px; } - -/*Recent Projects*/ -.layout_bottom .rec_proj_container{ - - margin-left:50%; - - } - -.layout_bottom .rec_proj_container .rec_proj_box{ - - margin-left:10px; - - } - - - -/*Recent Sessions*/ -.layout_bottom .rec_sess_container{ - - width:50%; - float:left; - - } - -.layout_bottom .rec_sess_container .rec_sess_box{ - - margin-right:10px; - - } - -/*Restore Session Button inlusive CSS HOVER*/ -a.restore_session{ - - float:right; - display:block; - background-image:url(images/btn_restore_session.png); - width:137px; - height:27px; - - } - -a.restore_session:hover{ - - background-image:url(images/btn_restore_session_hover.png) - - }; - - diff --git a/src/plugins/coreplugin/html/recent_projects.html b/src/plugins/coreplugin/html/recent_projects.html deleted file mode 100644 index db1bab8bcff..00000000000 --- a/src/plugins/coreplugin/html/recent_projects.html +++ /dev/null @@ -1,41 +0,0 @@ - <div class="rc_box rec_proj_container"> - <div class="rec_proj_box"> - <!-- top --> - <div class="top"> - <div class="left"></div> - <div class="right"></div> - <div class="mid"></div> - </div> - - <!-- mid --> - <div class="mid"> - - <div class="mid"> - - <div class="icon"> - <img src="images/mode_Project.png"></img> - </div> - <div class="box_content"> - <h2>Recent Projects</h2> - <ul> - <!-- RECENT PROJECTS LIST --> - <!--<li><p><a href="#">Project 1</a></p></li> - <li><p><a href="#">Project 2</a></p></li> - <li><p><a href="#">Project 3</a></p></li> - <li><p><a href="#">Project 4</a></p></li> - <li><p><a href="#">Project 5</a></p></li>--> - </ul> - </div> - - </div> - - </div> - - <!-- bottom --> - <div class="bottom"> - <div class="left"></div> - <div class="right"></div> - <div class="mid"></div> - </div> - </div> - </div> diff --git a/src/plugins/coreplugin/html/recent_sessions.html b/src/plugins/coreplugin/html/recent_sessions.html deleted file mode 100644 index d2f6f2a5967..00000000000 --- a/src/plugins/coreplugin/html/recent_sessions.html +++ /dev/null @@ -1,43 +0,0 @@ - <div class="rc_box rec_sess_container"> - <div class="rec_sess_box"> - <!-- top --> - <div class="top"> - <div class="left"></div> - <div class="right"></div> - <div class="mid"></div> - </div> - - <!-- mid --> - <div class="mid"> - - <div class="mid"> - - <div class="icon"> - <img src="images/mode_Project.png"></img> - </div> - <div class="box_content"> - <h2>Recent Sessions</h2> - <ul> - <!-- RECENT SESSIONS LIST --> - <!--<li><p><a href="#">Session 1</a></p></li> - <li><p><a href="#">Session 2</a></p></li> - <li><p><a href="#">Session 3</a></p></li> - <li><p><a href="#">Session 4</a></p></li>--> - </ul> - - <a class="restore_session img_link" href="gh-session:LAST_SESSION"> </a> - <div class="clear_right"></div> - </div> - - </div> - - </div> - - <!-- bottom --> - <div class="bottom"> - <div class="left"></div> - <div class="right"></div> - <div class="mid"></div> - </div> - </div> - </div> diff --git a/src/plugins/coreplugin/html/welcome.html b/src/plugins/coreplugin/html/welcome.html deleted file mode 100644 index 0e5be285775..00000000000 --- a/src/plugins/coreplugin/html/welcome.html +++ /dev/null @@ -1,78 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - - <title>Nokia, Qt Software</title> - <!--<meta name="expires" content="0">--> - - <meta http-equiv="content-type" content="text/html;charset=utf-8" /> - - <link rel="stylesheet" type="text/css" href="qt.css"> - <script type="text/javascript"> - var preloadImg01 = new Image(); - preloadImg01.src = "images/btn_getting_started_hover.png"; - var preloadImg02 = new Image(); - preloadImg02.src = "images/btn_restore_session_hover.png"; - var preloadImg03 = new Image(); - preloadImg03.src = "images/btn_feedback_hover.png"; - </script> -</head> -<body> - <div class="global_container"> - <!-- Obere dunkelgraue Zeile "Welcome" --> - <!-- <div class="site_header"> - <p>Welcome</p> - </div> - --> - - <!-- Content START --> - <!-- Zentrierung des Contents --> - <div class="content_container"> - <!-- TOP - Logo und Welcome Text --> - <div class="layout_top"> - <div class="product_logo"> - <img src="images/product_logo.png" alt="product_logo"></img> - </div> - <div class="welcome_text"> - <h1>Welcome</h1> - <p>Qt Creator is an intuitive, modern cross platform IDE that enables - developers to create graphically appealing applications for desktop, - embedded, and mobile devices. Click on <strong>Getting Started</strong> to - begin developing with Qt Creator.</p> - <div class="get_started_container"> - - <a class="btn_getting_started img_link" href="gh:getting-started"> </a> - <div class="clear_right"></div> - - </div> - </div> - </div> - - <!-- BOTTOM - Recent Projects und Recent Sessions --> - <div class="layout_bottom"> - - <!-- RECENT SESSIONS --> - - <!-- RECENT PROJECTS --> - - <!-- clear floating of sessions and projects --> - <div class="clear_left"></div> - - </div> - <!-- Layout Bottom END --> - - </div> - - <!-- Content END --> - - </div> - <ul class="footer"> - <li class="right-logo"/> - <li class="left-logo"/> - </ul> - <ul class="feedback-bar"> - <img src="images/feedback-text.png" alt="Help us make Qt Creator better" style="margin-left: 10px; margin-top: 3px; float: left;"/> - <a class="btn_feedback img_link" href="http://www.qtsoftware.com/forms/feedback-forms/qt-creator-user-feedback/view" style="margin-top: 3px; margin-left: 4px;"> </a> - </ul> -</body> diff --git a/src/plugins/coreplugin/html/images/btn_feedback.png b/src/plugins/coreplugin/images/welcomemode/btn_feedback.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_feedback.png rename to src/plugins/coreplugin/images/welcomemode/btn_feedback.png diff --git a/src/plugins/coreplugin/html/images/btn_feedback_hover.png b/src/plugins/coreplugin/images/welcomemode/btn_feedback_hover.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_feedback_hover.png rename to src/plugins/coreplugin/images/welcomemode/btn_feedback_hover.png diff --git a/src/plugins/coreplugin/html/images/btn_getting_started.png b/src/plugins/coreplugin/images/welcomemode/btn_getting_started.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_getting_started.png rename to src/plugins/coreplugin/images/welcomemode/btn_getting_started.png diff --git a/src/plugins/coreplugin/html/images/btn_getting_started_hover.png b/src/plugins/coreplugin/images/welcomemode/btn_getting_started_hover.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_getting_started_hover.png rename to src/plugins/coreplugin/images/welcomemode/btn_getting_started_hover.png diff --git a/src/plugins/coreplugin/html/images/btn_restore_session.png b/src/plugins/coreplugin/images/welcomemode/btn_restore_session.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_restore_session.png rename to src/plugins/coreplugin/images/welcomemode/btn_restore_session.png diff --git a/src/plugins/coreplugin/html/images/btn_restore_session_hover.png b/src/plugins/coreplugin/images/welcomemode/btn_restore_session_hover.png similarity index 100% rename from src/plugins/coreplugin/html/images/btn_restore_session_hover.png rename to src/plugins/coreplugin/images/welcomemode/btn_restore_session_hover.png diff --git a/src/plugins/coreplugin/html/images/feedback-bar-background.png b/src/plugins/coreplugin/images/welcomemode/feedback-bar-background.png similarity index 100% rename from src/plugins/coreplugin/html/images/feedback-bar-background.png rename to src/plugins/coreplugin/images/welcomemode/feedback-bar-background.png diff --git a/src/plugins/coreplugin/html/images/feedback-text.png b/src/plugins/coreplugin/images/welcomemode/feedback-text.png similarity index 100% rename from src/plugins/coreplugin/html/images/feedback-text.png rename to src/plugins/coreplugin/images/welcomemode/feedback-text.png diff --git a/src/plugins/coreplugin/html/images/list_bullet_arrow.png b/src/plugins/coreplugin/images/welcomemode/list_bullet_arrow.png similarity index 100% rename from src/plugins/coreplugin/html/images/list_bullet_arrow.png rename to src/plugins/coreplugin/images/welcomemode/list_bullet_arrow.png diff --git a/src/plugins/coreplugin/html/images/mode_Project.png b/src/plugins/coreplugin/images/welcomemode/mode_project.png similarity index 100% rename from src/plugins/coreplugin/html/images/mode_Project.png rename to src/plugins/coreplugin/images/welcomemode/mode_project.png diff --git a/src/plugins/coreplugin/html/images/nokia_logo.png b/src/plugins/coreplugin/images/welcomemode/nokia_logo.png similarity index 100% rename from src/plugins/coreplugin/html/images/nokia_logo.png rename to src/plugins/coreplugin/images/welcomemode/nokia_logo.png diff --git a/src/plugins/coreplugin/html/images/product_logo.png b/src/plugins/coreplugin/images/welcomemode/product_logo.png similarity index 100% rename from src/plugins/coreplugin/html/images/product_logo.png rename to src/plugins/coreplugin/images/welcomemode/product_logo.png diff --git a/src/plugins/coreplugin/html/images/qt_logo.png b/src/plugins/coreplugin/images/welcomemode/qt_logo.png similarity index 100% rename from src/plugins/coreplugin/html/images/qt_logo.png rename to src/plugins/coreplugin/images/welcomemode/qt_logo.png diff --git a/src/plugins/coreplugin/images/welcomemode/rc_combined.png b/src/plugins/coreplugin/images/welcomemode/rc_combined.png new file mode 100644 index 0000000000000000000000000000000000000000..c395794ca3f353cfb6bf533b1594839f0d1cbf66 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^5<q;LgAGWQa|b>GQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&aw0qiB7zOL*ySwuOc#KZhg^Z`wo<muuVQgQ3; z9b0dwM2TY`U)wx?@v(K1K&QddHa};}tLz*~8Mz&Y&I@e4@-CcXRu<2qvm2G>Wc9Lb zUoqi`RMld~OIva-SauZ4wEX|e`0jr3gNM7$eTkU#<SDnHr|=}BNlKs0c|Aitr_NsN zbokS!)(j=N*n4*)BEK80bTxmX@;4`c+pYEHSD#<H7WeVT;(wJ{>c!l_?6<RLZ=RgI zx-U1$&R_qy*~W_#7tZ|ovL|+rPQ0{dWWLSTB@N5B8)vJuI`_@xkb3c!NBV2!FFuP& zS6-H|edh*x6a<<yYfo=td%*oqYX5$dJ4zrSsa`i`Ahm%11&F#d#pJ0NBLl;PWlJ=H z+{EL$ObiSPzMjDlIaVO&4Tm+5!|-U<4p7KL^)WD5&GZBD85n-pf4KVV-%pOJ!u;pc zCw?i2uD0Zt+EHJl>$&RI$vaMe7sdRX^ZC-df-|yPdpmzwRsR0{_ub34IqCnOY`B>f u9|;Pk!qWI<KHf#Oa{Dw_E_-)+%GdaS`?KsStS*6Kk-^i|&t;ucLK6V6a@LRl literal 0 HcmV?d00001 diff --git a/src/plugins/coreplugin/welcomemode.cpp b/src/plugins/coreplugin/welcomemode.cpp index 6c56736f0a4..adf3e933f3d 100644 --- a/src/plugins/coreplugin/welcomemode.cpp +++ b/src/plugins/coreplugin/welcomemode.cpp @@ -32,83 +32,35 @@ #include "uniqueidmanager.h" #include "modemanager.h" -#if !defined(QT_NO_WEBKIT) -#include <QtWebKit/QWebView> -#include <QtGui/QApplication> -#include <QtCore/QFileInfo> -#else -#include <QtGui/QLabel> -#endif #include <QtGui/QToolBar> #include <QtGui/QDesktopServices> +#include <QtGui/QMouseEvent> #include <QtCore/QDir> -#include <QtCore/QFile> -#include <QtCore/QTextStream> +#include <QtCore/QFileInfo> #include <QtCore/QDebug> #include <QtCore/QUrl> +#include "ui_welcomemode.h" + namespace Core { namespace Internal { -static QString readFile(const QString &name) -{ - QFile f(name); - if (!f.open(QIODevice::ReadOnly)) { - qWarning("Unable to open %s: %s", name.toUtf8().constData(), f.errorString().toUtf8().constData()); - return QString(); - } - QTextStream ts(&f); - return ts.readAll(); -} - struct WelcomeModePrivate { WelcomeModePrivate(); QWidget *m_widget; -#if !defined(QT_NO_WEBKIT) - QWebView *m_webview; -#else - QLabel *m_label; -#endif + QWidget *m_welcomePage; + Ui::welcomePage ui; WelcomeMode::WelcomePageData lastData; - - const QString m_htmlTemplate; - const QString m_sessionHtmlTemplate; - const QString m_projectHtmlTemplate; - const QUrl m_baseUrl; }; -WelcomeModePrivate::WelcomeModePrivate() : - m_widget(new QWidget), -#if !defined(QT_NO_WEBKIT) - m_webview(new QWebView), -#else - m_label(new QLabel), -#endif - m_htmlTemplate(readFile(QLatin1String(":/core/html/welcome.html"))), - m_sessionHtmlTemplate(readFile(QLatin1String(":/core/html/recent_sessions.html"))), - m_projectHtmlTemplate(readFile(QLatin1String(":/core/html/recent_projects.html"))), - m_baseUrl(QUrl(QLatin1String("qrc:/core/html/welcome.html"))) +WelcomeModePrivate::WelcomeModePrivate() { -#if !defined(QT_NO_WEBKIT) - m_webview->setContextMenuPolicy(Qt::NoContextMenu); -#endif } -#if defined(QT_NO_WEBKIT) - -const char LABEL[] = QT_TRANSLATE_NOOP("Core::Internal::WelcomeMode", - "<center><table><tr><td><img src=\":/core/html/images/product_logo.png\"/></td><td width=300>" - "<h2><br/><br/>Welcome</h2><p> Qt Creator is an intuitive, modern cross platform IDE that enables " - "developers to create graphically appealing applications for desktop, " - "embedded, and mobile devices. " - "<p><font color=\"red\">(This startup page lacks features due to disabled WebKit support)</font>" - "</td></tr></table>"); - -#endif // --- WelcomePageData bool WelcomeMode::WelcomePageData::operator==(const WelcomePageData &rhs) const @@ -140,27 +92,25 @@ QDebug operator<<(QDebug dgb, const WelcomeMode::WelcomePageData &d) WelcomeMode::WelcomeMode() : m_d(new WelcomeModePrivate) { + m_d->m_widget = new QWidget; QVBoxLayout *l = new QVBoxLayout(m_d->m_widget); l->setMargin(0); l->setSpacing(0); l->addWidget(new QToolBar(m_d->m_widget)); -#if !defined(QT_NO_WEBKIT) - connect(m_d->m_webview, SIGNAL(linkClicked(QUrl)), this, SLOT(linkClicked(QUrl))); - - WelcomePageData welcomePageData; - updateWelcomePage(welcomePageData); - - l->addWidget(m_d->m_webview); - m_d->m_webview->setAcceptDrops(false); - m_d->m_webview->settings()->setAttribute(QWebSettings::PluginsEnabled, false); - m_d->m_webview->settings()->setAttribute(QWebSettings::JavaEnabled, false); - -#else - m_d->m_label->setWordWrap(true); - m_d->m_label->setAlignment(Qt::AlignCenter); - m_d->m_label->setText(tr(LABEL)); - l->addWidget(m_d->m_label); -#endif + + m_d->m_welcomePage = new QWidget(m_d->m_widget); + m_d->ui.setupUi(m_d->m_welcomePage); + m_d->ui.sessTreeWidget->viewport()->setAutoFillBackground(false); + m_d->ui.projTreeWidget->viewport()->setAutoFillBackground(false); + l->addWidget(m_d->m_welcomePage); + + updateWelcomePage(WelcomePageData()); + + connect(m_d->ui.gettingStartedButton, SIGNAL(clicked()), SIGNAL(requestHelp())); + connect(m_d->ui.feedbackButton, SIGNAL(clicked()), SLOT(slotFeedback())); + connect(m_d->ui.restoreSessionButton, SIGNAL(clicked()), SLOT(slotRestoreLastSession())); + connect(m_d->ui.sessTreeWidget, SIGNAL(activated(QString)), SLOT(slotSessionClicked(QString))); + connect(m_d->ui.projTreeWidget, SIGNAL(activated(QString)), SLOT(slotProjectClicked(QString))); } WelcomeMode::~WelcomeMode() @@ -202,78 +152,138 @@ QList<int> WelcomeMode::context() const void WelcomeMode::updateWelcomePage(const WelcomePageData &welcomePageData) { -// should really only modify the DOM tree - -#if defined(QT_NO_WEBKIT) - Q_UNUSED(welcomePageData); -#else - // Update only if data are modified if (welcomePageData == m_d->lastData) return; m_d->lastData = welcomePageData; - QString html = m_d->m_htmlTemplate; - + m_d->m_widget->setUpdatesEnabled(false); if (!welcomePageData.previousSession.isEmpty() || !welcomePageData.projectList.isEmpty()) { - QString sessionHtml = m_d->m_sessionHtmlTemplate; - sessionHtml.replace(QLatin1String("LAST_SESSION"), welcomePageData.previousSession); + m_d->ui.sessTreeWidget->clear(); + m_d->ui.projTreeWidget->clear(); if (welcomePageData.sessionList.count() > 1) { - QString sessions; - foreach (QString s, welcomePageData.sessionList) { - QString last; + foreach (const QString &s, welcomePageData.sessionList) { + QString str = s; if (s == welcomePageData.previousSession) - last = tr(" (last session)"); - sessions += QString::fromLatin1("<li><p><a href=\"gh-session:%1\">%2%3</a></p></li>").arg(s, s, last); + str = tr("%1 (last session)").arg(s); + m_d->ui.sessTreeWidget->addItem(str, s); } - sessionHtml.replace(QLatin1String("<!-- RECENT SESSIONS LIST -->"), sessions); + m_d->ui.sessTreeWidget->updateGeometry(); + m_d->ui.sessTreeWidget->show(); + } else { + m_d->ui.sessTreeWidget->hide(); } - html.replace(QLatin1String("<!-- RECENT SESSIONS -->"), sessionHtml); - - QString projectHtml = m_d->m_projectHtmlTemplate; - { - QString projects; - QTextStream str(&projects); - - QList<QPair<QString, QString> >::const_iterator it, end; - end = welcomePageData.projectList.constEnd(); - for( it = welcomePageData.projectList.constBegin(); it != end; ++it) { - const QFileInfo fi((*it).first); - str << "<li><p><a href=\"gh-project:" << (*it).first << "\" title=\"" - << QDir::toNativeSeparators(fi.absolutePath()) << "\">" << (*it).second << "</a></p></li>\n"; - } - projectHtml.replace(QLatin1String("<!-- RECENT PROJECTS LIST -->"), projects); + + typedef QPair<QString, QString> QStringPair; + foreach (const QStringPair &it, welcomePageData.projectList) { + QTreeWidgetItem *item = m_d->ui.projTreeWidget->addItem(it.second, it.first); + const QFileInfo fi(it.first); + item->setToolTip(1, QDir::toNativeSeparators(fi.absolutePath())); } - html.replace(QLatin1String("<!-- RECENT PROJECTS -->"), projectHtml); - } + m_d->ui.projTreeWidget->updateGeometry(); - m_d->m_webview->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); - m_d->m_webview->setHtml(html, m_d->m_baseUrl); -#endif + m_d->ui.recentSessionsFrame->show(); + m_d->ui.recentProjectsFrame->show(); + } else { + m_d->ui.recentSessionsFrame->hide(); + m_d->ui.recentProjectsFrame->hide(); + } + m_d->m_widget->setUpdatesEnabled(true); } -void WelcomeMode::linkClicked(const QUrl &url) +void WelcomeMode::activateEditMode() { - QString scheme = url.scheme(); Core::ModeManager *modeManager = ModeManager::instance(); - if (scheme.startsWith(QLatin1String("gh"))) { - QString s = url.toString(QUrl::RemoveScheme); - if (scheme == QLatin1String("gh")) { - emit requestHelp(s); - } else if (scheme == QLatin1String("gh-project")) { - emit requestProject(s); - if (modeManager->currentMode() == this) - modeManager->activateMode(Core::Constants::MODE_EDIT); - } else if (scheme == QLatin1String("gh-session")) { - emit requestSession(s); - if (modeManager->currentMode() == this) - modeManager->activateMode(Core::Constants::MODE_EDIT); - } - } else { - QDesktopServices::openUrl(url); + if (modeManager->currentMode() == this) + modeManager->activateMode(Core::Constants::MODE_EDIT); +} + +void WelcomeMode::slotSessionClicked(const QString &data) +{ + emit requestSession(data); + activateEditMode(); +} + +void WelcomeMode::slotProjectClicked(const QString &data) +{ + emit requestProject(data); + activateEditMode(); +} + +void WelcomeMode::slotRestoreLastSession() +{ + emit requestSession(m_d->lastData.previousSession); + activateEditMode(); +} + +void WelcomeMode::slotFeedback() +{ + QDesktopServices::openUrl(QUrl(QLatin1String( + "http://www.qtsoftware.com/forms/feedback-forms/qt-creator-user-feedback/view"))); +} + +// --- WelcomeModeButton + +WelcomeModeButton::WelcomeModeButton(QWidget *parent) : + QLabel(parent), + m_isPressed(false) +{ + setCursor(QCursor(Qt::PointingHandCursor)); +} + +void WelcomeModeButton::mousePressEvent(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) + m_isPressed = true; +} + +void WelcomeModeButton::mouseReleaseEvent(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton && m_isPressed) { + m_isPressed = false; + if (rect().contains(event->pos())) + emit clicked(); } } +// --- WelcomeModeTreeWidget + +WelcomeModeTreeWidget::WelcomeModeTreeWidget(QWidget *parent) : + QTreeWidget(parent), + m_bullet(QLatin1String(":/core/images/welcomemode/list_bullet_arrow.png")) +{ + connect(this, SIGNAL(itemClicked(QTreeWidgetItem *, int)), + SLOT(slotItemClicked(QTreeWidgetItem *))); +} + +QSize WelcomeModeTreeWidget::sizeHint() const +{ + return QSize(QTreeWidget::sizeHint().width(), 30 * topLevelItemCount()); +} + +QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QString &data) +{ + QTreeWidgetItem *item = new QTreeWidgetItem(this); + item->setIcon(0, m_bullet); + item->setSizeHint(0, QSize(24, 30)); + QWidget *lbl = new QLabel(label); + lbl->setCursor(QCursor(Qt::PointingHandCursor)); + lbl->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + QBoxLayout *lay = new QVBoxLayout; + lay->setContentsMargins(3, 2, 0, 0); + lay->addWidget(lbl); + QWidget *wdg = new QWidget; + wdg->setLayout(lay); + setItemWidget(item, 1, wdg); + item->setData(0, Qt::UserRole, data); + return item; +} + +void WelcomeModeTreeWidget::slotItemClicked(QTreeWidgetItem *item) +{ + emit activated(item->data(0, Qt::UserRole).toString()); +} + } // namespace Internal } // namespace Core diff --git a/src/plugins/coreplugin/welcomemode.h b/src/plugins/coreplugin/welcomemode.h index 5b4228b8b8b..52e009acca5 100644 --- a/src/plugins/coreplugin/welcomemode.h +++ b/src/plugins/coreplugin/welcomemode.h @@ -78,12 +78,17 @@ public: signals: void requestProject(const QString &project); void requestSession(const QString &session); - void requestHelp(const QString &help); + void requestHelp(); private slots: - void linkClicked(const QUrl &url); + void slotFeedback(); + void slotRestoreLastSession(); + void slotSessionClicked(const QString &data); + void slotProjectClicked(const QString &data); private: + void activateEditMode(); + WelcomeModePrivate *m_d; }; diff --git a/src/plugins/coreplugin/welcomemode.ui b/src/plugins/coreplugin/welcomemode.ui new file mode 100644 index 00000000000..41686e7fb85 --- /dev/null +++ b/src/plugins/coreplugin/welcomemode.ui @@ -0,0 +1,821 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>welcomePage</class> + <widget class="QWidget" name="welcomePage"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>777</width> + <height>922</height> + </rect> + </property> + <layout class="QVBoxLayout" name="topLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="gradientWidget" native="true"> + <property name="styleSheet"> + <string notr="true">#gradientWidget { +background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(247, 247, 247, 255), stop:1 rgba(215, 215, 215, 255)); +} + +*, * *, * * *, * * * *, * * * * * { +font-family: Arial, Trebuchet, Lucida, sans-serif; +font-size: 9pt; +color: #5e5e5e; +} + +#recentSessionsFrame, #recentProjectsFrame { +border-image: url(:/core/images/welcomemode/rc_combined.png) 8 8 8 8 stretch stretch; +border-width: 8 8 8 8; +} +</string> + </property> + <layout class="QGridLayout" name="gradientLayout"> + <property name="margin"> + <number>0</number> + </property> + <property name="spacing"> + <number>0</number> + </property> + <item row="0" column="1"> + <layout class="QVBoxLayout" name="contentsLayout"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <spacer name="topSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>50</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QHBoxLayout" name="welcomeLayout"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="logoLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/product_logo.png</pixmap> + </property> + </widget> + </item> + <item> + <spacer name="logoSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="welcomeLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>360</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string><style> +h1 { + font-size: 2em; + font-weight: normal; + color: #4d4d4d; + margin-top: 0px; + margin-bottom: 20px; +} + +p { + margin-top: 0px; + margin-bottom: 7px; +} +</style> + +<p>&nbsp;</p> +<h1>Welcome</h1> +<!-- QTextDocument does not support line-height, so wrap the lines manually ... --> +<p>Qt Creator is an intuitive, modern cross platform IDE that</p> <p>enables developers to create graphically appealing applications</p> +<p>for desktop, embedded, and mobile devices. Click on <strong>Getting</strong></p> +<p><strong>Started</strong> to begin developing with Qt Creator.</p> +<hr style="margin-top:15px"/> +</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="gettingStartedLayout"> + <item> + <spacer name="gettingStartedSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="Core::Internal::WelcomeModeButton" name="gettingStartedButton"> + <property name="minimumSize"> + <size> + <width>133</width> + <height>29</height> + </size> + </property> + <property name="styleSheet"> + <string>* { + background-image: url(":/core/images/welcomemode/btn_getting_started.png"); +} + +*:hover { + background-image: url(:/core/images/welcomemode/btn_getting_started_hover.png) +} +</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer name="middelSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>50</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QHBoxLayout" name="recentListsLayout"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <layout class="QVBoxLayout" name="recentSessionsLayout"> + <item> + <widget class="QFrame" name="recentSessionsFrame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>270</width> + <height>130</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>270</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string>#recentSessionsFrame { +border-image: url(:/core/images/welcomemode/rc_combined.png) 8 8 8 8 stretch stretch; +border-width: 8 8 8 8; +} +</string> + </property> + <layout class="QGridLayout" name="recentSessionsFrameLayout"> + <property name="leftMargin"> + <number>4</number> + </property> + <property name="topMargin"> + <number>4</number> + </property> + <property name="rightMargin"> + <number>12</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <property name="horizontalSpacing"> + <number>11</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="iconLabel"> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/mode_project.png</pixmap> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2"> + <widget class="QLabel" name="titleLabel"> + <property name="text"> + <string notr="true"><style> +h2 { + font-size: 18px; + font-weight: normal; + color: #7c92a1; + margin-bottom: 0px; +} +</style> + +<h2>Recent Sessions</h2> +<hr/> +</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="2" column="1"> + <spacer name="restoreButtonSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="2"> + <widget class="Core::Internal::WelcomeModeButton" name="restoreSessionButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>137</width> + <height>27</height> + </size> + </property> + <property name="styleSheet"> + <string>* { + background-image: url(":/core/images/welcomemode/btn_restore_session.png"); +} + +*:hover { + background-image: url(:/core/images/welcomemode/btn_restore_session_hover.png) +} +</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="Core::Internal::WelcomeModeTreeWidget" name="sessTreeWidget"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::NoSelection</enum> + </property> + <property name="verticalScrollMode"> + <enum>QAbstractItemView::ScrollPerPixel</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> + <bool>true</bool> + </property> + <property name="allColumnsShowFocus"> + <bool>true</bool> + </property> + <property name="columnCount"> + <number>2</number> + </property> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <attribute name="headerDefaultSectionSize"> + <number>24</number> + </attribute> + <attribute name="headerMinimumSectionSize"> + <number>0</number> + </attribute> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + <column> + <property name="text"> + <string notr="true">2</string> + </property> + </column> + </widget> + </item> + <item row="2" column="0"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>5</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="sessionsSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>100</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <spacer name="recentListsSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::MinimumExpanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>10</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QVBoxLayout" name="recentProjectsLayout"> + <item> + <widget class="QFrame" name="recentProjectsFrame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>270</width> + <height>16777215</height> + </size> + </property> + <layout class="QGridLayout" name="recentProjectsFrameLayout"> + <property name="leftMargin"> + <number>4</number> + </property> + <property name="topMargin"> + <number>4</number> + </property> + <property name="rightMargin"> + <number>12</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <property name="horizontalSpacing"> + <number>11</number> + </property> + <property name="verticalSpacing"> + <number>-1</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="projIconLabel"> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/mode_project.png</pixmap> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="projTitleLabel"> + <property name="text"> + <string notr="true"><style> +h2 { + font-size: 18px; + font-weight: normal; + color: #7c92a1; + margin-bottom: 0px; +} +</style> + +<h2>Recent Projects</h2> +<hr/> +</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="Core::Internal::WelcomeModeTreeWidget" name="projTreeWidget"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::NoSelection</enum> + </property> + <property name="verticalScrollMode"> + <enum>QAbstractItemView::ScrollPerPixel</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> + <bool>true</bool> + </property> + <property name="allColumnsShowFocus"> + <bool>true</bool> + </property> + <property name="columnCount"> + <number>2</number> + </property> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <attribute name="headerDefaultSectionSize"> + <number>24</number> + </attribute> + <attribute name="headerMinimumSectionSize"> + <number>0</number> + </attribute> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + <column> + <property name="text"> + <string notr="true">2</string> + </property> + </column> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="projectsSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>100</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </item> + <item row="0" column="0"> + <spacer name="leftSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>10</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="2"> + <spacer name="rightSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>10</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="0" colspan="3"> + <layout class="QGridLayout" name="logosLayout"> + <property name="sizeConstraint"> + <enum>QLayout::SetDefaultConstraint</enum> + </property> + <property name="leftMargin"> + <number>15</number> + </property> + <property name="rightMargin"> + <number>15</number> + </property> + <property name="bottomMargin"> + <number>12</number> + </property> + <property name="spacing"> + <number>0</number> + </property> + <item row="0" column="0" rowspan="2"> + <widget class="QLabel" name="qtLogoLabel"> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/qt_logo.png</pixmap> + </property> + </widget> + </item> + <item row="0" column="1" rowspan="2"> + <spacer name="logosSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>100</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="3"> + <widget class="QLabel" name="nokiaLogoLabel"> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/nokia_logo.png</pixmap> + </property> + </widget> + </item> + <item row="0" column="3"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Ignored</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="1"> + <spacer name="bottomSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>100</width> + <height>12</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="bottomWidget" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>31</height> + </size> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="styleSheet"> + <string>#bottomWidget { +background-image: url(:/core/images/welcomemode/feedback-bar-background.png); +} +</string> + </property> + <layout class="QGridLayout" name="bottomLayout"> + <property name="leftMargin"> + <number>10</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <property name="horizontalSpacing"> + <number>6</number> + </property> + <property name="verticalSpacing"> + <number>0</number> + </property> + <item row="0" column="0" rowspan="3"> + <widget class="QLabel" name="feedbackLabel"> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="core.qrc">:/core/images/welcomemode/feedback-text.png</pixmap> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="Core::Internal::WelcomeModeButton" name="feedbackButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>102</width> + <height>26</height> + </size> + </property> + <property name="styleSheet"> + <string>* { + background-image: url(":/core/images/welcomemode/btn_feedback.png"); +} + +*:hover { + background-image: url(:/core/images/welcomemode/btn_feedback_hover.png) +} +</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <spacer name="feedbackSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="1"> + <spacer name="bottomTopSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <spacer name="bottomBottomSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <customwidgets> + <customwidget> + <class>Core::Internal::WelcomeModeButton</class> + <extends>QLabel</extends> + <header>welcomemode_p.h</header> + </customwidget> + <customwidget> + <class>Core::Internal::WelcomeModeTreeWidget</class> + <extends>QTreeWidget</extends> + <header>welcomemode_p.h</header> + </customwidget> + </customwidgets> + <resources> + <include location="core.qrc"/> + </resources> + <connections/> +</ui> diff --git a/src/plugins/coreplugin/welcomemode_p.h b/src/plugins/coreplugin/welcomemode_p.h new file mode 100644 index 00000000000..ad8bcecab71 --- /dev/null +++ b/src/plugins/coreplugin/welcomemode_p.h @@ -0,0 +1,82 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** +**************************************************************************/ + +#ifndef WELCOMEMODE_P_H +#define WELCOMEMODE_P_H + +#include <QtGui/QIcon> +#include <QtGui/QLabel> +#include <QtGui/QTreeWidget> + +namespace Core { +namespace Internal { + +class WelcomeModeButton : public QLabel +{ + Q_OBJECT + +public: + WelcomeModeButton(QWidget *parent = 0); + +signals: + void clicked(); + +protected: + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + +private: + bool m_isPressed; +}; + +class WelcomeModeTreeWidget : public QTreeWidget +{ + Q_OBJECT + +public: + WelcomeModeTreeWidget(QWidget *parent = 0); + QTreeWidgetItem *addItem(const QString &label, const QString &data); + +signals: + void activated(const QString &data); + +protected: + virtual QSize sizeHint() const; + +private slots: + void slotItemClicked(QTreeWidgetItem *item); + +private: + QIcon m_bullet; +}; + +} +} + +#endif // WELCOMEMODE_P_H diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 093eacdf442..9250e2ebd0a 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -68,6 +68,11 @@ #include <QtGui/QComboBox> #include <QtHelp/QHelpEngine> +#ifndef QT_NO_WEBKIT +#include <QtGui/QApplication> +#include <QtWebKit/QWebSettings> +#endif + using namespace Help; using namespace Help::Internal; @@ -139,6 +144,13 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) qApp->installTranslator(qtr); } +#ifndef QT_NO_WEBKIT + QWebSettings *webSettings = QWebSettings::globalSettings(); + const QFont applicationFont = QApplication::font(); + webSettings->setFontFamily(QWebSettings::StandardFont, applicationFont.family()); + //webSettings->setFontSize(QWebSettings::DefaultFontSize, applicationFont.pointSize()); +#endif + // FIXME shouldn't the help engine create the directory if it doesn't exist? QFileInfo fi(m_core->settings()->fileName()); QDir directory(fi.absolutePath()+"/qtcreator"); @@ -510,7 +522,7 @@ void HelpPlugin::extensionsInitialized() m_bookmarkManager->setupBookmarkModels(); if (Core::Internal::WelcomeMode *welcomeMode = qobject_cast<Core::Internal::WelcomeMode*>(m_core->modeManager()->mode(Core::Constants::MODE_WELCOME))) { - connect(welcomeMode, SIGNAL(requestHelp(QString)), this, SLOT(openGettingStarted())); + connect(welcomeMode, SIGNAL(requestHelp()), this, SLOT(openGettingStarted())); } } -- GitLab