Merge remote-tracking branch 'origin/3.2'

Change-Id: I05f76a4f5134c4edd91a79b757bcce9d6e7c258b
This commit is contained in:
Eike Ziller
2014-07-07 09:18:40 +02:00
363 changed files with 1501 additions and 1321 deletions

21
dist/changes-3.2.0 vendored
View File

@@ -10,9 +10,11 @@ git log --cherry-pick --pretty=oneline origin/3.1..origin/master
General
* Added "Get Help Online" context menu item to issues pane that searches for
the issue description online in Google
* Enabled resizing of the locator field
* Added action to file system locator filter ('f') for creating and opening a new file
* Added search capability to general messages and most navigation panes
* Enabled resizing of the locator field
* Improved look and feel on HiDPI by adding more hi-resolution icons
* Made keyboard and mouse activation of navigation panes and other trees more consistent
Editing
@@ -21,14 +23,21 @@ Managing and Building Projects
QMake Projects
* Added context menu item for copying resource path from entries in QRC files in project tree
(QTCREATORBUG-11776)
* Added deployment support to plain C and C++ application wizards
* Removed warning about build directory below source directory for kits with Qt 5.2 and later
where this is supported (QTCREATORBUG-10024)
* Fixed that adding files to .pri file was missing $$PWD
Qbs Projects
* Fixed that run configurations were created for products that are not runnable
(QTCREATORBUG-12152)
* Fixed that run configurations were created for disabled products (QBS-560)
* Fixed that default build directory was ignored
Generic Projects
Debugging
* Added option to disable automatic centering on currently debugged line in editor
* GDB and LLDB
* Added pretty printers for AVX512 registers
@@ -39,6 +48,7 @@ C++ Support
(QTCREATORBUG-11859, QTCREATORBUG-11860)
* Fixed indentation of concatenated strings
* Fixed pointer typedef resolving (QTCREATORBUG-10021)
* Fixed scroll wheel behavior in editor's symbols dropdown
QML Support
@@ -49,7 +59,10 @@ Diff Viewer
Version Control Systems
FakeVim
* Added support for unicode input with 'C-v' in insert mode
* Fixed issues with long command output (QTCREATORBUG-11598)
* Fixed 'gv' after yanking text in visual mode (QTCREATORBUG-12112)
* Fixed 'v', 'V' and 'C-v' while in visual mode (QTCREATORBUG-12113)
Platform Specific
@@ -60,5 +73,11 @@ Windows
OS X
* Fixed activation of items with Enter in Bookmarks pane
Android
* Fixed that UI was unresponsive while creating AVD (QTCREATORBUG-10601)
Remote Linux
* Added custom remote executable run configuration type (QTCREATORBUG-12168)
* Fixed issue with environment variables that contain spaces
Credits for these changes go to:

View File

@@ -32,7 +32,7 @@
\section1 General Questions
\b {\QC only shows a blank window, or crashes on startup. What's going wrong?}
\b {\QC only shows a blank window, a dialog complaining about missing OpenGL support, or crashes on startup. What's going wrong?}
Some parts of \QC use Qt Quick 2, which relies on OpenGL API for
drawing. The most prominent use of Qt Quick 2 is in the Welcome mode, but it's
@@ -55,7 +55,9 @@
\e{Virtual Machines}
Try to enable \e{3D acceleration} in your virtual machine's settings.
Try to enable \e{3D acceleration} in your virtual machine's settings. For VirtualBox,
also make sure you have installed the Guest Addons, including experimental
\e{Direct3D support}.
\e{Windows}
@@ -67,7 +69,8 @@
\li ANGLE backend: This requires a Windows version newer than Windows XP. If you
have problems, try updating your graphics drivers or update your
DirectX version.
DirectX version. Run \c dxdiag.exe to check whether \e{Direct3D Acceleration}
is indeed enabled.
\li OpenGL backend: Make sure your graphics driver supports OpenGL 2.1 or newer.
Try to update your graphics driver.

View File

@@ -0,0 +1,11 @@
var Process = loadExtension("qbs.Process")
function readOutput(executable, args)
{
var p = new Process();
var output = "";
if (p.exec(executable, args, false) !== -1)
output = p.readStdOut().trim(); // Trailing newline.
p.close();
return output;
}

View File

@@ -170,8 +170,8 @@ INCLUDEPATH += \
$$IDE_SOURCE_TREE/src/libs \
$$IDE_SOURCE_TREE/tools
QTC_PLUGIN_DIRS = $$(QTC_PLUGIN_DIRS)
QTC_PLUGIN_DIRS = $$split(QTC_PLUGIN_DIRS, $$QMAKE_DIRLIST_SEP)
QTC_PLUGIN_DIRS_FROM_ENVIRONMENT = $$(QTC_PLUGIN_DIRS)
QTC_PLUGIN_DIRS += $$split(QTC_PLUGIN_DIRS_FROM_ENVIRONMENT, $$QMAKE_DIRLIST_SEP)
QTC_PLUGIN_DIRS += $$IDE_SOURCE_TREE/src/plugins
for(dir, QTC_PLUGIN_DIRS) {
INCLUDEPATH += $$dir

View File

@@ -1793,10 +1793,8 @@ registerCommand("pp", pp)
# Global instance.
if gdb.parameter('height') is None:
print("Using MI")
theDumper = Dumper()
else:
print("Using CLI")
import codecs
theDumper = CliDumper()

View File

@@ -683,7 +683,7 @@ class Dumper(DumperBase):
# and later detects that it did stop after all, so it is be
# better to mirror that and wait for the spontaneous stop.
self.reportState("enginerunandinferiorrunok")
elif self.startMode_ == AttachToRemoteServer:
elif self.startMode_ == AttachToRemoteServer or self.startMode_ == AttachToRemoteProcess:
self.process = self.target.ConnectRemote(
self.debugger.GetListener(),
self.remoteChannel_, None, error)

View File

@@ -467,27 +467,27 @@
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Tags" defStyleNum="dsKeyword" color="#ca60ca" bold="1" italic="0" />
<itemData name="Custom Tags" defStyleNum="dsNormal" color="#458C61" bold="1" italic="0" />
<itemData name="Word" defStyleNum="dsKeyword" color="#0095ff" bold="1" italic="0" />
<itemData name="HTML Tag" defStyleNum="dsKeyword" color="#000000" bold="1" italic="0" />
<itemData name="Entities" defStyleNum="dsOthers" color="#4086C0" bold="1" italic="1" />
<itemData name="Description" defStyleNum="dsString" color="#ff0000" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Region" defStyleNum="dsRegionMarker" />
<itemData name="Identifier" defStyleNum="dsOthers" />
<itemData name="HTML Comment" defStyleNum="dsComment" />
<itemData name="Types" defStyleNum="dsDataType" />
<itemData name="Code" defStyleNum="dsComment" />
<itemData name="Dot Graph" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
<itemData name="Formulas" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
<itemData name="Message Sequence Chart" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
<itemData name="Verbatim" defStyleNum="dsComment" />
<itemData name="Note" defStyleNum="dsKeyword" color="#81ca2d" selColor="#81ca2d" bold="1" italic="0" />
<itemData name="Warning" defStyleNum="dsKeyword" color="#ca9219" selColor="#ca9219" bold="1" italic="0" />
<itemData name="Attention" defStyleNum="dsKeyword" color="#e85848" selColor="#e85848" bold="1" italic="0" />
<itemData name="Todo" defStyleNum="dsKeyword" color="#ca60ca" selColor="#ffffff" bold="1" italic="0" />
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Tags" defStyleNum="dsKeyword" />
<itemData name="Custom Tags" defStyleNum="dsKeyword" />
<itemData name="Word" defStyleNum="dsIdentifier" />
<itemData name="HTML Tag" defStyleNum="dsKeyword" />
<itemData name="Entities" defStyleNum="dsOthers" />
<itemData name="Description" defStyleNum="dsString" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Region" defStyleNum="dsRegionMarker" />
<itemData name="Identifier" defStyleNum="dsIdentifier" />
<itemData name="HTML Comment" defStyleNum="dsComment" />
<itemData name="Types" defStyleNum="dsDataType" />
<itemData name="Code" defStyleNum="dsComment" />
<itemData name="Dot Graph" defStyleNum="dsComment" />
<itemData name="Formulas" defStyleNum="dsComment" />
<itemData name="Message Sequence Chart" defStyleNum="dsComment" />
<itemData name="Verbatim" defStyleNum="dsComment" />
<itemData name="Note" defStyleNum="dsKeyword" />
<itemData name="Warning" defStyleNum="dsKeyword" />
<itemData name="Attention" defStyleNum="dsKeyword" />
<itemData name="Todo" defStyleNum="dsKeyword" />
</itemDatas>
</highlighting>
<general>

View File

@@ -503,7 +503,7 @@ void QuickItemNodeInstance::resetVertical()
if (m_height > 0.0) {
setPropertyVariant("height", m_height);
} else {
setPropertyVariant("height", quickItem()->implicitWidth());
setPropertyVariant("height", quickItem()->implicitHeight());
}
}

View File

@@ -184,7 +184,7 @@ void QmlGraphicsItemNodeInstance::resetVertical()
if (m_height > 0.0) {
setPropertyVariant("height", m_height);
} else {
setPropertyVariant("height", qmlGraphicsItem()->implicitWidth());
setPropertyVariant("height", qmlGraphicsItem()->implicitHeight());
}
}

View File

@@ -78,7 +78,7 @@ Rectangle {
property int pressedY
onPressed: {
rootView.startDragAndDropDelayed(itemLibraryEntry)
rootView.startDragAndDrop(itemLibraryEntry)
}
}
}

View File

