forked from qt-creator/qt-creator
welcome screen: preview in news feed, Buttons added, resizing sanatized
Manage Sessions replaces "Restore last session" (which can be done by clicking the "(last session)" session anyway. Also, added a "Create New Project" button. Ensured that the welcome screen is only as high as needed (will orient on the amount of items in the contained treewidgets). Scrolling is still last resort.
This commit is contained in:
@@ -28,14 +28,85 @@
|
||||
**************************************************************************/
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QSysInfo>
|
||||
#include <QtCore/QLocale>
|
||||
#include <QtGui/QDesktopServices>
|
||||
#include <QtGui/QLineEdit>
|
||||
#include <QtNetwork/QHttp>
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
|
||||
#include "rssfetcher.h"
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
using namespace Core::Internal;
|
||||
|
||||
static const QString getOsString()
|
||||
{
|
||||
QString osString;
|
||||
#if defined(Q_OS_WIN)
|
||||
switch (QSysInfo::WindowsVersion) {
|
||||
case (QSysInfo::WV_4_0):
|
||||
osString += QLatin1String("WinNT4.0");
|
||||
break;
|
||||
case (QSysInfo::WV_5_0):
|
||||
osString += QLatin1String("Windows NT 5.0");
|
||||
break;
|
||||
case (QSysInfo::WV_5_1):
|
||||
osString += QLatin1String("Windows NT 5.1");
|
||||
break;
|
||||
case (QSysInfo::WV_5_2):
|
||||
osString += QLatin1String("Windows NT 5.2");
|
||||
break;
|
||||
case (QSysInfo::WV_6_0):
|
||||
osString += QLatin1String("Windows NT 6.0");
|
||||
break;
|
||||
case (QSysInfo::WV_6_1):
|
||||
osString += QLatin1String("Windows NT 6.1");
|
||||
break;
|
||||
default:
|
||||
osString += QLatin1String("Windows NT (Unknown)");
|
||||
break;
|
||||
}
|
||||
#elif defined (Q_OS_MAC)
|
||||
if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
|
||||
osString += QLatin1String("PPC ");
|
||||
else
|
||||
osString += QLatin1String("Intel ");
|
||||
osString += QLatin1String("Mac OS X ");
|
||||
switch (QSysInfo::MacintoshVersion) {
|
||||
case (QSysInfo::MV_10_3):
|
||||
osString += QLatin1String("10_3");
|
||||
break;
|
||||
case (QSysInfo::MV_10_4):
|
||||
osString += QLatin1String("10_4");
|
||||
break;
|
||||
case (QSysInfo::MV_10_5):
|
||||
osString += QLatin1String("10_5");
|
||||
break;
|
||||
case (QSysInfo::MV_10_6):
|
||||
osString += QLatin1String("10_6");
|
||||
break;
|
||||
default:
|
||||
osString += QLatin1String("(Unknown)");
|
||||
break;
|
||||
}
|
||||
#elif defined (Q_OS_UNIX)
|
||||
struct utsname uts;
|
||||
if (uname(&uts) == 0)
|
||||
osString += QString("%1 %2").arg(QLatin1String(uts.sysname))
|
||||
.arg(QLatin1String(uts.release));
|
||||
else
|
||||
osString += QLatin1String("Unix (Unknown)");
|
||||
#else
|
||||
ossttring = QLatin1String("Unknown OS");
|
||||
#endif
|
||||
return osString;
|
||||
}
|
||||
|
||||
RSSFetcher::RSSFetcher(int maxItems, QObject *parent)
|
||||
: QObject(parent), m_items(0), m_maxItems(maxItems)
|
||||
{
|
||||
@@ -49,7 +120,15 @@ RSSFetcher::RSSFetcher(int maxItems, QObject *parent)
|
||||
void RSSFetcher::fetch(const QUrl &url)
|
||||
{
|
||||
m_http.setHost(url.host());
|
||||
m_connectionId = m_http.get(url.path());
|
||||
QString agentStr = QString("Qt-Creator/%1 (QHttp %2; %3; %4; %5 bit)")
|
||||
.arg(Core::Constants::IDE_VERSION_LONG).arg(qVersion())
|
||||
.arg(getOsString()).arg(QLocale::system().name())
|
||||
.arg(QSysInfo::WordSize);
|
||||
QHttpRequestHeader header("GET", url.path());
|
||||
qDebug() << agentStr;
|
||||
header.setValue("User-Agent", agentStr);
|
||||
header.setValue("Host", url.host());
|
||||
m_connectionId = m_http.request(header);
|
||||
}
|
||||
|
||||
void RSSFetcher::readData(const QHttpResponseHeader &resp)
|
||||
@@ -76,6 +155,7 @@ void RSSFetcher::parseXml()
|
||||
if (m_xml.isStartElement()) {
|
||||
if (m_xml.name() == "item") {
|
||||
m_titleString.clear();
|
||||
m_descriptionString.clear();
|
||||
m_linkString.clear();
|
||||
}
|
||||
m_currentTag = m_xml.name().toString();
|
||||
@@ -84,12 +164,14 @@ void RSSFetcher::parseXml()
|
||||
m_items++;
|
||||
if (m_items > m_maxItems)
|
||||
return;
|
||||
emit newsItemReady(m_titleString, m_linkString);
|
||||
emit newsItemReady(m_titleString, m_descriptionString, m_linkString);
|
||||
}
|
||||
|
||||
} else if (m_xml.isCharacters() && !m_xml.isWhitespace()) {
|
||||
if (m_currentTag == "title")
|
||||
m_titleString += m_xml.text().toString();
|
||||
else if (m_currentTag == "description")
|
||||
m_descriptionString += m_xml.text().toString();
|
||||
else if (m_currentTag == "link")
|
||||
m_linkString += m_xml.text().toString();
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
RSSFetcher(int maxItems, QObject *parent = 0);
|
||||
|
||||
signals:
|
||||
void newsItemReady(const QString& title, const QString& url);
|
||||
void newsItemReady(const QString& title, const QString& desciption, const QString& url);
|
||||
|
||||
public slots:
|
||||
void fetch(const QUrl &url);
|
||||
@@ -60,6 +60,7 @@ private:
|
||||
QXmlStreamReader m_xml;
|
||||
QString m_currentTag;
|
||||
QString m_linkString;
|
||||
QString m_descriptionString;
|
||||
QString m_titleString;
|
||||
|
||||
QHttp m_http;
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
|
||||
#include "welcomemode.h"
|
||||
#include "icore.h"
|
||||
#include "iwizard.h"
|
||||
#include "coreconstants.h"
|
||||
#include "uniqueidmanager.h"
|
||||
#include "modemanager.h"
|
||||
#include "newdialog.h"
|
||||
#include "rssfetcher.h"
|
||||
|
||||
#include <QtGui/QToolBar>
|
||||
@@ -118,7 +120,7 @@ WelcomeMode::WelcomeMode() :
|
||||
l->setMargin(0);
|
||||
l->setSpacing(0);
|
||||
l->addWidget(new QToolBar(m_d->m_widget));
|
||||
m_d->rssFetcher = new RSSFetcher(8, this);
|
||||
m_d->rssFetcher = new RSSFetcher(7, this);
|
||||
m_d->m_welcomePage = new QWidget(m_d->m_widget);
|
||||
m_d->ui.setupUi(m_d->m_welcomePage);
|
||||
m_d->ui.projTitleLabel->setText(titleLabel(tr("Projects")));
|
||||
@@ -146,26 +148,27 @@ WelcomeMode::WelcomeMode() :
|
||||
connect(m_d->btnGrp, SIGNAL(buttonClicked(int)), m_d->ui.stackedWidget, SLOT(setCurrentIndex(int)));
|
||||
|
||||
connect(m_d->ui.feedbackButton, SIGNAL(clicked()), SLOT(slotFeedback()));
|
||||
connect(m_d->ui.restoreSessionButton, SIGNAL(clicked()), SLOT(slotRestoreLastSession()));
|
||||
connect(m_d->ui.manageSessionsButton, SIGNAL(clicked()), SIGNAL(manageSessions()));
|
||||
connect(m_d->ui.createNewProjectButton, SIGNAL(clicked()), SLOT(slotCreateNewProject()));
|
||||
connect(m_d->ui.sessTreeWidget, SIGNAL(activated(QString)), SLOT(slotSessionClicked(QString)));
|
||||
connect(m_d->ui.projTreeWidget, SIGNAL(activated(QString)), SLOT(slotProjectClicked(QString)));
|
||||
connect(m_d->ui.newsTreeWidget, SIGNAL(activated(QString)), SLOT(slotUrlClicked(QString)));
|
||||
connect(m_d->ui.sitesTreeWidget, SIGNAL(activated(QString)), SLOT(slotUrlClicked(QString)));
|
||||
connect(m_d->ui.tutorialTreeWidget, SIGNAL(activated(QString)), SIGNAL(openHelpPage(const QString&)));
|
||||
|
||||
connect(m_d->rssFetcher, SIGNAL(newsItemReady(QString, QString)),
|
||||
m_d->ui.newsTreeWidget, SLOT(slotAddItem(QString, QString)));
|
||||
connect(m_d->rssFetcher, SIGNAL(newsItemReady(QString, QString, QString)),
|
||||
m_d->ui.newsTreeWidget, SLOT(slotAddNewsItem(QString, QString, QString)));
|
||||
|
||||
//: Add localized feed here only if one exists
|
||||
m_d->rssFetcher->fetch(QUrl(tr("http://labs.trolltech.com/blogs/feed")));
|
||||
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Software"), QLatin1String("http://www.qtsoftware.com"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Labs"), QLatin1String("http://labs.qtsoftware.com"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Software"), QLatin1String("http://www.trolltech.com"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Labs"), QLatin1String("http://labs.trolltech.com"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Git Hosting"), QLatin1String("http://qt.gitorious.org"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt Centre"), QLatin1String("http://www.qtcentre.org"));
|
||||
m_d->ui.sitesTreeWidget->addItem(tr("Qt for S60 at Forum Nokia"), QLatin1String("http://discussion.forum.nokia.com/forum/forumdisplay.php?f=196"));
|
||||
|
||||
m_d->ui.tutorialTreeWidget->addItem(tr("Qt Creator - A quick tour"),
|
||||
m_d->ui.tutorialTreeWidget->addItem(tr("<b>Qt Creator - A quick tour</b>"),
|
||||
QString("qthelp://com.nokia.qtcreator.%1%2/doc/index.html").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR));
|
||||
m_d->ui.tutorialTreeWidget->addItem(tr("Understanding widgets"),
|
||||
QLatin1String("qthelp://com.trolltech.qt/qdoc/widgets-tutorial.html"));
|
||||
@@ -299,16 +302,17 @@ void WelcomeMode::slotUrlClicked(const QString &data)
|
||||
QDesktopServices::openUrl(QUrl(data));
|
||||
}
|
||||
|
||||
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")));
|
||||
"http://www.trolltech.com/forms/feedback-forms/qt-creator-user-feedback/view")));
|
||||
}
|
||||
|
||||
void WelcomeMode::slotCreateNewProject()
|
||||
{
|
||||
Core::Internal::NewDialog dlg(widget());
|
||||
dlg.setWizards(Core::IWizard::wizardsOfKind(Core::IWizard::ProjectWizard));
|
||||
dlg.showDialog();
|
||||
}
|
||||
|
||||
void WelcomeMode::slotNextTip()
|
||||
@@ -409,7 +413,8 @@ QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QStr
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem(this);
|
||||
item->setIcon(0, m_bullet);
|
||||
item->setSizeHint(0, QSize(24, 30));
|
||||
QWidget *lbl = new QLabel(label);
|
||||
QLabel *lbl = new QLabel(label);
|
||||
lbl->setTextInteractionFlags(Qt::NoTextInteraction);
|
||||
lbl->setCursor(QCursor(Qt::PointingHandCursor));
|
||||
lbl->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
QBoxLayout *lay = new QVBoxLayout;
|
||||
@@ -422,9 +427,15 @@ QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QStr
|
||||
return item;
|
||||
}
|
||||
|
||||
void WelcomeModeTreeWidget::slotAddItem(const QString &label, const QString &data)
|
||||
void WelcomeModeTreeWidget::slotAddNewsItem(const QString &title, const QString &description, const QString &link)
|
||||
{
|
||||
addTopLevelItem(addItem(label,data));
|
||||
int itemWidth = width()-header()->sectionSize(0);
|
||||
QFont f = font();
|
||||
QString elidedText = QFontMetrics(f).elidedText(description, Qt::ElideRight, itemWidth);
|
||||
f.setBold(true);
|
||||
QString elidedTitle = QFontMetrics(f).elidedText(title, Qt::ElideRight, itemWidth);
|
||||
QString data = QString::fromLatin1("<b>%1</b><br />%2").arg(elidedTitle).arg(elidedText);
|
||||
addTopLevelItem(addItem(data,link));
|
||||
}
|
||||
|
||||
void WelcomeModeTreeWidget::slotItemClicked(QTreeWidgetItem *item)
|
||||
|
||||
@@ -79,13 +79,14 @@ signals:
|
||||
void requestProject(const QString &project);
|
||||
void requestSession(const QString &session);
|
||||
void openHelpPage(const QString&);
|
||||
void manageSessions();
|
||||
|
||||
private slots:
|
||||
void slotFeedback();
|
||||
void slotRestoreLastSession();
|
||||
void slotSessionClicked(const QString &data);
|
||||
void slotProjectClicked(const QString &data);
|
||||
void slotUrlClicked(const QString &data);
|
||||
void slotCreateNewProject();
|
||||
void slotNextTip();
|
||||
void slotPrevTip();
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>742</width>
|
||||
<height>637</height>
|
||||
<width>864</width>
|
||||
<height>690</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
@@ -202,7 +202,7 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="gettingStartedPage">
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
@@ -232,6 +232,12 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="tutorialsTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
@@ -240,7 +246,7 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<item row="1" column="0">
|
||||
<widget class="Core::Internal::WelcomeModeTreeWidget" name="tutorialTreeWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@@ -361,11 +367,11 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<property name="styleSheet">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_10">
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="didYouKnowTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@@ -375,8 +381,70 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<item row="0" column="1">
|
||||
<layout class="QGridLayout" name="gridLayout_10">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Preferred</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>2</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QToolButton" name="prevTipBtn">
|
||||
<property name="text">
|
||||
<string><</string>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::LeftArrow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QToolButton" name="nextTipBtn">
|
||||
<property name="text">
|
||||
<string>></string>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::RightArrow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>2</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QTextBrowser" name="didYouKnowTextBrowser">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
@@ -394,30 +462,6 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QToolButton" name="prevTipBtn">
|
||||
<property name="text">
|
||||
<string><</string>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::LeftArrow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="nextTipBtn">
|
||||
<property name="text">
|
||||
<string>></string>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::RightArrow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -449,17 +493,23 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QLabel" name="recentSessionsTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="Core::Internal::WelcomeModeTreeWidget" name="sessTreeWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@@ -509,8 +559,8 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="Core::Internal::WelcomeModeButton" name="restoreSessionButton">
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="Core::Internal::WelcomeModeButton" name="manageSessionsButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -534,17 +584,21 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><qt>Restore Last Session &gt;&gt;</string>
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'lucida sans'; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Manage Sessions...</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="2" column="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Preferred</enum>
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@@ -554,6 +608,22 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>53</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -563,17 +633,23 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="0">
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QLabel" name="projTitleLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="Core::Internal::WelcomeModeTreeWidget" name="projTreeWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@@ -623,6 +699,68 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="Core::Internal::WelcomeModeButton" name="createNewProjectButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string>* {
|
||||
border-image: url(:/core/images/welcomemode/btn_26.png) 7;
|
||||
border-width: 7;
|
||||
padding: -2px 0;
|
||||
font-size: 12px;
|
||||
font-family: lucida sans, dejavu sans, sans serif;
|
||||
color: black;
|
||||
}
|
||||
|
||||
*:hover {
|
||||
border-image: url(:/core/images/welcomemode/btn_26_hover.png) 7;
|
||||
color: white;
|
||||
}
|
||||
</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'lucida sans'; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Create New Project...</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>157</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -660,6 +798,12 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Core::Internal::WelcomeModeTreeWidget" name="newsTreeWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>360</width>
|
||||
@@ -802,7 +946,7 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>17</number>
|
||||
<number>15</number>
|
||||
</property>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
@@ -873,7 +1017,7 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Maximum</enum>
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@@ -889,7 +1033,7 @@ background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Maximum</enum>
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
QTreeWidgetItem *addItem(const QString &label, const QString &data);
|
||||
|
||||
public slots:
|
||||
void slotAddItem(const QString &label, const QString &data);
|
||||
void slotAddNewsItem(const QString &title, const QString &description, const QString &link);
|
||||
|
||||
signals:
|
||||
void activated(const QString &data);
|
||||
|
||||
@@ -736,7 +736,7 @@ void HelpPlugin::openHelpPage(const QString& url)
|
||||
else {
|
||||
QString page = url.mid(url.lastIndexOf('/')+1);
|
||||
qDebug() << url << page << url.lastIndexOf('/');
|
||||
QDesktopServices::openUrl(QLatin1String("http://doc.qtsoftware.com/latest/")+page);
|
||||
QDesktopServices::openUrl(QLatin1String("http://doc.trolltech.com/latest/")+page);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <coreplugin/iversioncontrol.h>
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <coreplugin/welcomemode.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/parameteraction.h>
|
||||
@@ -669,6 +670,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
||||
m_projectExplorerSettings.saveBeforeBuild = s->value("ProjectExplorer/Settings/SaveBeforeBuild", false).toBool();
|
||||
}
|
||||
|
||||
if (Core::Internal::WelcomeMode *welcomeMode = qobject_cast<Core::Internal::WelcomeMode*>
|
||||
(Core::ICore::instance()->modeManager()->mode(Core::Constants::MODE_WELCOME))) {
|
||||
connect(welcomeMode, SIGNAL(manageSessions()), this, SLOT(showSessionManager()));
|
||||
}
|
||||
connect(m_sessionManagerAction, SIGNAL(triggered()), this, SLOT(showSessionManager()));
|
||||
connect(m_newAction, SIGNAL(triggered()), this, SLOT(newProject()));
|
||||
#if 0
|
||||
|
||||
@@ -124,6 +124,7 @@ SessionDialog::SessionDialog(SessionManager *sessionManager, const QString &last
|
||||
connect(m_ui.sessionList, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
|
||||
this, SLOT(updateActions()));
|
||||
|
||||
m_ui.whatsASessionLabel->setOpenExternalLinks(true);
|
||||
QStringList sessions = sessionManager->sessions();
|
||||
foreach (const QString &session, sessions) {
|
||||
m_ui.sessionList->addItem(session);
|
||||
|
||||
@@ -62,6 +62,13 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<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>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
|
||||
Reference in New Issue
Block a user