Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta

This commit is contained in:
hjk
2008-12-03 14:58:14 +01:00
25 changed files with 364 additions and 96 deletions

View File

@@ -19,6 +19,7 @@ CMakeStep::~CMakeStep()
bool CMakeStep::init(const QString &buildConfiguration)
{
// TODO
return true;
}
void CMakeStep::run(QFutureInterface<bool> &fi)

View File

@@ -342,13 +342,6 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
updateActions();
m_d->m_windowPopup = new OpenEditorsWindow(this);
#ifdef Q_OS_MAC
m_d->m_externalEditor = m_d->m_core->resourcePath()
+QLatin1String("/runInTerminal.command vi %f %l %c %W %H %x %y");
#elif defined(Q_OS_UNIX)
m_d->m_externalEditor = QLatin1String("xterm -geom %Wx%H+%x+%y -e vi %f +%l +\"normal %c|\"");
#endif
}
EditorManager::~EditorManager()
@@ -381,6 +374,20 @@ QSize EditorManager::minimumSizeHint() const
return QSize(400, 300);
}
QString EditorManager::defaultExternalEditor() const
{
#ifdef Q_OS_MAC
return m_d->m_core->resourcePath()
+QLatin1String("/runInTerminal.command vi %f %l %c %W %H %x %y");
#elif defined(Q_OS_UNIX)
return QLatin1String("xterm -geom %Wx%H+%x+%y -e vi %f +%l +\"normal %c|\"");
#elif defined (Q_OS_WIN)
return QLatin1String("notepad %f");
#else
return QString();
#endif
}
EditorSplitter *EditorManager::editorSplitter() const
{
return m_d->m_splitter;
@@ -1153,7 +1160,7 @@ void EditorManager::updateActions()
m_d->m_duplicateAction->setEnabled(curEditor != 0 && curEditor->duplicateSupported());
m_d->m_openInExternalEditorAction->setEnabled(curEditor != 0 && !m_d->m_externalEditor.isEmpty());
m_d->m_openInExternalEditorAction->setEnabled(curEditor != 0);
}
QList<IEditor*> EditorManager::openedEditors() const
@@ -1364,7 +1371,7 @@ void EditorManager::saveSettings(QSettings *settings)
m_d->m_splitter->saveSettings(settings);
settings->setValue(QLatin1String("EditorManager/DocumentStates"),
m_d->m_editorStates);
settings->setValue(QLatin1String("EditorManager/ExternalEditor"),
settings->setValue(QLatin1String("EditorManager/ExternalEditorCommand"),
m_d->m_externalEditor);
}
@@ -1375,7 +1382,7 @@ void EditorManager::readSettings(QSettings *settings)
m_d->m_editorStates = settings->value(QLatin1String("EditorManager/DocumentStates"))
.value<QMap<QString, QVariant> >();
if (settings->contains(QLatin1String("EditorManager/ExternalEditor")))
m_d->m_externalEditor = settings->value(QLatin1String("EditorManager/ExternalEditor")).toString();
m_d->m_externalEditor = settings->value(QLatin1String("EditorManager/ExternalEditorCommand")).toString();
}
QByteArray EditorManager::saveOpenEditorList() const
@@ -1489,7 +1496,11 @@ QString EditorManager::externalEditorHelpText() const
void EditorManager::openInExternalEditor()
{
if (m_d->m_externalEditor.isEmpty())
QString command = m_d->m_externalEditor;
if (command.isEmpty())
command = defaultExternalEditor();
if (command.isEmpty())
return;
IEditor *editor = currentEditor();
@@ -1508,7 +1519,7 @@ void EditorManager::openInExternalEditor()
QFontMetrics fm(font);
rect.moveTo(editor->widget()->mapToGlobal(QPoint(0,0)));
QString pre = m_d->m_externalEditor;
QString pre = command;
QString cmd;
for (int i = 0; i < pre.size(); ++i) {
QChar c = pre.at(i);
@@ -1551,11 +1562,16 @@ void EditorManager::openInExternalEditor()
void EditorManager::setExternalEditor(const QString &editor)
{
m_d->m_externalEditor = editor;
if (editor.isEmpty() || editor == defaultExternalEditor())
m_d->m_externalEditor = defaultExternalEditor();
else
m_d->m_externalEditor = editor;
}
QString EditorManager::externalEditor() const
{
if (m_d->m_externalEditor.isEmpty())
return defaultExternalEditor();
return m_d->m_externalEditor;
}

View File

@@ -156,6 +156,7 @@ public:
void setExternalEditor(const QString &);
QString externalEditor() const;
QString defaultExternalEditor() const;
QString externalEditorHelpText() const;
signals:

View File

@@ -72,6 +72,8 @@ QWidget* GeneralSettings::createPage(QWidget *parent)
connect(m_page->resetButton, SIGNAL(clicked()),
this, SLOT(resetInterfaceColor()));
connect(m_page->resetEditorButton, SIGNAL(clicked()),
this, SLOT(resetExternalEditor()));
connect(m_page->helpExternalEditorButton, SIGNAL(clicked()),
this, SLOT(showHelpForExternalEditor()));
@@ -95,6 +97,10 @@ void GeneralSettings::resetInterfaceColor()
m_page->colorButton->setColor(0x666666);
}
void GeneralSettings::resetExternalEditor()
{
m_page->externalEditorEdit->setText(EditorManager::instance()->defaultExternalEditor());
}
void GeneralSettings::showHelpForExternalEditor()
{

View File

@@ -59,6 +59,7 @@ public:
private slots:
void resetInterfaceColor();
void resetExternalEditor();
void showHelpForExternalEditor();
private:

View File

@@ -108,6 +108,20 @@
<item>
<widget class="QLineEdit" name="externalEditorEdit"/>
</item>
<item>
<widget class="QToolButton" name="resetEditorButton">
<property name="toolTip">
<string>Reset to default</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="core.qrc">
<normaloff>:/qworkbench/images/reset.png</normaloff>:/qworkbench/images/reset.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="helpExternalEditorButton">
<property name="text">

View File

@@ -640,9 +640,9 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
const char *beginOfText = startOfToken(*identifierToken);
const char *endOfText = endOfToken(*_dot);
++_dot; // skip T_RPAREN
m->hidden = true;
//m->hidden = true;
expand(beginOfText, endOfText, result);
m->hidden = false;
//m->hidden = false;
}
}
}