@@ -36,6 +36,7 @@
#include <extensionsystem/pluginspec.h>
#include <qtsingleapplication.h>
#include <utils/hostosinfo.h>
#include <utils/logging.h>
#include <QDebug>
#include <QDir>
@@ -286,6 +287,7 @@ static inline QSettings *userSettings()
int main(int argc, char **argv)
{
QLoggingCategory::setFilterRules(QLatin1String("qtc.*.debug=false"));
#ifdef Q_OS_MAC
// increase the number of file that can be opened in Qt Creator.
struct rlimit rl;

View File

@@ -33,8 +33,6 @@
#include "qmljsdocument.h"
#include "qmljsmodelmanagerinterface.h"
#include <QDebug>
using namespace LanguageUtils;
using namespace QmlJS;
using namespace QmlJS::AST;

View File

@@ -35,7 +35,6 @@
#include <utils/qtcassert.h>
#include <QDebug>
#include <QDir>
using namespace QmlJS;

View File

@@ -29,12 +29,15 @@
#include "qmljscodeformatter.h"
#include <QDebug>
#include <utils/logging.h>
#include <QMetaEnum>
#include <QTextDocument>
#include <QTextBlock>
using namespace QmlJS;
namespace QmlJS {
Q_LOGGING_CATEGORY(formatterLog, "qtc.qmljs.formatter")
CodeFormatter::BlockData::BlockData()
: m_indentDepth(0)
@@ -65,13 +68,13 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
m_tokenIndex = 0;
m_newStates.clear();
//qDebug() << "Starting to look at " << block.text() << block.blockNumber() + 1;
//qCDebug(formatterLog) << "Starting to look at " << block.text() << block.blockNumber() + 1;
for (; m_tokenIndex < m_tokens.size(); ) {
m_currentToken = tokenAt(m_tokenIndex);
const int kind = extendedTokenKind(m_currentToken);
//qDebug() << "Token" << m_currentLine.mid(m_currentToken.begin(), m_currentToken.length) << m_tokenIndex << "in line" << block.blockNumber() + 1;
//qCDebug(formatterLog) << "Token" << m_currentLine.mid(m_currentToken.begin(), m_currentToken.length) << m_tokenIndex << "in line" << block.blockNumber() + 1;
//dump();
if (kind == Comment
@@ -520,7 +523,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
int CodeFormatter::indentFor(const QTextBlock &block)
{
// qDebug() << "indenting for" << block.blockNumber() + 1;
// qCDebug(formatterLog) << "indenting for" << block.blockNumber() + 1;
restoreCurrentState(block.previous());
correctIndentation(block);
@@ -641,7 +644,7 @@ void CodeFormatter::enter(int newState)
m_currentState.push(s);
m_newStates.push(s);
//qDebug() << "enter state" << stateToString(newState);
//qCDebug(formatterLog) << "enter state" << stateToString(newState);
if (newState == bracket_open)
enter(bracket_element_start);
@@ -662,7 +665,7 @@ void CodeFormatter::leave(bool statementDone)
int topState = m_currentState.top().type;
//qDebug() << "left state" << stateToString(poppedState.type) << ", now in state" << stateToString(topState);
//qCDebug(formatterLog) << "left state" << stateToString(poppedState.type) << ", now in state" << stateToString(topState);
// if statement is done, may need to leave recursively
if (statementDone) {
@@ -1003,12 +1006,12 @@ CodeFormatter::TokenKind CodeFormatter::extendedTokenKind(const QmlJS::Token &to
void CodeFormatter::dump() const
{
qDebug() << "Current token index" << m_tokenIndex;
qDebug() << "Current state:";
qCDebug(formatterLog) << "Current token index" << m_tokenIndex;
qCDebug(formatterLog) << "Current state:";
foreach (const State &s, m_currentState) {
qDebug() << stateToString(s.type) << s.savedIndentDepth;
qCDebug(formatterLog) << stateToString(s.type) << s.savedIndentDepth;
}
qDebug() << "Current indent depth:" << m_indentDepth;
qCDebug(formatterLog) << "Current indent depth:" << m_indentDepth;
}
QString CodeFormatter::stateToString(int type) const
@@ -1339,3 +1342,5 @@ void QtStyleCodeFormatter::adjustIndent(const QList<Token> &tokens, int startLex
break;
}
}
} // namespace QmlJS

View File

@@ -29,7 +29,6 @@
#include "qmljscompletioncontextfinder.h"
#include <QDebug>
#include <QTextDocument>
#include <QStringList>
@@ -130,7 +129,7 @@ void CompletionContextFinder::checkBinding()
{
YY_SAVE();
//qDebug() << "Start line:" << *yyLine << m_startTokenIndex;
//qCDebug(qmljsLog) << "Start line:" << *yyLine << m_startTokenIndex;
int i = m_startTokenIndex;
int colonCount = 0;

View File

@@ -29,6 +29,9 @@
#ifndef QMLJSCONSTANTS_H
#define QMLJSCONSTANTS_H
#include "qmljs_global.h"
#include <utils/logging.h>
namespace QmlJS {
@@ -68,7 +71,7 @@ enum Enum
namespace Language {
enum Enum
{
Unknown = 0,
NoLanguage = 0,
JavaScript = 1,
Json = 2,
Qml = 3,
@@ -76,7 +79,8 @@ enum Enum
QmlQtQuick2 = 5,
QmlQbs = 6,
QmlProject = 7,
QmlTypeInfo = 8
QmlTypeInfo = 8,
AnyLanguage = 9,
};
}
@@ -86,5 +90,8 @@ const char TASK_INDEX[] = "QmlJSEditor.TaskIndex";
const char TASK_IMPORT_SCAN[] = "QmlJSEditor.TaskImportScan";
} // namespace Constants
QMLJS_EXPORT Q_DECLARE_LOGGING_CATEGORY(qmljsLog)
} // namespace QmlJS
#endif // QMLJSCONSTANTS_H

View File

@@ -97,6 +97,7 @@ bool Document::isQmlLikeLanguage(Language::Enum language)
case Language::QmlQbs:
case Language::QmlProject:
case Language::QmlTypeInfo:
case Language::AnyLanguage:
return true;
default:
return false;
@@ -112,7 +113,8 @@ bool Document::isFullySupportedLanguage(Language::Enum language)
case Language::QmlQtQuick1:
case Language::QmlQtQuick2:
return true;
case Language::Unknown:
case Language::NoLanguage:
case Language::AnyLanguage:
case Language::QmlQbs:
case Language::QmlProject:
case Language::QmlTypeInfo:
@@ -131,6 +133,7 @@ bool Document::isQmlLikeOrJsLanguage(Language::Enum language)
case Language::QmlProject:
case Language::QmlTypeInfo:
case Language::JavaScript:
case Language::AnyLanguage:
return true;
default:
return false;
@@ -157,12 +160,16 @@ QList<Language::Enum> Document::companionLanguages(Language::Enum language)
case Language::QmlQtQuick2:
langs << Language::Qml << Language::JavaScript;
break;
case Language::Unknown:
case Language::AnyLanguage:
langs << Language::JavaScript << Language::Json << Language::QmlProject << Language:: QmlQbs
<< Language::QmlTypeInfo << Language::QmlQtQuick1 << Language::QmlQtQuick2
<< Language::Qml;
break;
case Language::NoLanguage:
return QList<Language::Enum>(); // return at least itself?
}
if (language != Language::AnyLanguage)
langs << Language::AnyLanguage;
return langs;
}
@@ -531,7 +538,7 @@ void Snapshot::insertLibraryInfo(const QString &path, const LibraryInfo &info)
if (!info.wasFound()) return;
CoreImport cImport;
cImport.importId = path;
cImport.language = Language::Unknown;
cImport.language = Language::AnyLanguage;
QSet<ImportKey> packages;
foreach (const ModuleApiInfo &moduleInfo, info.moduleApis()) {
ImportKey iKey(ImportType::Library, moduleInfo.uri, moduleInfo.version.majorVersion(),

View File

@@ -31,7 +31,6 @@
#include "qmljscontext.h"
#include "qmljsscopechain.h"
#include "parser/qmljsast_p.h"
#include <QDebug>
using namespace QmlJS;

View File

@@ -36,7 +36,6 @@
#include <cplusplus/cppmodelmanagerbase.h>
#include <cplusplus/CppDocument.h>
#include <QDebug>
#include <QList>
//using namespace QmlJS;

View File

@@ -28,8 +28,10 @@
****************************************************************************/
#include "qmljsicons.h"
#include <utils/logging.h>
#include <QIcon>
#include <QDebug>
#include <QDir>
#include <QHash>
#include <QPair>
@@ -43,6 +45,8 @@ enum {
namespace QmlJS {
Q_LOGGING_CATEGORY(iconsLog, "qtc.qmljs.icons")
Icons *Icons::m_instance = 0;
class IconsPrivate
@@ -88,22 +92,22 @@ void Icons::setIconFilesPath(const QString &iconPath)
d->resourcePath = iconPath;
if (debug)
qDebug() << "QmlJSIcons -" << "parsing" << iconPath;
qCDebug(iconsLog) << "parsing" << iconPath;
QDir topDir(iconPath);
foreach (const QFileInfo &subDirInfo, topDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) {
if (debug)
qDebug() << "QmlJSIcons - parsing" << subDirInfo.absoluteFilePath();
qCDebug(iconsLog) << "parsing" << subDirInfo.absoluteFilePath();
const QString packageName = subDirInfo.fileName();
QDir subDir(subDirInfo.absoluteFilePath() + QLatin1String("/16x16"));
foreach (const QFileInfo &iconFile, subDir.entryInfoList(QDir::Files)) {
QIcon icon(iconFile.absoluteFilePath());
if (icon.isNull()) {
if (debug)
qDebug() << "QmlJSIcons - skipping" << iconFile.absoluteFilePath();
qCDebug(iconsLog) << "skipping" << iconFile.absoluteFilePath();
continue;
}
if (debug)
qDebug() << "QmlJSIcons - adding" << packageName << iconFile.baseName() << "icon to database";
qCDebug(iconsLog) << "adding" << packageName << iconFile.baseName() << "icon to database";
QPair<QString,QString> element(packageName, iconFile.baseName());
d->iconHash.insert(element, icon);
}
@@ -114,7 +118,7 @@ QIcon Icons::icon(const QString &packageName, const QString typeName) const
{
QPair<QString,QString> element(packageName, typeName);
if (debug)
qDebug() << "QmlJSIcons - icon for" << packageName << typeName << "requested" << d->iconHash.contains(element);
qCDebug(iconsLog) << "icon for" << packageName << typeName << "requested" << d->iconHash.contains(element);
return d->iconHash.value(element);
}

View File

@@ -32,6 +32,7 @@
#include "qmljsqrcparser.h"
#include <utils/qtcassert.h>
#include <utils/logging.h>
#include <QCryptographicHash>
@@ -39,7 +40,7 @@
namespace QmlJS {
static bool debugImportDependencies = false;
Q_LOGGING_CATEGORY(importsLog, "qtc.qmljs.imports")
ImportKind::Enum toImportKind(ImportType::Enum type)
{
@@ -728,18 +729,18 @@ void ImportDependencies::addCoreImport(const CoreImport &import)
foreach (const Export &e, import.possibleExports)
m_importCache[e.exportName].append(import.importId);
m_coreImports.insert(newImport.importId, newImport);
if (debugImportDependencies) {
QDebug dbg(qDebug());
dbg << "added import "<< newImport.importId << " for";
if (importsLog().isDebugEnabled()) {
QString msg = QString::fromLatin1("added import %1 for").arg(newImport.importId);
foreach (const Export &e, newImport.possibleExports)
dbg << " " << e.exportName.toString() << "(" << e.pathRequired << ")";
msg += QString::fromLatin1("\n %1(%2)").arg(e.exportName.toString(), e.pathRequired);
qCDebug(importsLog) << msg;
}
}
void ImportDependencies::removeCoreImport(const QString &importId)
{
if (!m_coreImports.contains(importId)) {
qDebug() << "missing importId in removeCoreImport(" << importId << ")";
qCWarning(importsLog) << "missing importId in removeCoreImport(" << importId << ")";
return;
}
CoreImport &cImport = m_coreImports[importId];
@@ -754,16 +755,15 @@ void ImportDependencies::removeCoreImport(const QString &importId)
else
m_coreImports.remove(importId);
if (debugImportDependencies)
qDebug() << "removed import with id:"<< importId;
qCDebug(importsLog) << "removed import with id:"<< importId;
}
void ImportDependencies::removeImportCacheEntry(const ImportKey &importKey, const QString &importId)
{
QStringList &cImp = m_importCache[importKey];
if (!cImp.removeOne(importId)) {
qDebug() << "missing possibleExport backpointer for " << importKey.toString() << " to "
<< importId;
qCWarning(importsLog) << "missing possibleExport backpointer for " << importKey.toString() << " to "
<< importId;
}
if (cImp.isEmpty())
m_importCache.remove(importKey);
@@ -774,7 +774,7 @@ void ImportDependencies::addExport(const QString &importId, const ImportKey &imp
{
if (!m_coreImports.contains(importId)) {
CoreImport newImport(importId);
newImport.language = Language::Unknown;
newImport.language = Language::AnyLanguage;
newImport.possibleExports.append(Export(importKey, requiredPath, false));
m_coreImports.insert(newImport.importId, newImport);
m_importCache[importKey].append(importId);
@@ -783,35 +783,33 @@ void ImportDependencies::addExport(const QString &importId, const ImportKey &imp
CoreImport &importValue = m_coreImports[importId];
importValue.possibleExports.append(Export(importKey, requiredPath, false));
m_importCache[importKey].append(importId);
if (debugImportDependencies)
qDebug() << "added export "<< importKey.toString() << " for id " <<importId
<< " (" << requiredPath << ")";
qCDebug(importsLog) << "added export "<< importKey.toString() << " for id " <<importId
<< " (" << requiredPath << ")";
}
void ImportDependencies::removeExport(const QString &importId, const ImportKey &importKey,
const QString &requiredPath)
{
if (!m_coreImports.contains(importId)) {
qDebug() << "non existing core import for removeExport(" << importId << ", "
<< importKey.toString() << ")";
qCWarning(importsLog) << "non existing core import for removeExport(" << importId << ", "
<< importKey.toString() << ")";
} else {
CoreImport &importValue = m_coreImports[importId];
if (!importValue.possibleExports.removeOne(Export(importKey, requiredPath, false))) {
qDebug() << "non existing export for removeExport(" << importId << ", "
<< importKey.toString() << ")";
qCWarning(importsLog) << "non existing export for removeExport(" << importId << ", "
<< importKey.toString() << ")";
}
if (importValue.possibleExports.isEmpty() && importValue.fingerprint.isEmpty())
m_coreImports.remove(importId);
}
if (!m_importCache.contains(importKey)) {
qDebug() << "missing possibleExport for " << importKey.toString() << " when removing export of "
<< importId;
qCWarning(importsLog) << "missing possibleExport for " << importKey.toString()
<< " when removing export of " << importId;
} else {
removeImportCacheEntry(importKey, importId);
}
if (debugImportDependencies)
qDebug() << "removed export "<< importKey.toString() << " for id " << importId
<< " (" << requiredPath << ")";
qCDebug(importsLog) << "removed export "<< importKey.toString() << " for id " << importId
<< " (" << requiredPath << ")";
}
void ImportDependencies::iterateOnCoreImports(
@@ -838,8 +836,7 @@ void ImportDependencies::iterateOnLibraryImports(
iter_t i = m_importCache.lowerBound(firstLib);
iter_t end = m_importCache.constEnd();
while (i != end && i.key().type == ImportType::Library) {
if (debugImportDependencies)
qDebug() << "libloop:" << i.key().toString() << i.value();
qCDebug(importsLog) << "libloop:" << i.key().toString() << i.value();
foreach (const QString &cImportName, i.value()) {
CoreImport cImport = coreImport(cImportName);
if (vContext.languageIsCompatible(cImport.language)) {
@@ -847,9 +844,8 @@ void ImportDependencies::iterateOnLibraryImports(
if (e.visibleInVContext(vContext) && e.exportName.type == ImportType::Library) {
ImportMatchStrength m = e.exportName.matchImport(i.key(), vContext);
if (m.hasMatch()) {
if (debugImportDependencies)
qDebug() << "import iterate:" << e.exportName.toString()
<< " (" << e.pathRequired << "), id:" << cImport.importId;
qCDebug(importsLog) << "import iterate:" << e.exportName.toString()
<< " (" << e.pathRequired << "), id:" << cImport.importId;
if (!iterF(m, e, cImport))
return;
}
@@ -945,16 +941,16 @@ void ImportDependencies::checkConsistency() const
i.next();
foreach (const Export &e, i.value().possibleExports) {
if (!m_importCache.value(e.exportName).contains(i.key())) {
qDebug() << e.exportName.toString();
qDebug() << i.key();
qCWarning(importsLog) << e.exportName.toString();
qCWarning(importsLog) << i.key();
QMapIterator<ImportKey, QStringList> j(m_importCache);
while (j.hasNext()) {
j.next();
qDebug() << j.key().toString() << j.value();
qCWarning(importsLog) << j.key().toString() << j.value();
}
qDebug() << m_importCache.contains(e.exportName);
qDebug() << m_importCache.value(e.exportName);
qCWarning(importsLog) << m_importCache.contains(e.exportName);
qCWarning(importsLog) << m_importCache.value(e.exportName);
}
Q_ASSERT(m_importCache.value(e.exportName).contains(i.key()));
}

View File

@@ -67,7 +67,6 @@
#include <qmljs/qmljsindenter.h>
#include <QDebug>
#include <QTextBlock>
using namespace QmlJS;

View File

@@ -28,6 +28,7 @@
****************************************************************************/
#include "parser/qmljsast_p.h"
#include "qmljsconstants.h"
#include "qmljscontext.h"
#include "qmljsevaluate.h"
#include "qmljsinterpreter.h"
@@ -41,7 +42,6 @@
#include <utils/qtcassert.h>
#include <QApplication>
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QString>
@@ -2492,38 +2492,38 @@ public:
virtual bool processProperty(const QString &name, const Value *)
{
qDebug() << "property: " << name;
qCDebug(qmljsLog) << "property: " << name;
return true;
}
virtual bool processEnumerator(const QString &name, const Value *)
{
qDebug() << "enumerator: " << name;
qCDebug(qmljsLog) << "enumerator: " << name;
return true;
}
virtual bool processSignal(const QString &name, const Value *)
{
qDebug() << "signal: " << name;
qCDebug(qmljsLog) << "signal: " << name;
return true;
}
virtual bool processSlot(const QString &name, const Value *)
{
qDebug() << "slot: " << name;
qCDebug(qmljsLog) << "slot: " << name;
return true;
}
virtual bool processGeneratedSlot(const QString &name, const Value *)
{
qDebug() << "generated slot: " << name;
qCDebug(qmljsLog) << "generated slot: " << name;
return true;
}
};
void Imports::dump() const
{
qDebug() << "Imports contents, in search order:";
qCDebug(qmljsLog) << "Imports contents, in search order:";
QListIterator<Import> it(m_imports);
it.toBack();
while (it.hasPrevious()) {
@@ -2531,7 +2531,7 @@ void Imports::dump() const
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
qDebug() << " " << info.path() << " " << info.version().toString() << " as " << info.as() << " : " << import;
qCDebug(qmljsLog) << " " << info.path() << " " << info.version().toString() << " as " << info.as() << " : " << import;
MemberDumper dumper;
import->processMembers(&dumper);
}

View File

@@ -67,8 +67,6 @@
#include <qmljs/qmljslineinfo.h>
#include <QDebug>
using namespace QmlJS;
/*

View File

@@ -38,7 +38,6 @@
#include "qmljsconstants.h"
#include <QDir>
#include <QDebug>
using namespace LanguageUtils;
using namespace QmlJS;

View File

@@ -39,7 +39,6 @@
#include <utils/hostosinfo.h>
#include <utils/runextensions.h>
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QFileInfo>
@@ -55,6 +54,8 @@
namespace QmlJS {
QMLJS_EXPORT Q_LOGGING_CATEGORY(qmljsLog, "qtc.qmljs.common")
/*!
\class QmlJS::ModelManagerInterface
\brief The ModelManagerInterface class acts as an interface to the
@@ -95,6 +96,7 @@ static QStringList environmentImportPaths()
ModelManagerInterface::ModelManagerInterface(QObject *parent)
: QObject(parent),
m_shouldScanImports(false),
m_defaultProject(0),
m_pluginDumper(new PluginDumper(this))
{
m_synchronizer.setCancelOnWait(true);
@@ -112,6 +114,11 @@ ModelManagerInterface::ModelManagerInterface(QObject *parent)
qRegisterMetaType<QmlJS::Document::Ptr>("QmlJS::Document::Ptr");
qRegisterMetaType<QmlJS::LibraryInfo>("QmlJS::LibraryInfo");
m_defaultProjectInfo.qtImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
m_defaultProjectInfo.qtQmlPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
#endif
m_defaultImportPaths << environmentImportPaths();
updateImportPaths();
@@ -148,7 +155,7 @@ Language::Enum ModelManagerInterface::guessLanguageOfFile(const QString &fileNam
lMapping = defaultLanguageMapping();
const QFileInfo info(fileName);
const QString fileSuffix = info.suffix();
return lMapping.value(fileSuffix, Language::Unknown);
return lMapping.value(fileSuffix, Language::NoLanguage);
}
QStringList ModelManagerInterface::globPatternsForLanguages(const QList<Language::Enum> languages)
@@ -178,7 +185,7 @@ void ModelManagerInterface::writeWarning(const QString &msg)
if (ModelManagerInterface *i = instance())
i->writeMessageInternal(msg);
else
qDebug() << msg;
qCWarning(qmljsLog) << msg;
}
ModelManagerInterface::WorkingCopy ModelManagerInterface::workingCopy()
@@ -203,7 +210,7 @@ QHash<QString, Language::Enum> ModelManagerInterface::languageForSuffix() const
void ModelManagerInterface::writeMessageInternal(const QString &msg) const
{
qDebug() << msg;
qCWarning(qmljsLog) << msg;
}
ModelManagerInterface::WorkingCopy ModelManagerInterface::workingCopyInternal() const
@@ -216,7 +223,7 @@ void ModelManagerInterface::addTaskInternal(QFuture<void> result, const QString
const char *taskId) const
{
Q_UNUSED(result);
qDebug() << "started " << taskId << " " << msg;
qCDebug(qmljsLog) << "started " << taskId << " " << msg;
}
void ModelManagerInterface::loadQmlTypeDescriptionsInternal(const QString &resourcePath)
@@ -253,7 +260,13 @@ void ModelManagerInterface::loadQmlTypeDescriptionsInternal(const QString &resou
writeMessageInternal(warning);
}
void ModelManagerInterface::setDefaultProject(const ModelManagerInterface::ProjectInfo &pInfo,
ProjectExplorer::Project *p)
{
QMutexLocker l(mutex());
m_defaultProject = p;
m_defaultProjectInfo = pInfo;
}
Snapshot ModelManagerInterface::snapshot() const
{
@@ -321,7 +334,7 @@ void ModelManagerInterface::fileChangedOnDisk(const QString &path)
{
QtConcurrent::run(&ModelManagerInterface::parse,
workingCopyInternal(), QStringList() << path,
this, Language::Unknown, true);
this, Language::AnyLanguage, true);
}
void ModelManagerInterface::removeFiles(const QStringList &files)
@@ -477,11 +490,13 @@ QList<ModelManagerInterface::ProjectInfo> ModelManagerInterface::projectInfos()
return m_projects.values();
}
ModelManagerInterface::ProjectInfo ModelManagerInterface::projectInfo(ProjectExplorer::Project *project) const
ModelManagerInterface::ProjectInfo ModelManagerInterface::projectInfo(
ProjectExplorer::Project *project,
const ModelManagerInterface::ProjectInfo &defaultValue) const
{
QMutexLocker locker(&m_mutex);
return m_projects.value(project, ProjectInfo());
return m_projects.value(project, defaultValue);
}
void ModelManagerInterface::updateProjectInfo(const ProjectInfo &pinfo, ProjectExplorer::Project *p)
@@ -495,6 +510,8 @@ void ModelManagerInterface::updateProjectInfo(const ProjectInfo &pinfo, ProjectE
QMutexLocker locker(&m_mutex);
oldInfo = m_projects.value(p);
m_projects.insert(p, pinfo);
if (p == m_defaultProject)
m_defaultProjectInfo = pinfo;
snapshot = m_validSnapshot;
}
@@ -614,7 +631,7 @@ void ModelManagerInterface::updateDocument(Document::Ptr doc)
void ModelManagerInterface::updateLibraryInfo(const QString &path, const LibraryInfo &info)
{
if (!info.pluginTypeInfoError().isEmpty())
qDebug() << "Dumping errors for " << path << ":" << info.pluginTypeInfoError();
qCWarning(qmljsLog) << "Dumping errors for " << path << ":" << info.pluginTypeInfoError();
{
QMutexLocker locker(&m_mutex);
@@ -740,7 +757,7 @@ static bool findNewQmlLibraryInPath(const QString &path,
const QString path = QDir::cleanPath(componentFileInfo.absolutePath());
if (! scannedPaths->contains(path)) {
*importedFiles += filesInDirectoryForLanguages(path,
Document::companionLanguages(Language::Unknown));
Document::companionLanguages(Language::AnyLanguage));
scannedPaths->insert(path);
}
}
@@ -823,7 +840,7 @@ void ModelManagerInterface::parseLoop(QSet<QString> &scannedPaths,
const QString fileName = files.at(i);
Language::Enum language = guessLanguageOfFile(fileName);
if (language == Language::Unknown) {
if (language == Language::NoLanguage) {
if (fileName.endsWith(QLatin1String(".qrc")))
modelManager->updateQrcFile(fileName);
continue;
@@ -1190,6 +1207,11 @@ void ModelManagerInterface::startCppQmlTypeUpdate()
m_queuedCppDocuments.clear();
}
QMutex *ModelManagerInterface::mutex() const
{
return &m_mutex;
}
void ModelManagerInterface::asyncReset()
{
m_asyncResetTimer->start();
@@ -1284,7 +1306,7 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx,
foreach (const QString &path, defaultVCtx.paths)
res.maybeAddPath(path);
switch (res.language) {
case Language::Unknown:
case Language::AnyLanguage:
case Language::Qml:
res.maybeAddPath(info.qtQmlPath);
// fallthrough
@@ -1307,6 +1329,7 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx,
}
break;
}
case Language::NoLanguage:
case Language::JavaScript:
case Language::QmlTypeInfo:
case Language::Json:
@@ -1322,10 +1345,10 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx,
case ViewerContext::AddDefaultPaths:
foreach (const QString &path, defaultVCtx.paths)
res.maybeAddPath(path);
if (res.language == Language::Unknown || res.language == Language::Qml
if (res.language == Language::AnyLanguage || res.language == Language::Qml
|| res.language == Language::QmlQtQuick2)
res.maybeAddPath(info.qtImportsPath);
if (res.language == Language::Unknown || res.language == Language::Qml
if (res.language == Language::AnyLanguage || res.language == Language::Qml
|| res.language == Language::QmlQtQuick1)
res.maybeAddPath(info.qtQmlPath);
break;
@@ -1339,7 +1362,7 @@ ViewerContext ModelManagerInterface::defaultVContext(Language::Enum language,
bool autoComplete) const
{
if (!doc.isNull()) {
if (language == Language::Unknown)
if (language == Language::AnyLanguage)
language = doc->language();
else if (language == Language::Qml &&
(doc->language() == Language::QmlQtQuick1 || doc->language() == Language::QmlQtQuick2))
@@ -1358,12 +1381,8 @@ ViewerContext ModelManagerInterface::defaultVContext(Language::Enum language,
ModelManagerInterface::ProjectInfo ModelManagerInterface::defaultProjectInfo() const
{
ProjectInfo res;
res.qtImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
res.qtQmlPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
#endif
return res;
QMutexLocker l(mutex());
return m_defaultProjectInfo;
}
void ModelManagerInterface::setDefaultVContext(const ViewerContext &vContext)

View File

@@ -171,7 +171,8 @@ public:
QrcResourceSelector resources = AllQrcResources);
QList<ProjectInfo> projectInfos() const;
ProjectInfo projectInfo(ProjectExplorer::Project *project) const;
ProjectInfo projectInfo(ProjectExplorer::Project *project,
const ModelManagerInterface::ProjectInfo &defaultValue = ProjectInfo()) const;
void updateProjectInfo(const ProjectInfo &pinfo, ProjectExplorer::Project *p);
void updateDocument(QmlJS::Document::Ptr doc);
@@ -218,6 +219,7 @@ protected slots:
void asyncReset();
virtual void startCppQmlTypeUpdate();
protected:
QMutex *mutex() const;
virtual QHash<QString,Language::Enum> languageForSuffix() const;
virtual void writeMessageInternal(const QString &msg) const;
virtual WorkingCopy workingCopyInternal() const;
@@ -250,6 +252,7 @@ protected:
void maybeScan(const QStringList &importPaths, Language::Enum defaultLanguage);
void updateImportPaths();
void loadQmlTypeDescriptionsInternal(const QString &path);
void setDefaultProject(const ProjectInfo &pInfo, ProjectExplorer::Project *p);
private:
mutable QMutex m_mutex;
@@ -274,6 +277,8 @@ private:
// project integration
QMap<ProjectExplorer::Project *, ProjectInfo> m_projects;
ProjectInfo m_defaultProjectInfo;
ProjectExplorer::Project *m_defaultProject;
QMultiHash<QString, ProjectExplorer::Project *> m_fileToProject;
PluginDumper *m_pluginDumper;

View File

@@ -28,6 +28,7 @@
****************************************************************************/
#include "qmljsqrcparser.h"
#include "qmljsconstants.h"
#include <QFile>
#include <QDir>
#include <QFileInfo>
@@ -40,7 +41,6 @@
#include <QMultiHash>
#include <QCoreApplication>
#include <utils/qtcassert.h>
#include <QDebug>
namespace QmlJS {
@@ -456,7 +456,7 @@ QrcParser::Ptr QrcCachePrivate::addPath(const QString &path)
}
QrcParser::Ptr newParser = QrcParser::parseQrcFile(path);
if (!newParser->isValid())
qDebug() << "adding invalid qrc " << path << " to the cache:" << newParser->errorMessages();
qCWarning(qmljsLog) << "adding invalid qrc " << path << " to the cache:" << newParser->errorMessages();
{
QMutexLocker l(&m_mutex);
QPair<QrcParser::Ptr,int> currentValue = m_cache.value(path, qMakePair(QrcParser::Ptr(0), 0));

View File

@@ -288,7 +288,7 @@ protected:
result.badnessFromSplits = 0;
result.lines = QStringList(line);
//qDebug() << "trying to split" << line << possibleSplits << context;
//qCDebug(qmljsLog) << "trying to split" << line << possibleSplits << context;
// try to split at every possible position
for (int i = possibleSplits.size() - 1; i >= 0; --i) {

View File

@@ -33,16 +33,14 @@
#include "parser/qmljslexer_p.h"
#include "parser/qmljsengine_p.h"
#include <utils/logging.h>
#include "qmljsutils.h"
#include <QFile>
enum {
debug = false
};
using namespace QmlJS;
namespace QmlJS{
Q_LOGGING_CATEGORY(simpleReaderLog, "qtc.qmljs.simpleReader")
QVariant SimpleReaderNode::property(const QString &name) const
{
@@ -304,8 +302,7 @@ SimpleReaderNode::Ptr SimpleReader::readFromSource(const QString &source)
void SimpleReader::elementStart(const QString &name)
{
if (debug)
qDebug() << "SimpleReader::elementStart()" << name;
qCDebug(simpleReaderLog) << "elementStart()" << name;
SimpleReaderNode::Ptr newNode = SimpleReaderNode::create(name, m_currentNode);
@@ -321,8 +318,7 @@ void SimpleReader::elementEnd()
{
Q_ASSERT(m_currentNode);
if (debug)
qDebug() << "SimpleReader::elementEnd()" << m_currentNode.data()->name();
qCDebug(simpleReaderLog) << "elementEnd()" << m_currentNode.data()->name();
m_currentNode = m_currentNode.data()->parent();
}
@@ -331,11 +327,12 @@ void SimpleReader::propertyDefinition(const QString &name, const QVariant &value
{
Q_ASSERT(m_currentNode);
if (debug)
qDebug() << "SimpleReader::propertyDefinition()" << m_currentNode.data()->name() << name << value;
qCDebug(simpleReaderLog) << "propertyDefinition()" << m_currentNode.data()->name() << name << value;
if (m_currentNode.data()->propertyNames().contains(name))
addError(tr("Property is defined twice."), currentSourceLocation());
m_currentNode.data()->setProperty(name, value);
}
} // namespace QmlJS

View File

@@ -56,6 +56,8 @@ ViewerContext::ViewerContext(QStringList selectors, QStringList paths,
*/
bool ViewerContext::languageIsCompatible(Language::Enum l) const
{
if (l == Language::AnyLanguage && language != Language::NoLanguage)
return true;
switch (language) {
case Language::JavaScript:
case Language::Json:
@@ -70,10 +72,12 @@ bool ViewerContext::languageIsCompatible(Language::Enum l) const
return l == Language::Qml || l == Language::QmlQtQuick1 || l == Language::JavaScript;
case Language::QmlQtQuick2:
return l == Language::Qml || l == Language::QmlQtQuick2 || l == Language::JavaScript;
case Language::Unknown: // ?
case Language::AnyLanguage:
return true;
case Language::NoLanguage:
break;
}
return true;
return false;
}
void ViewerContext::maybeAddPath(const QString &path)

View File

@@ -28,11 +28,14 @@
****************************************************************************/
#ifndef LOGGING_H
#define LOGGING_H
#include <qglobal.h>
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
#include <QDebug>
//
// Qt < 5.2 didn't feature categorized logging:
// Just enable qCWarning, qCCritical, but disable qCDebug
@@ -42,7 +45,8 @@ class QLoggingCategory
Q_DISABLE_COPY(QLoggingCategory)
public:
explicit QLoggingCategory(const char *category) : name(category) {}
~QLoggingCategory();
~QLoggingCategory() {}
static void setFilterRules(const QString &) {}
bool isDebugEnabled() const { return false; }
bool isWarningEnabled() const { return true; }

View File

@@ -98,7 +98,7 @@ public:
AnalyzerMode(QObject *parent = 0)
: IMode(parent)
{
setContext(Context(C_EDITORMANAGER, C_ANALYZEMODE, C_NAVIGATION_PANE));
setContext(Context(C_ANALYZEMODE, C_NAVIGATION_PANE));
setDisplayName(tr("Analyze"));
setIcon(QIcon(QLatin1String(":/images/analyzer_mode.png")));
setPriority(P_MODE_ANALYZE);
@@ -279,6 +279,10 @@ void AnalyzerManagerPrivate::delayedInit()
splitter->addWidget(mainWindowSplitter);
splitter->setStretchFactor(0, 0);
splitter->setStretchFactor(1, 1);
Core::IContext *modeContextObject = new Core::IContext(this);
modeContextObject->setContext(Core::Context(Core::Constants::C_EDITORMANAGER));
modeContextObject->setWidget(splitter);
Core::ICore::addContextObject(modeContextObject);
m_mode->setWidget(splitter);
AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode);

View File

@@ -67,12 +67,12 @@ AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory(QObject *pa
setObjectName(QLatin1String("AndroidDeployConfigurationFactory"));
}
bool AndroidDeployConfigurationFactory::canCreate(Target *parent, const Core::Id id) const
bool AndroidDeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const
{
return availableCreationIds(parent).contains(id);
}
DeployConfiguration *AndroidDeployConfigurationFactory::create(Target *parent, const Core::Id id)
DeployConfiguration *AndroidDeployConfigurationFactory::create(Target *parent, Core::Id id)
{
AndroidDeployConfiguration *dc = new AndroidDeployConfiguration(parent, id);
@@ -143,7 +143,7 @@ QList<Core::Id> AndroidDeployConfigurationFactory::availableCreationIds(Target *
return ids;
}
QString AndroidDeployConfigurationFactory::displayNameForId(const Core::Id id) const
QString AndroidDeployConfigurationFactory::displayNameForId(Core::Id id) const
{
if (id.name().startsWith(ANDROID_DC_PREFIX)
|| id.name().startsWith(ANDROID_DC2_PREFIX))

View File

@@ -62,8 +62,8 @@ class AndroidDeployConfigurationFactory : public ProjectExplorer::DeployConfigur
public:
explicit AndroidDeployConfigurationFactory(QObject *parent = 0);
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
ProjectExplorer::DeployConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canCreate(ProjectExplorer::Target *parent, Core::Id id) const;
ProjectExplorer::DeployConfiguration *create(ProjectExplorer::Target *parent, Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::DeployConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *source) const;
@@ -71,7 +71,7 @@ public:
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
// used to translate the ids to names to display to the user
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
private:
bool canHandle(ProjectExplorer::Target *parent) const;

View File

@@ -87,19 +87,19 @@ QList<Core::Id> AndroidDeployQtStepFactory::availableCreationIds(ProjectExplorer
return QList<Core::Id>() << AndroidDeployQtStep::Id;
}
QString AndroidDeployQtStepFactory::displayNameForId(const Core::Id id) const
QString AndroidDeployQtStepFactory::displayNameForId(Core::Id id) const
{
if (id == AndroidDeployQtStep::Id)
return tr("Deploy to Android device or emulator");
return QString();
}
bool AndroidDeployQtStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const
bool AndroidDeployQtStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const
{
return availableCreationIds(parent).contains(id);
}
ProjectExplorer::BuildStep *AndroidDeployQtStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id)
ProjectExplorer::BuildStep *AndroidDeployQtStepFactory::create(ProjectExplorer::BuildStepList *parent, Core::Id id)
{
Q_ASSERT(canCreate(parent, id));
Q_UNUSED(id);

View File

@@ -50,11 +50,11 @@ public:
explicit AndroidDeployQtStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent,
const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map);

View File

@@ -64,19 +64,19 @@ QList<Core::Id> AndroidDeployStepFactory::availableCreationIds(BuildStepList *pa
return QList<Core::Id>() << AndroidDeployStep::Id;
}
QString AndroidDeployStepFactory::displayNameForId(const Core::Id id) const
QString AndroidDeployStepFactory::displayNameForId(Core::Id id) const
{
if (id == AndroidDeployStep::Id)
return tr("Deploy to Android device or emulator");
return QString();
}
bool AndroidDeployStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool AndroidDeployStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
return availableCreationIds(parent).contains(id);
}
BuildStep *AndroidDeployStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *AndroidDeployStepFactory::create(BuildStepList *parent, Core::Id id)
{
Q_ASSERT(canCreate(parent, id));
Q_UNUSED(id);

View File

@@ -42,11 +42,11 @@ public:
explicit AndroidDeployStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent,
const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map);

View File

@@ -62,19 +62,19 @@ QList<Core::Id> AndroidPackageCreationFactory::availableCreationIds(BuildStepLis
return QList<Core::Id>() << AndroidPackageCreationStep::CreatePackageId;
}
QString AndroidPackageCreationFactory::displayNameForId(const Core::Id id) const
QString AndroidPackageCreationFactory::displayNameForId(Core::Id id) const
{
if (id == AndroidPackageCreationStep::CreatePackageId)
return tr("Create Android (.apk) Package");
return QString();
}
bool AndroidPackageCreationFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool AndroidPackageCreationFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
return availableCreationIds(parent).contains(id);
}
BuildStep *AndroidPackageCreationFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *AndroidPackageCreationFactory::create(BuildStepList *parent, Core::Id id)
{
Q_ASSERT(canCreate(parent, id));
Q_UNUSED(id);

View File

@@ -42,11 +42,11 @@ public:
explicit AndroidPackageCreationFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent,
const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canRestore(ProjectExplorer::BuildStepList *parent,
const QVariantMap &map) const;

View File

@@ -54,21 +54,21 @@ QList<Core::Id> AndroidPackageInstallationFactory::availableCreationIds(BuildSte
return QList<Core::Id>();
}
QString AndroidPackageInstallationFactory::displayNameForId(const Core::Id id) const
QString AndroidPackageInstallationFactory::displayNameForId(Core::Id id) const
{
if (id == AndroidPackageInstallationStep::Id)
return tr("Deploy to device");
return QString();
}
bool AndroidPackageInstallationFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool AndroidPackageInstallationFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
Q_UNUSED(parent);
Q_UNUSED(id);
return false;
}
BuildStep *AndroidPackageInstallationFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *AndroidPackageInstallationFactory::create(BuildStepList *parent, Core::Id id)
{
Q_UNUSED(parent);
Q_UNUSED(id);

View File

@@ -42,11 +42,11 @@ public:
explicit AndroidPackageInstallationFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent,
const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canRestore(ProjectExplorer::BuildStepList *parent,
const QVariantMap &map) const;

View File

@@ -55,7 +55,7 @@ namespace Internal {
static const char ANDROID_RC_ID_PREFIX[] = "Qt4ProjectManager.AndroidRunConfiguration:";
static QString pathFromId(const Core::Id id)
static QString pathFromId(Core::Id id)
{
return id.suffixAfter(ANDROID_RC_ID_PREFIX);
}
@@ -66,7 +66,7 @@ AndroidRunConfigurationFactory::AndroidRunConfigurationFactory(QObject *parent)
setObjectName(QLatin1String("AndroidRunConfigurationFactory"));
}
bool AndroidRunConfigurationFactory::canCreate(Target *parent, const Core::Id id) const
bool AndroidRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
{
if (!canHandle(parent))
return false;
@@ -103,12 +103,12 @@ QList<Core::Id> AndroidRunConfigurationFactory::availableCreationIds(Target *par
return QmakeProject::idsForNodes(base, nodes);
}
QString AndroidRunConfigurationFactory::displayNameForId(const Core::Id id) const
QString AndroidRunConfigurationFactory::displayNameForId(Core::Id id) const
{
return QFileInfo(pathFromId(id)).completeBaseName();
}
RunConfiguration *AndroidRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
RunConfiguration *AndroidRunConfigurationFactory::doCreate(Target *parent, Core::Id id)
{
return new AndroidRunConfiguration(parent, id, pathFromId(id));
}

View File

@@ -50,10 +50,10 @@ class AndroidRunConfigurationFactory : public QmakeProjectManager::QmakeRunConfi
public:
explicit AndroidRunConfigurationFactory(QObject *parent = 0);
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, Core::Id id) const;
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
@@ -66,7 +66,7 @@ public:
private:
bool canHandle(ProjectExplorer::Target *t) const;
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, Core::Id id);
ProjectExplorer::RunConfiguration *doRestore(ProjectExplorer::Target *parent,
const QVariantMap &map);
};

View File

@@ -104,7 +104,7 @@ void JavaCompletionAssistProvider::init() const
m_keywords.append(QLatin1String(keywords[i]));
}
bool JavaCompletionAssistProvider::supportsEditor(const Core::Id &editorId) const
bool JavaCompletionAssistProvider::supportsEditor(Core::Id editorId) const
{
return editorId == Constants::JAVA_EDITOR_ID;
}

View File

@@ -46,7 +46,7 @@ public:
void init() const;
bool supportsEditor(const Core::Id &editorId) const;
bool supportsEditor(Core::Id editorId) const;
TextEditor::IAssistProcessor *createProcessor() const;
private:

View File

@@ -69,19 +69,19 @@ QList<Core::Id> AutogenStepFactory::availableCreationIds(BuildStepList *parent)
return QList<Core::Id>() << Core::Id(AUTOGEN_STEP_ID);
}
QString AutogenStepFactory::displayNameForId(const Core::Id id) const
QString AutogenStepFactory::displayNameForId(Core::Id id) const
{
if (id == AUTOGEN_STEP_ID)
return tr("Autogen", "Display name for AutotoolsProjectManager::AutogenStep id.");
return QString();
}
bool AutogenStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool AutogenStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
return canHandle(parent) && Core::Id(AUTOGEN_STEP_ID) == id;
}
BuildStep *AutogenStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *AutogenStepFactory::create(BuildStepList *parent, Core::Id id)
{
if (!canCreate(parent, id))
return 0;
@@ -133,7 +133,7 @@ AutogenStep::AutogenStep(BuildStepList *bsl) :
ctor();
}
AutogenStep::AutogenStep(BuildStepList *bsl, const Core::Id id) :
AutogenStep::AutogenStep(BuildStepList *bsl, Core::Id id) :
AbstractProcessStep(bsl, id)
{
ctor();

View File

@@ -61,9 +61,9 @@ public:
AutogenStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *bc) const;
QString displayNameForId(const Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source) const;
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
@@ -110,7 +110,7 @@ signals:
protected:
AutogenStep(ProjectExplorer::BuildStepList *bsl, AutogenStep *bs);
AutogenStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
AutogenStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
bool fromMap(const QVariantMap &map);

View File

@@ -68,19 +68,19 @@ QList<Core::Id> AutoreconfStepFactory::availableCreationIds(BuildStepList *paren
return QList<Core::Id>() << Core::Id(AUTORECONF_STEP_ID);
}
QString AutoreconfStepFactory::displayNameForId(const Core::Id id) const
QString AutoreconfStepFactory::displayNameForId(Core::Id id) const
{
if (id == AUTORECONF_STEP_ID)
return tr("Autoreconf", "Display name for AutotoolsProjectManager::AutoreconfStep id.");
return QString();
}
bool AutoreconfStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool AutoreconfStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
return canHandle(parent) && Core::Id(AUTORECONF_STEP_ID) == id;
}
BuildStep *AutoreconfStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *AutoreconfStepFactory::create(BuildStepList *parent, Core::Id id)
{
if (!canCreate(parent, id))
return 0;
@@ -132,7 +132,7 @@ AutoreconfStep::AutoreconfStep(BuildStepList *bsl) :
ctor();
}
AutoreconfStep::AutoreconfStep(BuildStepList *bsl, const Core::Id id) :
AutoreconfStep::AutoreconfStep(BuildStepList *bsl, Core::Id id) :
AbstractProcessStep(bsl, id)
{
ctor();

View File

@@ -60,10 +60,10 @@ public:
AutoreconfStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *bc) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
bool canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source) const;
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
@@ -110,7 +110,7 @@ signals:
protected:
AutoreconfStep(ProjectExplorer::BuildStepList *bsl, AutoreconfStep *bs);
AutoreconfStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
AutoreconfStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
bool fromMap(const QVariantMap &map);

View File

@@ -70,7 +70,7 @@ NamedWidget *AutotoolsBuildConfiguration::createConfigWidget()
return new AutotoolsBuildSettingsWidget(this);
}
AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, const Core::Id id)
AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, Core::Id id)
: BuildConfiguration(parent, id)
{ }

View File

@@ -56,7 +56,7 @@ public:
BuildType buildType() const;
protected:
AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, const Core::Id id);
AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, Core::Id id);
AutotoolsBuildConfiguration(ProjectExplorer::Target *parent, AutotoolsBuildConfiguration *source);
friend class AutotoolsBuildSettingsWidget;

View File

@@ -41,6 +41,7 @@ AutotoolsProjectFile::AutotoolsProjectFile(AutotoolsProject *project, const QStr
m_project(project)
{
setId("Autotools.ProjectFile");
setMimeType(QLatin1String(Constants::MAKEFILE_MIMETYPE));
setFilePath(fileName);
}
@@ -63,11 +64,6 @@ QString AutotoolsProjectFile::suggestedFileName() const
return QString();
}
QString AutotoolsProjectFile::mimeType() const
{
return QLatin1String(Constants::MAKEFILE_MIMETYPE);
}
bool AutotoolsProjectFile::isModified() const
{
return false;

View File

@@ -59,7 +59,6 @@ public:
bool save(QString *errorString, const QString &fileName, bool autoSave);
QString defaultPath() const;
QString suggestedFileName() const;
QString mimeType() const;
bool isModified() const;
bool isSaveAsAllowed() const;
bool reload(QString *errorString, ReloadFlag flag, ChangeType type);

View File

@@ -69,19 +69,19 @@ QList<Core::Id> ConfigureStepFactory::availableCreationIds(BuildStepList *parent
return QList<Core::Id>() << Core::Id(CONFIGURE_STEP_ID);
}
QString ConfigureStepFactory::displayNameForId(const Core::Id id) const
QString ConfigureStepFactory::displayNameForId(Core::Id id) const
{
if (id == CONFIGURE_STEP_ID)
return tr("Configure", "Display name for AutotoolsProjectManager::ConfigureStep id.");
return QString();
}
bool ConfigureStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool ConfigureStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
return canHandle(parent) && id == CONFIGURE_STEP_ID;
}
BuildStep *ConfigureStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *ConfigureStepFactory::create(BuildStepList *parent, Core::Id id)
{
if (!canCreate(parent, id))
return 0;
@@ -133,7 +133,7 @@ ConfigureStep::ConfigureStep(BuildStepList* bsl) :
ctor();
}
ConfigureStep::ConfigureStep(BuildStepList *bsl, const Core::Id id) :
ConfigureStep::ConfigureStep(BuildStepList *bsl, Core::Id id) :
AbstractProcessStep(bsl, id)
{
ctor();

View File

@@ -60,10 +60,10 @@ public:
ConfigureStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *bc) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
bool canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source) const;
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
@@ -109,7 +109,7 @@ signals:
protected:
ConfigureStep(ProjectExplorer::BuildStepList *bsl, ConfigureStep *bs);
ConfigureStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
ConfigureStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
bool fromMap(const QVariantMap &map);

View File

@@ -74,21 +74,21 @@ QList<Core::Id> MakeStepFactory::availableCreationIds(BuildStepList *parent) con
return QList<Core::Id>();
}
QString MakeStepFactory::displayNameForId(const Core::Id id) const
QString MakeStepFactory::displayNameForId(Core::Id id) const
{
if (id == MAKE_STEP_ID)
return tr("Make", "Display name for AutotoolsProjectManager::MakeStep id.");
return QString();
}
bool MakeStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool MakeStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
if (parent->target()->project()->id() == AUTOTOOLS_PROJECT_ID)
return id == MAKE_STEP_ID;
return false;
}
BuildStep *MakeStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *MakeStepFactory::create(BuildStepList *parent, Core::Id id)
{
if (!canCreate(parent, id))
return 0;
@@ -133,7 +133,7 @@ MakeStep::MakeStep(BuildStepList* bsl) :
ctor();
}
MakeStep::MakeStep(BuildStepList *bsl, const Core::Id id) :
MakeStep::MakeStep(BuildStepList *bsl, Core::Id id) :
AbstractProcessStep(bsl, id),
m_clean(false)
{

View File

@@ -61,10 +61,10 @@ public:
MakeStepFactory(QObject *parent = 0);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *bc) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
bool canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source) const;
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
@@ -110,7 +110,7 @@ signals:
protected:
MakeStep(ProjectExplorer::BuildStepList *bsl, MakeStep *bs);
MakeStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
MakeStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
bool fromMap(const QVariantMap &map);

View File

@@ -43,7 +43,7 @@ class BareMetalGdbCommandsDeployStep : public ProjectExplorer::BuildStep
Q_OBJECT
public:
BareMetalGdbCommandsDeployStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
BareMetalGdbCommandsDeployStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
BareMetalGdbCommandsDeployStep(ProjectExplorer::BuildStepList *bsl,
BareMetalGdbCommandsDeployStep *other);
~BareMetalGdbCommandsDeployStep();

View File

@@ -46,7 +46,7 @@ class BareMetalRunConfiguration : public ProjectExplorer::RunConfiguration
friend class BareMetalRunConfigurationWidget;
public:
explicit BareMetalRunConfiguration(ProjectExplorer::Target *parent, const Core::Id id,
explicit BareMetalRunConfiguration(ProjectExplorer::Target *parent, Core::Id id,
const QString &projectFilePath);
bool isEnabled() const;

View File

@@ -63,7 +63,7 @@ BareMetalRunConfigurationFactory::~BareMetalRunConfigurationFactory()
{
}
bool BareMetalRunConfigurationFactory::canCreate(Target *parent, const Core::Id id) const
bool BareMetalRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
{
if (!canHandle(parent))
return false;
@@ -97,13 +97,13 @@ QList<Core::Id> BareMetalRunConfigurationFactory::availableCreationIds(Target *p
return result;
}
QString BareMetalRunConfigurationFactory::displayNameForId(const Core::Id id) const
QString BareMetalRunConfigurationFactory::displayNameForId(Core::Id id) const
{
return tr("%1 (on GDB server or hardware debugger)")
.arg(QFileInfo(pathFromId(id)).completeBaseName());
}
RunConfiguration *BareMetalRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
RunConfiguration *BareMetalRunConfigurationFactory::doCreate(Target *parent, Core::Id id)
{
Q_UNUSED(id);
return new BareMetalRunConfiguration(parent, id, pathFromId(id));

View File

@@ -43,10 +43,10 @@ public:
explicit BareMetalRunConfigurationFactory(QObject *parent = 0);
~BareMetalRunConfigurationFactory();
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, Core::Id id) const;
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
@@ -56,7 +56,7 @@ public:
private:
bool canHandle(const ProjectExplorer::Target *target) const;
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, Core::Id id);
ProjectExplorer::RunConfiguration *doRestore(ProjectExplorer::Target *parent,
const QVariantMap &map);
};

View File

@@ -97,7 +97,7 @@ public:
m_widget->highlightSearchResults(txt.toLatin1(), textDocumentFlagsForFindFlags(findFlags));
}
void clearResults()
void clearHighlights()
{
m_widget->highlightSearchResults(QByteArray());
}
@@ -206,17 +206,13 @@ public:
Core::IDocument(parent)
{
setId(Core::Constants::K_DEFAULT_BINARY_EDITOR_ID);
setMimeType(QLatin1String(BINEditor::Constants::C_BINEDITOR_MIMETYPE));
m_widget = parent;
connect(m_widget, SIGNAL(dataRequested(quint64)),
this, SLOT(provideData(quint64)));
connect(m_widget, SIGNAL(newRangeRequested(quint64)),
this, SLOT(provideNewRange(quint64)));
}
~BinEditorDocument() {}
QString mimeType() const {
return QLatin1String(BINEditor::Constants::C_BINEDITOR_MIMETYPE);
}
bool setContents(const QByteArray &contents)
{

View File

@@ -1,5 +1,7 @@
import qbs
import qbs.File
import qbs.Process
import QtcProcessOutputReader
QtcPlugin {
name: "ClangCodeModel"
@@ -11,14 +13,12 @@ QtcPlugin {
Depends { name: "TextEditor" }
Depends { name: "Utils" }
property string llvmInstallDir: qbs.getEnv("LLVM_INSTALL_DIR")
condition: llvmInstallDir && !llvmInstallDir.isEmpty
property string llvmInstallDirFromEnv: qbs.getEnv("LLVM_INSTALL_DIR")
property bool clangCompletion: true
property bool clangHighlighting: true
property bool clangIndexing: false
// Not used atm; we just rely on the LLVM_INSTALL_DIR environment variable.
property string llvmConfig: {
var llvmConfigVariants = [
"llvm-config", "llvm-config-3.2", "llvm-config-3.3", "llvm-config-3.4",
@@ -26,10 +26,12 @@ QtcPlugin {
];
// Prefer llvm-config* from LLVM_INSTALL_DIR
for (var i = 0; i < llvmConfigVariants.length; ++i) {
var variant = llvmInstallDir + "/bin/" + llvmConfigVariants[i];
if (File.exists(variant))
return variant;
if (llvmInstallDirFromEnv) {
for (var i = 0; i < llvmConfigVariants.length; ++i) {
var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i];
if (File.exists(variant))
return variant;
}
}
// Find llvm-config* in PATH
@@ -44,20 +46,17 @@ QtcPlugin {
}
}
// Fallback
return "llvm-config";
return undefined;
}
condition: llvmConfig
property string llvmIncludeDir: QtcProcessOutputReader.readOutput(llvmConfig, ["--includedir"])
property string llvmLibDir: QtcProcessOutputReader.readOutput(llvmConfig, ["--libdir"])
property string llvmVersion: QtcProcessOutputReader.readOutput(llvmConfig, ["--version"])
.replace(/(\d+\.\d+).*/, "$1")
property string llvmIncludeDir: llvmInstallDir + "/include"
cpp.includePaths: base.concat(llvmIncludeDir)
property stringList llvmLibDirs: {
var list = [llvmInstallDir + "/lib"];
if (qbs.targetOS.contains("windows"))
list.push(llvmInstallDir + "/bin");
return list;
}
cpp.libraryPaths: base.concat(llvmLibDirs)
cpp.libraryPaths: base.concat(llvmLibDir)
cpp.rpaths: cpp.libraryPaths
property string llvmLib: "clang"
@@ -65,6 +64,19 @@ QtcPlugin {
? ["advapi32", "shell32"] : []
cpp.dynamicLibraries: base.concat(llvmLib).concat(additionalLibraries)
cpp.defines: {
var defines = base;
defines.push('CLANG_VERSION="' + llvmVersion + '"');
defines.push('CLANG_RESOURCE_DIR="' + llvmLibDir + '/clang/' + llvmVersion + '/include"');
if (clangCompletion)
defines.push("CLANG_COMPLETION");
if (clangHighlighting)
defines.push("CLANG_HIGHLIGHTING");
if (clangIndexing)
defines.push("CLANG_INDEXING");
return defines;
}
Group {
name: "Completion support"
condition: product.clangCompletion

View File

@@ -46,7 +46,7 @@ CMakeFileCompletionAssistProvider::CMakeFileCompletionAssistProvider(CMakeSettin
CMakeFileCompletionAssistProvider::~CMakeFileCompletionAssistProvider()
{}
bool CMakeFileCompletionAssistProvider::supportsEditor(const Core::Id &editorId) const
bool CMakeFileCompletionAssistProvider::supportsEditor(Core::Id editorId) const
{
return editorId == CMakeProjectManager::Constants::CMAKE_EDITOR_ID;
}

View File

@@ -45,7 +45,7 @@ public:
CMakeFileCompletionAssistProvider(CMakeSettingsPage *settingsPage);
~CMakeFileCompletionAssistProvider();
bool supportsEditor(const Core::Id &editorId) const;
bool supportsEditor(Core::Id editorId) const;
TextEditor::IAssistProcessor *createProcessor() const;
private:

View File

@@ -739,7 +739,10 @@ void CMakeProject::updateApplicationAndDeploymentTargets()
absoluteSourcePath.append(QLatin1Char('/'));
if (deploymentStream.device()) {
while (!deploymentStream.atEnd()) {
QStringList file = deploymentStream.readLine().split(QLatin1Char(':'));
QString line = deploymentStream.readLine();
if (!line.contains(QLatin1Char(':')))
continue;
QStringList file = line.split(QLatin1Char(':'));
deploymentData.addFile(absoluteSourcePath + file.at(0), deploymentPrefix + file.at(1));
}
}
@@ -767,6 +770,7 @@ CMakeFile::CMakeFile(CMakeProject *parent, QString fileName)
: Core::IDocument(parent), m_project(parent)
{
setId("Cmake.ProjectFile");
setMimeType(QLatin1String(Constants::CMAKEMIMETYPE));
setFilePath(fileName);
}
@@ -790,12 +794,6 @@ QString CMakeFile::suggestedFileName() const
return QString();
}
QString CMakeFile::mimeType() const
{
return QLatin1String(Constants::CMAKEMIMETYPE);
}
bool CMakeFile::isModified() const
{
return false;

View File

@@ -194,7 +194,6 @@ public:
QString defaultPath() const;
QString suggestedFileName() const;
QString mimeType() const;
bool isModified() const;
bool isSaveAsAllowed() const;

View File

@@ -365,7 +365,7 @@ QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(Target *paren
}
// used to translate the ids to names to display to the user
QString CMakeRunConfigurationFactory::displayNameForId(const Core::Id id) const
QString CMakeRunConfigurationFactory::displayNameForId(Core::Id id) const
{
return buildTargetFromId(id);
}
@@ -377,7 +377,7 @@ bool CMakeRunConfigurationFactory::canHandle(Target *parent) const
return qobject_cast<CMakeProject *>(parent->project());
}
bool CMakeRunConfigurationFactory::canCreate(Target *parent, const Core::Id id) const
bool CMakeRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
{
if (!canHandle(parent))
return false;
@@ -385,7 +385,7 @@ bool CMakeRunConfigurationFactory::canCreate(Target *parent, const Core::Id id)
return project->hasBuildTarget(buildTargetFromId(id));
}
RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, Core::Id id)
{
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
const QString title(buildTargetFromId(id));

View File

@@ -133,13 +133,13 @@ public:
explicit CMakeRunConfigurationFactory(QObject *parent = 0);
~CMakeRunConfigurationFactory();
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, Core::Id id) const;
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product) const;
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product);
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
static Core::Id idFromBuildTarget(const QString &target);
static QString buildTargetFromId(Core::Id id);
@@ -147,7 +147,7 @@ public:
private:
bool canHandle(ProjectExplorer::Target *parent) const;
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, Core::Id id);
ProjectExplorer::RunConfiguration *doRestore(ProjectExplorer::Target *parent,
const QVariantMap &map);
};

View File

@@ -70,7 +70,7 @@ MakeStep::MakeStep(BuildStepList *bsl) :
ctor();
}
MakeStep::MakeStep(BuildStepList *bsl, const Core::Id id) :
MakeStep::MakeStep(BuildStepList *bsl, Core::Id id) :
AbstractProcessStep(bsl, id), m_clean(false)
{
ctor();
@@ -452,14 +452,14 @@ MakeStepFactory::~MakeStepFactory()
{
}
bool MakeStepFactory::canCreate(BuildStepList *parent, const Core::Id id) const
bool MakeStepFactory::canCreate(BuildStepList *parent, Core::Id id) const
{
if (parent->target()->project()->id() == Constants::CMAKEPROJECT_ID)
return id == MS_ID;
return false;
}
BuildStep *MakeStepFactory::create(BuildStepList *parent, const Core::Id id)
BuildStep *MakeStepFactory::create(BuildStepList *parent, Core::Id id)
{
if (!canCreate(parent, id))
return 0;
@@ -506,7 +506,7 @@ QList<Core::Id> MakeStepFactory::availableCreationIds(ProjectExplorer::BuildStep
return QList<Core::Id>();
}
QString MakeStepFactory::displayNameForId(const Core::Id id) const
QString MakeStepFactory::displayNameForId(Core::Id id) const
{
if (id == MS_ID)
return tr("Make", "Display name for CMakeProjectManager::MakeStep id.");

View File

@@ -95,7 +95,7 @@ protected:
void processFinished(int exitCode, QProcess::ExitStatus status);
MakeStep(ProjectExplorer::BuildStepList *bsl, MakeStep *bs);
MakeStep(ProjectExplorer::BuildStepList *bsl, const Core::Id id);
MakeStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
bool fromMap(const QVariantMap &map);
@@ -145,15 +145,15 @@ public:
explicit MakeStepFactory(QObject *parent = 0);
virtual ~MakeStepFactory();
bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
bool canCreate(ProjectExplorer::BuildStepList *parent, Core::Id id) const;
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id);
bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source) const;
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *source);
bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map);
QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *bc) const;
QString displayNameForId(const Core::Id id) const;
QString displayNameForId(Core::Id id) const;
};
} // namespace Internal

View File

@@ -117,13 +117,13 @@ using namespace Core::Internal;
*/
/*!
\fn QAction *ActionContainer::insertLocation(const Id &group) const
\fn QAction *ActionContainer::insertLocation(Id group) const
Returns an action representing the \a group,
that could be used with \c{QWidget::insertAction}.
*/
/*!
\fn void ActionContainer::appendGroup(const Id &group)
\fn void ActionContainer::appendGroup(Id group)
Adds a group with the given \a identifier to the action container. Using groups
you can segment your action container into logical parts and add actions and
menus directly to these parts.
@@ -132,7 +132,7 @@ using namespace Core::Internal;
*/
/*!
\fn void ActionContainer::addAction(Command *action, const Id &group = Id())
\fn void ActionContainer::addAction(Command *action, Id group = Id())
Add the \a action as a menu item to this action container. The action is added as the
last item of the specified \a group.
\sa appendGroup()
@@ -140,7 +140,7 @@ using namespace Core::Internal;
*/
/*!
\fn void ActionContainer::addMenu(ActionContainer *menu, const Id &group = Id())
\fn void ActionContainer::addMenu(ActionContainer *menu, Id group = Id())
Add the \a menu as a submenu to this action container. The menu is added as the
last item of the specified \a group.
\sa appendGroup()

View File

@@ -40,7 +40,7 @@ namespace Internal {
struct Group
{
Group(const Id &id) : id(id) {}
Group(Id id) : id(id) {}
Id id;
QList<QObject *> items; // Command * or ActionContainer *
};

View File

@@ -122,7 +122,7 @@ WizardEventLoop::WizardResult WizardEventLoop::execWizardPage(QWizard &wizard)
connect(&wizard, SIGNAL(currentIdChanged(int)), eventLoop, SLOT(pageChanged(int)));
connect(&wizard, SIGNAL(accepted()), eventLoop, SLOT(accepted()));
connect(&wizard, SIGNAL(rejected()), eventLoop, SLOT(rejected()));
wizard.setAttribute(Qt::WA_ShowModal, true);
wizard.setWindowFlags(wizard.windowFlags() | Qt::WindowStaysOnTopHint);
wizard.show();
}
const WizardResult result = eventLoop->execWizardPageI();
@@ -138,7 +138,7 @@ WizardEventLoop::WizardResult WizardEventLoop::execWizardPage(QWizard &wizard)
WizardEventLoop::WizardResult WizardEventLoop::execWizardPageI()
{
m_result = Rejected;
exec(QEventLoop::DialogExec);
exec();
return m_result;
}

View File

@@ -92,6 +92,7 @@ SOURCES += mainwindow.cpp \
fileutils.cpp \
featureprovider.cpp \
idocument.cpp \
idocumentfactory.cpp \
textdocument.cpp \
documentmanager.cpp \
removefiledialog.cpp \

View File

@@ -54,7 +54,7 @@ QtcPlugin {
"icorelistener.cpp", "icorelistener.h",
"id.cpp", "id.h",
"idocument.cpp", "idocument.h",
"idocumentfactory.h",
"idocumentfactory.cpp", "idocumentfactory.h",
"ifilewizardextension.h",
"imode.cpp", "imode.h",
"inavigationwidgetfactory.cpp", "inavigationwidgetfactory.h",

View File

@@ -31,15 +31,19 @@
#include "ui_newdialog.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/icore.h>
#include <utils/qtcassert.h>
#include <QModelIndex>
#include <QAbstractProxyModel>
#include <QSortFilterProxyModel>
#include <QPushButton>
#include <QStandardItem>
#include <QItemDelegate>
#include <QPainter>
#include <QDebug>
#include <QItemDelegate>
#include <QKeyEvent>
#include <QModelIndex>
#include <QPainter>
#include <QPushButton>
#include <QSortFilterProxyModel>
#include <QStandardItem>
Q_DECLARE_METATYPE(Core::IWizardFactory*)
@@ -183,12 +187,16 @@ Q_DECLARE_METATYPE(WizardFactoryContainer)
using namespace Core;
using namespace Core::Internal;
QString NewDialog::m_lastCategory = QString();
NewDialog::NewDialog(QWidget *parent) :
QDialog(parent),
m_ui(new Core::Internal::Ui::NewDialog),
m_okButton(0)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
setAttribute(Qt::WA_DeleteOnClose);
m_ui->setupUi(this);
QPalette p = m_ui->frame->palette();
p.setColor(QPalette::Window, p.color(QPalette::Base));
@@ -236,8 +244,12 @@ static bool wizardFactoryLessThan(const IWizardFactory *f1, const IWizardFactory
return f1->id().compare(f2->id()) < 0;
}
void NewDialog::setWizardFactories(QList<IWizardFactory*> factories)
void NewDialog::setWizardFactories(QList<IWizardFactory *> factories,
const QString &defaultLocation,
const QVariantMap &extraVariables)
{
m_defaultLocation = defaultLocation;
m_extraVariables = extraVariables;
qStableSort(factories.begin(), factories.end(), wizardFactoryLessThan);
m_model->clear();
@@ -287,14 +299,13 @@ void NewDialog::setWizardFactories(QList<IWizardFactory*> factories)
parentItem->removeRow(0);
}
Core::IWizardFactory *NewDialog::showDialog()
void NewDialog::showDialog()
{
static QString lastCategory;
QModelIndex idx;
if (!lastCategory.isEmpty())
if (!m_lastCategory.isEmpty())
foreach (QStandardItem* item, m_categoryItems) {
if (item->data(Qt::UserRole) == lastCategory)
if (item->data(Qt::UserRole) == m_lastCategory)
idx = m_twoLevelProxyModel->mapToSource(m_model->indexFromItem(item));
}
if (!idx.isValid())
@@ -312,18 +323,7 @@ Core::IWizardFactory *NewDialog::showDialog()
currentItemChanged(m_ui->templatesView->rootIndex().child(0,0));
updateOkButton();
const int retVal = exec();
idx = m_ui->templateCategoryView->currentIndex();
QStandardItem *currentItem = m_model->itemFromIndex(m_twoLevelProxyModel->mapToSource(idx));
if (currentItem)
lastCategory = currentItem->data(Qt::UserRole).toString();
if (retVal != Accepted)
return 0;
return currentWizardFactory();
show();
}
QString NewDialog::selectedPlatform() const
@@ -333,6 +333,18 @@ QString NewDialog::selectedPlatform() const
return m_ui->comboBox->itemData(index).toString();
}
bool NewDialog::event(QEvent *event)
{
if (event->type() == QEvent::ShortcutOverride) {
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
if (ke->key() == Qt::Key_Escape && !ke->modifiers()) {
ke->accept();
return true;
}
}
return QDialog::event(event);
}
NewDialog::~NewDialog()
{
delete m_ui;
@@ -422,10 +434,48 @@ void NewDialog::currentItemChanged(const QModelIndex &index)
updateOkButton();
}
void NewDialog::saveState()
{
QModelIndex idx = m_ui->templateCategoryView->currentIndex();
QStandardItem *currentItem = m_model->itemFromIndex(m_twoLevelProxyModel->mapToSource(idx));
if (currentItem)
m_lastCategory = currentItem->data(Qt::UserRole).toString();
}
void NewDialog::okButtonClicked()
{
if (m_ui->templatesView->currentIndex().isValid())
accept();
if (m_ui->templatesView->currentIndex().isValid()) {
hide();
saveState();
IWizardFactory *wizard = currentWizardFactory();
QTC_ASSERT(wizard, accept(); return);
QString path = m_defaultLocation;
if (path.isEmpty()) {
switch (wizard->kind()) {
case IWizardFactory::ProjectWizard:
// Project wizards: Check for projects directory or
// use last visited directory of file dialog. Never start
// at current.
path = DocumentManager::useProjectsDirectory() ?
DocumentManager::projectsDirectory() :
DocumentManager::fileDialogLastVisitedDirectory();
break;
default:
path = DocumentManager::fileDialogInitialDirectory();
break;
}
}
wizard->runWizard(path, ICore::dialogParent(), selectedPlatform(), m_extraVariables);
close();
}
}
void NewDialog::reject()
{
saveState();
QDialog::reject();
}
void NewDialog::updateOkButton()

View File

@@ -60,21 +60,28 @@ public:
explicit NewDialog(QWidget *parent);
virtual ~NewDialog();
void setWizardFactories(QList<IWizardFactory*> factories);
void setWizardFactories(QList<IWizardFactory*> factories, const QString &defaultLocation, const QVariantMap &extraVariables);
Core::IWizardFactory *showDialog();
void showDialog();
QString selectedPlatform() const;
protected:
bool event(QEvent *);
private slots:
void currentCategoryChanged(const QModelIndex &);
void currentItemChanged(const QModelIndex &);
void okButtonClicked();
void reject();
void updateOkButton();
void setSelectedPlatform(const QString &platform);
private:
Core::IWizardFactory *currentWizardFactory() const;
void addItem(QStandardItem *topLevelCategoryItem, IWizardFactory *factory);
void saveState();
static QString m_lastCategory;
Ui::NewDialog *m_ui;
QStandardItemModel *m_model;
@@ -83,6 +90,8 @@ private:
QPushButton *m_okButton;
QIcon m_dummyIcon;
QList<QStandardItem*> m_categoryItems;
QString m_defaultLocation;
QVariantMap m_extraVariables;
};
} // namespace Internal

View File

@@ -34,6 +34,7 @@
#include <extensionsystem/pluginmanager.h>
#include <utils/hostosinfo.h>
#include <utils/fancylineedit.h>
#include <utils/qtcassert.h>
#include <QApplication>
#include <QDialogButtonBox>
@@ -353,6 +354,9 @@ void SettingsDialog::showPage(Id categoryId, Id pageId)
initialPage = Id::fromSetting(settings->value(QLatin1String(pageKeyC)));
}
if (!initialCategory.isValid()) // no category given and no old setting
return;
int initialCategoryIndex = -1;
int initialPageIndex = -1;
const QList<Category*> &categories = m_model->categories();
@@ -360,13 +364,22 @@ void SettingsDialog::showPage(Id categoryId, Id pageId)
Category *category = categories.at(i);
if (category->id == initialCategory) {
initialCategoryIndex = i;
for (int j = 0; j < category->pages.size(); ++j) {
IOptionsPage *page = category->pages.at(j);
if (page->id() == initialPage)
initialPageIndex = j;
if (initialPage.isValid()) {
for (int j = 0; j < category->pages.size(); ++j) {
IOptionsPage *page = category->pages.at(j);
if (page->id() == initialPage)
initialPageIndex = j;
}
}
break;
}
}
QTC_ASSERT(initialCategoryIndex != -1,
qDebug("Unknown category: %s", initialCategory.name().constData()); return);
QTC_ASSERT(!initialPage.isValid() || initialPageIndex != -1,
qDebug("Unknown page: %s", initialPage.name().constData()));
if (initialCategoryIndex != -1) {
const QModelIndex modelIndex = m_proxyModel->mapFromSource(m_model->index(initialCategoryIndex));
m_categoryList->setCurrentIndex(modelIndex);

View File

@@ -1133,7 +1133,7 @@ void DocumentManager::checkForReload()
\a editorId defaults to the empty id, which lets \QC figure out
the best editor itself.
*/
void DocumentManager::addToRecentFiles(const QString &fileName, const Id &editorId)
void DocumentManager::addToRecentFiles(const QString &fileName, Id editorId)
{
if (fileName.isEmpty())
return;

View File

@@ -74,7 +74,7 @@ public:
static void unexpectFileChange(const QString &fileName);
// recent files
static void addToRecentFiles(const QString &fileName, const Id &editorId = Id());
static void addToRecentFiles(const QString &fileName, Id editorId = Id());
Q_SLOT void clearRecentFiles();
static QList<RecentFile> recentFiles();

View File

@@ -27,12 +27,13 @@
**
****************************************************************************/
#include "editmode.h"
#include "coreconstants.h"
#include "editmode.h"
#include "icore.h"
#include "modemanager.h"
#include "minisplitter.h"
#include "outputpane.h"
#include "navigationwidget.h"
#include "outputpane.h"
#include "rightpane.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
@@ -85,9 +86,13 @@ EditMode::EditMode() :
this, SLOT(grabEditorManager(Core::IMode*)));
m_splitter->setFocusProxy(EditorManager::instance());
IContext *modeContextObject = new IContext(this);
modeContextObject->setContext(Context(Constants::C_EDITORMANAGER));
modeContextObject->setWidget(m_splitter);
ICore::addContextObject(modeContextObject);
setWidget(m_splitter);
setContext(Context(Constants::C_EDIT_MODE,
Constants::C_EDITORMANAGER,
Constants::C_NAVIGATION_PANE));
}

View File

@@ -175,7 +175,7 @@ void DocumentModel::addEditor(IEditor *editor, bool *isNewDocument)
}
}
void DocumentModel::addRestoredDocument(const QString &fileName, const QString &displayName, const Id &id)
void DocumentModel::addRestoredDocument(const QString &fileName, const QString &displayName, Id id)
{
Entry *entry = new Entry;
entry->m_fileName = fileName;

View File

@@ -83,7 +83,7 @@ public:
// editor manager related functions, nobody else should call it
static void addEditor(IEditor *editor, bool *isNewDocument);
static void addRestoredDocument(const QString &fileName, const QString &displayName, const Id &id);
static void addRestoredDocument(const QString &fileName, const QString &displayName, Id id);
static Entry *firstRestoredEntry();
static void removeEditor(IEditor *editor, bool *lastOneForDocument);
static void removeDocument(const QString &fileName);

View File

@@ -1393,7 +1393,7 @@ EditorManager::ExternalEditorList
/* For something that has a 'QString id' (IEditorFactory
* or IExternalEditor), find the one matching a id. */
template <class EditorFactoryLike>
EditorFactoryLike *findById(const Core::Id &id)
EditorFactoryLike *findById(Core::Id id)
{
return ExtensionSystem::PluginManager::getObject<EditorFactoryLike>(
[&id](EditorFactoryLike *efl) {
@@ -1401,7 +1401,7 @@ EditorFactoryLike *findById(const Core::Id &id)
});
}
IEditor *EditorManager::createEditor(const Id &editorId, const QString &fileName)
IEditor *EditorManager::createEditor(Id editorId, const QString &fileName)
{
if (debugEditorManager)
qDebug() << Q_FUNC_INFO << editorId.name() << fileName;
@@ -1503,7 +1503,7 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
return selectedId;
}
IEditor *EditorManager::openEditor(const QString &fileName, const Id &editorId,
IEditor *EditorManager::openEditor(const QString &fileName, Id editorId,
OpenEditorFlags flags, bool *newEditor)
{
if (flags & EditorManager::OpenInOtherSplit) {
@@ -1518,7 +1518,7 @@ IEditor *EditorManager::openEditor(const QString &fileName, const Id &editorId,
}
IEditor *EditorManager::openEditorAt(const QString &fileName, int line, int column,
const Id &editorId, OpenEditorFlags flags, bool *newEditor)
Id editorId, OpenEditorFlags flags, bool *newEditor)
{
m_instance->cutForwardNavigationHistory();
m_instance->addCurrentPositionToNavigationHistory();
@@ -1586,7 +1586,7 @@ bool EditorManager::isAutoSaveFile(const QString &fileName)
}
IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QString &fileName,
const Id &editorId, OpenEditorFlags flags, bool *newEditor)
Id editorId, OpenEditorFlags flags, bool *newEditor)
{
if (debugEditorManager)
qDebug() << Q_FUNC_INFO << fileName << editorId.name();
@@ -1654,7 +1654,7 @@ IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QStri
return result;
}
bool EditorManager::openExternalEditor(const QString &fileName, const Core::Id &editorId)
bool EditorManager::openExternalEditor(const QString &fileName, Core::Id editorId)
{
IExternalEditor *ee = findById<IExternalEditor>(editorId);
if (!ee)
@@ -1676,7 +1676,7 @@ QStringList EditorManager::getOpenFileNames()
}
IEditor *EditorManager::openEditorWithContents(const Id &editorId,
IEditor *EditorManager::openEditorWithContents(Id editorId,
QString *titlePattern,
const QByteArray &contents,
OpenEditorFlags flags)

View File

@@ -109,16 +109,16 @@ public:
Q_DECLARE_FLAGS(OpenEditorFlags, OpenEditorFlag)
static QString splitLineNumber(QString *fileName);
static IEditor *openEditor(const QString &fileName, const Id &editorId = Id(),
static IEditor *openEditor(const QString &fileName, Id editorId = Id(),
OpenEditorFlags flags = NoFlags, bool *newEditor = 0);
static IEditor *openEditorAt(const QString &fileName, int line, int column = 0,
const Id &editorId = Id(), OpenEditorFlags flags = NoFlags,
Id editorId = Id(), OpenEditorFlags flags = NoFlags,
bool *newEditor = 0);
static IEditor *openEditorWithContents(const Id &editorId, QString *titlePattern = 0,
static IEditor *openEditorWithContents(Id editorId, QString *titlePattern = 0,
const QByteArray &contents = QByteArray(),
OpenEditorFlags flags = NoFlags);
static bool openExternalEditor(const QString &fileName, const Id &editorId);
static bool openExternalEditor(const QString &fileName, Id editorId);
static QStringList getOpenFileNames();
static Id getOpenWithEditorId(const QString &fileName, bool *isExternalEditor = 0);
@@ -252,7 +252,7 @@ private:
~EditorManager();
static void init();
static IEditor *createEditor(const Id &id = Id(), const QString &fileName = QString());
static IEditor *createEditor(Id id = Id(), const QString &fileName = QString());
static void addEditor(IEditor *editor);
static void removeEditor(IEditor *editor);
@@ -265,7 +265,7 @@ private:
OpenEditorFlags flags = NoFlags);
static void activateView(Internal::EditorView *view);
static IEditor *openEditor(Internal::EditorView *view, const QString &fileName,
const Id &id = Id(), OpenEditorFlags flags = NoFlags, bool *newEditor = 0);
Id id = Id(), OpenEditorFlags flags = NoFlags, bool *newEditor = 0);
static int visibleDocumentsCount();
static void setCurrentEditor(IEditor *editor, bool ignoreNavigationHistory = false);

View File

@@ -31,10 +31,14 @@
#include <utils/qtcassert.h>
Core::IDocument *Core::IEditorFactory::open(const QString &)
Core::IEditorFactory::IEditorFactory(QObject *parent)
: IDocumentFactory(parent)
{
qWarning("This should never be called, use IEditorFactor::createEditor, "
"or EditorManager::openEditor instead!");
QTC_CHECK(false);
return 0;
setOpener([](const QString &) -> Core::IDocument * {
qWarning("This should never be called, use IEditorFactor::createEditor, "
"or EditorManager::openEditor instead!");
QTC_CHECK(false);
return 0;
});
}

View File

@@ -41,10 +41,9 @@ class CORE_EXPORT IEditorFactory : public Core::IDocumentFactory
Q_OBJECT
public:
IEditorFactory(QObject *parent = 0) : IDocumentFactory(parent) {}
IEditorFactory(QObject *parent = 0);
virtual IEditor *createEditor() = 0;
virtual IDocument *open(const QString &);
};
} // namespace Core

View File

@@ -133,7 +133,7 @@ void BaseTextFind::resetIncrementalSearch()
d->m_incrementalWrappedState = false;
}
void BaseTextFind::clearResults()
void BaseTextFind::clearHighlights()
{
emit highlightAll(QString(), 0);
}

View File

@@ -53,7 +53,7 @@ public:
bool supportsReplace() const;
FindFlags supportedFindFlags() const;
void resetIncrementalSearch();
void clearResults();
void clearHighlights();
QString currentFindString() const;
QString completedFindString() const;

View File

@@ -60,10 +60,10 @@ void CurrentDocumentFind::resetIncrementalSearch()
m_currentFind->resetIncrementalSearch();
}
void CurrentDocumentFind::clearResults()
void CurrentDocumentFind::clearHighlights()
{
QTC_ASSERT(m_currentFind, return);
m_currentFind->clearResults();
m_currentFind->clearHighlights();
}
bool CurrentDocumentFind::isEnabled() const
@@ -175,7 +175,7 @@ void CurrentDocumentFind::acceptCandidate()
return;
removeFindSupportConnections();
if (m_currentFind)
m_currentFind->clearResults();
m_currentFind->clearHighlights();
if (m_currentWidget)
disconnect(Aggregation::Aggregate::parentAggregate(m_currentWidget), SIGNAL(changed()),

View File

@@ -45,7 +45,7 @@ public:
CurrentDocumentFind();
void resetIncrementalSearch();
void clearResults();
void clearHighlights();
bool supportsReplace() const;
FindFlags supportedFindFlags() const;
QString currentFindString() const;

View File

@@ -325,8 +325,11 @@ bool FindToolBar::eventFilter(QObject *obj, QEvent *event)
void FindToolBar::adaptToCandidate()
{
updateFindAction();
if (findToolBarPlaceHolder() == Core::FindToolBarPlaceHolder::getCurrent())
if (findToolBarPlaceHolder() == Core::FindToolBarPlaceHolder::getCurrent()) {
m_currentDocumentFind->acceptCandidate();
if (isVisible())
m_currentDocumentFind->highlightAll(getFindText(), effectiveFindFlags());
}
}
void FindToolBar::updateFindAction()
@@ -406,7 +409,7 @@ void FindToolBar::invokeReplaceEnter()
void FindToolBar::invokeClearResults()
{
if (m_currentDocumentFind->isEnabled())
m_currentDocumentFind->clearResults();
m_currentDocumentFind->clearHighlights();
}
@@ -471,7 +474,7 @@ void FindToolBar::invokeFindIncremental()
if (result == IFindSupport::NotYetFound)
m_findIncrementalTimer.start(50);
if (text.isEmpty())
m_currentDocumentFind->clearResults();
m_currentDocumentFind->clearHighlights();
}
}

