Merge branch '1.2' of git@scm.dev.nokia.troll.no:creator/mainline

This commit is contained in:
Roberto Raggi
2009-06-11 17:03:53 +02:00
15 changed files with 107 additions and 90 deletions

View File

@@ -54,7 +54,7 @@
This tutorial gives an introduction to GUI programming using the Qt SDK.
### Screenshot
\image addressbook-tutorial-screenshot.png
In the process, we will learn about some basic technologies provided by
Qt, such as:

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -197,8 +197,8 @@ EditorManagerPrivate::EditorManagerPrivate(ICore *core, QWidget *parent) :
m_closeOtherEditorsAction(new QAction(EditorManager::tr("Close Others"), parent)),
m_gotoNextDocHistoryAction(new QAction(EditorManager::tr("Next Document in History"), parent)),
m_gotoPreviousDocHistoryAction(new QAction(EditorManager::tr("Previous Document in History"), parent)),
m_goBackAction(new QAction(EditorManager::tr("Go back"), parent)),
m_goForwardAction(new QAction(EditorManager::tr("Go forward"), parent)),
m_goBackAction(new QAction(EditorManager::tr("Go Back"), parent)),
m_goForwardAction(new QAction(EditorManager::tr("Go Forward"), parent)),
m_openInExternalEditorAction(new QAction(EditorManager::tr("Open in External Editor"), parent)),
currentNavigationHistoryPosition(0),
m_windowPopup(0),
@@ -539,7 +539,9 @@ Core::Internal::SplitterOrView *EditorManager::currentView() const
{
SplitterOrView *view = m_d->m_currentView;
if (!view)
view = m_d->m_splitter->findView(m_d->m_currentEditor);
view = m_d->m_currentEditor?
m_d->m_splitter->findView(m_d->m_currentEditor):
m_d->m_splitter->findFirstView();
return view;
}

View File

