forked from qt-creator/qt-creator
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:
@@ -201,14 +201,18 @@ void BookmarksPlugin::updateActions(int state)
|
||||
|
||||
void BookmarksPlugin::editorOpened(Core::IEditor *editor)
|
||||
{
|
||||
connect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||
if (qobject_cast<ITextEditor *>(editor)) {
|
||||
connect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||
}
|
||||
}
|
||||
|
||||
void BookmarksPlugin::editorAboutToClose(Core::IEditor *editor)
|
||||
{
|
||||
disconnect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||
if (qobject_cast<ITextEditor *>(editor)) {
|
||||
disconnect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||
}
|
||||
}
|
||||
|
||||
void BookmarksPlugin::requestContextMenu(TextEditor::ITextEditor *editor,
|
||||
|
||||
@@ -47,6 +47,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
|
||||
setupUi(this);
|
||||
buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
|
||||
|
||||
splitter->setCollapsible(1, false);
|
||||
pageTree->header()->setVisible(false);
|
||||
|
||||
connect(pageTree, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
||||
@@ -59,7 +60,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
|
||||
|
||||
int index = 0;
|
||||
foreach (IOptionsPage *page, pages) {
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem;
|
||||
item->setText(0, page->name());
|
||||
item->setData(0, Qt::UserRole, index);
|
||||
|
||||
|
||||
@@ -186,6 +186,15 @@ MainWindow::MainWindow() :
|
||||
QCoreApplication::setOrganizationName(QLatin1String("Nokia"));
|
||||
QSettings::setDefaultFormat(QSettings::IniFormat);
|
||||
QString baseName = qApp->style()->objectName();
|
||||
if (baseName == "windows") {
|
||||
// Sometimes we get the standard windows 95 style as a fallback
|
||||
// e.g. if we are running on a KDE4 desktop
|
||||
QByteArray desktopEnvironment = qgetenv("DESKTOP_SESSION");
|
||||
if (desktopEnvironment == "kde")
|
||||
baseName = "plastique";
|
||||
else
|
||||
baseName = "cleanlooks";
|
||||
}
|
||||
qApp->setStyle(new ManhattanStyle(baseName));
|
||||
statusBar()->setProperty("p_styled", true);
|
||||
}
|
||||
|
||||
@@ -480,13 +480,23 @@ void CPPEditor::jumpToDefinition()
|
||||
Document::Ptr doc = m_modelManager->document(file()->fileName());
|
||||
if (!doc)
|
||||
return;
|
||||
|
||||
QTextCursor tc = textCursor();
|
||||
unsigned lineno = tc.blockNumber() + 1;
|
||||
foreach (const Document::Include &incl, doc->includes()) {
|
||||
if (incl.line() == lineno) {
|
||||
if (TextEditor::BaseTextEditor::openEditorAt(incl.fileName(), 0, 0))
|
||||
return; // done
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Symbol *lastSymbol = doc->findSymbolAt(line, column);
|
||||
if (!lastSymbol)
|
||||
return;
|
||||
|
||||
// Get the expression under the cursor
|
||||
const int endOfName = endOfNameUnderCursor();
|
||||
QTextCursor tc = textCursor();
|
||||
tc.setPosition(endOfName);
|
||||
ExpressionUnderCursor expressionUnderCursor;
|
||||
const QString expression = expressionUnderCursor(tc);
|
||||
|
||||
@@ -177,6 +177,16 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
|
||||
}
|
||||
}
|
||||
|
||||
if (m_toolTip.isEmpty()) {
|
||||
unsigned lineno = tc.blockNumber() + 1;
|
||||
foreach (const Document::Include &incl, doc->includes()) {
|
||||
if (lineno == incl.line()) {
|
||||
m_toolTip = incl.fileName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m_toolTip.isEmpty()) {
|
||||
// Move to the end of a qualified name
|
||||
bool stop = false;
|
||||
|
||||
@@ -138,7 +138,8 @@ protected:
|
||||
virtual void stopExpandingMacro(unsigned offset, const Macro ¯o);
|
||||
virtual void startSkippingBlocks(unsigned offset);
|
||||
virtual void stopSkippingBlocks(unsigned offset);
|
||||
virtual void sourceNeeded(QString &fileName, IncludeType type);
|
||||
virtual void sourceNeeded(QString &fileName, IncludeType type,
|
||||
unsigned line);
|
||||
|
||||
private:
|
||||
QPointer<CppModelManager> m_modelManager;
|
||||
@@ -176,7 +177,7 @@ void CppPreprocessor::setProjectFiles(const QStringList &files)
|
||||
{ m_projectFiles = files; }
|
||||
|
||||
void CppPreprocessor::run(QString &fileName)
|
||||
{ sourceNeeded(fileName, IncludeGlobal); }
|
||||
{ sourceNeeded(fileName, IncludeGlobal, /*line = */ 0); }
|
||||
|
||||
void CppPreprocessor::operator()(QString &fileName)
|
||||
{ run(fileName); }
|
||||
@@ -361,7 +362,8 @@ void CppPreprocessor::stopSkippingBlocks(unsigned offset)
|
||||
m_currentDoc->stopSkippingBlocks(offset);
|
||||
}
|
||||
|
||||
void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type)
|
||||
void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type,
|
||||
unsigned line)
|
||||
{
|
||||
if (fileName.isEmpty())
|
||||
return;
|
||||
@@ -369,7 +371,7 @@ void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type)
|
||||
QByteArray contents = tryIncludeFile(fileName, type);
|
||||
|
||||
if (m_currentDoc) {
|
||||
m_currentDoc->addIncludeFile(fileName);
|
||||
m_currentDoc->addIncludeFile(fileName, line);
|
||||
if (contents.isEmpty() && ! QFileInfo(fileName).isAbsolute()) {
|
||||
QString msg;
|
||||
msg += fileName;
|
||||
|
||||
@@ -1033,7 +1033,6 @@ void DebuggerManager::addToWatchWindow()
|
||||
void DebuggerManager::watchExpression(const QString &expression)
|
||||
{
|
||||
watchHandler()->watchExpression(expression);
|
||||
//engine()->updateWatchModel();
|
||||
}
|
||||
|
||||
void DebuggerManager::setBreakpoint(const QString &fileName, int lineNumber)
|
||||
|
||||
@@ -2939,6 +2939,8 @@ bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const
|
||||
if (tmplate == "QSet")
|
||||
return true;
|
||||
}
|
||||
if (tmplate == "std::list")
|
||||
return true;
|
||||
if (tmplate == "std::vector" && inner != "bool")
|
||||
return true;
|
||||
if (tmplate == "std::basic_string") {
|
||||
|
||||
@@ -402,18 +402,30 @@ bool WatchHandler::setData(const QModelIndex &idx,
|
||||
static QString niceType(QString type)
|
||||
{
|
||||
if (type.contains("std::")) {
|
||||
static QRegExp re("std::vector<(.*)\\s*,std::allocator<(.*)>\\s*>");
|
||||
re.setMinimal(true);
|
||||
|
||||
// std::string
|
||||
type.replace("std::basic_string<char, std::char_traits<char>, "
|
||||
"std::allocator<char> >", "std::string");
|
||||
|
||||
// std::wstring
|
||||
type.replace("std::basic_string<wchar_t, std::char_traits<wchar_t>, "
|
||||
"std::allocator<wchar_t> >", "std::wstring");
|
||||
|
||||
// std::vector
|
||||
static QRegExp re1("std::vector<(.*)\\s*,std::allocator<(.*)>\\s*>");
|
||||
re1.setMinimal(true);
|
||||
for (int i = 0; i != 10; ++i) {
|
||||
if (re.indexIn(type) == -1 || re.cap(1) != re.cap(2))
|
||||
if (re1.indexIn(type) == -1 || re1.cap(1) != re1.cap(2))
|
||||
break;
|
||||
type.replace(re.cap(0), "std::vector<" + re.cap(1) + ">");
|
||||
type.replace(re1.cap(0), "std::vector<" + re1.cap(1) + ">");
|
||||
}
|
||||
|
||||
// std::list
|
||||
static QRegExp re2("std::list<(.*)\\s*,std::allocator<(.*)>\\s*>");
|
||||
re2.setMinimal(true);
|
||||
for (int i = 0; i != 10; ++i) {
|
||||
if (re2.indexIn(type) == -1 || re2.cap(1) != re2.cap(2))
|
||||
break;
|
||||
type.replace(re2.cap(0), "std::list<" + re2.cap(1) + ">");
|
||||
}
|
||||
|
||||
type.replace(" >", ">");
|
||||
@@ -865,9 +877,9 @@ void WatchHandler::watchExpression(const QString &exp)
|
||||
data.name = exp;
|
||||
data.iname = "watch." + exp;
|
||||
insertData(data);
|
||||
emit watchModelUpdateRequested();
|
||||
}
|
||||
|
||||
|
||||
void WatchHandler::setDisplayedIName(const QString &iname, bool on)
|
||||
{
|
||||
WatchData *d = findData(iname);
|
||||
|
||||
@@ -43,6 +43,7 @@ ChangeSelectionDialog::ChangeSelectionDialog(QWidget *parent)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
connect(m_ui.repositoryButton, SIGNAL(clicked()), this, SLOT(selectWorkingDirectory()));
|
||||
setWindowTitle(tr("Select a Git commit"));
|
||||
}
|
||||
|
||||
void ChangeSelectionDialog::selectWorkingDirectory()
|
||||
@@ -59,7 +60,7 @@ void ChangeSelectionDialog::selectWorkingDirectory()
|
||||
// the head directory of the repository.
|
||||
QDir repository(location);
|
||||
do {
|
||||
if (repository.entryList(QDir::AllDirs).contains(QLatin1String(".git"))) {
|
||||
if (repository.entryList(QDir::AllDirs|QDir::Hidden).contains(QLatin1String(".git"))) {
|
||||
m_ui.repositoryEdit->setText(repository.absolutePath());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ void GitClient::diff(const QString &workingDirectory, const QStringList &fileNam
|
||||
const QString title = tr("Git Diff");
|
||||
|
||||
VCSBase::VCSBaseEditor *editor = createVCSEditor(kind, title, workingDirectory, true, "originalFileName", workingDirectory);
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), editor);
|
||||
executeGit(workingDirectory, arguments, editor);
|
||||
|
||||
}
|
||||
|
||||
@@ -215,14 +215,14 @@ void GitClient::diff(const QString &workingDirectory, const QString &fileName)
|
||||
const QString sourceFile = source(workingDirectory, fileName);
|
||||
|
||||
VCSBase::VCSBaseEditor *editor = createVCSEditor(kind, title, sourceFile, true, "originalFileName", sourceFile);
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), editor);
|
||||
executeGit(workingDirectory, arguments, editor);
|
||||
}
|
||||
|
||||
void GitClient::status(const QString &workingDirectory)
|
||||
{
|
||||
QStringList statusArgs(QLatin1String("status"));
|
||||
statusArgs << QLatin1String("-u");
|
||||
executeGit(workingDirectory, statusArgs, m_plugin->outputWindow(), 0,true);
|
||||
executeGit(workingDirectory, statusArgs, 0, true);
|
||||
}
|
||||
|
||||
void GitClient::log(const QString &workingDirectory, const QString &fileName)
|
||||
@@ -242,7 +242,7 @@ void GitClient::log(const QString &workingDirectory, const QString &fileName)
|
||||
const QString kind = QLatin1String(Git::Constants::GIT_LOG_EDITOR_KIND);
|
||||
const QString sourceFile = source(workingDirectory, fileName);
|
||||
VCSBase::VCSBaseEditor *editor = createVCSEditor(kind, title, sourceFile, false, "logFileName", sourceFile);
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), editor);
|
||||
executeGit(workingDirectory, arguments, editor);
|
||||
}
|
||||
|
||||
void GitClient::show(const QString &source, const QString &id)
|
||||
@@ -258,7 +258,7 @@ void GitClient::show(const QString &source, const QString &id)
|
||||
|
||||
const QFileInfo sourceFi(source);
|
||||
const QString workDir = sourceFi.isDir() ? sourceFi.absoluteFilePath() : sourceFi.absolutePath();
|
||||
executeGit(workDir, arguments, m_plugin->outputWindow(), editor);
|
||||
executeGit(workDir, arguments, editor);
|
||||
}
|
||||
|
||||
void GitClient::blame(const QString &workingDirectory, const QString &fileName)
|
||||
@@ -273,7 +273,7 @@ void GitClient::blame(const QString &workingDirectory, const QString &fileName)
|
||||
const QString sourceFile = source(workingDirectory, fileName);
|
||||
|
||||
VCSBase::VCSBaseEditor *editor = createVCSEditor(kind, title, sourceFile, true, "blameFileName", sourceFile);
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), editor);
|
||||
executeGit(workingDirectory, arguments, editor);
|
||||
}
|
||||
|
||||
void GitClient::checkout(const QString &workingDirectory, const QString &fileName)
|
||||
@@ -287,7 +287,7 @@ void GitClient::checkout(const QString &workingDirectory, const QString &fileNam
|
||||
arguments << QLatin1String("checkout") << QLatin1String("HEAD") << QLatin1String("--")
|
||||
<< fileName;
|
||||
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0,true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
void GitClient::hardReset(const QString &workingDirectory, const QString &commit)
|
||||
@@ -297,7 +297,7 @@ void GitClient::hardReset(const QString &workingDirectory, const QString &commit
|
||||
if (!commit.isEmpty())
|
||||
arguments << commit;
|
||||
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0,true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
void GitClient::addFile(const QString &workingDirectory, const QString &fileName)
|
||||
@@ -305,7 +305,7 @@ void GitClient::addFile(const QString &workingDirectory, const QString &fileName
|
||||
QStringList arguments;
|
||||
arguments << QLatin1String("add") << fileName;
|
||||
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0,true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
bool GitClient::synchronousAdd(const QString &workingDirectory, const QStringList &files)
|
||||
@@ -380,13 +380,14 @@ bool GitClient::synchronousCheckout(const QString &workingDirectory,
|
||||
}
|
||||
|
||||
void GitClient::executeGit(const QString &workingDirectory, const QStringList &arguments,
|
||||
GitOutputWindow *outputWindow, VCSBase::VCSBaseEditor* editor,
|
||||
VCSBase::VCSBaseEditor* editor,
|
||||
bool outputToWindow)
|
||||
{
|
||||
if (Git::Constants::debug)
|
||||
qDebug() << "executeGit" << workingDirectory << arguments << editor;
|
||||
|
||||
m_plugin->outputWindow()->append(formatCommand(QLatin1String(kGitCommand), arguments));
|
||||
GitOutputWindow *outputWindow = m_plugin->outputWindow();
|
||||
outputWindow->append(formatCommand(QLatin1String(kGitCommand), arguments));
|
||||
|
||||
QProcess process;
|
||||
ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment();
|
||||
@@ -396,8 +397,13 @@ void GitClient::executeGit(const QString &workingDirectory, const QStringList &a
|
||||
|
||||
GitCommand* command = new GitCommand();
|
||||
if (outputToWindow) {
|
||||
connect(command, SIGNAL(outputText(QString)), outputWindow, SLOT(append(QString)));
|
||||
connect(command, SIGNAL(outputData(QByteArray)), outputWindow, SLOT(appendData(QByteArray)));
|
||||
if (!editor) { // assume that the commands output is the important thing
|
||||
connect(command, SIGNAL(outputText(QString)), this, SLOT(appendAndPopup(QString)));
|
||||
connect(command, SIGNAL(outputData(QByteArray)), this, SLOT(appendDataAndPopup(QByteArray)));
|
||||
} else {
|
||||
connect(command, SIGNAL(outputText(QString)), outputWindow, SLOT(append(QString)));
|
||||
connect(command, SIGNAL(outputData(QByteArray)), outputWindow, SLOT(appendData(QByteArray)));
|
||||
}
|
||||
} else {
|
||||
QTC_ASSERT(editor, /**/);
|
||||
connect(command, SIGNAL(outputText(QString)), editor, SLOT(setPlainText(QString)));
|
||||
@@ -405,11 +411,23 @@ void GitClient::executeGit(const QString &workingDirectory, const QStringList &a
|
||||
}
|
||||
|
||||
if (outputWindow)
|
||||
connect(command, SIGNAL(errorText(QString)), outputWindow, SLOT(append(QString)));
|
||||
connect(command, SIGNAL(errorText(QString)), this, SLOT(appendAndPopup(QString)));
|
||||
|
||||
command->execute(arguments, workingDirectory, environment);
|
||||
}
|
||||
|
||||
void GitClient::appendDataAndPopup(const QByteArray &data)
|
||||
{
|
||||
m_plugin->outputWindow()->appendData(data);
|
||||
m_plugin->outputWindow()->popup(false);
|
||||
}
|
||||
|
||||
void GitClient::appendAndPopup(const QString &text)
|
||||
{
|
||||
m_plugin->outputWindow()->append(text);
|
||||
m_plugin->outputWindow()->popup(false);
|
||||
}
|
||||
|
||||
bool GitClient::synchronousGit(const QString &workingDirectory,
|
||||
const QStringList &arguments,
|
||||
QByteArray* outputText,
|
||||
@@ -810,12 +828,12 @@ void GitClient::revert(const QStringList &files)
|
||||
|
||||
void GitClient::pull(const QString &workingDirectory)
|
||||
{
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("pull")), m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("pull")), 0, true);
|
||||
}
|
||||
|
||||
void GitClient::push(const QString &workingDirectory)
|
||||
{
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("push")), m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("push")), 0, true);
|
||||
}
|
||||
|
||||
QString GitClient::msgNoChangedFiles()
|
||||
@@ -829,7 +847,7 @@ void GitClient::stash(const QString &workingDirectory)
|
||||
QString errorMessage;
|
||||
switch (gitStatus(workingDirectory, false, 0, &errorMessage)) {
|
||||
case StatusChanged:
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("stash")), m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, QStringList(QLatin1String("stash")), 0, true);
|
||||
break;
|
||||
case StatusUnchanged:
|
||||
m_plugin->outputWindow()->append(msgNoChangedFiles());
|
||||
@@ -846,21 +864,21 @@ void GitClient::stashPop(const QString &workingDirectory)
|
||||
{
|
||||
QStringList arguments(QLatin1String("stash"));
|
||||
arguments << QLatin1String("pop");
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
void GitClient::branchList(const QString &workingDirectory)
|
||||
{
|
||||
QStringList arguments(QLatin1String("branch"));
|
||||
arguments << QLatin1String("-r");
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
void GitClient::stashList(const QString &workingDirectory)
|
||||
{
|
||||
QStringList arguments(QLatin1String("stash"));
|
||||
arguments << QLatin1String("list");
|
||||
executeGit(workingDirectory, arguments, m_plugin->outputWindow(), 0, true);
|
||||
executeGit(workingDirectory, arguments, 0, true);
|
||||
}
|
||||
|
||||
QString GitClient::readConfig(const QString &workingDirectory, const QStringList &configVar)
|
||||
|
||||
@@ -130,6 +130,10 @@ public:
|
||||
public slots:
|
||||
void show(const QString &source, const QString &id);
|
||||
|
||||
private slots:
|
||||
void appendAndPopup(const QString &text);
|
||||
void appendDataAndPopup(const QByteArray &data);
|
||||
|
||||
private:
|
||||
VCSBase::VCSBaseEditor *createVCSEditor(const QString &kind,
|
||||
QString title,
|
||||
@@ -141,7 +145,6 @@ private:
|
||||
|
||||
void executeGit(const QString &workingDirectory,
|
||||
const QStringList &arguments,
|
||||
GitOutputWindow *outputWindow,
|
||||
VCSBase::VCSBaseEditor* editor = 0,
|
||||
bool outputToWindow = false);
|
||||
|
||||
|
||||
@@ -105,7 +105,6 @@ void GitOutputWindow::append(const QString &text)
|
||||
foreach (const QString &s, lines)
|
||||
m_outputListWidget->addItem(s);
|
||||
m_outputListWidget->scrollToBottom();
|
||||
popup();
|
||||
}
|
||||
|
||||
void GitOutputWindow::setData(const QByteArray &data)
|
||||
|
||||
@@ -496,7 +496,7 @@ QString GitPlugin::getWorkingDirectory()
|
||||
if (workingDirectory.isEmpty()) {
|
||||
m_outputWindow->clearContents();
|
||||
m_outputWindow->append(tr("Could not find working directory"));
|
||||
m_outputWindow->popup();
|
||||
m_outputWindow->popup(false);
|
||||
return QString();
|
||||
}
|
||||
return workingDirectory;
|
||||
@@ -612,6 +612,7 @@ void GitPlugin::startCommit()
|
||||
changeTmpFile->setAutoRemove(true);
|
||||
if (!changeTmpFile->open()) {
|
||||
m_outputWindow->append(tr("Cannot create temporary file: %1").arg(changeTmpFile->errorString()));
|
||||
m_outputWindow->popup(false);
|
||||
delete changeTmpFile;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6,114 +6,97 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>436</width>
|
||||
<height>186</height>
|
||||
<width>389</width>
|
||||
<height>183</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="environmentGroupBox">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Environment variables</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="pathlabel">
|
||||
<property name="text">
|
||||
<string>PATH:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="environmentGroupBox">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Environment variables</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="pathlabel">
|
||||
<property name="text">
|
||||
<string>PATH:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="pathLineEdit"/>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="pathLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="adoptButton">
|
||||
<property name="text">
|
||||
<string>From system</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="noteLabel">
|
||||
<item>
|
||||
<widget class="QPushButton" name="adoptButton">
|
||||
<property name="text">
|
||||
<string><b>Note:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="noteFieldlabel">
|
||||
<property name="text">
|
||||
<string>Git needs to find Perl in the environment as well.</string>
|
||||
<string>From system</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="noteLabel">
|
||||
<property name="text">
|
||||
<string><b>Note:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="noteFieldlabel">
|
||||
<property name="text">
|
||||
<string>Git needs to find Perl in the environment as well.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="logFormLayout">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="logCountSpinBox">
|
||||
<property name="toolTip">
|
||||
<string>Note that huge amount of commits might take some time.</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="logFormLayout">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="logCountLabel">
|
||||
<property name="text">
|
||||
<string>Log commit display count:</string>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="logCountSpinBox">
|
||||
<property name="toolTip">
|
||||
<string>Note that huge amount of commits might take some time.</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="logCountLabel">
|
||||
<property name="text">
|
||||
<string>Log commit display count:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
|
||||
@@ -626,7 +626,7 @@ QList<FolderNode*> DetailedModel::recursiveSubFolders(FolderNode *parentFolder)
|
||||
|
||||
FlatModel::FlatModel(SessionNode *rootNode, QObject *parent)
|
||||
: QAbstractItemModel(parent),
|
||||
m_filterProjects(true),
|
||||
m_filterProjects(false),
|
||||
m_filterGeneratedFiles(true),
|
||||
m_rootNode(rootNode),
|
||||
m_startupProject(0),
|
||||
@@ -914,6 +914,8 @@ QModelIndex FlatModel::indexForNode(const Node *node_)
|
||||
|
||||
void FlatModel::setProjectFilterEnabled(bool filter)
|
||||
{
|
||||
if (filter == m_filterProjects)
|
||||
return;
|
||||
m_filterProjects = filter;
|
||||
reset();
|
||||
}
|
||||
|
||||
@@ -90,6 +90,20 @@ protected:
|
||||
if (event->reason() != Qt::PopupFocusReason)
|
||||
QTreeView::focusOutEvent(event);
|
||||
}
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
void keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if ((event->key() == Qt::Key_Return
|
||||
|| event->key() == Qt::Key_Enter)
|
||||
&& event->modifiers() == 0
|
||||
&& currentIndex().isValid()) {
|
||||
emit activated(currentIndex());
|
||||
return;
|
||||
}
|
||||
QTreeView::keyPressEvent(event);
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
/*!
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QBoxLayout>
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtGui/QTabWidget>
|
||||
@@ -190,7 +191,14 @@ void ProjectWindow::updateTreeWidget()
|
||||
// That one runs fully thorough and deletes all widgets, even that one that we are currently removing
|
||||
// from m_panelsTabWidget.
|
||||
// To prevent that, we simply prevent the focus switching....
|
||||
m_treeWidget->setFocus();
|
||||
QWidget *focusWidget = qApp->focusWidget();
|
||||
while (focusWidget) {
|
||||
if (focusWidget == this) {
|
||||
m_treeWidget->setFocus();
|
||||
break;
|
||||
}
|
||||
focusWidget = focusWidget->parentWidget();
|
||||
}
|
||||
m_treeWidget->clear();
|
||||
|
||||
foreach(Project *project, m_session->projects()) {
|
||||
|
||||
@@ -628,8 +628,10 @@ bool SessionManager::loadImpl(const QString &fileName)
|
||||
if (success) {
|
||||
// restore the active mode
|
||||
const QString &modeIdentifier = value(QLatin1String("ActiveMode")).toString();
|
||||
if (!modeIdentifier.isEmpty())
|
||||
if (!modeIdentifier.isEmpty()) {
|
||||
m_core->modeManager()->activateMode(modeIdentifier);
|
||||
m_core->modeManager()->setFocusToCurrentMode();
|
||||
}
|
||||
}
|
||||
|
||||
if (debug)
|
||||
|
||||
@@ -54,14 +54,7 @@ QList<FilterEntry> FileSystemFilter::matchesFor(const QString &entry)
|
||||
QString name = entryInfo.fileName();
|
||||
QString directory = entryInfo.path();
|
||||
QString filePath = entryInfo.filePath();
|
||||
bool isDrive = false;
|
||||
foreach (const QFileInfo &drive, QDir::drives()) {
|
||||
if (filePath.startsWith(drive.path())) {
|
||||
isDrive = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isDrive) {
|
||||
if (entryInfo.isRelative()) {
|
||||
if (filePath.startsWith("~/")) {
|
||||
directory.replace(0, 1, QDir::homePath());
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user