View File

@@ -170,7 +170,7 @@ void GitClient::diff(const QString &workingDirectory, const QStringList &fileNam
if (Git::Constants::debug)
qDebug() << "diff" << workingDirectory << fileNames;
QStringList arguments;
arguments << QLatin1String("diff") << fileNames;
arguments << QLatin1String("diff") << QLatin1String("--") << fileNames;
const QString kind = QLatin1String(Git::Constants::GIT_DIFF_EDITOR_KIND);
const QString title = tr("Git Diff");
@@ -187,7 +187,7 @@ void GitClient::diff(const QString &workingDirectory, const QString &fileName)
QStringList arguments;
arguments << QLatin1String("diff");
if (!fileName.isEmpty())
arguments << fileName;
arguments << QLatin1String("--") << fileName;
const QString kind = QLatin1String(Git::Constants::GIT_DIFF_EDITOR_KIND);
const QString title = tr("Git Diff %1").arg(fileName);
@@ -246,7 +246,7 @@ void GitClient::blame(const QString &workingDirectory, const QString &fileName)
if (Git::Constants::debug)
qDebug() << "blame" << workingDirectory << fileName;
QStringList arguments(QLatin1String("blame"));
arguments << fileName;
arguments << QLatin1String("--") << fileName;
const QString kind = QLatin1String(Git::Constants::GIT_BLAME_EDITOR_KIND);
const QString title = tr("Git Blame %1").arg(fileName);
@@ -314,7 +314,7 @@ bool GitClient::synchronousReset(const QString &workingDirectory,
QByteArray outputText;
QByteArray errorText;
QStringList arguments;
arguments << QLatin1String("reset") << QLatin1String("HEAD") << files;
arguments << QLatin1String("reset") << QLatin1String("HEAD") << QLatin1String("--") << files;
const bool rc = synchronousGit(workingDirectory, arguments, &outputText, &errorText);
const QString output = QString::fromLocal8Bit(outputText);
m_plugin->m_outputWindow->popup(false);
@@ -643,9 +643,9 @@ GitCommand::~GitCommand()
{
}
void GitCommand::execute(const QStringList &arguments
, const QString &workingDirectory
, const ProjectExplorer::Environment &environment)
void GitCommand::execute(const QStringList &arguments,
const QString &workingDirectory,
const ProjectExplorer::Environment &environment)
{
if (Git::Constants::debug)
qDebug() << "GitCommand::execute" << workingDirectory << arguments;
@@ -663,9 +663,9 @@ void GitCommand::execute(const QStringList &arguments
, Core::ProgressManagerInterface::CloseOnSuccess);
}
void GitCommand::run(const QStringList &arguments
, const QString &workingDirectory
, const ProjectExplorer::Environment &environment)
void GitCommand::run(const QStringList &arguments,
const QString &workingDirectory,
const ProjectExplorer::Environment &environment)
{
if (Git::Constants::debug)
qDebug() << "GitCommand::run" << workingDirectory << arguments;

View File

@@ -57,9 +57,9 @@ GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const
rc.author = m_gitSubmitPanelUi.authorLineEdit->text();
rc.email = m_gitSubmitPanelUi.emailLineEdit->text();
return rc;
};
}
void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
{
m_gitSubmitPanelUi.authorLineEdit->setText(data.author);
m_gitSubmitPanelUi.emailLineEdit->setText(data.email);

View File

@@ -11,6 +11,9 @@
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="infoGroup">
<property name="title">

View File

@@ -0,0 +1,104 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
**
***************************************************************************/
#include "gitversioncontrol.h"
#include "gitclient.h"
namespace Git {
namespace Internal {
GitVersionControl::GitVersionControl(GitClient *client) :
m_enabled(true),
m_client(client)
{
}
QString GitVersionControl::name() const
{
return QLatin1String("git");
}
bool GitVersionControl::isEnabled() const
{
return m_enabled;
}
void GitVersionControl::setEnabled(bool enabled)
{
if (m_enabled != enabled) {
m_enabled = enabled;
emit enabledChanged(m_enabled);
}
}
bool GitVersionControl::supportsOperation(Operation operation) const
{
bool rc = false;
switch (operation) {
case AddOperation:
case DeleteOperation:
case OpenOperation:
break;
}
return rc;
}
bool GitVersionControl::vcsOpen(const QString & /*fileName*/)
{
return false;
}
bool GitVersionControl::vcsAdd(const QString & /*fileName*/)
{
return false;
}
bool GitVersionControl::vcsDelete(const QString & /*fileName*/)
{
// TODO: implement using 'git rm'.
return false;
}
bool GitVersionControl::managesDirectory(const QString &directory) const
{
return !GitClient::findRepositoryForDirectory(directory).isEmpty();
}
QString GitVersionControl::findTopLevelForDirectory(const QString &directory) const
{
return GitClient::findRepositoryForDirectory(directory);
}
} // Internal
} // Git

View File

@@ -0,0 +1,75 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
**
***************************************************************************/
#ifndef GITVERSIONCONTROL_H
#define GITVERSIONCONTROL_H
#include <coreplugin/iversioncontrol.h>
namespace Git {
namespace Internal {
class GitClient;
// Just a proxy for GitPlugin
class GitVersionControl : public Core::IVersionControl
{
Q_OBJECT
public:
explicit GitVersionControl(GitClient *plugin);
virtual QString name() const;
virtual bool isEnabled() const;
virtual void setEnabled(bool enabled);
bool managesDirectory(const QString &directory) const;
virtual QString findTopLevelForDirectory(const QString &directory) const;
virtual bool supportsOperation(Operation operation) const;
virtual bool vcsOpen(const QString &fileName);
virtual bool vcsAdd(const QString &fileName);
virtual bool vcsDelete(const QString &filename);
signals:
void enabledChanged(bool);
private:
bool m_enabled;
GitClient *m_client;
};
} // Internal
} // Git
#endif // GITVERSIONCONTROL_H

View File

@@ -685,28 +685,19 @@ void ProjectExplorerPlugin::loadAction()
updateActions();
}
bool ProjectExplorerPlugin::saveAction(Project *pro)
void ProjectExplorerPlugin::unloadProject()
{
if (debug)
qDebug() << "ProjectExplorerPlugin::saveAction";
qDebug() << "ProjectExplorerPlugin::unloadProject";
if (!pro)
pro = m_currentProject;
Q_ASSERT(pro);
Core::IFile *fi = pro->file();
if (!fi) // TODO Why saving the session here????
fi = m_session->file();
Core::IFile *fi = m_currentProject->file();
if (!fi || fi->fileName().isEmpty()) //nothing to save?
return false;
return;
QList<Core::IFile*> filesToSave;
filesToSave << fi;
if (pro)
filesToSave << pro->dependencies();
filesToSave << m_currentProject->dependencies();
// check the number of modified files
int readonlycount = 0;
@@ -721,20 +712,10 @@ bool ProjectExplorerPlugin::saveAction(Project *pro)
else
success = m_core->fileManager()->saveModifiedFilesSilently(filesToSave).isEmpty();
if (success)
addToRecentProjects(fi->fileName());
updateActions();
return success;
}
void ProjectExplorerPlugin::unloadProject()
{
if (debug)
qDebug() << "ProjectExplorerPlugin::unloadProject";
if (!saveAction(m_currentProject))
if (!success)
return;
addToRecentProjects(fi->fileName());
m_session->removeProject(m_currentProject);
updateActions();
}

View File

@@ -139,7 +139,6 @@ private slots:
void cancelBuild();
void debugProject();
void editDependencies();
bool saveAction(ProjectExplorer::Project *pro = 0);
void loadAction();
void unloadProject();
void clearSession();

View File

@@ -939,6 +939,7 @@ void SessionManager::removeProjects(QList<Project *> remove)
// Delete projects
foreach (Project *pro, remove) {
pro->saveSettings();
m_file->m_projects.removeOne(pro);
if (pro == m_file->m_startupProject)

View File

@@ -69,7 +69,7 @@ bool ProFileReader::readProFile(const QString &fileName)
// return false;
// }
// }
QString fn = QFileInfo(fileName).filePath();
QString fn = QFileInfo(fileName).filePath();
ProFile *pro = new ProFile(fn);
if (!queryProFile(pro)) {
delete pro;

View File

@@ -883,12 +883,12 @@ QStringList Qt4ProFileNode::subDirsPaths(ProFileReader *reader) const
QString realFile;
const QString subDirKey = subDirVar + QLatin1String(".subdir");
if (reader->contains(subDirKey))
realDir = reader->value(subDirKey);
realDir = QFileInfo(reader->value(subDirKey)).filePath();
else
realDir = subDirVar;
QFileInfo info(realDir);
if (!info.isAbsolute())
realDir = QString("%1/%2").arg(m_projectDir, realDir);
realDir = m_projectDir + "/" + realDir;
#ifdef QTEXTENDED_QBUILD_SUPPORT
// QBuild only uses project files named qbuild.pro, and subdirs are implied

View File

@@ -240,7 +240,7 @@ bool VCSBaseSubmitEditor::restoreState(const QByteArray &/*state*/)
return true;
}
QStringList VCSBaseSubmitEditor::checkedFiles() const
QStringList VCSBaseSubmitEditor::checkedFiles() const
{
return vcsFileListToFileList(m_d->m_widget->checkedFiles());
}
@@ -255,7 +255,7 @@ void VCSBaseSubmitEditor::addFiles(const QStringList& list, bool checked, bool u
m_d->m_widget->addFiles(list, checked, userCheckable);
}
void VCSBaseSubmitEditor::slotDiffSelectedVCSFiles(const QStringList &rawList)
void VCSBaseSubmitEditor::slotDiffSelectedVCSFiles(const QStringList &rawList)
{
emit diffSelectedFiles(vcsFileListToFileList(rawList));
}
@@ -299,4 +299,4 @@ QIcon VCSBaseSubmitEditor::submitIcon()
return QIcon(QLatin1String(":/vcsbase/images/submit.png"));
}
}
} // namespace VCSBase