@@ -186,6 +186,7 @@ NavigationSubWidget *NavigationWidget::insertSubItem(int position)
void NavigationWidget::activateSubWidget()
{
setShown(true);
QShortcut *original = qobject_cast<QShortcut *>(sender());
QString title = m_shortcutMap[original];

View File

@@ -418,10 +418,16 @@ QStringList WelcomeMode::tipsOfTheDay()
{
static QStringList tips;
if (tips.isEmpty()) {
QString sideBarShortcut =
#ifdef Q_WS_MAC
tr("Cmd+0");
#else
tr("Alt+0");
#endif
tips.append(tr("You can switch between Qt Creator's modes using <tt>Ctrl+number</tt>:"
"<ol><li> - Welcome</li><li> - Edit</li><li>- Debug</li><li>- Projects</li><li>- Help</li>"
"<li></li><li>- Output</li></ol>"));
tips.append(tr("You can show and hide the side bar using <tt>Alt+0<tt>."));
tips.append(tr("You can show and hide the side bar using <tt>%1<tt>.").arg(sideBarShortcut));
tips.append(tr("You can fine tune the <tt>Find</tt> function by selecting &quot;Whole Words&quot; "
"or &quot;Case Sensitive&quot;. Simply click on the icons on the right end of the line edit."));
tips.append(tr("If you add <a href=\"qthelp://com.nokia.qtcreator/doc/creator-external-library-handling.html\""

View File

@@ -327,8 +327,8 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
FullySpecifiedType firstType = result.first; // result of `type of expression'.
Symbol *lookupSymbol = result.second; // lookup symbol
Symbol *resolvedSymbol = 0;
Name *resolvedName = 0;
Symbol *resolvedSymbol = lookupSymbol;
Name *resolvedName = lookupSymbol->name();
firstType = resolve(firstType, typeOfExpression.lookupContext(),
&resolvedSymbol, &resolvedName);
@@ -343,9 +343,8 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
overview.setShowReturnTypes(true);
overview.setShowFullyQualifiedNamed(true);
if (lookupSymbol && lookupSymbol->isDeclaration()) {
Declaration *decl = lookupSymbol->asDeclaration();
m_toolTip = overview.prettyType(firstType, decl->name());
if (lookupSymbol && (lookupSymbol->isDeclaration() || lookupSymbol->isArgument())) {
m_toolTip = overview.prettyType(firstType, buildHelpId(lookupSymbol, lookupSymbol->name()));
} else if (firstType->isClassType() || firstType->isEnumType() ||
firstType->isForwardClassDeclarationType()) {

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0" >
<ui version="4.0">
<class>CppFileSettingsPage</class>
<widget class="QWidget" name="CppFileSettingsPage" >
<property name="geometry" >
<widget class="QWidget" name="CppFileSettingsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -10,45 +10,45 @@
<height>503</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Maximum" hsizetype="Preferred" >
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title" >
<string>File naming conventions</string>
<property name="title">
<string>File Naming Conventions</string>
</property>
<layout class="QFormLayout" name="formLayout" >
<property name="fieldGrowthPolicy" >
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0" >
<widget class="QLabel" name="headerSuffixLabel" >
<property name="text" >
<item row="0" column="0">
<widget class="QLabel" name="headerSuffixLabel">
<property name="text">
<string>Header suffix:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QComboBox" name="headerSuffixComboBox" />
<item row="0" column="1">
<widget class="QComboBox" name="headerSuffixComboBox"/>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="sourceSuffixLabel" >
<property name="text" >
<item row="1" column="0">
<widget class="QLabel" name="sourceSuffixLabel">
<property name="text">
<string>Source suffix:</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QComboBox" name="sourceSuffixComboBox" />
<item row="1" column="1">
<widget class="QComboBox" name="sourceSuffixComboBox"/>
</item>
<item row="2" column="1" >
<widget class="QCheckBox" name="lowerCaseFileNamesCheckBox" >
<property name="text" >
<item row="2" column="1">
<widget class="QCheckBox" name="lowerCaseFileNamesCheckBox">
<property name="text">
<string>Lower case file names</string>
</property>
</widget>
@@ -57,11 +57,11 @@
</widget>
</item>
<item>
<spacer name="verticalSpacer" >
<property name="orientation" >
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>430</height>

View File

@@ -49,7 +49,7 @@ const char * const CPPTOOLS_SETTINGSGROUP = "CppTools";
const char * const LOWERCASE_CPPFILES_KEY = "LowerCaseFiles";
enum { lowerCaseFilesDefault = 1 };
const char * const CPP_SETTINGS_ID = QT_TRANSLATE_NOOP("CppTools", "File naming conventions");
const char * const CPP_SETTINGS_ID = QT_TRANSLATE_NOOP("CppTools", "File Naming Conventions");
const char * const CPP_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("CppTools", "C++");
} // namespace Constants

View File

@@ -592,7 +592,7 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
m_detachAction = new QAction(this);
m_detachAction->setText(tr("Detach debugger"));
m_detachAction->setText(tr("Detach Debugger"));
connect(m_detachAction, SIGNAL(triggered()),
m_manager, SLOT(detachDebugger()));

View File

@@ -253,7 +253,10 @@ public:
void moveToFirstNonBlankOnLine();
void moveToTargetColumn();
void setTargetColumn() { m_targetColumn = leftDist(); }
void setTargetColumn() {
m_targetColumn = leftDist();
//qDebug() << "TARGET: " << m_targetColumn;
}
void moveToNextWord(bool simple);
void moveToMatchingParanthesis();
void moveToWordBoundary(bool simple, bool forward);
@@ -672,6 +675,8 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommand)
m_submode = NoSubMode;
if (atEndOfLine())
moveLeft();
else
setTargetColumn();
} else if (m_submode == YankSubMode) {
m_registers[m_register] = selectedText();
setPosition(m_savedYankPosition);
@@ -2507,9 +2512,12 @@ void FakeVimHandler::Private::replay(const QString &command, int n)
{
//qDebug() << "REPLAY: " << command;
m_inReplay = true;
for (int i = n; --i >= 0; )
foreach (QChar c, command)
for (int i = n; --i >= 0; ) {
foreach (QChar c, command) {
//qDebug() << " REPLAY: " << QString(c);
handleKey(c.unicode(), c.unicode(), QString(c));
}
}
m_inReplay = false;
}

View File

@@ -446,7 +446,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
this, SLOT(updateRecentProjectMenu()));
// unload action
m_unloadAction = new Core::Utils::ParameterAction(tr("Close Project"), tr("Close Project \"%1\""), Core::Utils::ParameterAction::EnabledWithParameter, this);
m_unloadAction = new Core::Utils::ParameterAction(tr("Close Project"), tr("Close Project \"%1\""),
Core::Utils::ParameterAction::EnabledWithParameter, this);
cmd = am->registerAction(m_unloadAction, Constants::UNLOAD, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_unloadAction->text());
@@ -489,7 +490,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
// Add to mode bar
modeManager->addAction(cmd, Constants::P_ACTION_BUILDSESSION, m_buildConfigurationMenu);
// rebuild session action
QIcon rebuildIcon(Constants::ICON_REBUILD);
rebuildIcon.addFile(Constants::ICON_REBUILD_SMALL);
@@ -507,51 +507,44 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
msessionContextMenu->addAction(cmd, Constants::G_SESSION_BUILD);
// build action
m_buildAction = new QAction(tr("Build Project"), this);
m_buildAction = new Core::Utils::ParameterAction(tr("Build Project"), tr("Build Project \"%1\""),
Core::Utils::ParameterAction::EnabledWithParameter, this);
cmd = am->registerAction(m_buildAction, Constants::BUILD, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_buildAction->text());
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+B")));
mbuild->addAction(cmd, Constants::G_BUILD_PROJECT);
mproject->addAction(cmd, Constants::G_PROJECT_BUILD);
// rebuild action
m_rebuildAction = new QAction(tr("Rebuild Project"), this);
m_rebuildAction = new Core::Utils::ParameterAction(tr("Rebuild Project"), tr("Rebuild Project \"%1\""),
Core::Utils::ParameterAction::EnabledWithParameter, this);
cmd = am->registerAction(m_rebuildAction, Constants::REBUILD, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_rebuildAction->text());
mbuild->addAction(cmd, Constants::G_BUILD_PROJECT);
mproject->addAction(cmd, Constants::G_PROJECT_BUILD);
// clean action
m_cleanAction = new QAction(tr("Clean Project"), this);
m_cleanAction = new Core::Utils::ParameterAction(tr("Clean Project"), tr("Clean Project \"%1\""),
Core::Utils::ParameterAction::EnabledWithParameter, this);
cmd = am->registerAction(m_cleanAction, Constants::CLEAN, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_cleanAction->text());
mbuild->addAction(cmd, Constants::G_BUILD_PROJECT);
mproject->addAction(cmd, Constants::G_PROJECT_BUILD);
// build project only menu
Core::ActionContainer *mpo = am->createMenu(Constants::BUILDPROJECTONLYMENU);
m_buildProjectOnlyMenu = mpo->menu();
m_buildProjectOnlyMenu->setTitle(tr("Project Only"));
mbuild->addMenu(mpo, Constants::G_BUILD_PROJECT);
mproject->addMenu(mpo, Constants::G_PROJECT_BUILD);
// build action
m_buildProjectOnlyAction = new QAction(tr("Build"), this);
// build without dependencies action
m_buildProjectOnlyAction = new QAction(tr("Build Without Dependencies"), this);
cmd = am->registerAction(m_buildProjectOnlyAction, Constants::BUILDPROJECTONLY, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_buildProjectOnlyAction->text());
mpo->addAction(cmd);
// rebuild action
m_rebuildProjectOnlyAction = new QAction(tr("Rebuild"), this);
// rebuild without dependencies action
m_rebuildProjectOnlyAction = new QAction(tr("Rebuild Without Dependencies"), this);
cmd = am->registerAction(m_rebuildProjectOnlyAction, Constants::REBUILDPROJECTONLY, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_rebuildProjectOnlyAction->text());
mpo->addAction(cmd);
// clean action
m_cleanProjectOnlyAction = new QAction(tr("Clean"), this);
// clean without dependencies action
m_cleanProjectOnlyAction = new QAction(tr("Clean Without Dependencies"), this);
cmd = am->registerAction(m_cleanProjectOnlyAction, Constants::CLEANPROJECTONLY, globalcontext);
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_cleanProjectOnlyAction->text());
mpo->addAction(cmd);
// Add Set Build Configuration to menu
mbuild->addMenu(mbc, Constants::G_BUILD_PROJECT);
@@ -1287,23 +1280,17 @@ void ProjectExplorerPlugin::updateActions()
bool enableBuildActions = m_currentProject && ! (m_buildManager->isBuilding(m_currentProject));
bool hasProjects = !m_session->projects().isEmpty();
bool building = m_buildManager->isBuilding();
QString projectName = m_currentProject ? m_currentProject->name() : QString();
if (debug)
qDebug()<<"BuildManager::isBuilding()"<<building;
qDebug() << "BuildManager::isBuilding()" << building;
if (m_currentProject == 0) {
m_unloadAction->setParameter(QString());
m_buildProjectOnlyMenu->setTitle(tr("Current Project"));
} else {
m_unloadAction->setParameter(m_currentProject->name());
m_buildProjectOnlyMenu->setTitle(tr("Project \"%1\"").arg(m_currentProject->name()));
}
m_unloadAction->setParameter(projectName);
m_buildAction->setEnabled(enableBuildActions);
m_rebuildAction->setEnabled(enableBuildActions);
m_cleanAction->setEnabled(enableBuildActions);
m_buildAction->setParameter(projectName);
m_rebuildAction->setParameter(projectName);
m_cleanAction->setParameter(projectName);
m_buildProjectOnlyMenu->setEnabled(enableBuildActions);
m_buildProjectOnlyAction->setEnabled(enableBuildActions);
m_rebuildProjectOnlyAction->setEnabled(enableBuildActions);
m_cleanProjectOnlyAction->setEnabled(enableBuildActions);
@@ -1349,13 +1336,15 @@ bool ProjectExplorerPlugin::saveModifiedFiles()
} else {
bool cancelled = false;
bool alwaysSave = false;
Core::ICore::instance()->fileManager()->saveModifiedFiles(filesToSave, &cancelled, QString::null, "Always save files before build", &alwaysSave);
if (cancelled) {
Core::FileManager *fm = Core::ICore::instance()->fileManager();
fm->saveModifiedFiles(filesToSave, &cancelled, QString::null,
"Always save files before build", &alwaysSave);
if (cancelled)
return false;
}
if (alwaysSave) {
if (alwaysSave)
m_projectExplorerSettings.saveBeforeBuild = true;
}
}
}
return true;

View File

@@ -231,13 +231,13 @@ private:
Core::Utils::ParameterAction *m_unloadAction;
QAction *m_clearSession;
QAction *m_buildProjectOnlyAction;
QAction *m_buildAction;
Core::Utils::ParameterAction *m_buildAction;
QAction *m_buildSessionAction;
QAction *m_rebuildProjectOnlyAction;
QAction *m_rebuildAction;
Core::Utils::ParameterAction *m_rebuildAction;
QAction *m_rebuildSessionAction;
QAction *m_cleanProjectOnlyAction;
QAction *m_cleanAction;
Core::Utils::ParameterAction *m_cleanAction;
QAction *m_cleanSessionAction;
QAction *m_runAction;
QAction *m_runActionContextMenu;
@@ -253,7 +253,6 @@ private:
QAction *m_removeFileAction;
QAction *m_renameFileAction;
QMenu *m_buildProjectOnlyMenu;
QMenu *m_buildConfigurationMenu;
QActionGroup *m_buildConfigurationActionGroup;
QMenu *m_runConfigurationMenu;

View File

@@ -60,6 +60,7 @@ private slots:
void command_dd();
void command_dollar();
void command_down();
void command_dfx_down();
void command_e();
void command_i();
void command_left();
@@ -296,6 +297,18 @@ void tst_FakeVim::command_down()
move("4j", "@ return app.exec()");
}
void tst_FakeVim::command_dfx_down()
{
setup();
check("j4l", l[0] + "\n#inc@lude <QtCore>\n" + lmid(2));
check("df ", l[0] + "\n#inc@<QtCore>\n" + lmid(2));
check("j", l[0] + "\n#inc<QtCore>\n#inc@lude <QtGui>\n" + lmid(3));
check(".", l[0] + "\n#inc<QtCore>\n#inc@<QtGui>\n" + lmid(3));
return;
check("u", l[0] + "\n#inc<QtCore>\n#inc@lude <QtGui>\n" + lmid(3));
check("u", l[0] + "\n#inc@lude <QtCore>\n" + lmid(2));
}
void tst_FakeVim::command_e()
{
setup();