View File

@@ -50,7 +50,7 @@ public:
virtual bool supportsReplace() const = 0;
virtual FindFlags supportedFindFlags() const = 0;
virtual void resetIncrementalSearch() = 0;
virtual void clearResults() = 0;
virtual void clearHighlights() = 0;
virtual QString currentFindString() const = 0;
virtual QString completedFindString() const = 0;

View File

@@ -83,7 +83,7 @@ void TreeViewFind::resetIncrementalSearch()
d->m_incrementalWrappedState = false;
}
void TreeViewFind::clearResults()
void TreeViewFind::clearHighlights()
{
}

View File

@@ -56,7 +56,7 @@ public:
bool supportsReplace() const;
FindFlags supportedFindFlags() const;
void resetIncrementalSearch();
void clearResults();
void clearHighlights();
QString currentFindString() const;
QString completedFindString() const;

View File

@@ -141,7 +141,7 @@ Id GeneratedFile::editorId() const
return m_d->editorId;
}
void GeneratedFile::setEditorId(const Id &id)
void GeneratedFile::setEditorId(Id id)
{
m_d->editorId = id;
}

View File

@@ -77,7 +77,7 @@ public:
// Id of editor to open the file with
Id editorId() const;
void setEditorId(const Id &id);
void setEditorId(Id id);
bool write(QString *errorMessage) const;

Some files were not shown because too many files have changed in this diff Show More