forked from qt-creator/qt-creator
Merge commit 'origin/0.9.1-beta'
This commit is contained in:
@@ -239,7 +239,7 @@ static void appendFileData(QIODevice *out, const QString &fileName)
|
||||
|
||||
static void appendFileData(QIODevice *out, QIODevice *in)
|
||||
{
|
||||
Q_ASSERT(!in->isSequential());
|
||||
QTC_ASSERT(!in->isSequential(), return);
|
||||
qint64 size = in->size();
|
||||
QByteArray &b = theBuffer(size);
|
||||
rawRead(in, b.data(), size);
|
||||
|
||||
@@ -66,8 +66,6 @@ FileDataList splitDiffToFiles(const QByteArray &data)
|
||||
// The algorithm works like this:
|
||||
// On the first match we only get the filename of the first patch part
|
||||
// On the second match (if any) we get the diff content, and the name of the next file patch
|
||||
//
|
||||
|
||||
|
||||
while (-1 != (splitIndex = splitExpr.indexIn(strData,splitIndex))) {
|
||||
if (!filename.isEmpty()) {
|
||||
|
||||
@@ -511,6 +511,12 @@ Identifier *Control::findOrInsertIdentifier(const char *chars)
|
||||
return findOrInsertIdentifier(chars, length);
|
||||
}
|
||||
|
||||
Control::IdentifierIterator Control::firstIdentifier() const
|
||||
{ return d->identifiers.begin(); }
|
||||
|
||||
Control::IdentifierIterator Control::lastIdentifier() const
|
||||
{ return d->identifiers.end(); }
|
||||
|
||||
StringLiteral *Control::findOrInsertStringLiteral(const char *chars, unsigned size)
|
||||
{ return d->stringLiterals.findOrInsertLiteral(chars, size); }
|
||||
|
||||
|
||||
@@ -151,6 +151,11 @@ public:
|
||||
Identifier *findOrInsertIdentifier(const char *chars, unsigned size);
|
||||
Identifier *findOrInsertIdentifier(const char *chars);
|
||||
|
||||
typedef const Identifier *const *IdentifierIterator;
|
||||
|
||||
IdentifierIterator firstIdentifier() const;
|
||||
IdentifierIterator lastIdentifier() const;
|
||||
|
||||
StringLiteral *findOrInsertStringLiteral(const char *chars, unsigned size);
|
||||
StringLiteral *findOrInsertStringLiteral(const char *chars);
|
||||
|
||||
|
||||
@@ -30,17 +30,20 @@
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#include "formresizer.h"
|
||||
#include "sizehandlerect.h"
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtDesigner/QDesignerFormWindowInterface>
|
||||
|
||||
#include <QtGui/QResizeEvent>
|
||||
#include <QtGui/QPalette>
|
||||
#include <QtGui/QLayout>
|
||||
#include <QtGui/QFrame>
|
||||
#include <QtGui/QResizeEvent>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
enum { debugFormResizer = 0 };
|
||||
|
||||
@@ -140,7 +143,7 @@ void FormResizer::setFormWindow(QDesignerFormWindowInterface *fw)
|
||||
if (debugFormResizer)
|
||||
qDebug() << "FormResizer::setFormWindow " << fw;
|
||||
QVBoxLayout *layout = qobject_cast<QVBoxLayout *>(m_frame->layout());
|
||||
Q_ASSERT(layout);
|
||||
QTC_ASSERT(layout, return);
|
||||
if (layout->count())
|
||||
delete layout->takeAt(0);
|
||||
m_formWindow = fw;
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "indenter.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace SharedTools::IndenterInternal;
|
||||
|
||||
// --- Constants
|
||||
@@ -57,10 +59,10 @@ Constants::Constants() :
|
||||
{
|
||||
m_literal.setMinimal(true);
|
||||
m_inlineCComment.setMinimal(true);
|
||||
Q_ASSERT(m_literal.isValid());
|
||||
Q_ASSERT(m_label.isValid());
|
||||
Q_ASSERT(m_inlineCComment.isValid());
|
||||
Q_ASSERT(m_braceX.isValid());
|
||||
Q_ASSERT(m_iflikeKeyword.isValid());
|
||||
Q_ASSERT(m_caseLabel.isValid());
|
||||
QTC_ASSERT(m_literal.isValid(), return);
|
||||
QTC_ASSERT(m_label.isValid(), return);
|
||||
QTC_ASSERT(m_inlineCComment.isValid(), return);
|
||||
QTC_ASSERT(m_braceX.isValid(), return);
|
||||
QTC_ASSERT(m_iflikeKeyword.isValid(), return);
|
||||
QTC_ASSERT(m_caseLabel.isValid(), return);
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ int main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
foreach(QString fileName, fileNames)
|
||||
foreach (const QString &fileName, fileNames)
|
||||
if (const int rc = format(fileName))
|
||||
return rc;
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "procommandmanager.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace Qt4ProjectManager::Internal;
|
||||
|
||||
ProCommandGroup::ProCommandGroup(const QString &name)
|
||||
@@ -76,7 +78,7 @@ ProCommandManager::~ProCommandManager()
|
||||
|
||||
void ProCommandManager::beginGroup(const QString &name)
|
||||
{
|
||||
Q_ASSERT(!m_group);
|
||||
QTC_ASSERT(!m_group, return);
|
||||
|
||||
if (m_pos != m_groups.count()) {
|
||||
int removecount = m_groups.count() - m_pos;
|
||||
@@ -95,7 +97,7 @@ bool ProCommandManager::hasGroup() const
|
||||
|
||||
void ProCommandManager::endGroup()
|
||||
{
|
||||
Q_ASSERT(m_group);
|
||||
QTC_ASSERT(m_group, return);
|
||||
|
||||
m_groups.append(m_group);
|
||||
m_pos = m_groups.count();
|
||||
@@ -106,7 +108,7 @@ void ProCommandManager::endGroup()
|
||||
|
||||
bool ProCommandManager::command(ProCommand *cmd)
|
||||
{
|
||||
Q_ASSERT(m_group);
|
||||
QTC_ASSERT(m_group, return false);
|
||||
|
||||
if (cmd->redo()) {
|
||||
m_group->appendCommand(cmd);
|
||||
|
||||
@@ -168,11 +168,8 @@ void ProEditor::updatePasteAction()
|
||||
bool pasteEnabled = false;
|
||||
|
||||
const QMimeData *data = QApplication::clipboard()->mimeData();
|
||||
if (data) {
|
||||
if (data->hasFormat(QLatin1String("application/x-problock"))) {
|
||||
if (data && data->hasFormat(QLatin1String("application/x-problock")))
|
||||
pasteEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
m_pasteAction->setEnabled(pasteEnabled);
|
||||
}
|
||||
|
||||
@@ -732,13 +732,10 @@ bool ProEditorModel::insertItem(ProItem *item, int row, const QModelIndex &paren
|
||||
|
||||
void ProEditorModel::markProFileModified(QModelIndex index)
|
||||
{
|
||||
while(index.isValid())
|
||||
{
|
||||
if( proItem(index)->kind() == ProItem::BlockKind)
|
||||
{
|
||||
while (index.isValid()) {
|
||||
if (proItem(index)->kind() == ProItem::BlockKind) {
|
||||
ProBlock * block = proBlock(index);
|
||||
if(block->blockKind() == ProBlock::ProFileKind)
|
||||
{
|
||||
if (block->blockKind() == ProBlock::ProFileKind) {
|
||||
ProFile * file = static_cast<ProFile *>(block);
|
||||
file->setModified(true);
|
||||
return;
|
||||
@@ -808,14 +805,16 @@ QString ProEditorModel::expressionToString(ProBlock *block, bool display) const
|
||||
} else {
|
||||
result += v->text();
|
||||
}
|
||||
break; }
|
||||
break;
|
||||
}
|
||||
case ProItem::OperatorKind: {
|
||||
ProOperator *v = static_cast<ProOperator*>(item);
|
||||
if (v->operatorKind() == ProOperator::NotOperator)
|
||||
result += QLatin1Char('!');
|
||||
else
|
||||
result += QLatin1Char('|');
|
||||
break; }
|
||||
break;
|
||||
}
|
||||
case ProItem::ValueKind:
|
||||
case ProItem::BlockKind:
|
||||
break; // ### unhandled
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#include "proparserutils.h"
|
||||
#include "proitems.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
@@ -683,7 +685,7 @@ bool ProFileEvaluator::Private::visitProFunction(ProFunction *func)
|
||||
QString text = func->text();
|
||||
int lparen = text.indexOf(QLatin1Char('('));
|
||||
int rparen = text.lastIndexOf(QLatin1Char(')'));
|
||||
Q_ASSERT(lparen < rparen);
|
||||
QTC_ASSERT(lparen < rparen, return false);
|
||||
|
||||
QString arguments = text.mid(lparen + 1, rparen - lparen - 1);
|
||||
QString funcName = text.left(lparen);
|
||||
|
||||
@@ -170,7 +170,7 @@ void ProWriter::writeBlock(ProBlock *block, const QString &indent)
|
||||
m_writeState &= ~FirstItem;
|
||||
if (i == 0)
|
||||
m_writeState |= FirstItem;
|
||||
if (i == (items.count()-1))
|
||||
if (i == items.count() - 1)
|
||||
m_writeState |= LastItem;
|
||||
writeItem(items.at(i), newindent);
|
||||
}
|
||||
|
||||
@@ -33,13 +33,16 @@
|
||||
|
||||
#include "resourcefile_p.h"
|
||||
|
||||
#include <QtCore/QtAlgorithms>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QTextStream>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QMimeData>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QMimeData>
|
||||
#include <QtCore/QtAlgorithms>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
#include <QtGui/QIcon>
|
||||
#include <QtGui/QImageReader>
|
||||
|
||||
@@ -109,14 +112,14 @@ bool ResourceFile::load()
|
||||
const QString language = relt.attribute(QLatin1String("lang"));
|
||||
|
||||
const int idx = indexOfPrefix(prefix);
|
||||
Prefix * p = NULL;
|
||||
Prefix * p = 0;
|
||||
if (idx == -1) {
|
||||
p = new Prefix(prefix, language);
|
||||
m_prefix_list.append(p);
|
||||
} else {
|
||||
p = m_prefix_list[idx];
|
||||
}
|
||||
Q_ASSERT(p != NULL);
|
||||
QTC_ASSERT(p, return false);
|
||||
|
||||
QDomElement felt = relt.firstChildElement(QLatin1String("file"));
|
||||
for (; !felt.isNull(); felt = felt.nextSiblingElement(QLatin1String("file"))) {
|
||||
@@ -151,7 +154,7 @@ bool ResourceFile::save()
|
||||
|
||||
const QStringList name_list = prefixList();
|
||||
|
||||
foreach (QString name, name_list) {
|
||||
foreach (const QString &name, name_list) {
|
||||
FileList file_list;
|
||||
QString lang;
|
||||
foreach (Prefix *pref, m_prefix_list) {
|
||||
@@ -247,9 +250,9 @@ bool ResourceFile::isEmpty() const
|
||||
|
||||
QStringList ResourceFile::fileList(int pref_idx) const
|
||||
{
|
||||
Q_ASSERT((pref_idx >= 0) && (pref_idx < m_prefix_list.count()));
|
||||
const FileList &abs_file_list = m_prefix_list.at(pref_idx)->file_list;
|
||||
QStringList result;
|
||||
QTC_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count(), return result);
|
||||
const FileList &abs_file_list = m_prefix_list.at(pref_idx)->file_list;
|
||||
foreach (const File *abs_file, abs_file_list)
|
||||
result.append(relativePath(abs_file->name));
|
||||
return result;
|
||||
@@ -258,9 +261,9 @@ QStringList ResourceFile::fileList(int pref_idx) const
|
||||
void ResourceFile::addFile(int prefix_idx, const QString &file, int file_idx)
|
||||
{
|
||||
Prefix * const p = m_prefix_list[prefix_idx];
|
||||
Q_ASSERT(p != NULL);
|
||||
QTC_ASSERT(p, return);
|
||||
FileList &files = p->file_list;
|
||||
Q_ASSERT((file_idx >= -1) && (file_idx <= files.size()));
|
||||
QTC_ASSERT(file_idx >= -1 && file_idx <= files.size(), return);
|
||||
if (file_idx == -1)
|
||||
file_idx = files.size();
|
||||
files.insert(file_idx, new File(p, absolutePath(file)));
|
||||
@@ -272,7 +275,7 @@ void ResourceFile::addPrefix(const QString &prefix, int prefix_idx)
|
||||
if (indexOfPrefix(fixed_prefix) != -1)
|
||||
return;
|
||||
|
||||
Q_ASSERT((prefix_idx >= -1) && (prefix_idx <= m_prefix_list.size()));
|
||||
QTC_ASSERT(prefix_idx >= -1 && prefix_idx <= m_prefix_list.size(), return);
|
||||
if (prefix_idx == -1)
|
||||
prefix_idx = m_prefix_list.size();
|
||||
m_prefix_list.insert(prefix_idx, new Prefix(fixed_prefix));
|
||||
@@ -280,7 +283,7 @@ void ResourceFile::addPrefix(const QString &prefix, int prefix_idx)
|
||||
|
||||
void ResourceFile::removePrefix(int prefix_idx)
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return);
|
||||
Prefix * const p = m_prefix_list.at(prefix_idx);
|
||||
delete p;
|
||||
m_prefix_list.removeAt(prefix_idx);
|
||||
@@ -288,39 +291,39 @@ void ResourceFile::removePrefix(int prefix_idx)
|
||||
|
||||
void ResourceFile::removeFile(int prefix_idx, int file_idx)
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return);
|
||||
FileList &fileList = m_prefix_list[prefix_idx]->file_list;
|
||||
Q_ASSERT((file_idx >= 0) && (file_idx < fileList.count()));
|
||||
QTC_ASSERT(file_idx >= 0 && file_idx < fileList.count(), return);
|
||||
delete fileList.at(file_idx);
|
||||
fileList.removeAt(file_idx);
|
||||
}
|
||||
|
||||
void ResourceFile::replacePrefix(int prefix_idx, const QString &prefix)
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return);
|
||||
m_prefix_list[prefix_idx]->name = fixPrefix(prefix);
|
||||
}
|
||||
|
||||
void ResourceFile::replaceLang(int prefix_idx, const QString &lang)
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return);
|
||||
m_prefix_list[prefix_idx]->lang = lang;
|
||||
}
|
||||
|
||||
void ResourceFile::replaceAlias(int prefix_idx, int file_idx, const QString &alias)
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return);
|
||||
FileList &fileList = m_prefix_list.at(prefix_idx)->file_list;
|
||||
Q_ASSERT((file_idx >= 0) && (file_idx < fileList.count()));
|
||||
QTC_ASSERT(file_idx >= 0 && file_idx < fileList.count(), return);
|
||||
fileList[file_idx]->alias = alias;
|
||||
}
|
||||
|
||||
|
||||
void ResourceFile::replaceFile(int pref_idx, int file_idx, const QString &file)
|
||||
{
|
||||
Q_ASSERT((pref_idx >= 0) && (pref_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count(), return);
|
||||
FileList &fileList = m_prefix_list.at(pref_idx)->file_list;
|
||||
Q_ASSERT((file_idx >= 0) && (file_idx < fileList.count()));
|
||||
QTC_ASSERT(file_idx >= 0 && file_idx < fileList.count(), return);
|
||||
fileList[file_idx]->name = file;
|
||||
}
|
||||
|
||||
@@ -336,7 +339,7 @@ int ResourceFile::indexOfPrefix(const QString &prefix) const
|
||||
|
||||
int ResourceFile::indexOfFile(int pref_idx, const QString &file) const
|
||||
{
|
||||
Q_ASSERT((pref_idx >= 0) && (pref_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count(), return -1);
|
||||
Prefix * const p = m_prefix_list.at(pref_idx);
|
||||
File equalFile(p, absolutePath(file));
|
||||
return p->file_list.indexOf(&equalFile);
|
||||
@@ -370,16 +373,16 @@ bool ResourceFile::contains(const QString &prefix, const QString &file) const
|
||||
return false;
|
||||
if (file.isEmpty())
|
||||
return true;
|
||||
Q_ASSERT((pref_idx >= 0) && (pref_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count(), return false);
|
||||
Prefix * const p = m_prefix_list.at(pref_idx);
|
||||
Q_ASSERT(p != NULL);
|
||||
QTC_ASSERT(p, return false);
|
||||
File equalFile(p, absolutePath(file));
|
||||
return p->file_list.contains(&equalFile);
|
||||
}
|
||||
|
||||
bool ResourceFile::contains(int pref_idx, const QString &file) const
|
||||
{
|
||||
Q_ASSERT((pref_idx >= 0) && (pref_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count(), return false);
|
||||
Prefix * const p = m_prefix_list.at(pref_idx);
|
||||
File equalFile(p, absolutePath(file));
|
||||
return p->file_list.contains(&equalFile);
|
||||
@@ -409,49 +412,49 @@ int ResourceFile::prefixCount() const
|
||||
|
||||
QString ResourceFile::prefix(int idx) const
|
||||
{
|
||||
Q_ASSERT((idx >= 0) && (idx < m_prefix_list.count()));
|
||||
QTC_ASSERT((idx >= 0) && (idx < m_prefix_list.count()), return QString());
|
||||
return m_prefix_list.at(idx)->name;
|
||||
}
|
||||
|
||||
QString ResourceFile::lang(int idx) const
|
||||
{
|
||||
Q_ASSERT((idx >= 0) && (idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(idx >= 0 && idx < m_prefix_list.count(), return QString());
|
||||
return m_prefix_list.at(idx)->lang;
|
||||
}
|
||||
|
||||
int ResourceFile::fileCount(int prefix_idx) const
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return 0);
|
||||
return m_prefix_list.at(prefix_idx)->file_list.size();
|
||||
}
|
||||
|
||||
QString ResourceFile::file(int prefix_idx, int file_idx) const
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return QString());
|
||||
FileList &fileList = m_prefix_list.at(prefix_idx)->file_list;
|
||||
Q_ASSERT((file_idx >= 0) && (file_idx < fileList.count()));
|
||||
QTC_ASSERT(file_idx >= 0 && file_idx < fileList.count(), return QString());
|
||||
return fileList.at(file_idx)->name;
|
||||
}
|
||||
|
||||
QString ResourceFile::alias(int prefix_idx, int file_idx) const
|
||||
{
|
||||
Q_ASSERT((prefix_idx >= 0) && (prefix_idx < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefix_idx >= 0 && prefix_idx < m_prefix_list.count(), return QString());
|
||||
FileList &fileList = m_prefix_list.at(prefix_idx)->file_list;
|
||||
Q_ASSERT((file_idx >= 0) && (file_idx < fileList.count()));
|
||||
QTC_ASSERT(file_idx >= 0 && file_idx < fileList.count(), return QString());
|
||||
return fileList.at(file_idx)->alias;
|
||||
}
|
||||
|
||||
void * ResourceFile::prefixPointer(int prefixIndex) const
|
||||
{
|
||||
Q_ASSERT((prefixIndex >= 0) && (prefixIndex < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefixIndex >= 0 && prefixIndex < m_prefix_list.count(), return 0);
|
||||
return m_prefix_list.at(prefixIndex);
|
||||
}
|
||||
|
||||
void * ResourceFile::filePointer(int prefixIndex, int fileIndex) const
|
||||
{
|
||||
Q_ASSERT((prefixIndex >= 0) && (prefixIndex < m_prefix_list.count()));
|
||||
QTC_ASSERT(prefixIndex >= 0 && prefixIndex < m_prefix_list.count(), return 0);
|
||||
FileList &fileList = m_prefix_list.at(prefixIndex)->file_list;
|
||||
Q_ASSERT((fileIndex >= 0) && (fileIndex < fileList.count()));
|
||||
QTC_ASSERT(fileIndex >= 0 && fileIndex < fileList.count(), return 0);
|
||||
return fileList.at(fileIndex);
|
||||
}
|
||||
|
||||
@@ -497,28 +500,28 @@ QModelIndex ResourceModel::index(int row, int column, const QModelIndex &parent)
|
||||
if (column != 0)
|
||||
return QModelIndex();
|
||||
|
||||
void * internalPointer = NULL;
|
||||
void * internalPointer = 0;
|
||||
if (parent.isValid()) {
|
||||
void * const pip = parent.internalPointer();
|
||||
if (pip == NULL)
|
||||
if (pip == 0)
|
||||
return QModelIndex();
|
||||
|
||||
// File node
|
||||
Node * const node = reinterpret_cast<Node *>(pip);
|
||||
Prefix * const prefix = node->prefix();
|
||||
Q_ASSERT(prefix != NULL);
|
||||
if ((row < 0) || (row >= prefix->file_list.count()))
|
||||
QTC_ASSERT(prefix, return QModelIndex());
|
||||
if (row < 0 || row >= prefix->file_list.count())
|
||||
return QModelIndex();
|
||||
const int prefixIndex = m_resource_file.prefixPointerIndex(prefix);
|
||||
const int fileIndex = row;
|
||||
internalPointer = m_resource_file.filePointer(prefixIndex, fileIndex);
|
||||
} else {
|
||||
// Prefix node
|
||||
if ((row < 0) || (row >= m_resource_file.prefixCount()))
|
||||
if (row < 0 || row >= m_resource_file.prefixCount())
|
||||
return QModelIndex();
|
||||
internalPointer = m_resource_file.prefixPointer(row);
|
||||
}
|
||||
Q_ASSERT(internalPointer != NULL);
|
||||
QTC_ASSERT(internalPointer, return QModelIndex());
|
||||
return createIndex(row, 0, internalPointer);
|
||||
}
|
||||
|
||||
@@ -528,16 +531,16 @@ QModelIndex ResourceModel::parent(const QModelIndex &index) const
|
||||
return QModelIndex();
|
||||
|
||||
void * const internalPointer = index.internalPointer();
|
||||
if (internalPointer == NULL)
|
||||
if (internalPointer == 0)
|
||||
return QModelIndex();
|
||||
Node * const node = reinterpret_cast<Node *>(internalPointer);
|
||||
Prefix * const prefix = node->prefix();
|
||||
Q_ASSERT(prefix != NULL);
|
||||
QTC_ASSERT(prefix, return QModelIndex());
|
||||
bool const isFileNode = (prefix != node);
|
||||
|
||||
if (isFileNode) {
|
||||
const int row = m_resource_file.prefixPointerIndex(prefix);
|
||||
Q_ASSERT(row >= 0);
|
||||
QTC_ASSERT(row >= 0, return QModelIndex());
|
||||
return createIndex(row, 0, prefix);
|
||||
} else {
|
||||
return QModelIndex();
|
||||
@@ -550,7 +553,7 @@ int ResourceModel::rowCount(const QModelIndex &parent) const
|
||||
void * const internalPointer = parent.internalPointer();
|
||||
Node * const node = reinterpret_cast<Node *>(internalPointer);
|
||||
Prefix * const prefix = node->prefix();
|
||||
Q_ASSERT(prefix != NULL);
|
||||
QTC_ASSERT(prefix, return 0);
|
||||
bool const isFileNode = (prefix != node);
|
||||
|
||||
if (isFileNode) {
|
||||
@@ -609,7 +612,7 @@ QVariant ResourceModel::data(const QModelIndex &index, int role) const
|
||||
Node * const node = reinterpret_cast<Node *>(internalPointer);
|
||||
Prefix const * const prefix = node->prefix();
|
||||
File const * const file = node->file();
|
||||
Q_ASSERT(prefix != NULL);
|
||||
QTC_ASSERT(prefix, return QVariant());
|
||||
bool const isFileNode = (prefix != node);
|
||||
|
||||
QVariant result;
|
||||
@@ -626,7 +629,7 @@ QVariant ResourceModel::data(const QModelIndex &index, int role) const
|
||||
appendParenthesized(lang, stringRes);
|
||||
} else {
|
||||
// File node
|
||||
Q_ASSERT(file != NULL);
|
||||
QTC_ASSERT(file, return result);
|
||||
stringRes = QFileInfo(file->name).fileName();
|
||||
const QString alias = file->alias;
|
||||
if (!alias.isEmpty())
|
||||
@@ -638,7 +641,7 @@ QVariant ResourceModel::data(const QModelIndex &index, int role) const
|
||||
case Qt::DecorationRole:
|
||||
if (isFileNode) {
|
||||
// File node
|
||||
Q_ASSERT(file != NULL);
|
||||
QTC_ASSERT(file, return result);
|
||||
const QString path = m_resource_file.absolutePath(file->name);
|
||||
if (iconFileExtension(path)) {
|
||||
const QIcon icon(path);
|
||||
@@ -650,7 +653,7 @@ QVariant ResourceModel::data(const QModelIndex &index, int role) const
|
||||
case Qt::ToolTipRole:
|
||||
if (isFileNode) {
|
||||
// File node
|
||||
Q_ASSERT(file != NULL);
|
||||
QTC_ASSERT(file, return result);
|
||||
QString conv_file = m_resource_file.relativePath(file->name);
|
||||
QString stringRes = conv_file.replace(QDir::separator(), QLatin1Char('/'));
|
||||
const QString &alias_file = file->alias;
|
||||
@@ -679,12 +682,12 @@ void ResourceModel::getItem(const QModelIndex &index, QString &prefix, QString &
|
||||
void * const internalPointer = index.internalPointer();
|
||||
Node * const node = reinterpret_cast<Node *>(internalPointer);
|
||||
Prefix * const p = node->prefix();
|
||||
Q_ASSERT(p != NULL);
|
||||
QTC_ASSERT(p, return);
|
||||
bool const isFileNode = (p != node);
|
||||
|
||||
if (isFileNode) {
|
||||
File *const f = node->file();
|
||||
Q_ASSERT(f != NULL);
|
||||
QTC_ASSERT(f, return);
|
||||
if (!f->alias.isEmpty())
|
||||
file = f->alias;
|
||||
else
|
||||
|
||||
@@ -36,10 +36,12 @@
|
||||
|
||||
#include "namespace_global.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QAbstractItemModel>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QAbstractItemModel>
|
||||
|
||||
#include "shared_global_p.h"
|
||||
|
||||
@@ -66,11 +68,11 @@ class Node
|
||||
protected:
|
||||
Node(File *file, Prefix *prefix) : m_file(file), m_prefix(prefix)
|
||||
{
|
||||
Q_ASSERT(m_prefix != NULL);
|
||||
QTC_ASSERT(m_prefix, return);
|
||||
}
|
||||
public:
|
||||
File *file() { return m_file; }
|
||||
Prefix * prefix() { Q_ASSERT(m_prefix != NULL); return m_prefix; }
|
||||
Prefix *prefix() { return m_prefix; }
|
||||
private:
|
||||
File *m_file;
|
||||
Prefix *m_prefix;
|
||||
|
||||
@@ -32,16 +32,20 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "resourceview.h"
|
||||
|
||||
#include "undocommands_p.h"
|
||||
|
||||
#include <QtGui/QHeaderView>
|
||||
#include <QtGui/QMenu>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QMouseEvent>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QInputDialog>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtCore/QtDebug>
|
||||
#include <QtGui/QHeaderView>
|
||||
#include <QtGui/QInputDialog>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QMouseEvent>
|
||||
#include <QtGui/QUndoStack>
|
||||
|
||||
namespace SharedTools {
|
||||
@@ -308,14 +312,14 @@ void ResourceView::findSamePlacePostDeletionModelIndex(int &row, QModelIndex &pa
|
||||
|
||||
EntryBackup * ResourceView::removeEntry(const QModelIndex &index)
|
||||
{
|
||||
Q_ASSERT(m_qrcModel != NULL);
|
||||
QTC_ASSERT(m_qrcModel, return 0);
|
||||
return m_qrcModel->removeEntry(index);
|
||||
}
|
||||
|
||||
void ResourceView::addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile,
|
||||
int &firstFile, int &lastFile)
|
||||
{
|
||||
Q_ASSERT(m_qrcModel != NULL);
|
||||
QTC_ASSERT(m_qrcModel, return);
|
||||
m_qrcModel->addFiles(prefixIndex, fileNames, cursorFile, firstFile, lastFile);
|
||||
|
||||
// Expand prefix node
|
||||
@@ -327,11 +331,11 @@ void ResourceView::addFiles(int prefixIndex, const QStringList &fileNames, int c
|
||||
|
||||
void ResourceView::removeFiles(int prefixIndex, int firstFileIndex, int lastFileIndex)
|
||||
{
|
||||
Q_ASSERT((prefixIndex >= 0) && (prefixIndex < m_qrcModel->rowCount(QModelIndex())));
|
||||
QTC_ASSERT(prefixIndex >= 0 && prefixIndex < m_qrcModel->rowCount(QModelIndex()), return);
|
||||
const QModelIndex prefixModelIndex = m_qrcModel->index(prefixIndex, 0, QModelIndex());
|
||||
Q_ASSERT(prefixModelIndex != QModelIndex());
|
||||
Q_ASSERT((firstFileIndex >= 0) && (firstFileIndex < m_qrcModel->rowCount(prefixModelIndex)));
|
||||
Q_ASSERT((lastFileIndex >= 0) && (lastFileIndex < m_qrcModel->rowCount(prefixModelIndex)));
|
||||
QTC_ASSERT(prefixModelIndex != QModelIndex(), return);
|
||||
QTC_ASSERT(firstFileIndex >= 0 && firstFileIndex < m_qrcModel->rowCount(prefixModelIndex), return);
|
||||
QTC_ASSERT(lastFileIndex >= 0 && lastFileIndex < m_qrcModel->rowCount(prefixModelIndex), return);
|
||||
|
||||
for (int i = lastFileIndex; i >= firstFileIndex; i--) {
|
||||
const QModelIndex index = m_qrcModel->index(i, 0, prefixModelIndex);
|
||||
@@ -501,10 +505,9 @@ void ResourceView::changePrefix(const QModelIndex &index)
|
||||
QString const prefixAfter = QInputDialog::getText(this, tr("Change Prefix"), tr("Input Prefix:"),
|
||||
QLineEdit::Normal, prefixBefore, &ok);
|
||||
|
||||
if (ok) {
|
||||
if (ok)
|
||||
addUndoCommand(preindex, PrefixProperty, prefixBefore, prefixAfter);
|
||||
}
|
||||
}
|
||||
|
||||
void ResourceView::changeLang(const QModelIndex &index)
|
||||
{
|
||||
@@ -531,10 +534,9 @@ void ResourceView::changeAlias(const QModelIndex &index)
|
||||
QString const aliasAfter = QInputDialog::getText(this, tr("Change File Alias"), tr("Alias:"),
|
||||
QLineEdit::Normal, aliasBefore, &ok);
|
||||
|
||||
if (ok) {
|
||||
if (ok)
|
||||
addUndoCommand(index, AliasProperty, aliasBefore, aliasAfter);
|
||||
}
|
||||
}
|
||||
|
||||
QString ResourceView::currentAlias() const
|
||||
{
|
||||
@@ -570,7 +572,7 @@ QString ResourceView::getCurrentValue(NodeProperty property) const
|
||||
case AliasProperty: return currentAlias();
|
||||
case PrefixProperty: return currentPrefix();
|
||||
case LanguageProperty: return currentLanguage();
|
||||
default: Q_ASSERT(false); return QString(); // Kill warning
|
||||
default: QTC_ASSERT(false, /**/); return QString(); // Kill warning
|
||||
}
|
||||
}
|
||||
|
||||
@@ -581,19 +583,20 @@ void ResourceView::changeValue(const QModelIndex &nodeIndex, NodeProperty proper
|
||||
case AliasProperty: m_qrcModel->changeAlias(nodeIndex, value); return;
|
||||
case PrefixProperty: m_qrcModel->changePrefix(nodeIndex, value); return;
|
||||
case LanguageProperty: m_qrcModel->changeLang(nodeIndex, value); return;
|
||||
default: Q_ASSERT(false);
|
||||
default: QTC_ASSERT(false, /**/);
|
||||
}
|
||||
}
|
||||
|
||||
void ResourceView::advanceMergeId() {
|
||||
void ResourceView::advanceMergeId()
|
||||
{
|
||||
m_mergeId++;
|
||||
if (m_mergeId < 0) {
|
||||
if (m_mergeId < 0)
|
||||
m_mergeId = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void ResourceView::addUndoCommand(const QModelIndex &nodeIndex, NodeProperty property,
|
||||
const QString &before, const QString &after) {
|
||||
const QString &before, const QString &after)
|
||||
{
|
||||
QUndoCommand * const command = new ModifyPropertyCommand(this, nodeIndex, property,
|
||||
m_mergeId, before, after);
|
||||
m_history->push(command);
|
||||
|
||||
@@ -92,7 +92,7 @@ bool ModifyPropertyCommand::mergeWith(const QUndoCommand * command)
|
||||
{
|
||||
const ModifyPropertyCommand * const brother
|
||||
= dynamic_cast<const ModifyPropertyCommand *>(command);
|
||||
if (command == NULL || m_property != brother->m_property)
|
||||
if (command == 0 || m_property != brother->m_property)
|
||||
return false;
|
||||
|
||||
// Choose older command (this) and forgot the other
|
||||
@@ -101,7 +101,7 @@ bool ModifyPropertyCommand::mergeWith(const QUndoCommand * command)
|
||||
|
||||
void ModifyPropertyCommand::undo()
|
||||
{
|
||||
Q_ASSERT(m_view != NULL);
|
||||
QTC_ASSERT(m_view, return);
|
||||
|
||||
// Save current text in m_after for redo()
|
||||
m_after = m_view->getCurrentValue(m_property);
|
||||
@@ -117,12 +117,12 @@ void ModifyPropertyCommand::redo()
|
||||
return;
|
||||
|
||||
// Bring back text before undo
|
||||
Q_ASSERT(m_view != NULL);
|
||||
QTC_ASSERT(m_view, return);
|
||||
m_view->changeValue(makeIndex(), m_property, m_after);
|
||||
}
|
||||
|
||||
RemoveEntryCommand::RemoveEntryCommand(ResourceView *view, const QModelIndex &index)
|
||||
: ModelIndexViewCommand(view), m_entry(NULL), m_isExpanded(true)
|
||||
: ModelIndexViewCommand(view), m_entry(0), m_isExpanded(true)
|
||||
{
|
||||
storeIndex(index);
|
||||
}
|
||||
@@ -142,9 +142,9 @@ void RemoveEntryCommand::redo()
|
||||
|
||||
void RemoveEntryCommand::undo()
|
||||
{
|
||||
if (m_entry != NULL) {
|
||||
if (m_entry == 0) {
|
||||
m_entry->restore();
|
||||
Q_ASSERT(m_view != NULL);
|
||||
QTC_ASSERT(m_view != 0, return);
|
||||
const QModelIndex index = makeIndex();
|
||||
m_view->setExpanded(index, m_isExpanded);
|
||||
m_view->setCurrentIndex(index);
|
||||
@@ -155,7 +155,7 @@ void RemoveEntryCommand::undo()
|
||||
void RemoveEntryCommand::freeEntry()
|
||||
{
|
||||
delete m_entry;
|
||||
m_entry = NULL;
|
||||
m_entry = 0;
|
||||
}
|
||||
|
||||
AddFilesCommand::AddFilesCommand(ResourceView *view, int prefixIndex, int cursorFileIndex,
|
||||
|
||||
@@ -86,8 +86,6 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId)
|
||||
lockFile.open(QIODevice::ReadWrite);
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool QtLocalPeer::isClient()
|
||||
{
|
||||
if (lockFile.isLocked())
|
||||
@@ -105,7 +103,6 @@ bool QtLocalPeer::isClient()
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool QtLocalPeer::sendMessage(const QString &message, int timeout)
|
||||
{
|
||||
if (!isClient())
|
||||
@@ -139,7 +136,6 @@ bool QtLocalPeer::sendMessage(const QString &message, int timeout)
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void QtLocalPeer::receiveConnection()
|
||||
{
|
||||
QLocalSocket* socket = server->nextPendingConnection();
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#ifndef WRAP_HELPERS_H
|
||||
#define WRAP_HELPERS_H
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtScript/QScriptEngine>
|
||||
#include <QtScript/QScriptContext>
|
||||
#include <QtScript/QScriptValue>
|
||||
@@ -87,7 +89,7 @@ template <class Wrapper, class Wrapped>
|
||||
Wrapped * (Wrapper::*wrappedAccessor) () const)
|
||||
{
|
||||
Wrapped *wrapped = wrappedFromScriptValue(context->thisObject(), wrappedAccessor);
|
||||
Q_ASSERT(wrapped);
|
||||
QTC_ASSERT(wrapped, return 0);
|
||||
return wrapped;
|
||||
}
|
||||
|
||||
@@ -314,7 +316,7 @@ static void scriptValueToQObject(const QScriptValue &sv, SomeQObject * &p)
|
||||
{
|
||||
QObject *qObject = sv.toQObject();
|
||||
p = qobject_cast<SomeQObject*>(qObject);
|
||||
Q_ASSERT(p);
|
||||
QTC_ASSERT(p, return);
|
||||
}
|
||||
|
||||
// Register a QObject-derived class which has Q_DECLARE_METATYPE(Ptr*)
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "CppDocument.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <Control.h>
|
||||
#include <TranslationUnit.h>
|
||||
#include <DiagnosticClient.h>
|
||||
@@ -143,9 +146,9 @@ void Document::appendMacro(const Macro ¯o)
|
||||
_definedMacros.append(macro);
|
||||
}
|
||||
|
||||
void Document::addMacroUse(unsigned offset, unsigned length)
|
||||
void Document::addMacroUse(const Macro ¯o, unsigned offset, unsigned length)
|
||||
{
|
||||
_macroUses.append(Block(offset, offset + length));
|
||||
_macroUses.append(MacroUse(macro, offset, offset + length));
|
||||
}
|
||||
|
||||
TranslationUnit *Document::translationUnit() const
|
||||
@@ -270,7 +273,7 @@ bool Document::parse(ParseMode mode)
|
||||
|
||||
void Document::check()
|
||||
{
|
||||
Q_ASSERT(! _globalNamespace);
|
||||
QTC_ASSERT(!_globalNamespace, return);
|
||||
|
||||
Semantic semantic(_control);
|
||||
|
||||
|
||||
@@ -68,8 +68,7 @@ public:
|
||||
void addIncludeFile(const QString &fileName);
|
||||
|
||||
void appendMacro(const Macro ¯o);
|
||||
|
||||
void addMacroUse(unsigned offset, unsigned length);
|
||||
void addMacroUse(const Macro ¯o, unsigned offset, unsigned length);
|
||||
|
||||
Control *control() const;
|
||||
TranslationUnit *translationUnit() const;
|
||||
@@ -177,12 +176,30 @@ public:
|
||||
|
||||
inline unsigned end() const
|
||||
{ return _end; }
|
||||
|
||||
bool contains(unsigned pos) const
|
||||
{ return pos >= _begin && pos < _end; }
|
||||
};
|
||||
|
||||
class MacroUse: public Block {
|
||||
Macro _macro;
|
||||
|
||||
public:
|
||||
inline MacroUse(const Macro ¯o,
|
||||
unsigned begin = 0,
|
||||
unsigned end = 0)
|
||||
: Block(begin, end),
|
||||
_macro(macro)
|
||||
{ }
|
||||
|
||||
const Macro ¯o() const
|
||||
{ return _macro; }
|
||||
};
|
||||
|
||||
QList<Block> skippedBlocks() const
|
||||
{ return _skippedBlocks; }
|
||||
|
||||
QList<Block> macroUses() const
|
||||
QList<MacroUse> macroUses() const
|
||||
{ return _macroUses; }
|
||||
|
||||
private:
|
||||
@@ -197,7 +214,7 @@ private:
|
||||
QList<DiagnosticMessage> _diagnosticMessages;
|
||||
QList<Macro> _definedMacros;
|
||||
QList<Block> _skippedBlocks;
|
||||
QList<Block> _macroUses;
|
||||
QList<MacroUse> _macroUses;
|
||||
};
|
||||
|
||||
} // end of namespace CPlusPlus
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "OverviewModel.h"
|
||||
#include "Overview.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <Scope.h>
|
||||
#include <Semantic.h>
|
||||
#include <Literals.h>
|
||||
@@ -81,13 +83,13 @@ QModelIndex OverviewModel::index(int row, int column, const QModelIndex &parent)
|
||||
return createIndex(row, column, symbol);
|
||||
} else {
|
||||
Symbol *parentSymbol = static_cast<Symbol *>(parent.internalPointer());
|
||||
Q_ASSERT(parentSymbol != 0);
|
||||
QTC_ASSERT(parentSymbol, return QModelIndex());
|
||||
|
||||
ScopedSymbol *scopedSymbol = parentSymbol->asScopedSymbol();
|
||||
Q_ASSERT(scopedSymbol != 0);
|
||||
QTC_ASSERT(scopedSymbol, return QModelIndex());
|
||||
|
||||
Scope *scope = scopedSymbol->members();
|
||||
Q_ASSERT(scope != 0);
|
||||
QTC_ASSERT(scope, return QModelIndex());
|
||||
|
||||
return createIndex(row, 0, scope->symbolAt(row));
|
||||
}
|
||||
@@ -124,12 +126,12 @@ int OverviewModel::rowCount(const QModelIndex &parent) const
|
||||
if (!parent.parent().isValid() && parent.row() == 0) // account for no symbol item
|
||||
return 0;
|
||||
Symbol *parentSymbol = static_cast<Symbol *>(parent.internalPointer());
|
||||
Q_ASSERT(parentSymbol != 0);
|
||||
QTC_ASSERT(parentSymbol, return 0);
|
||||
|
||||
if (ScopedSymbol *scopedSymbol = parentSymbol->asScopedSymbol()) {
|
||||
if (!scopedSymbol->isFunction()) {
|
||||
Scope *parentScope = scopedSymbol->members();
|
||||
Q_ASSERT(parentScope != 0);
|
||||
QTC_ASSERT(parentScope, return 0);
|
||||
|
||||
return parentScope->symbolCount();
|
||||
}
|
||||
|
||||
@@ -45,8 +45,10 @@
|
||||
#include <TypeVisitor.h>
|
||||
#include <NameVisitor.h>
|
||||
|
||||
#include <QList>
|
||||
#include <QtDebug>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QtDebug>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
|
||||
@@ -98,7 +100,7 @@ protected:
|
||||
// types
|
||||
virtual void visit(PointerToMemberType * /*ty*/)
|
||||
{
|
||||
Q_ASSERT(0);
|
||||
QTC_ASSERT(false, /**/);
|
||||
}
|
||||
|
||||
virtual void visit(PointerType *ty)
|
||||
@@ -150,32 +152,32 @@ protected:
|
||||
{ /* nothing to do*/ }
|
||||
|
||||
virtual void visit(Namespace *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(Class *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(Enum *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
// names
|
||||
virtual void visit(NameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(TemplateNameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(DestructorNameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(OperatorNameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(ConversionNameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
|
||||
virtual void visit(QualifiedNameId *)
|
||||
{ Q_ASSERT(0); }
|
||||
{ QTC_ASSERT(false, /**/); }
|
||||
};
|
||||
|
||||
} // end of anonymous namespace
|
||||
|
||||
@@ -164,7 +164,15 @@ protected:
|
||||
bool process_primary()
|
||||
{
|
||||
if ((*_lex)->is(T_INT_LITERAL)) {
|
||||
_value.set_long(tokenSpell().toLong());
|
||||
int base = 10;
|
||||
const QByteArray spell = tokenSpell();
|
||||
if (spell.at(0) == '0') {
|
||||
if (spell.size() > 1 && (spell.at(1) == 'x' || spell.at(1) == 'X'))
|
||||
base = 16;
|
||||
else
|
||||
base = 8;
|
||||
}
|
||||
_value.set_long(tokenSpell().toLong(0, base));
|
||||
++(*_lex);
|
||||
return true;
|
||||
} else if (isTokenDefined()) {
|
||||
@@ -367,7 +375,7 @@ protected:
|
||||
{
|
||||
process_xor();
|
||||
|
||||
while ((*_lex)->is(T_CARET)) {
|
||||
while ((*_lex)->is(T_PIPE)) {
|
||||
const Token op = *(*_lex);
|
||||
++(*_lex);
|
||||
|
||||
@@ -481,12 +489,12 @@ void pp::operator () (const QByteArray &filename,
|
||||
const QByteArray &source,
|
||||
QByteArray *result)
|
||||
{
|
||||
const QByteArray previousFile = env.current_file;
|
||||
env.current_file = filename;
|
||||
const QByteArray previousFile = env.currentFile;
|
||||
env.currentFile = filename;
|
||||
|
||||
operator () (source, result);
|
||||
|
||||
env.current_file = previousFile;
|
||||
env.currentFile = previousFile;
|
||||
}
|
||||
|
||||
pp::State pp::createStateFromSource(const QByteArray &source) const
|
||||
@@ -518,7 +526,7 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
|
||||
result->append(QByteArray::number(_dot->lineno));
|
||||
result->append(' ');
|
||||
result->append('"');
|
||||
result->append(env.current_file);
|
||||
result->append(env.currentFile);
|
||||
result->append('"');
|
||||
result->append('\n');
|
||||
} else {
|
||||
@@ -604,28 +612,29 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
|
||||
m->definition.constEnd(),
|
||||
result);
|
||||
|
||||
m->hidden = false;
|
||||
|
||||
if (client)
|
||||
client->stopExpandingMacro(_dot->offset, *m);
|
||||
|
||||
m->hidden = false;
|
||||
continue;
|
||||
} else {
|
||||
QByteArray tmp;
|
||||
m->hidden = true;
|
||||
|
||||
if (client)
|
||||
client->startExpandingMacro(identifierToken->offset,
|
||||
*m, spell);
|
||||
m->hidden = true;
|
||||
|
||||
expand(m->definition.constBegin(),
|
||||
m->definition.constEnd(),
|
||||
&tmp);
|
||||
|
||||
m->hidden = false;
|
||||
|
||||
if (client)
|
||||
client->stopExpandingMacro(_dot->offset, *m);
|
||||
|
||||
m->hidden = false;
|
||||
|
||||
m = 0; // reset the active the macro
|
||||
|
||||
pushState(createStateFromSource(tmp));
|
||||
@@ -843,6 +852,8 @@ void pp::processDefine(TokenIterator firstToken, TokenIterator lastToken)
|
||||
}
|
||||
|
||||
Macro macro;
|
||||
macro.fileName = env.currentFile;
|
||||
macro.line = env.currentLine;
|
||||
macro.name = tokenText(*tk);
|
||||
++tk; // skip T_IDENTIFIER
|
||||
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
|
||||
#include "pp-environment.h"
|
||||
#include "pp.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <cstring>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
@@ -79,19 +82,21 @@ Environment::~Environment ()
|
||||
}
|
||||
|
||||
unsigned Environment::macroCount() const
|
||||
{ return _macro_count + 1; }
|
||||
{
|
||||
return _macro_count + 1;
|
||||
}
|
||||
|
||||
Macro *Environment::macroAt(unsigned index) const
|
||||
{ return _macros[index]; }
|
||||
{
|
||||
return _macros[index];
|
||||
}
|
||||
|
||||
Macro *Environment::bind(const Macro &__macro)
|
||||
{
|
||||
Q_ASSERT(! __macro.name.isEmpty());
|
||||
QTC_ASSERT(! __macro.name.isEmpty(), return 0);
|
||||
|
||||
Macro *m = new Macro (__macro);
|
||||
m->hashcode = hash_code(m->name);
|
||||
m->fileName = current_file;
|
||||
m->line = currentLine;
|
||||
|
||||
if (++_macro_count == _allocated_macros) {
|
||||
if (! _allocated_macros)
|
||||
@@ -120,6 +125,8 @@ Macro *Environment::remove (const QByteArray &name)
|
||||
Macro macro;
|
||||
macro.name = name;
|
||||
macro.hidden = true;
|
||||
macro.fileName = currentFile;
|
||||
macro.line = currentLine;
|
||||
return bind(macro);
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ private:
|
||||
void rehash();
|
||||
|
||||
public:
|
||||
QByteArray current_file;
|
||||
QByteArray currentFile;
|
||||
unsigned currentLine;
|
||||
bool hide_next;
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last,
|
||||
__result->append(QByteArray::number(env.currentLine));
|
||||
__result->append(' ');
|
||||
__result->append('"');
|
||||
__result->append(env.current_file);
|
||||
__result->append(env.currentFile);
|
||||
__result->append('"');
|
||||
__result->append('\n');
|
||||
++lines;
|
||||
@@ -218,7 +218,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last,
|
||||
else if (fast_name == "__FILE__")
|
||||
{
|
||||
__result->append('"');
|
||||
__result->append(env.current_file);
|
||||
__result->append(env.currentFile);
|
||||
__result->append('"');
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QVector>
|
||||
#include <QString>
|
||||
|
||||
namespace CPlusPlus {
|
||||
|
||||
@@ -89,6 +90,33 @@ public:
|
||||
hashcode(0),
|
||||
state(0)
|
||||
{ }
|
||||
|
||||
QString toString() const
|
||||
{
|
||||
QString text;
|
||||
if (hidden)
|
||||
text += QLatin1String("#undef ");
|
||||
else
|
||||
text += QLatin1String("#define ");
|
||||
text += QString::fromUtf8(name.constData(), name.size());
|
||||
if (function_like) {
|
||||
text += QLatin1Char('(');
|
||||
bool first = true;
|
||||
foreach (const QByteArray formal, formals) {
|
||||
if (! first)
|
||||
text += QLatin1String(", ");
|
||||
else
|
||||
first = false;
|
||||
text += QString::fromUtf8(formal.constData(), formal.size());
|
||||
}
|
||||
if (variadics)
|
||||
text += QLatin1String("...");
|
||||
text += QLatin1Char(')');
|
||||
}
|
||||
text += QLatin1Char(' ');
|
||||
text += QString::fromUtf8(definition.constData(), definition.size());
|
||||
return text;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace CPlusPlus
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "classnamevalidatinglineedit.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QRegExp>
|
||||
|
||||
@@ -53,7 +55,7 @@ ClassNameValidatingLineEditPrivate:: ClassNameValidatingLineEditPrivate() :
|
||||
m_namespaceDelimiter(QLatin1String("::")),
|
||||
m_namespacesEnabled(false)
|
||||
{
|
||||
Q_ASSERT(m_nameRegexp.isValid());
|
||||
QTC_ASSERT(m_nameRegexp.isValid(), return);
|
||||
}
|
||||
|
||||
// --------------------- ClassNameValidatingLineEdit
|
||||
@@ -113,7 +115,7 @@ QString ClassNameValidatingLineEdit::createClassName(const QString &name)
|
||||
// Remove spaces and convert the adjacent characters to uppercase
|
||||
QString className = name;
|
||||
QRegExp spaceMatcher(QLatin1String(" +(\\w)"), Qt::CaseSensitive, QRegExp::RegExp2);
|
||||
Q_ASSERT(spaceMatcher.isValid());
|
||||
QTC_ASSERT(spaceMatcher.isValid(), /**/);
|
||||
int pos;
|
||||
while ((pos = spaceMatcher.indexIn(className)) != -1) {
|
||||
className.replace(pos, spaceMatcher.matchedLength(),
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "filenamevalidatinglineedit.h"
|
||||
#include "qtcassert.h"
|
||||
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QDebug>
|
||||
@@ -46,7 +47,7 @@ static const QRegExp &windowsDeviceNoSubDirPattern()
|
||||
{
|
||||
static const QRegExp rc(QLatin1String("CON|AUX|PRN|COM1|COM2|LPT1|LPT2|NUL"),
|
||||
Qt::CaseInsensitive);
|
||||
Q_ASSERT(rc.isValid());
|
||||
QTC_ASSERT(rc.isValid(), return rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -54,7 +55,7 @@ static const QRegExp &windowsDeviceSubDirPattern()
|
||||
{
|
||||
static const QRegExp rc(QLatin1String(".*[/\\\\]CON|.*[/\\\\]AUX|.*[/\\\\]PRN|.*[/\\\\]COM1|.*[/\\\\]COM2|.*[/\\\\]LPT1|.*[/\\\\]LPT2|.*[/\\\\]NUL"),
|
||||
Qt::CaseInsensitive);
|
||||
Q_ASSERT(rc.isValid());
|
||||
QTC_ASSERT(rc.isValid(), return rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,18 +32,20 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "pathchooser.h"
|
||||
|
||||
#include "basevalidatinglineedit.h"
|
||||
#include "qtcassert.h"
|
||||
|
||||
#include <QtGui/QLineEdit>
|
||||
#include <QtGui/QHBoxLayout>
|
||||
#include <QtGui/QToolButton>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QDesktopServices>
|
||||
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
#include <QtGui/QDesktopServices>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QHBoxLayout>
|
||||
#include <QtGui/QLineEdit>
|
||||
#include <QtGui/QToolButton>
|
||||
|
||||
namespace Core {
|
||||
namespace Utils {
|
||||
@@ -55,7 +57,8 @@ namespace Utils {
|
||||
#endif
|
||||
|
||||
// ------------------ PathValidatingLineEdit
|
||||
class PathValidatingLineEdit : public BaseValidatingLineEdit {
|
||||
class PathValidatingLineEdit : public BaseValidatingLineEdit
|
||||
{
|
||||
public:
|
||||
explicit PathValidatingLineEdit(PathChooser *chooser, QWidget *parent = 0);
|
||||
|
||||
@@ -70,7 +73,7 @@ PathValidatingLineEdit::PathValidatingLineEdit(PathChooser *chooser, QWidget *pa
|
||||
BaseValidatingLineEdit(parent),
|
||||
m_chooser(chooser)
|
||||
{
|
||||
Q_ASSERT(chooser != NULL);
|
||||
QTC_ASSERT(chooser, return);
|
||||
}
|
||||
|
||||
bool PathValidatingLineEdit::validate(const QString &value, QString *errorMessage) const
|
||||
@@ -79,7 +82,8 @@ bool PathValidatingLineEdit::validate(const QString &value, QString *errorMessag
|
||||
}
|
||||
|
||||
// ------------------ PathChooserPrivate
|
||||
struct PathChooserPrivate {
|
||||
struct PathChooserPrivate
|
||||
{
|
||||
PathChooserPrivate(PathChooser *chooser);
|
||||
|
||||
PathValidatingLineEdit *m_lineEdit;
|
||||
@@ -207,17 +211,19 @@ bool PathChooser::validatePath(const QString &path, QString *errorMessage)
|
||||
// Check expected kind
|
||||
switch (m_d->m_acceptingKind) {
|
||||
case PathChooser::Directory:
|
||||
if (!isDir)
|
||||
if (!isDir) {
|
||||
if (errorMessage)
|
||||
*errorMessage = tr("The path '%1' is not a directory.").arg(path);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case PathChooser::File:
|
||||
if (isDir)
|
||||
if (isDir) {
|
||||
if (errorMessage)
|
||||
*errorMessage = tr("The path '%1' is not a file.").arg(path);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case PathChooser::Command:
|
||||
|
||||
@@ -31,16 +31,16 @@
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DEBUGGER_QWB_ASSERT_H
|
||||
#define DEBUGGER_QWB_ASSERT_H
|
||||
#ifndef QTC_ASSERT_H
|
||||
#define QTC_ASSERT_H
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#define QWB_ASSERT(cond, action) \
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
// we do not use the 'do {...} while (0)' idiom here to be able to use
|
||||
// 'break' and 'continue' as 'actions'.
|
||||
|
||||
#define QTC_ASSERT(cond, action) \
|
||||
if(cond){}else{qDebug()<<"ASSERTION"<<#cond<<"FAILED"<<__FILE__<<__LINE__;action;}
|
||||
#else
|
||||
#define QWB_ASSERT(cond, action) \
|
||||
if(cond){}else{qDebug()<<"ASSERTION"<<#cond<<"FAILED";action;}
|
||||
#endif
|
||||
|
||||
#endif // DEBUGGER_QWB_ASSERT_H
|
||||
#endif // QTC_ASSERT_H
|
||||
|
||||
@@ -46,7 +46,8 @@ namespace Utils {
|
||||
|
||||
// QActionPushButton: A push button tied to an action
|
||||
// (similar to a QToolButton)
|
||||
class QActionPushButton : public QPushButton {
|
||||
class QActionPushButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QActionPushButton(QAction *a);
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "bookmarkmanager.h"
|
||||
|
||||
#include "bookmark.h"
|
||||
#include "bookmarksplugin.h"
|
||||
#include "bookmarks_global.h"
|
||||
@@ -41,12 +42,14 @@
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFileInfo>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QContextMenuEvent>
|
||||
#include <QtGui/QPainter>
|
||||
|
||||
Q_DECLARE_METATYPE(Bookmarks::Internal::Bookmark*)
|
||||
|
||||
@@ -272,7 +275,7 @@ void BookmarkView::removeAll()
|
||||
void BookmarkView::setModel(QAbstractItemModel *model)
|
||||
{
|
||||
BookmarkManager *manager = qobject_cast<BookmarkManager *>(model);
|
||||
Q_ASSERT(manager);
|
||||
QTC_ASSERT(manager, return);
|
||||
QListView::setModel(model);
|
||||
setSelectionModel(manager->selectionModel());
|
||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
@@ -32,15 +32,20 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "cmakeproject.h"
|
||||
|
||||
#include "cmakeprojectconstants.h"
|
||||
#include "cmakeprojectnodes.h"
|
||||
#include "cmakerunconfiguration.h"
|
||||
#include "cmakestep.h"
|
||||
#include "makestep.h"
|
||||
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
#include <cpptools/cppmodelmanagerinterface.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QProcess>
|
||||
|
||||
using namespace CMakeProjectManager;
|
||||
using namespace CMakeProjectManager::Internal;
|
||||
@@ -48,20 +53,31 @@ using namespace CMakeProjectManager::Internal;
|
||||
CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
|
||||
: m_manager(manager), m_fileName(fileName), m_rootNode(new CMakeProjectNode(m_fileName))
|
||||
{
|
||||
//TODO
|
||||
|
||||
m_file = new CMakeFile(this, fileName);
|
||||
QDir dir = QFileInfo(m_fileName).absoluteDir();
|
||||
QString cbpFile = findCbpFile(dir);
|
||||
if (cbpFile.isEmpty())
|
||||
cbpFile = createCbpFile(dir);
|
||||
|
||||
//TODO move this parsing to a seperate method, which is also called if the CMakeList.txt is updated
|
||||
CMakeCbpParser cbpparser;
|
||||
if (cbpparser.parseCbpFile(cbpFile)) {
|
||||
// TODO do a intelligent updating of the tree
|
||||
buildTree(m_rootNode, cbpparser.fileList());
|
||||
foreach (ProjectExplorer::FileNode *fn, cbpparser.fileList())
|
||||
m_files.append(fn->path());
|
||||
m_files.sort();
|
||||
|
||||
m_targets = cbpparser.targets();
|
||||
qDebug()<<"Printing targets";
|
||||
foreach(CMakeTarget ct, m_targets) {
|
||||
qDebug()<<ct.title<<" with executable:"<<ct.executable;
|
||||
qDebug()<<"WD:"<<ct.workingDirectory;
|
||||
qDebug()<<ct.makeCommand<<ct.makeCleanCommand;
|
||||
qDebug()<<"";
|
||||
}
|
||||
|
||||
CppTools::CppModelManagerInterface *modelmanager = ExtensionSystem::PluginManager::instance()->getObject<CppTools::CppModelManagerInterface>();
|
||||
if (modelmanager) {
|
||||
CppTools::CppModelManagerInterface::ProjectInfo pinfo = modelmanager->projectInfo(this);
|
||||
@@ -69,6 +85,7 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
|
||||
// TODO we only want C++ files, not all other stuff that might be in the project
|
||||
pinfo.sourceFiles = m_files;
|
||||
// TODO defines
|
||||
// TODO gcc preprocessor files
|
||||
modelmanager->updateProjectInfo(pinfo);
|
||||
}
|
||||
} else {
|
||||
@@ -87,25 +104,27 @@ QString CMakeProject::findCbpFile(const QDir &directory)
|
||||
// TODO the cbp file is named like the project() command in the CMakeList.txt file
|
||||
// so this method below could find the wrong cbp file, if the user changes the project()
|
||||
// name
|
||||
foreach(const QString &cbpFile , directory.entryList())
|
||||
{
|
||||
if (cbpFile.endsWith(".cbp")) {
|
||||
foreach (const QString &cbpFile , directory.entryList()) {
|
||||
if (cbpFile.endsWith(".cbp"))
|
||||
return directory.path() + "/" + cbpFile;
|
||||
}
|
||||
}
|
||||
return QString::null;
|
||||
}
|
||||
|
||||
|
||||
QString CMakeProject::createCbpFile(const QDir &)
|
||||
QString CMakeProject::createCbpFile(const QDir &directory)
|
||||
{
|
||||
// TODO create a cbp file.
|
||||
// Issue: Where to create it? We want to do that in the build directory
|
||||
// but at this stage we don't know the build directory yet
|
||||
// So create it in a temp directory?
|
||||
// Issue: We want to reuse whatever CMakeCache.txt that is alread there, which
|
||||
// would indicate, creating it in the build directory
|
||||
// Or we could use a temp directory and use -C builddirectory
|
||||
// We create a cbp file, only if we didn't find a cbp file in the base directory
|
||||
// Yet that can still override cbp files in subdirectories
|
||||
// And we are creating tons of files in the source directories
|
||||
// All of that is not really nice.
|
||||
// The mid term plan is to move away from the CodeBlocks Generator and use our own
|
||||
// QtCreator generator, which actually can be very similar to the CodeBlock Generator
|
||||
|
||||
// TODO we need to pass on the same paremeters as the cmakestep
|
||||
QProcess cmake;
|
||||
cmake.setWorkingDirectory(directory.absolutePath());
|
||||
cmake.start("cmake", QStringList() << "-GCodeBlocks - Unix Makefiles");
|
||||
|
||||
return QString::null;
|
||||
}
|
||||
|
||||
@@ -227,27 +246,35 @@ QStringList CMakeProject::files(FilesMode fileMode) const
|
||||
void CMakeProject::saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer)
|
||||
{
|
||||
// TODO
|
||||
Q_UNUSED(writer);
|
||||
Project::saveSettingsImpl(writer);
|
||||
}
|
||||
|
||||
void CMakeProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader &reader)
|
||||
{
|
||||
// TODO
|
||||
Q_UNUSED(reader);
|
||||
Project::restoreSettingsImpl(reader);
|
||||
if (buildConfigurations().isEmpty()) {
|
||||
// No build configuration, adding those
|
||||
|
||||
// TODO do we want to create one build configuration per target?
|
||||
// or how do we want to handle that?
|
||||
|
||||
CMakeStep *cmakeStep = new CMakeStep(this);
|
||||
MakeStep *makeStep = new MakeStep(this);
|
||||
|
||||
insertBuildStep(0, cmakeStep);
|
||||
insertBuildStep(1, makeStep);
|
||||
|
||||
addBuildConfiguration("all");
|
||||
// Create build configurations of m_targets
|
||||
qDebug()<<"Create build configurations of m_targets";
|
||||
foreach(const CMakeTarget &ct, m_targets) {
|
||||
addBuildConfiguration(ct.title);
|
||||
makeStep->setValue(ct.title, "makeCommand", ct.makeCommand);
|
||||
makeStep->setValue(ct.title, "makeCleanCommand", ct.makeCleanCommand);
|
||||
|
||||
QSharedPointer<ProjectExplorer::RunConfiguration> rc(new CMakeRunConfiguration(this, ct.executable, ct.workingDirectory));
|
||||
// TODO set build configuration to build before it can be run
|
||||
addRunConfiguration(rc);
|
||||
setActiveRunConfiguration(rc); // TODO what exactly shall be the active run configuration?
|
||||
}
|
||||
setActiveBuildConfiguration("all");
|
||||
|
||||
}
|
||||
// Restoring is fine
|
||||
}
|
||||
@@ -394,14 +421,16 @@ void CMakeCbpParser::parseBuild()
|
||||
|
||||
void CMakeCbpParser::parseTarget()
|
||||
{
|
||||
m_targetOutput.clear();
|
||||
m_targetType = false;
|
||||
m_target.clear();
|
||||
|
||||
if (attributes().hasAttribute("title"))
|
||||
m_target.title = attributes().value("title").toString();
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
if (isEndElement()) {
|
||||
if (m_targetType && !m_targetOutput.isEmpty()) {
|
||||
qDebug()<<"found target "<<m_targetOutput;
|
||||
m_targets.insert(m_targetOutput);
|
||||
if (m_targetType || m_target.title == "all") {
|
||||
m_targets.append(m_target);
|
||||
}
|
||||
return;
|
||||
} else if (name() == "Compiler") {
|
||||
@@ -417,9 +446,57 @@ void CMakeCbpParser::parseTarget()
|
||||
void CMakeCbpParser::parseTargetOption()
|
||||
{
|
||||
if (attributes().hasAttribute("output"))
|
||||
m_targetOutput = attributes().value("output").toString();
|
||||
m_target.executable = attributes().value("output").toString();
|
||||
else if (attributes().hasAttribute("type") && attributes().value("type") == "1")
|
||||
m_targetType = true;
|
||||
else if (attributes().hasAttribute("working_dir"))
|
||||
m_target.workingDirectory = attributes().value("working_dir").toString();
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
if (isEndElement()) {
|
||||
return;
|
||||
} else if (name() == "MakeCommand") {
|
||||
parseMakeCommand();
|
||||
} else if (isStartElement()) {
|
||||
parseUnknownElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CMakeCbpParser::parseMakeCommand()
|
||||
{
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
if (isEndElement()) {
|
||||
return;
|
||||
} else if (name() == "Build") {
|
||||
parseTargetBuild();
|
||||
} else if (name() == "Clean") {
|
||||
parseTargetClean();
|
||||
} else if (isStartElement()) {
|
||||
parseUnknownElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CMakeCbpParser::parseTargetBuild()
|
||||
{
|
||||
if (attributes().hasAttribute("command"))
|
||||
m_target.makeCommand = attributes().value("command").toString();
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
if (isEndElement()) {
|
||||
return;
|
||||
} else if (isStartElement()) {
|
||||
parseUnknownElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CMakeCbpParser::parseTargetClean()
|
||||
{
|
||||
if (attributes().hasAttribute("command"))
|
||||
m_target.makeCleanCommand = attributes().value("command").toString();
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
if (isEndElement()) {
|
||||
@@ -475,7 +552,7 @@ void CMakeCbpParser::parseUnit()
|
||||
|
||||
void CMakeCbpParser::parseUnknownElement()
|
||||
{
|
||||
Q_ASSERT(isStartElement());
|
||||
QTC_ASSERT(isStartElement(), /**/);
|
||||
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
@@ -497,3 +574,18 @@ QStringList CMakeCbpParser::includeFiles()
|
||||
{
|
||||
return m_includeFiles;
|
||||
}
|
||||
|
||||
QList<CMakeTarget> CMakeCbpParser::targets()
|
||||
{
|
||||
return m_targets;
|
||||
}
|
||||
|
||||
void CMakeTarget::clear()
|
||||
{
|
||||
executable = QString::null;
|
||||
makeCommand = QString::null;
|
||||
makeCleanCommand = QString::null;
|
||||
workingDirectory = QString::null;
|
||||
title = QString::null;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,16 @@ namespace Internal{
|
||||
|
||||
class CMakeFile;
|
||||
|
||||
struct CMakeTarget
|
||||
{
|
||||
QString title;
|
||||
QString executable;
|
||||
QString workingDirectory;
|
||||
QString makeCommand;
|
||||
QString makeCleanCommand;
|
||||
void clear();
|
||||
};
|
||||
|
||||
class CMakeProject : public ProjectExplorer::Project
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -105,6 +115,7 @@ private:
|
||||
// TODO probably need a CMake specific node structure
|
||||
CMakeProjectNode* m_rootNode;
|
||||
QStringList m_files;
|
||||
QList<CMakeTarget> m_targets;
|
||||
|
||||
protected:
|
||||
virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
|
||||
@@ -118,23 +129,27 @@ public:
|
||||
bool parseCbpFile(const QString &fileName);
|
||||
QList<ProjectExplorer::FileNode *> fileList();
|
||||
QStringList includeFiles();
|
||||
QList<CMakeTarget> targets();
|
||||
private:
|
||||
void parseCodeBlocks_project_file();
|
||||
void parseProject();
|
||||
void parseBuild();
|
||||
void parseTarget();
|
||||
void parseTargetOption();
|
||||
void parseMakeCommand();
|
||||
void parseTargetBuild();
|
||||
void parseTargetClean();
|
||||
void parseCompiler();
|
||||
void parseAdd();
|
||||
void parseUnit();
|
||||
void parseUnknownElement();
|
||||
|
||||
QSet<QString> m_targets;
|
||||
QList<ProjectExplorer::FileNode *> m_fileList;
|
||||
QStringList m_includeFiles;
|
||||
|
||||
QString m_targetOutput;
|
||||
CMakeTarget m_target;
|
||||
bool m_targetType;
|
||||
QList<CMakeTarget> m_targets;
|
||||
};
|
||||
|
||||
class CMakeFile : public Core::IFile
|
||||
|
||||
@@ -41,6 +41,7 @@ const char * const PROJECTCONTEXT = "CMakeProject.ProjectContext";
|
||||
const char * const CMAKEMIMETYPE = "text/x-cmake"; // TOOD check that this is correct
|
||||
const char * const CMAKESTEP = "CMakeProjectManager.CMakeStep";
|
||||
const char * const MAKESTEP = "CMakeProjectManager.MakeStep";
|
||||
const char * const CMAKERUNCONFIGURATION = "CMakeProjectManager.CMakeRunConfiguration";
|
||||
|
||||
|
||||
} // namespace Constants
|
||||
|
||||
@@ -8,11 +8,13 @@ HEADERS = cmakeproject.h \
|
||||
cmakeprojectconstants.h \
|
||||
cmakeprojectnodes.h \
|
||||
cmakestep.h \
|
||||
makestep.h
|
||||
makestep.h \
|
||||
cmakerunconfiguration.h
|
||||
SOURCES = cmakeproject.cpp \
|
||||
cmakeprojectplugin.cpp \
|
||||
cmakeprojectmanager.cpp \
|
||||
cmakeprojectnodes.cpp \
|
||||
cmakestep.cpp \
|
||||
makestep.cpp
|
||||
makestep.cpp \
|
||||
cmakerunconfiguration.cpp
|
||||
RESOURCES += cmakeproject.qrc
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include "cmakeprojectplugin.h"
|
||||
#include "cmakeprojectmanager.h"
|
||||
#include "cmakerunconfiguration.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
@@ -57,6 +58,7 @@ bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString *
|
||||
if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":cmakeproject/CMakeProject.mimetypes.xml"), errorMessage))
|
||||
return false;
|
||||
addAutoReleasedObject(new CMakeManager());
|
||||
addAutoReleasedObject(new CMakeRunConfigurationFactory());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
157
src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
Normal file
157
src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
Normal file
@@ -0,0 +1,157 @@
|
||||
/***************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
**
|
||||
** Non-Open Source Usage
|
||||
**
|
||||
** Licensees may use this file in accordance with the Qt Beta Version
|
||||
** License Agreement, Agreement version 2.2 provided with the Software or,
|
||||
** alternatively, in accordance with the terms contained in a written
|
||||
** agreement between you and Nokia.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU General
|
||||
** Public License versions 2.0 or 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the packaging
|
||||
** of this file. Please review the following information to ensure GNU
|
||||
** General Public Licensing requirements will be met:
|
||||
**
|
||||
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
|
||||
** http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt GPL Exception
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#include "cmakerunconfiguration.h"
|
||||
|
||||
#include "cmakeproject.h"
|
||||
#include "cmakeprojectconstants.h"
|
||||
|
||||
#include <projectexplorer/environment.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace CMakeProjectManager;
|
||||
using namespace CMakeProjectManager::Internal;
|
||||
|
||||
CMakeRunConfiguration::CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory)
|
||||
: ProjectExplorer::ApplicationRunConfiguration(pro), m_target(target), m_workingDirectory(workingDirectory)
|
||||
{
|
||||
setName(target);
|
||||
}
|
||||
|
||||
CMakeRunConfiguration::~CMakeRunConfiguration()
|
||||
{
|
||||
}
|
||||
|
||||
QString CMakeRunConfiguration::type() const
|
||||
{
|
||||
return Constants::CMAKERUNCONFIGURATION;
|
||||
}
|
||||
|
||||
QString CMakeRunConfiguration::executable() const
|
||||
{
|
||||
return m_target;
|
||||
}
|
||||
|
||||
ProjectExplorer::ApplicationRunConfiguration::RunMode CMakeRunConfiguration::runMode() const
|
||||
{
|
||||
return ProjectExplorer::ApplicationRunConfiguration::Gui;
|
||||
}
|
||||
|
||||
QString CMakeRunConfiguration::workingDirectory() const
|
||||
{
|
||||
return m_workingDirectory;
|
||||
}
|
||||
|
||||
QStringList CMakeRunConfiguration::commandLineArguments() const
|
||||
{
|
||||
// TODO
|
||||
return QStringList();
|
||||
}
|
||||
|
||||
ProjectExplorer::Environment CMakeRunConfiguration::environment() const
|
||||
{
|
||||
// TODO
|
||||
return ProjectExplorer::Environment::systemEnvironment();
|
||||
}
|
||||
|
||||
void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writer) const
|
||||
{
|
||||
ProjectExplorer::ApplicationRunConfiguration::save(writer);
|
||||
}
|
||||
|
||||
void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReader &reader)
|
||||
{
|
||||
ProjectExplorer::ApplicationRunConfiguration::restore(reader);
|
||||
}
|
||||
|
||||
QWidget *CMakeRunConfiguration::configurationWidget()
|
||||
{
|
||||
//TODO
|
||||
return new QWidget();
|
||||
}
|
||||
|
||||
// Factory
|
||||
CMakeRunConfigurationFactory::CMakeRunConfigurationFactory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CMakeRunConfigurationFactory::~CMakeRunConfigurationFactory()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// used to recreate the runConfigurations when restoring settings
|
||||
bool CMakeRunConfigurationFactory::canCreate(const QString &type) const
|
||||
{
|
||||
if (type.startsWith(Constants::CMAKERUNCONFIGURATION))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// used to show the list of possible additons to a project, returns a list of types
|
||||
QStringList CMakeRunConfigurationFactory::canCreate(ProjectExplorer::Project *project) const
|
||||
{
|
||||
CMakeProject *pro = qobject_cast<CMakeProject *>(project);
|
||||
if (!pro)
|
||||
return QStringList();
|
||||
// TODO gather all targets and return them here
|
||||
return QStringList();
|
||||
}
|
||||
|
||||
// used to translate the types to names to display to the user
|
||||
QString CMakeRunConfigurationFactory::nameForType(const QString &type) const
|
||||
{
|
||||
QTC_ASSERT(type.startsWith(Constants::CMAKERUNCONFIGURATION), /**/);
|
||||
|
||||
if (type == Constants::CMAKERUNCONFIGURATION)
|
||||
return "CMake"; // Doesn't happen
|
||||
else
|
||||
return type.mid(QString(Constants::CMAKERUNCONFIGURATION).length());
|
||||
}
|
||||
|
||||
QSharedPointer<ProjectExplorer::RunConfiguration> CMakeRunConfigurationFactory::create(ProjectExplorer::Project *project, const QString &type)
|
||||
{
|
||||
CMakeProject *pro = qobject_cast<CMakeProject *>(project);
|
||||
QTC_ASSERT(pro, /**/);
|
||||
if (type == Constants::CMAKERUNCONFIGURATION) {
|
||||
// Restoring, filename will be added by restoreSettings
|
||||
QSharedPointer<ProjectExplorer::RunConfiguration> rc(new CMakeRunConfiguration(pro, QString::null, QString::null));
|
||||
return rc;
|
||||
} else {
|
||||
// Adding new
|
||||
QString file = type.mid(QString(Constants::CMAKERUNCONFIGURATION).length());
|
||||
QSharedPointer<ProjectExplorer::RunConfiguration> rc(new CMakeRunConfiguration(pro, file, QString::null));
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
93
src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
Normal file
93
src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/***************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
**
|
||||
** Non-Open Source Usage
|
||||
**
|
||||
** Licensees may use this file in accordance with the Qt Beta Version
|
||||
** License Agreement, Agreement version 2.2 provided with the Software or,
|
||||
** alternatively, in accordance with the terms contained in a written
|
||||
** agreement between you and Nokia.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU General
|
||||
** Public License versions 2.0 or 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the packaging
|
||||
** of this file. Please review the following information to ensure GNU
|
||||
** General Public Licensing requirements will be met:
|
||||
**
|
||||
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
|
||||
** http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt GPL Exception
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CMAKERUNCONFIGURATION_H
|
||||
#define CMAKERUNCONFIGURATION_H
|
||||
|
||||
#include <projectexplorer/applicationrunconfiguration.h>
|
||||
#include <projectexplorer/environment.h>
|
||||
#include <projectexplorer/persistentsettings.h>
|
||||
|
||||
namespace CMakeProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
class CMakeProject;
|
||||
|
||||
class CMakeRunConfiguration : public ProjectExplorer::ApplicationRunConfiguration
|
||||
{
|
||||
public:
|
||||
CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory);
|
||||
virtual ~CMakeRunConfiguration();
|
||||
virtual QString type() const;
|
||||
virtual QString executable() const;
|
||||
virtual RunMode runMode() const;
|
||||
virtual QString workingDirectory() const;
|
||||
virtual QStringList commandLineArguments() const;
|
||||
virtual ProjectExplorer::Environment environment() const;
|
||||
virtual QWidget *configurationWidget();
|
||||
|
||||
virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
|
||||
virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
|
||||
private:
|
||||
QString m_target;
|
||||
QString m_workingDirectory;
|
||||
};
|
||||
|
||||
/* The run configuration factory is used for restoring run configurations from
|
||||
* settings. And used to create new runconfigurations in the "Run Settings" Dialog.
|
||||
* For the first case bool canCreate(const QString &type) and
|
||||
* QSharedPointer<RunConfiguration> create(Project *project, QString type) are used.
|
||||
* For the second type the functions QStringList canCreate(Project *pro) and
|
||||
* QString nameForType(const QString&) are used to generate a list of creatable
|
||||
* RunConfigurations, and create(..) is used to create it.
|
||||
*/
|
||||
class CMakeRunConfigurationFactory : public QObject
|
||||
{
|
||||
Q_OBJECT;
|
||||
public:
|
||||
CMakeRunConfigurationFactory();
|
||||
virtual ~CMakeRunConfigurationFactory();
|
||||
// used to recreate the runConfigurations when restoring settings
|
||||
virtual bool canCreate(const QString &type) const;
|
||||
// used to show the list of possible additons to a project, returns a list of types
|
||||
virtual QStringList canCreate(ProjectExplorer::Project *pro) const;
|
||||
// used to translate the types to names to display to the user
|
||||
virtual QString nameForType(const QString &type) const;
|
||||
virtual QSharedPointer<ProjectExplorer::RunConfiguration> create(ProjectExplorer::Project *project, const QString &type);
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // CMAKERUNCONFIGURATION_H
|
||||
@@ -32,8 +32,11 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "cmakestep.h"
|
||||
#include "cmakeprojectconstants.h"
|
||||
|
||||
#include "cmakeproject.h"
|
||||
#include "cmakeprojectconstants.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace CMakeProjectManager;
|
||||
using namespace CMakeProjectManager::Internal;
|
||||
@@ -41,12 +44,10 @@ using namespace CMakeProjectManager::Internal;
|
||||
CMakeStep::CMakeStep(CMakeProject *pro)
|
||||
: AbstractProcessStep(pro), m_pro(pro)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CMakeStep::~CMakeStep()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool CMakeStep::init(const QString &buildConfiguration)
|
||||
@@ -61,6 +62,11 @@ bool CMakeStep::init(const QString &buildConfiguration)
|
||||
|
||||
void CMakeStep::run(QFutureInterface<bool> &fi)
|
||||
{
|
||||
// TODO we want to only run cmake if the command line arguments or
|
||||
// the CmakeLists.txt has actually changed
|
||||
// And we want all of them to share the SAME command line arguments
|
||||
// Shadow building ruins this, hmm, hmm
|
||||
//
|
||||
AbstractProcessStep::run(fi);
|
||||
}
|
||||
|
||||
@@ -109,9 +115,9 @@ bool CMakeBuildStepFactory::canCreate(const QString &name) const
|
||||
|
||||
ProjectExplorer::BuildStep *CMakeBuildStepFactory::create(ProjectExplorer::Project *project, const QString &name) const
|
||||
{
|
||||
Q_ASSERT(name == Constants::CMAKESTEP);
|
||||
QTC_ASSERT(name == Constants::CMAKESTEP, /**/);
|
||||
CMakeProject *pro = qobject_cast<CMakeProject *>(project);
|
||||
Q_ASSERT(pro);
|
||||
QTC_ASSERT(pro, /**/);
|
||||
return new CMakeStep(pro);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,18 +35,18 @@
|
||||
#include "cmakeprojectconstants.h"
|
||||
#include "cmakeproject.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace CMakeProjectManager;
|
||||
using namespace CMakeProjectManager::Internal;
|
||||
|
||||
MakeStep::MakeStep(CMakeProject *pro)
|
||||
: AbstractProcessStep(pro), m_pro(pro)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
MakeStep::~MakeStep()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool MakeStep::init(const QString &buildConfiguration)
|
||||
@@ -109,9 +109,9 @@ bool MakeBuildStepFactory::canCreate(const QString &name) const
|
||||
|
||||
ProjectExplorer::BuildStep *MakeBuildStepFactory::create(ProjectExplorer::Project *project, const QString &name) const
|
||||
{
|
||||
Q_ASSERT(name == Constants::MAKESTEP);
|
||||
QTC_ASSERT(name == Constants::MAKESTEP, return 0);
|
||||
CMakeProject *pro = qobject_cast<CMakeProject *>(project);
|
||||
Q_ASSERT(pro);
|
||||
QTC_ASSERT(pro, return 0);
|
||||
return new MakeStep(pro);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
|
||||
setupUi(this);
|
||||
buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
|
||||
|
||||
splitter->setCollapsible(1, false);
|
||||
pageTree->header()->setVisible(false);
|
||||
|
||||
connect(pageTree, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
||||
@@ -59,7 +60,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
|
||||
|
||||
int index = 0;
|
||||
foreach (IOptionsPage *page, pages) {
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem;
|
||||
item->setText(0, page->name());
|
||||
item->setData(0, Qt::UserRole, index);
|
||||
|
||||
|
||||
@@ -32,15 +32,18 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "editorgroup.h"
|
||||
|
||||
#include "editormanager.h"
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QStyle>
|
||||
#include <QtGui/QStyleOption>
|
||||
#include <QtCore/QtDebug>
|
||||
#ifdef Q_WS_MAC
|
||||
#include <QtGui/QMacStyle>
|
||||
#endif
|
||||
@@ -107,7 +110,7 @@ QVariant EditorModel::data(const QModelIndex &index, int role) const
|
||||
if (!index.isValid())
|
||||
return QVariant();
|
||||
IEditor *editor = m_editors.at(index.row());
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, return QVariant());
|
||||
switch (role) {
|
||||
case Qt::DisplayRole:
|
||||
return editor->file()->isModified()
|
||||
@@ -145,6 +148,7 @@ EditorGroupContext::EditorGroupContext(EditorGroup *editorGroup)
|
||||
m_editorGroup(editorGroup)
|
||||
{
|
||||
}
|
||||
|
||||
QList<int> EditorGroupContext::context() const
|
||||
{
|
||||
return m_context;
|
||||
|
||||
@@ -53,21 +53,23 @@
|
||||
#include <coreplugin/baseview.h>
|
||||
#include <coreplugin/imode.h>
|
||||
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QProcess>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QProcess>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QLayout>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QSplitter>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QLayout>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QSplitter>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Core::Internal;
|
||||
@@ -961,12 +963,11 @@ bool EditorManager::hasEditor(const QString &fileName) const
|
||||
|
||||
void EditorManager::restoreEditorState(IEditor *editor)
|
||||
{
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, return);
|
||||
QString fileName = editor->file()->fileName();
|
||||
if (m_d->m_editorStates.contains(fileName)) {
|
||||
if (m_d->m_editorStates.contains(fileName))
|
||||
editor->restoreState(m_d->m_editorStates.value(fileName).toByteArray());
|
||||
}
|
||||
}
|
||||
|
||||
bool EditorManager::saveEditor(IEditor *editor)
|
||||
{
|
||||
|
||||
@@ -32,16 +32,19 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "editorsplitter.h"
|
||||
|
||||
#include "editormanager.h"
|
||||
#include "minisplitter.h"
|
||||
#include "openeditorswindow.h"
|
||||
#include "stackededitorgroup.h"
|
||||
#include "minisplitter.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtGui/QHBoxLayout>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QApplication>
|
||||
@@ -160,7 +163,7 @@ void EditorSplitter::registerActions()
|
||||
void EditorSplitter::updateActions()
|
||||
{
|
||||
const bool hasMultipleGroups = (qobject_cast<QSplitter*>(m_root) != 0);
|
||||
Q_ASSERT(currentGroup());
|
||||
QTC_ASSERT(currentGroup(), return);
|
||||
const bool hasEditors = (currentGroup()->editorCount() != 0);
|
||||
m_unsplitAction->setEnabled(hasMultipleGroups);
|
||||
#if 0
|
||||
@@ -245,7 +248,7 @@ void EditorSplitter::collectGroups(QWidget *widget, QList<EditorGroup*> &groups)
|
||||
return;
|
||||
}
|
||||
QSplitter *splitter = qobject_cast<QSplitter*>(widget);
|
||||
Q_ASSERT(splitter);
|
||||
QTC_ASSERT(splitter, return);
|
||||
collectGroups(splitter->widget(LEFT), groups);
|
||||
collectGroups(splitter->widget(RIGHT), groups);
|
||||
}
|
||||
@@ -330,7 +333,7 @@ void EditorSplitter::unsplit()
|
||||
if (!curGroup)
|
||||
return;
|
||||
QWidget *curGroupWidget = curGroup->widget();
|
||||
Q_ASSERT(curGroupWidget);
|
||||
QTC_ASSERT(curGroupWidget, return);
|
||||
IEditor *selectedEditor = curGroup->currentEditor();
|
||||
|
||||
QSplitter *parentSplitter = qobject_cast<QSplitter*>(curGroupWidget->parentWidget());
|
||||
@@ -454,25 +457,25 @@ EditorGroup *EditorSplitter::groupFarthestOnSide(QWidget *node, Side side) const
|
||||
void EditorSplitter::selectNextGroup()
|
||||
{
|
||||
EditorGroup *curGroup = currentGroup();
|
||||
Q_ASSERT(curGroup);
|
||||
QTC_ASSERT(curGroup, return);
|
||||
setCurrentGroup(nextGroup(curGroup, RIGHT));
|
||||
}
|
||||
|
||||
void EditorSplitter::selectPreviousGroup()
|
||||
{
|
||||
EditorGroup *curGroup = currentGroup();
|
||||
Q_ASSERT(curGroup);
|
||||
QTC_ASSERT(curGroup, return);
|
||||
setCurrentGroup(nextGroup(curGroup, LEFT));
|
||||
}
|
||||
|
||||
EditorGroup *EditorSplitter::nextGroup(EditorGroup *curGroup, Side side) const
|
||||
{
|
||||
Q_ASSERT(curGroup);
|
||||
QTC_ASSERT(curGroup, return 0);
|
||||
QWidget *curWidget = curGroup->widget();
|
||||
QWidget *parent = curWidget->parentWidget();
|
||||
while (curWidget != m_root) {
|
||||
QSplitter *splitter = qobject_cast<QSplitter *>(parent);
|
||||
Q_ASSERT(splitter);
|
||||
QTC_ASSERT(splitter, return 0);
|
||||
if (splitter->widget(side) != curWidget) {
|
||||
curWidget = splitter->widget(side);
|
||||
break;
|
||||
@@ -486,7 +489,7 @@ EditorGroup *EditorSplitter::nextGroup(EditorGroup *curGroup, Side side) const
|
||||
void EditorSplitter::moveDocToAdjacentGroup(Side side)
|
||||
{
|
||||
EditorGroup *curGroup = currentGroup();
|
||||
Q_ASSERT(curGroup);
|
||||
QTC_ASSERT(curGroup, return);
|
||||
IEditor *editor = curGroup->currentEditor();
|
||||
if (!editor)
|
||||
return;
|
||||
@@ -510,7 +513,7 @@ QWidget *EditorSplitter::recreateGroupTree(QWidget *node)
|
||||
QSplitter *splitter = qobject_cast<QSplitter *>(node);
|
||||
if (!splitter) {
|
||||
EditorGroup *group = qobject_cast<EditorGroup *>(node);
|
||||
Q_ASSERT(group);
|
||||
QTC_ASSERT(group, return 0);
|
||||
IEditor *currentEditor = group->currentEditor();
|
||||
EditorGroup *newGroup = createGroup();
|
||||
bool block = newGroup->widget()->blockSignals(true);
|
||||
@@ -588,7 +591,7 @@ void EditorSplitter::saveState(QWidget *current, QDataStream &stream) const
|
||||
saveState(splitter->widget(1), stream);
|
||||
} else {
|
||||
EditorGroup *group = qobject_cast<EditorGroup *>(current);
|
||||
Q_ASSERT(group);
|
||||
QTC_ASSERT(group, /**/);
|
||||
if (group != currentGroup())
|
||||
type = 1;
|
||||
else
|
||||
@@ -639,7 +642,7 @@ void EditorSplitter::fillPathGroupMap(QWidget *current, QString currentPath,
|
||||
map.insert(currentPath, group);
|
||||
} else {
|
||||
QSplitter *splitter = qobject_cast<QSplitter *>(current);
|
||||
Q_ASSERT(splitter);
|
||||
QTC_ASSERT(splitter, return);
|
||||
fillPathGroupMap(splitter->widget(0), currentPath+"0", map);
|
||||
fillPathGroupMap(splitter->widget(1), currentPath+"1", map);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/filemanager.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtGui/QMenu>
|
||||
@@ -197,7 +198,7 @@ void OpenEditorsWidget::selectEditor(QTreeWidgetItem *item)
|
||||
void OpenEditorsWidget::updateEditor()
|
||||
{
|
||||
IEditor *editor = qobject_cast<IEditor *>(sender());
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, return);
|
||||
int num = m_ui.editorList->topLevelItemCount();
|
||||
for (int i = 0; i < num; ++i) {
|
||||
QTreeWidgetItem *item = m_ui.editorList->topLevelItem(i);
|
||||
|
||||
@@ -35,21 +35,24 @@
|
||||
#include "editormanager.h"
|
||||
#include "coreimpl.h"
|
||||
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QMimeData>
|
||||
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtGui/QHBoxLayout>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QMouseEvent>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QStackedWidget>
|
||||
#include <QtGui/QStyle>
|
||||
#include <QtGui/QStyleOption>
|
||||
#include <QtGui/QMouseEvent>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QToolBar>
|
||||
#include <QtGui/QToolButton>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QStackedWidget>
|
||||
#include <QtDebug>
|
||||
#ifdef Q_WS_MAC
|
||||
#include <qmacstyle_mac.h>
|
||||
#endif
|
||||
@@ -240,7 +243,7 @@ void StackedEditorGroup::sendCloseRequest()
|
||||
|
||||
void StackedEditorGroup::removeEditor(IEditor *editor)
|
||||
{
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, return);
|
||||
EditorGroup::removeEditor(editor);
|
||||
const int index = m_container->indexOf(editor->widget());
|
||||
if (index != -1) {
|
||||
@@ -280,7 +283,7 @@ void StackedEditorGroup::setCurrentEditor(IEditor *editor)
|
||||
return;
|
||||
m_toplevel->setVisible(true);
|
||||
const int idx = m_container->indexOf(editor->widget());
|
||||
Q_ASSERT(idx >= 0);
|
||||
QTC_ASSERT(idx >= 0, return);
|
||||
if (m_container->currentIndex() != idx) {
|
||||
m_container->setCurrentIndex(idx);
|
||||
|
||||
@@ -298,10 +301,11 @@ void StackedEditorGroup::setCurrentEditor(IEditor *editor)
|
||||
}
|
||||
}
|
||||
|
||||
void StackedEditorGroup::updateEditorStatus(IEditor *editor) {
|
||||
void StackedEditorGroup::updateEditorStatus(IEditor *editor)
|
||||
{
|
||||
if (!editor)
|
||||
editor = qobject_cast<IEditor *>(sender());
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, return);
|
||||
|
||||
static const QIcon lockedIcon(QLatin1String(":/qworkbench/images/locked.png"));
|
||||
static const QIcon unlockedIcon(QLatin1String(":/qworkbench/images/unlocked.png"));
|
||||
@@ -371,6 +375,6 @@ int StackedEditorGroup::indexOf(IEditor *editor)
|
||||
if (editor == model->data(model->index(i, 0), Qt::UserRole).value<IEditor*>())
|
||||
return i;
|
||||
}
|
||||
Q_ASSERT(false);
|
||||
QTC_ASSERT(false, /**/);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "filemanager.h"
|
||||
|
||||
#include "ifile.h"
|
||||
#include "mainwindow.h"
|
||||
#include "saveitemsdialog.h"
|
||||
@@ -40,6 +41,8 @@
|
||||
#include "mimedatabase.h"
|
||||
#include "iversioncontrol.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QFileInfo>
|
||||
@@ -177,22 +180,20 @@ bool FileManager::removeFile(IFile *file)
|
||||
|
||||
void FileManager::addWatch(const QString &filename)
|
||||
{
|
||||
if (!filename.isEmpty() && managedFiles(filename).isEmpty()) {
|
||||
if (!filename.isEmpty() && managedFiles(filename).isEmpty())
|
||||
m_fileWatcher->addPath(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void FileManager::removeWatch(const QString &filename)
|
||||
{
|
||||
if (!filename.isEmpty() && managedFiles(filename).isEmpty()) {
|
||||
if (!filename.isEmpty() && managedFiles(filename).isEmpty())
|
||||
m_fileWatcher->removePath(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void FileManager::checkForNewFileName()
|
||||
{
|
||||
IFile *file = qobject_cast<IFile *>(sender());
|
||||
Q_ASSERT(file);
|
||||
QTC_ASSERT(file, return);
|
||||
const QString newfilename = fixFileName(file->fileName());
|
||||
const QString oldfilename = m_managedFiles.value(file).fileName;
|
||||
if (!newfilename.isEmpty() && newfilename != oldfilename) {
|
||||
|
||||
@@ -957,7 +957,8 @@ void MainWindow::resetContext()
|
||||
updateContextObject(0);
|
||||
}
|
||||
|
||||
QMenu *MainWindow::createPopupMenu() {
|
||||
QMenu *MainWindow::createPopupMenu()
|
||||
{
|
||||
QMenu *menu = new QMenu(this);
|
||||
QList<ActionContainer *> containers = m_actionManager->containers();
|
||||
foreach (ActionContainer *c, containers) {
|
||||
|
||||
@@ -33,30 +33,34 @@
|
||||
|
||||
#include "manhattanstyle.h"
|
||||
|
||||
#include <QStyleOption>
|
||||
#include <QPainter>
|
||||
#include <QScrollArea>
|
||||
#include <QMainWindow>
|
||||
#include <QDockWidget>
|
||||
#include <QPixmapCache>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QPixmap>
|
||||
#include <QToolBar>
|
||||
#include <QDialog>
|
||||
#include <QLineEdit>
|
||||
#include <QComboBox>
|
||||
#include <QLibrary>
|
||||
#include <QStatusBar>
|
||||
#include <QApplication>
|
||||
#include <QStyleFactory>
|
||||
#include <QToolButton>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QSplitter>
|
||||
#include <QMenuBar>
|
||||
#include "stylehelper.h"
|
||||
#include "styleanimator.h"
|
||||
#include <qdebug.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QLibrary>
|
||||
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtGui/QDialog>
|
||||
#include <QtGui/QDialogButtonBox>
|
||||
#include <QtGui/QDockWidget>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QLineEdit>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QMenuBar>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QPixmap>
|
||||
#include <QtGui/QPixmapCache>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QScrollArea>
|
||||
#include <QtGui/QSplitter>
|
||||
#include <QtGui/QStatusBar>
|
||||
#include <QtGui/QStyleFactory>
|
||||
#include <QtGui/QStyleOption>
|
||||
#include <QtGui/QToolBar>
|
||||
#include <QtGui/QToolButton>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
// We define a currently unused state for indicating animations
|
||||
#define State_Animating 0x00000040
|
||||
@@ -97,7 +101,7 @@ public:
|
||||
ManhattanStylePrivate(const QString &baseStyleName)
|
||||
{
|
||||
style = QStyleFactory::create(baseStyleName);
|
||||
Q_ASSERT(style);
|
||||
QTC_ASSERT(style, /**/);
|
||||
buttonImage_pressed = QImage(":/qworkbench/images/pushbutton_pressed.png");
|
||||
buttonImage = QImage(":/qworkbench/images/pushbutton.png");
|
||||
|
||||
@@ -105,12 +109,15 @@ public:
|
||||
lineeditImage_disabled = QImage(":/qworkbench/images/inputfield_disabled.png");
|
||||
}
|
||||
|
||||
~ManhattanStylePrivate() {
|
||||
~ManhattanStylePrivate()
|
||||
{
|
||||
delete style;
|
||||
style = 0;
|
||||
}
|
||||
|
||||
void init();
|
||||
|
||||
public:
|
||||
QStyle *style;
|
||||
QImage buttonImage;
|
||||
QImage buttonImage_pressed;
|
||||
|
||||
@@ -33,19 +33,22 @@
|
||||
|
||||
#include "mimedatabase.h"
|
||||
|
||||
#include <QtCore/QStringList>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QLocale>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QMultiHash>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QSharedData>
|
||||
#include <QtCore/QSharedPointer>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QTextStream>
|
||||
#include <QtCore/QLocale>
|
||||
|
||||
#include <QtXml/QXmlStreamReader>
|
||||
|
||||
enum { debugMimeDB = 0 };
|
||||
@@ -574,7 +577,7 @@ BaseMimeTypeParser:: BaseMimeTypeParser() :
|
||||
// "*.log[1-9]"
|
||||
m_suffixPattern(QLatin1String("^\\*\\.[\\w]+$"))
|
||||
{
|
||||
Q_ASSERT(m_suffixPattern.isValid());
|
||||
QTC_ASSERT(m_suffixPattern.isValid(), /**/);
|
||||
}
|
||||
|
||||
void BaseMimeTypeParser::addGlobPattern(const QString &pattern, MimeTypeData *d) const
|
||||
|
||||
@@ -32,11 +32,13 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "modemanager.h"
|
||||
|
||||
#include "fancytabwidget.h"
|
||||
#include "fancyactionbar.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <aggregation/aggregate.h>
|
||||
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
#include <coreplugin/actionmanager/icommand.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
@@ -44,9 +46,12 @@
|
||||
#include <coreplugin/imode.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QSignalMapper>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QTabWidget>
|
||||
#include <QtGui/QVBoxLayout>
|
||||
@@ -225,7 +230,7 @@ void ModeManager::currentTabChanged(int index)
|
||||
void ModeManager::setFocusToCurrentMode()
|
||||
{
|
||||
IMode *mode = currentMode();
|
||||
Q_ASSERT(mode);
|
||||
QTC_ASSERT(mode, return);
|
||||
QWidget *widget = mode->widget();
|
||||
if (widget) {
|
||||
QWidget *focusWidget = widget->focusWidget();
|
||||
|
||||
@@ -40,11 +40,13 @@
|
||||
#include "uniqueidmanager.h"
|
||||
#include "viewmanagerinterface.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Core::Internal;
|
||||
|
||||
ProgressManager::ProgressManager(QObject *parent) :
|
||||
ProgressManagerInterface(parent)
|
||||
ProgressManager::ProgressManager(QObject *parent)
|
||||
: ProgressManagerInterface(parent)
|
||||
{
|
||||
m_progressView = new ProgressView;
|
||||
ICore *core = CoreImpl::instance();
|
||||
@@ -103,7 +105,7 @@ QWidget *ProgressManager::progressView()
|
||||
void ProgressManager::taskFinished()
|
||||
{
|
||||
QObject *taskObject = sender();
|
||||
Q_ASSERT(taskObject);
|
||||
QTC_ASSERT(taskObject, return);
|
||||
QFutureWatcher<void> *task = static_cast<QFutureWatcher<void> *>(taskObject);
|
||||
m_runningTasks.remove(task);
|
||||
delete task;
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "progressview.h"
|
||||
#include "futureprogress.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtGui/QHBoxLayout>
|
||||
|
||||
using namespace Core;
|
||||
@@ -136,7 +138,7 @@ void ProgressView::removeTask(FutureProgress *task)
|
||||
void ProgressView::slotFinished()
|
||||
{
|
||||
FutureProgress *progress = qobject_cast<FutureProgress *>(sender());
|
||||
Q_ASSERT(progress);
|
||||
QTC_ASSERT(progress, return);
|
||||
if (m_keep.contains(progress) && !m_keep.value(progress) && !progress->hasError())
|
||||
removeTask(progress);
|
||||
removeOldTasks(m_type.value(progress), true);
|
||||
|
||||
@@ -38,12 +38,15 @@
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/editormanager/editorgroup.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QStatusBar>
|
||||
#include <QtGui/QToolBar>
|
||||
|
||||
#include <QtScript/QScriptEngine>
|
||||
|
||||
namespace {
|
||||
@@ -107,7 +110,7 @@ QString CorePrototype::toString() const
|
||||
CorePrototype::ICore *CorePrototype::callee() const
|
||||
{
|
||||
ICore *rc = qscriptvalue_cast<ICore *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -121,14 +124,14 @@ MessageManagerPrototype::MessageManagerPrototype(QObject *parent) :
|
||||
void MessageManagerPrototype::displayStatusBarMessage(const QString &text, int ms)
|
||||
{
|
||||
MessageManager *mm = qscriptvalue_cast<MessageManager *>(thisObject());
|
||||
Q_ASSERT(mm);
|
||||
QTC_ASSERT(mm, return);
|
||||
mm->displayStatusBarMessage(text, ms);
|
||||
}
|
||||
|
||||
void MessageManagerPrototype::printToOutputPane(const QString &text, bool bringToForeground)
|
||||
{
|
||||
MessageManager *mm = qscriptvalue_cast<MessageManager *>(thisObject());
|
||||
Q_ASSERT(mm);
|
||||
QTC_ASSERT(mm, return);
|
||||
mm->printToOutputPane(text, bringToForeground);
|
||||
}
|
||||
|
||||
@@ -147,28 +150,66 @@ FileManagerPrototype::FileManagerPrototype(QObject *parent) :
|
||||
FileManager *FileManagerPrototype::callee() const
|
||||
{
|
||||
FileManager *rc = qscriptvalue_cast<FileManager *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
bool FileManagerPrototype::addFiles(const QList<Core::IFile *> &files) { return callee()->addFiles(files); }
|
||||
bool FileManagerPrototype::addFile(Core::IFile *file) { return callee()->addFile(file); }
|
||||
bool FileManagerPrototype::removeFile(Core::IFile *file) { return callee()->removeFile(file); }
|
||||
bool FileManagerPrototype::addFiles(const QList<Core::IFile *> &files)
|
||||
{
|
||||
return callee()->addFiles(files);
|
||||
}
|
||||
|
||||
bool FileManagerPrototype::addFile(Core::IFile *file)
|
||||
{
|
||||
return callee()->addFile(file);
|
||||
}
|
||||
|
||||
bool FileManagerPrototype::removeFile(Core::IFile *file)
|
||||
{
|
||||
return callee()->removeFile(file);
|
||||
}
|
||||
|
||||
QList<Core::IFile*>
|
||||
FileManagerPrototype::saveModifiedFilesSilently(const QList<Core::IFile*> &files) { return callee()->saveModifiedFilesSilently(files); }
|
||||
FileManagerPrototype::saveModifiedFilesSilently(const QList<Core::IFile*> &files)
|
||||
{
|
||||
return callee()->saveModifiedFilesSilently(files);
|
||||
}
|
||||
|
||||
QString FileManagerPrototype::getSaveAsFileName(Core::IFile *file) { return callee()->getSaveAsFileName(file); }
|
||||
QString FileManagerPrototype::getSaveAsFileName(Core::IFile *file)
|
||||
{
|
||||
return callee()->getSaveAsFileName(file);
|
||||
}
|
||||
|
||||
bool FileManagerPrototype::isFileManaged(const QString &fileName) const
|
||||
{
|
||||
return callee()->isFileManaged(fileName);
|
||||
}
|
||||
|
||||
bool FileManagerPrototype::isFileManaged(const QString &fileName) const { return callee()->isFileManaged(fileName); }
|
||||
QList<Core::IFile *>
|
||||
FileManagerPrototype::managedFiles(const QString &fileName) const { return callee()->managedFiles(fileName); }
|
||||
FileManagerPrototype::managedFiles(const QString &fileName) const
|
||||
{
|
||||
return callee()->managedFiles(fileName);
|
||||
}
|
||||
|
||||
void FileManagerPrototype::blockFileChange(Core::IFile *file) { callee()->blockFileChange(file); }
|
||||
void FileManagerPrototype::unblockFileChange(Core::IFile *file) { return callee()->unblockFileChange(file); }
|
||||
void FileManagerPrototype::blockFileChange(Core::IFile *file)
|
||||
{
|
||||
callee()->blockFileChange(file);
|
||||
}
|
||||
|
||||
void FileManagerPrototype::addToRecentFiles(const QString &fileName) { return callee()->addToRecentFiles(fileName); }
|
||||
QStringList FileManagerPrototype::recentFiles() const { return callee()->recentFiles(); }
|
||||
void FileManagerPrototype::unblockFileChange(Core::IFile *file)
|
||||
{
|
||||
return callee()->unblockFileChange(file);
|
||||
}
|
||||
|
||||
void FileManagerPrototype::addToRecentFiles(const QString &fileName)
|
||||
{
|
||||
return callee()->addToRecentFiles(fileName);
|
||||
}
|
||||
|
||||
QStringList FileManagerPrototype::recentFiles() const
|
||||
{
|
||||
return callee()->recentFiles();
|
||||
}
|
||||
|
||||
QString FileManagerPrototype::toString() const
|
||||
{
|
||||
@@ -185,7 +226,7 @@ FilePrototype::FilePrototype(QObject *parent) :
|
||||
IFile *FilePrototype::callee() const
|
||||
{
|
||||
IFile *rc = qscriptvalue_cast<IFile *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -270,39 +311,66 @@ QString EditorManagerPrototype::toString() const
|
||||
EditorManagerPrototype::EditorManager *EditorManagerPrototype::callee() const
|
||||
{
|
||||
EditorManager *rc = qscriptvalue_cast<EditorManager *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
|
||||
}
|
||||
|
||||
// ------------- EditorPrototype
|
||||
|
||||
EditorPrototype::EditorPrototype(QObject *parent) :
|
||||
QObject(parent)
|
||||
EditorPrototype::EditorPrototype(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QString EditorPrototype::displayName() const { return callee()->displayName(); }
|
||||
void EditorPrototype::setDisplayName(const QString &title) { callee()->setDisplayName(title); }
|
||||
QString EditorPrototype::displayName() const
|
||||
{
|
||||
return callee()->displayName();
|
||||
}
|
||||
|
||||
QString EditorPrototype::kind() const { return QLatin1String(callee()->kind()); }
|
||||
bool EditorPrototype::duplicateSupported() const { return callee()->duplicateSupported(); }
|
||||
void EditorPrototype::setDisplayName(const QString &title)
|
||||
{
|
||||
callee()->setDisplayName(title);
|
||||
}
|
||||
|
||||
bool EditorPrototype::createNew(const QString &contents) { return callee()->createNew(contents); }
|
||||
bool EditorPrototype::open(const QString &fileName) { return callee()->open(fileName); }
|
||||
QString EditorPrototype::kind() const
|
||||
{
|
||||
return QLatin1String(callee()->kind());
|
||||
}
|
||||
|
||||
bool EditorPrototype::duplicateSupported() const
|
||||
{
|
||||
return callee()->duplicateSupported();
|
||||
}
|
||||
|
||||
bool EditorPrototype::createNew(const QString &contents)
|
||||
{
|
||||
return callee()->createNew(contents);
|
||||
}
|
||||
|
||||
bool EditorPrototype::open(const QString &fileName)
|
||||
{
|
||||
return callee()->open(fileName);
|
||||
}
|
||||
|
||||
Core::IEditor *EditorPrototype::duplicate(QWidget *parent)
|
||||
{
|
||||
return callee()->duplicate(parent);
|
||||
}
|
||||
|
||||
Core::IFile *EditorPrototype::file() const { return callee()->file(); }
|
||||
QToolBar* EditorPrototype::toolBar() const { return callee()->toolBar();}
|
||||
Core::IFile *EditorPrototype::file() const
|
||||
{
|
||||
return callee()->file();
|
||||
}
|
||||
|
||||
QToolBar* EditorPrototype::toolBar() const
|
||||
{
|
||||
return callee()->toolBar();
|
||||
}
|
||||
|
||||
Core::IEditor *EditorPrototype::callee() const
|
||||
{
|
||||
IEditor *rc = qscriptvalue_cast<IEditor *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -375,7 +443,7 @@ QString EditorGroupPrototype::toString() const
|
||||
Core::EditorGroup *EditorGroupPrototype::callee() const
|
||||
{
|
||||
EditorGroup *rc = qscriptvalue_cast<EditorGroup *>(thisObject());
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,10 @@
|
||||
#include "metatypedeclarations.h"
|
||||
|
||||
#include <extensionsystem/ExtensionSystemInterfaces>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <interface_wrap_helpers.h>
|
||||
#include <wrap_helpers.h>
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
@@ -170,7 +172,7 @@ template <int TAcceptMode, int TFileMode>
|
||||
if (fileDialog.exec() == QDialog::Rejected)
|
||||
return QScriptValue(engine, QScriptValue::NullValue);
|
||||
const QStringList rc = fileDialog.selectedFiles();
|
||||
Q_ASSERT(!rc.empty());
|
||||
QTC_ASSERT(!rc.empty(), /**/);
|
||||
return TFileMode == QFileDialog::ExistingFiles ?
|
||||
engine->toScriptValue(rc) : engine->toScriptValue(rc.front());
|
||||
}
|
||||
@@ -249,7 +251,7 @@ void ScriptManager::ensureEngineInitialized()
|
||||
{
|
||||
if (m_initialized)
|
||||
return;
|
||||
Q_ASSERT(m_core);
|
||||
QTC_ASSERT(m_core, return);
|
||||
// register QObjects that occur as properties
|
||||
SharedTools::registerQObject<QMainWindow>(m_engine);
|
||||
SharedTools::registerQObject<QStatusBar>(m_engine);
|
||||
|
||||
@@ -52,7 +52,8 @@ void Animation::paint(QPainter *painter, const QStyleOption *option)
|
||||
Q_UNUSED(painter);
|
||||
}
|
||||
|
||||
void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) {
|
||||
void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha)
|
||||
{
|
||||
if (_secondaryImage.isNull() || _primaryImage.isNull())
|
||||
return;
|
||||
|
||||
|
||||
@@ -32,21 +32,25 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "versiondialog.h"
|
||||
|
||||
#include "coreconstants.h"
|
||||
#include "coreimpl.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDate>
|
||||
#include <QtCore/QFile>
|
||||
|
||||
#include <QtGui/QDialogButtonBox>
|
||||
#include <QtGui/QGridLayout>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QTextBrowser>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Core::Internal;
|
||||
using namespace Core::Constants;
|
||||
|
||||
#include <QtCore/QDate>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtGui/QGridLayout>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QDialogButtonBox>
|
||||
#include <QtGui/QTextBrowser>
|
||||
|
||||
VersionDialog::VersionDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
@@ -90,7 +94,7 @@ VersionDialog::VersionDialog(QWidget *parent)
|
||||
|
||||
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
|
||||
QPushButton *closeButton = buttonBox->button(QDialogButtonBox::Close);
|
||||
Q_ASSERT(closeButton);
|
||||
QTC_ASSERT(closeButton, /**/);
|
||||
buttonBox->addButton(closeButton, QDialogButtonBox::ButtonRole(QDialogButtonBox::RejectRole | QDialogButtonBox::AcceptRole));
|
||||
connect(buttonBox , SIGNAL(rejected()), this, SLOT(reject()));
|
||||
|
||||
@@ -118,7 +122,7 @@ void VersionDialog::popupLicense()
|
||||
|
||||
// Read file into string
|
||||
ICore * core = CoreImpl::instance();
|
||||
Q_ASSERT(core != NULL);
|
||||
QTC_ASSERT(core, return);
|
||||
QString fileName = core->resourcePath() + "/license.txt";
|
||||
QFile file(fileName);
|
||||
|
||||
|
||||
@@ -36,12 +36,14 @@
|
||||
|
||||
#include <utils/codegeneration.h>
|
||||
#include <utils/newclasswidget.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QTextStream>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
#include <QtGui/QCheckBox>
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QVBoxLayout>
|
||||
#include <QtGui/QWizard>
|
||||
@@ -196,7 +198,7 @@ bool CppClassWizard::generateHeaderAndSource(const CppClassWizardParameters &par
|
||||
<< "\n#define " << guard << '\n' << '\n';
|
||||
|
||||
const QRegExp qtClassExpr(QLatin1String("^Q[A-Z3].+"));
|
||||
Q_ASSERT(qtClassExpr.isValid());
|
||||
QTC_ASSERT(qtClassExpr.isValid(), /**/);
|
||||
const bool superIsQtClass = qtClassExpr.exactMatch(params.baseClass);
|
||||
if (superIsQtClass) {
|
||||
Core::Utils::writeIncludeFileDirective(params.baseClass, true, headerStr);
|
||||
|
||||
@@ -520,6 +520,15 @@ void CPPEditor::jumpToDefinition()
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
foreach (const Document::MacroUse use, doc->macroUses()) {
|
||||
if (use.contains(endOfName - 1)) {
|
||||
const Macro ¯o = use.macro();
|
||||
const QString fileName = QString::fromUtf8(macro.fileName);
|
||||
if (TextEditor::BaseTextEditor::openEditorAt(fileName, macro.line, 0))
|
||||
return; // done
|
||||
}
|
||||
}
|
||||
|
||||
qDebug() << "No results for expression:" << expression;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "cppcodecompletion.h"
|
||||
|
||||
#include "cppmodelmanager.h"
|
||||
|
||||
#include <Control.h>
|
||||
@@ -45,6 +46,7 @@
|
||||
#include <SymbolVisitor.h>
|
||||
#include <Scope.h>
|
||||
#include <TranslationUnit.h>
|
||||
|
||||
#include <cplusplus/ResolveExpression.h>
|
||||
#include <cplusplus/LookupContext.h>
|
||||
#include <cplusplus/Overview.h>
|
||||
@@ -55,6 +57,7 @@
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <texteditor/itexteditor.h>
|
||||
#include <texteditor/itexteditable.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <texteditor/basetexteditor.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
@@ -540,7 +543,7 @@ bool CppCodeCompletion::completeMember(FullySpecifiedType,
|
||||
const QList<TypeOfExpression::Result> &results,
|
||||
const LookupContext &context)
|
||||
{
|
||||
Q_ASSERT(! results.isEmpty());
|
||||
QTC_ASSERT(!results.isEmpty(), return false);
|
||||
|
||||
QList<Symbol *> classObjectCandidates;
|
||||
|
||||
@@ -938,7 +941,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
|
||||
if (m_completionOperator == T_LPAREN) {
|
||||
if (symbol) {
|
||||
Function *function = symbol->type()->asFunction();
|
||||
Q_ASSERT(function != 0);
|
||||
QTC_ASSERT(function, return);
|
||||
|
||||
m_functionArgumentWidget = new FunctionArgumentWidget(m_core);
|
||||
m_functionArgumentWidget->showFunctionHint(function);
|
||||
|
||||
50
src/plugins/cpptools/cppfunctionsfilter.cpp
Normal file
50
src/plugins/cpptools/cppfunctionsfilter.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/***************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
**
|
||||
** Non-Open Source Usage
|
||||
**
|
||||
** Licensees may use this file in accordance with the Qt Beta Version
|
||||
** License Agreement, Agreement version 2.2 provided with the Software or,
|
||||
** alternatively, in accordance with the terms contained in a written
|
||||
** agreement between you and Nokia.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU General
|
||||
** Public License versions 2.0 or 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the packaging
|
||||
** of this file. Please review the following information to ensure GNU
|
||||
** General Public Licensing requirements will be met:
|
||||
**
|
||||
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
|
||||
** http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt GPL Exception
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#include "cppfunctionsfilter.h"
|
||||
|
||||
using namespace CppTools::Internal;
|
||||
|
||||
CppFunctionsFilter::CppFunctionsFilter(CppModelManager *manager, Core::EditorManager *editorManager)
|
||||
: CppQuickOpenFilter(manager, editorManager)
|
||||
{
|
||||
setShortcutString("m");
|
||||
setIncludedByDefault(false);
|
||||
|
||||
search.setSymbolsToSearchFor(SearchSymbols::Functions);
|
||||
search.setSeparateScope(true);
|
||||
}
|
||||
|
||||
CppFunctionsFilter::~CppFunctionsFilter()
|
||||
{
|
||||
}
|
||||
58
src/plugins/cpptools/cppfunctionsfilter.h
Normal file
58
src/plugins/cpptools/cppfunctionsfilter.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/***************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
**
|
||||
** Non-Open Source Usage
|
||||
**
|
||||
** Licensees may use this file in accordance with the Qt Beta Version
|
||||
** License Agreement, Agreement version 2.2 provided with the Software or,
|
||||
** alternatively, in accordance with the terms contained in a written
|
||||
** agreement between you and Nokia.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU General
|
||||
** Public License versions 2.0 or 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the packaging
|
||||
** of this file. Please review the following information to ensure GNU
|
||||
** General Public Licensing requirements will be met:
|
||||
**
|
||||
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
|
||||
** http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt GPL Exception
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CPPFUNCTIONSFILTER_H
|
||||
#define CPPFUNCTIONSFILTER_H
|
||||
|
||||
#include <cppquickopenfilter.h>
|
||||
|
||||
namespace CppTools {
|
||||
namespace Internal {
|
||||
|
||||
class CppFunctionsFilter : public CppQuickOpenFilter
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CppFunctionsFilter(CppModelManager *manager, Core::EditorManager *editorManager);
|
||||
~CppFunctionsFilter();
|
||||
|
||||
QString trName() const { return tr("Methods"); }
|
||||
QString name() const { return QLatin1String("Methods"); }
|
||||
Priority priority() const { return Medium; }
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace CppTools
|
||||
|
||||
#endif // CPPFUNCTIONSFILTER_H
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <texteditor/itexteditor.h>
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <debugger/debuggerconstants.h>
|
||||
|
||||
#include <CoreTypes.h>
|
||||
@@ -51,13 +52,13 @@
|
||||
#include <cplusplus/TypeOfExpression.h>
|
||||
|
||||
#include <QtGui/QToolTip>
|
||||
#include <QtGui/QPlainTextEdit>
|
||||
#include <QtGui/QTextCursor>
|
||||
#include <QtGui/QTextBlock>
|
||||
#include <QtHelp/QHelpEngineCore>
|
||||
#include <QtCore/QtCore>
|
||||
|
||||
using namespace CppTools::Internal;
|
||||
using namespace CPlusPlus;
|
||||
|
||||
CppHoverHandler::CppHoverHandler(CppModelManager *manager, QObject *parent)
|
||||
: QObject(parent), m_manager(manager), m_helpEngineNeedsSetup(false)
|
||||
@@ -104,11 +105,9 @@ void CppHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint
|
||||
}
|
||||
}
|
||||
|
||||
static QString buildHelpId(const CPlusPlus::FullySpecifiedType &type,
|
||||
const CPlusPlus::Symbol *symbol)
|
||||
static QString buildHelpId(const FullySpecifiedType &type,
|
||||
const Symbol *symbol)
|
||||
{
|
||||
using namespace CPlusPlus;
|
||||
|
||||
Name *name = 0;
|
||||
Scope *scope = 0;
|
||||
|
||||
@@ -156,12 +155,10 @@ static QString buildHelpId(const CPlusPlus::FullySpecifiedType &type,
|
||||
|
||||
void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, int pos)
|
||||
{
|
||||
using namespace CPlusPlus;
|
||||
|
||||
m_helpId.clear();
|
||||
m_toolTip.clear();
|
||||
|
||||
QPlainTextEdit *edit = qobject_cast<QPlainTextEdit *>(editor->widget());
|
||||
TextEditor::BaseTextEditor *edit = qobject_cast<TextEditor::BaseTextEditor *>(editor->widget());
|
||||
if (!edit)
|
||||
return;
|
||||
|
||||
@@ -169,8 +166,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
|
||||
tc.setPosition(pos);
|
||||
|
||||
const int lineNumber = tc.block().blockNumber() + 1;
|
||||
|
||||
QString fileName = editor->file()->fileName();
|
||||
const QString fileName = editor->file()->fileName();
|
||||
Document::Ptr doc = m_manager->document(fileName);
|
||||
if (doc) {
|
||||
foreach (Document::DiagnosticMessage m, doc->diagnosticMessages()) {
|
||||
@@ -235,6 +231,16 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
|
||||
}
|
||||
}
|
||||
|
||||
if (doc && m_toolTip.isEmpty()) {
|
||||
foreach (const Document::MacroUse &use, doc->macroUses()) {
|
||||
if (use.contains(pos)) {
|
||||
m_toolTip = use.macro().toString();
|
||||
m_helpId = use.macro().name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m_helpEngineNeedsSetup
|
||||
&& m_helpEngine->registeredDocumentations().count() > 0) {
|
||||
m_helpEngine->setupData();
|
||||
@@ -243,7 +249,8 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
|
||||
|
||||
if (!m_helpId.isEmpty() && !m_helpEngine->linksForIdentifier(m_helpId).isEmpty()) {
|
||||
m_toolTip = QString(QLatin1String("<table><tr><td valign=middle><nobr>%1</td>"
|
||||
"<td><img src=\":/cpptools/images/f1.svg\"></td></tr></table>")).arg(Qt::escape(m_toolTip));
|
||||
"<td><img src=\":/cpptools/images/f1.svg\"></td></tr></table>"))
|
||||
.arg(Qt::escape(m_toolTip));
|
||||
editor->setContextHelpId(m_helpId);
|
||||
} else if (!m_toolTip.isEmpty()) {
|
||||
m_toolTip = QString(QLatin1String("<nobr>%1")).arg(Qt::escape(m_toolTip));
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/progressmanager/progressmanager.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <TranslationUnit.h>
|
||||
#include <Semantic.h>
|
||||
#include <AST.h>
|
||||
@@ -64,10 +66,11 @@
|
||||
#include <Lexer.h>
|
||||
#include <Token.h>
|
||||
|
||||
#include <QPlainTextEdit>
|
||||
#include <QMutexLocker>
|
||||
#include <QTime>
|
||||
#include <QDebug>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QMutexLocker>
|
||||
#include <QtCore/QTime>
|
||||
|
||||
//#include <QtGui/QPlainTextEdit>
|
||||
|
||||
using namespace CppTools;
|
||||
using namespace CppTools::Internal;
|
||||
@@ -299,14 +302,14 @@ void CppPreprocessor::macroAdded(const Macro ¯o)
|
||||
}
|
||||
|
||||
void CppPreprocessor::startExpandingMacro(unsigned offset,
|
||||
const Macro &,
|
||||
const Macro ¯o,
|
||||
const QByteArray &originalText)
|
||||
{
|
||||
if (! m_currentDoc)
|
||||
return;
|
||||
|
||||
//qDebug() << "start expanding:" << macro.name << "text:" << originalText;
|
||||
m_currentDoc->addMacroUse(offset, originalText.length());
|
||||
m_currentDoc->addMacroUse(macro, offset, originalText.length());
|
||||
}
|
||||
|
||||
void CppPreprocessor::stopExpandingMacro(unsigned, const Macro &)
|
||||
@@ -387,17 +390,17 @@ void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type)
|
||||
} else {
|
||||
Document::Ptr previousDoc = switchDocument(Document::create(fileName));
|
||||
|
||||
const QByteArray previousFile = env.current_file;
|
||||
const QByteArray previousFile = env.currentFile;
|
||||
const unsigned previousLine = env.currentLine;
|
||||
|
||||
env.current_file = QByteArray(m_currentDoc->translationUnit()->fileName(),
|
||||
env.currentFile = QByteArray(m_currentDoc->translationUnit()->fileName(),
|
||||
m_currentDoc->translationUnit()->fileNameLength());
|
||||
|
||||
QByteArray preprocessedCode;
|
||||
m_proc(contents, &preprocessedCode);
|
||||
//qDebug() << preprocessedCode;
|
||||
|
||||
env.current_file = previousFile;
|
||||
env.currentFile = previousFile;
|
||||
env.currentLine = previousLine;
|
||||
|
||||
m_currentDoc->setSource(preprocessedCode);
|
||||
@@ -439,10 +442,10 @@ CppModelManager::CppModelManager(QObject *parent) :
|
||||
m_projectExplorer = ExtensionSystem::PluginManager::instance()
|
||||
->getObject<ProjectExplorer::ProjectExplorerPlugin>();
|
||||
|
||||
Q_ASSERT(m_projectExplorer);
|
||||
QTC_ASSERT(m_projectExplorer, return);
|
||||
|
||||
ProjectExplorer::SessionManager *session = m_projectExplorer->session();
|
||||
Q_ASSERT(session != 0);
|
||||
QTC_ASSERT(session, return);
|
||||
|
||||
connect(session, SIGNAL(projectAdded(ProjectExplorer::Project*)),
|
||||
this, SLOT(onProjectAdded(ProjectExplorer::Project*)));
|
||||
@@ -626,7 +629,7 @@ void CppModelManager::editorOpened(Core::IEditor *editor)
|
||||
{
|
||||
if (isCppEditor(editor)) {
|
||||
TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor *>(editor);
|
||||
Q_ASSERT(textEditor != 0);
|
||||
QTC_ASSERT(textEditor, return);
|
||||
|
||||
CppEditorSupport *editorSupport = new CppEditorSupport(this);
|
||||
editorSupport->setTextEditor(textEditor);
|
||||
@@ -646,7 +649,7 @@ void CppModelManager::editorAboutToClose(Core::IEditor *editor)
|
||||
{
|
||||
if (isCppEditor(editor)) {
|
||||
TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor *>(editor);
|
||||
Q_ASSERT(textEditor != 0);
|
||||
QTC_ASSERT(textEditor, return);
|
||||
|
||||
CppEditorSupport *editorSupport = m_editorSupport.value(textEditor);
|
||||
m_editorSupport.remove(textEditor);
|
||||
@@ -785,7 +788,7 @@ void CppModelManager::parse(QFutureInterface<void> &future,
|
||||
CppPreprocessor *preproc,
|
||||
QStringList files)
|
||||
{
|
||||
Q_ASSERT(! files.isEmpty());
|
||||
QTC_ASSERT(!files.isEmpty(), return);
|
||||
|
||||
// Change the priority of the background parser thread to idle.
|
||||
QThread::currentThread()->setPriority(QThread::IdlePriority);
|
||||
|
||||
@@ -75,6 +75,12 @@ void CppQuickOpenFilter::refresh(QFutureInterface<void> &future)
|
||||
Q_UNUSED(future);
|
||||
}
|
||||
|
||||
static bool compareLexigraphically(const QuickOpen::FilterEntry &a,
|
||||
const QuickOpen::FilterEntry &b)
|
||||
{
|
||||
return a.displayName < b.displayName;
|
||||
}
|
||||
|
||||
QList<QuickOpen::FilterEntry> CppQuickOpenFilter::matchesFor(const QString &origEntry)
|
||||
{
|
||||
QString entry = trimWildcards(origEntry);
|
||||
@@ -109,6 +115,9 @@ QList<QuickOpen::FilterEntry> CppQuickOpenFilter::matchesFor(const QString &orig
|
||||
}
|
||||
}
|
||||
|
||||
if (entries.size() < 1000)
|
||||
qSort(entries.begin(), entries.end(), compareLexigraphically);
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "cpptools.h"
|
||||
#include "cppclassesfilter.h"
|
||||
#include "cppcodecompletion.h"
|
||||
#include "cppfunctionsfilter.h"
|
||||
#include "cpphoverhandler.h"
|
||||
#include "cppmodelmanager.h"
|
||||
#include "cpptoolsconstants.h"
|
||||
@@ -89,6 +90,7 @@ bool CppToolsPlugin::initialize(const QStringList & /*arguments*/, QString *)
|
||||
m_core->editorManager());
|
||||
addAutoReleasedObject(quickOpenFilter);
|
||||
addAutoReleasedObject(new CppClassesFilter(m_modelManager, m_core->editorManager()));
|
||||
addAutoReleasedObject(new CppFunctionsFilter(m_modelManager, m_core->editorManager()));
|
||||
|
||||
// Menus
|
||||
Core::IActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS);
|
||||
|
||||
@@ -10,15 +10,16 @@ unix:QMAKE_CXXFLAGS_DEBUG += -O3
|
||||
INCLUDEPATH += .
|
||||
DEFINES += CPPTOOLS_LIBRARY
|
||||
CONFIG += help
|
||||
|
||||
HEADERS += cpptools_global.h \
|
||||
cppquickopenfilter.h \
|
||||
cppclassesfilter.h \
|
||||
searchsymbols.h
|
||||
searchsymbols.h \
|
||||
cppfunctionsfilter.h
|
||||
SOURCES += cppquickopenfilter.cpp \
|
||||
cpptoolseditorsupport.cpp \
|
||||
cppclassesfilter.cpp \
|
||||
searchsymbols.cpp
|
||||
searchsymbols.cpp \
|
||||
cppfunctionsfilter.cpp
|
||||
|
||||
# Input
|
||||
SOURCES += cpptools.cpp \
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#include <Literals.h>
|
||||
#include <Scope.h>
|
||||
#include <Names.h>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
using namespace CppTools::Internal;
|
||||
@@ -97,12 +98,24 @@ bool SearchSymbols::visit(Function *symbol)
|
||||
if (!(symbolsToSearchFor & Functions))
|
||||
return false;
|
||||
|
||||
QString extraScope;
|
||||
if (Name *name = symbol->name()) {
|
||||
if (QualifiedNameId *nameId = name->asQualifiedNameId()) {
|
||||
if (nameId->nameCount() > 1) {
|
||||
extraScope = overview.prettyName(nameId->nameAt(nameId->nameCount() - 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
QString fullScope = _scope;
|
||||
if (!_scope.isEmpty() && !extraScope.isEmpty())
|
||||
fullScope += QLatin1String("::");
|
||||
fullScope += extraScope;
|
||||
QString name = symbolName(symbol);
|
||||
QString scopedName = scopedSymbolName(name);
|
||||
QString type = overview.prettyType(symbol->type(),
|
||||
separateScope ? symbol->name() : 0);
|
||||
separateScope ? symbol->identity() : 0);
|
||||
appendItem(separateScope ? type : scopedName,
|
||||
separateScope ? _scope : type,
|
||||
separateScope ? fullScope : type,
|
||||
ModelItemInfo::Method, symbol);
|
||||
return false;
|
||||
}
|
||||
@@ -196,6 +209,9 @@ void SearchSymbols::appendItem(const QString &name,
|
||||
ModelItemInfo::ItemType type,
|
||||
const Symbol *symbol)
|
||||
{
|
||||
if (!symbol->name())
|
||||
return;
|
||||
|
||||
const QIcon icon = icons.iconForSymbol(symbol);
|
||||
items.append(ModelItemInfo(name, info, type,
|
||||
QString::fromUtf8(symbol->fileName(), symbol->fileNameLength()),
|
||||
|
||||
@@ -152,7 +152,6 @@ void AttachExternalDialog::rebuildProcessList()
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
|
||||
// Forward declarations:
|
||||
BOOL GetProcessList();
|
||||
BOOL ListProcessModules(DWORD dwPID);
|
||||
BOOL ListProcessThreads(DWORD dwOwnerPID);
|
||||
@@ -220,7 +219,7 @@ BOOL GetProcessList( )
|
||||
} while (Process32Next(hProcessSnap, &pe32));
|
||||
|
||||
CloseHandle(hProcessSnap);
|
||||
return( TRUE );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -231,10 +230,9 @@ BOOL ListProcessModules( DWORD dwPID )
|
||||
|
||||
// Take a snapshot of all modules in the specified process.
|
||||
hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID );
|
||||
if( hModuleSnap == INVALID_HANDLE_VALUE )
|
||||
{
|
||||
if (hModuleSnap == INVALID_HANDLE_VALUE) {
|
||||
printError(TEXT("CreateToolhelp32Snapshot (of modules)"));
|
||||
return( FALSE );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Set the size of the structure before using it.
|
||||
@@ -264,7 +262,7 @@ BOOL ListProcessModules( DWORD dwPID )
|
||||
} while (Module32Next(hModuleSnap, &me32));
|
||||
|
||||
CloseHandle(hModuleSnap);
|
||||
return( TRUE );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ListProcessThreads( DWORD dwOwnerPID )
|
||||
@@ -320,10 +318,12 @@ void printError( TCHAR* msg )
|
||||
|
||||
// Trim the end of the line and terminate it with a null
|
||||
p = sysMsg;
|
||||
while( ( *p > 31 ) || ( *p == 9 ) )
|
||||
while (*p > 31 || *p == 9 )
|
||||
++p;
|
||||
do { *p-- = 0; } while( ( p >= sysMsg ) &&
|
||||
( ( *p == '.' ) || ( *p < 33 ) ) );
|
||||
|
||||
do {
|
||||
*p-- = 0;
|
||||
} while( p >= sysMsg && (*p == '.' || *p < 33));
|
||||
|
||||
// Display the message
|
||||
_tprintf( TEXT("\n WARNING: %s failed with error %d (%s)"), msg, eNum, sysMsg );
|
||||
@@ -331,7 +331,6 @@ void printError( TCHAR* msg )
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void AttachExternalDialog::procSelected(const QModelIndex &index0)
|
||||
{
|
||||
QModelIndex index = index0.sibling(index0.row(), 0);
|
||||
|
||||
@@ -33,9 +33,10 @@
|
||||
|
||||
#include "breakhandler.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "imports.h" // TextEditor::BaseTextMark
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFileInfo>
|
||||
|
||||
@@ -371,7 +372,7 @@ QVariant BreakHandler::data(const QModelIndex &mi, int role) const
|
||||
static const QIcon icon2(":/gdbdebugger/images/breakpoint_pending.svg");
|
||||
static const QString empty = QString(QLatin1Char('-'));
|
||||
|
||||
QWB_ASSERT(mi.isValid(), return QVariant());
|
||||
QTC_ASSERT(mi.isValid(), return QVariant());
|
||||
|
||||
if (mi.row() >= size())
|
||||
return QVariant();
|
||||
@@ -550,7 +551,7 @@ void BreakHandler::breakByFunction(const QString &functionName)
|
||||
// One per function is enough for now
|
||||
for (int index = size(); --index >= 0;) {
|
||||
const BreakpointData *data = at(index);
|
||||
QWB_ASSERT(data, break);
|
||||
QTC_ASSERT(data, break);
|
||||
if (data->funcName == functionName && data->condition.isEmpty()
|
||||
&& data->ignoreCount.isEmpty())
|
||||
return;
|
||||
|
||||
@@ -13,8 +13,7 @@ include(../../libs/cplusplus/cplusplus.pri)
|
||||
# DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
|
||||
QT += gui network script
|
||||
|
||||
HEADERS += assert.h \
|
||||
attachexternaldialog.h \
|
||||
HEADERS += attachexternaldialog.h \
|
||||
attachremotedialog.h \
|
||||
breakhandler.h \
|
||||
breakwindow.h \
|
||||
|
||||
@@ -352,6 +352,15 @@ void DebuggerManager::init()
|
||||
m_useFastStartAction->setCheckable(true);
|
||||
m_useFastStartAction->setChecked(true);
|
||||
|
||||
m_useToolTipsAction = new QAction(this);
|
||||
m_useToolTipsAction->setText(tr("Use Tooltips While Debugging"));
|
||||
m_useToolTipsAction->setToolTip(tr("Checking this will make enable "
|
||||
"tooltips for variable values during debugging. Since this can slow "
|
||||
"down debugging and does not provide reliable information as it does "
|
||||
"not use scope information, it is switched off by default."));
|
||||
m_useToolTipsAction->setCheckable(true);
|
||||
m_useToolTipsAction->setChecked(false);
|
||||
|
||||
// FIXME
|
||||
m_useFastStartAction->setChecked(false);
|
||||
m_useFastStartAction->setEnabled(false);
|
||||
@@ -943,6 +952,8 @@ void DebuggerManager::loadSessionData()
|
||||
QVariant value;
|
||||
querySessionValue(QLatin1String("UseFastStart"), &value);
|
||||
m_useFastStartAction->setChecked(value.toBool());
|
||||
querySessionValue(QLatin1String("UseToolTips"), &value);
|
||||
m_useToolTipsAction->setChecked(value.toBool());
|
||||
querySessionValue(QLatin1String("UseCustomDumpers"), &value);
|
||||
m_useCustomDumpersAction->setChecked(!value.isValid() || value.toBool());
|
||||
querySessionValue(QLatin1String("SkipKnownFrames"), &value);
|
||||
@@ -956,6 +967,8 @@ void DebuggerManager::saveSessionData()
|
||||
|
||||
setSessionValue(QLatin1String("UseFastStart"),
|
||||
m_useFastStartAction->isChecked());
|
||||
setSessionValue(QLatin1String("UseToolTips"),
|
||||
m_useToolTipsAction->isChecked());
|
||||
setSessionValue(QLatin1String("UseCustomDumpers"),
|
||||
m_useCustomDumpersAction->isChecked());
|
||||
setSessionValue(QLatin1String("SkipKnownFrames"),
|
||||
|
||||
@@ -308,6 +308,7 @@ private:
|
||||
ThreadsHandler *threadsHandler() { return m_threadsHandler; }
|
||||
WatchHandler *watchHandler() { return m_watchHandler; }
|
||||
QAction *useCustomDumpersAction() const { return m_useCustomDumpersAction; }
|
||||
QAction *useToolTipsAction() const { return m_useToolTipsAction; }
|
||||
QAction *debugDumpersAction() const { return m_debugDumpersAction; }
|
||||
bool skipKnownFrames() const;
|
||||
bool debugDumpers() const;
|
||||
@@ -431,6 +432,7 @@ private:
|
||||
QAction *m_debugDumpersAction;
|
||||
QAction *m_useCustomDumpersAction;
|
||||
QAction *m_useFastStartAction;
|
||||
QAction *m_useToolTipsAction;
|
||||
QAction *m_dumpLogAction;
|
||||
|
||||
QWidget *m_breakWindow;
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "debuggerplugin.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "debuggerconstants.h"
|
||||
#include "debuggermanager.h"
|
||||
#include "debuggerrunner.h"
|
||||
@@ -48,20 +47,27 @@
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/modemanager.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
|
||||
#include <cplusplus/ExpressionUnderCursor.h>
|
||||
|
||||
#include <cppeditor/cppeditorconstants.h>
|
||||
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/session.h>
|
||||
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <texteditor/basetextmark.h>
|
||||
#include <texteditor/itexteditor.h>
|
||||
#include <texteditor/texteditorconstants.h>
|
||||
#include <texteditor/basetexteditor.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/qplugin.h>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QPoint>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
#include <QtGui/QPlainTextEdit>
|
||||
#include <QtGui/QTextBlock>
|
||||
#include <QtGui/QTextCursor>
|
||||
@@ -91,6 +97,7 @@ const char * const DEBUG_DUMPERS = "Debugger.DebugDumpers";
|
||||
const char * const ADD_TO_WATCH = "Debugger.AddToWatch";
|
||||
const char * const USE_CUSTOM_DUMPERS = "Debugger.UseCustomDumpers";
|
||||
const char * const USE_FAST_START = "Debugger.UseFastStart";
|
||||
const char * const USE_TOOL_TIPS = "Debugger.UseToolTips";
|
||||
const char * const SKIP_KNOWN_FRAMES = "Debugger.SkipKnownFrames";
|
||||
const char * const DUMP_LOG = "Debugger.DumpLog";
|
||||
|
||||
@@ -188,7 +195,7 @@ void DebuggerPlugin::shutdown()
|
||||
{
|
||||
if (m_debugMode)
|
||||
m_debugMode->shutdown(); // saves state including manager information
|
||||
QWB_ASSERT(m_manager, /**/);
|
||||
QTC_ASSERT(m_manager, /**/);
|
||||
if (m_manager)
|
||||
m_manager->shutdown();
|
||||
|
||||
@@ -225,13 +232,13 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *error_mes
|
||||
m_pm = ExtensionSystem::PluginManager::instance();
|
||||
|
||||
ICore *core = m_pm->getObject<Core::ICore>();
|
||||
QWB_ASSERT(core, return false);
|
||||
QTC_ASSERT(core, return false);
|
||||
|
||||
Core::ActionManagerInterface *actionManager = core->actionManager();
|
||||
QWB_ASSERT(actionManager, return false);
|
||||
QTC_ASSERT(actionManager, return false);
|
||||
|
||||
Core::UniqueIDManager *uidm = core->uniqueIDManager();
|
||||
QWB_ASSERT(uidm, return false);
|
||||
QTC_ASSERT(uidm, return false);
|
||||
|
||||
QList<int> globalcontext;
|
||||
globalcontext << Core::Constants::C_GLOBAL_ID;
|
||||
@@ -374,13 +381,17 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *error_mes
|
||||
Constants::USE_FAST_START, globalcontext);
|
||||
mdebug->addAction(cmd);
|
||||
|
||||
cmd = actionManager->registerAction(m_manager->m_useToolTipsAction,
|
||||
Constants::USE_TOOL_TIPS, globalcontext);
|
||||
mdebug->addAction(cmd);
|
||||
|
||||
#ifdef QT_DEBUG
|
||||
cmd = actionManager->registerAction(m_manager->m_dumpLogAction,
|
||||
Constants::DUMP_LOG, globalcontext);
|
||||
//cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+D,Ctrl+L")));
|
||||
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+F11")));
|
||||
mdebug->addAction(cmd);
|
||||
|
||||
#ifdef QT_DEBUG
|
||||
cmd = actionManager->registerAction(m_manager->m_debugDumpersAction,
|
||||
Constants::DEBUG_DUMPERS, debuggercontext);
|
||||
mdebug->addAction(cmd);
|
||||
@@ -549,6 +560,9 @@ void DebuggerPlugin::requestMark(TextEditor::ITextEditor *editor, int lineNumber
|
||||
void DebuggerPlugin::showToolTip(TextEditor::ITextEditor *editor,
|
||||
const QPoint &point, int pos)
|
||||
{
|
||||
if (!m_manager->useToolTipsAction()->isChecked())
|
||||
return;
|
||||
|
||||
QPlainTextEdit *plaintext = qobject_cast<QPlainTextEdit*>(editor->widget());
|
||||
if (!plaintext)
|
||||
return;
|
||||
@@ -590,13 +604,13 @@ void DebuggerPlugin::querySessionValue(const QString &name, QVariant *value)
|
||||
|
||||
void DebuggerPlugin::setConfigValue(const QString &name, const QVariant &value)
|
||||
{
|
||||
QWB_ASSERT(m_debugMode, return);
|
||||
QTC_ASSERT(m_debugMode, return);
|
||||
m_debugMode->settings()->setValue(name, value);
|
||||
}
|
||||
|
||||
void DebuggerPlugin::queryConfigValue(const QString &name, QVariant *value)
|
||||
{
|
||||
QWB_ASSERT(m_debugMode, return);
|
||||
QTC_ASSERT(m_debugMode, return);
|
||||
*value = m_debugMode->settings()->value(name);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "debuggerrunner.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "debuggermanager.h"
|
||||
|
||||
#include <projectexplorer/applicationrunconfiguration.h>
|
||||
@@ -41,9 +40,12 @@
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
|
||||
#include <QtGui/QTextDocument>
|
||||
|
||||
using namespace Debugger::Internal;
|
||||
@@ -76,11 +78,10 @@ QString DebuggerRunner::displayName() const
|
||||
|
||||
RunControl* DebuggerRunner::run(RunConfigurationPtr runConfiguration, const QString &mode)
|
||||
{
|
||||
Q_UNUSED(mode);
|
||||
Q_ASSERT(mode == ProjectExplorer::Constants::DEBUGMODE);
|
||||
QTC_ASSERT(mode == ProjectExplorer::Constants::DEBUGMODE, return 0);
|
||||
ApplicationRunConfigurationPtr rc =
|
||||
qSharedPointerCast<ApplicationRunConfiguration>(runConfiguration);
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
//qDebug() << "***** Debugging" << rc->name() << rc->executable();
|
||||
return new DebuggerRunControl(m_manager, rc);
|
||||
}
|
||||
@@ -118,9 +119,9 @@ void DebuggerRunControl::start()
|
||||
m_running = true;
|
||||
ApplicationRunConfigurationPtr rc =
|
||||
qSharedPointerCast<ApplicationRunConfiguration>(runConfiguration());
|
||||
QWB_ASSERT(rc, return);
|
||||
QTC_ASSERT(rc, return);
|
||||
ProjectExplorer::Project *project = rc->project();
|
||||
QWB_ASSERT(project, return);
|
||||
QTC_ASSERT(project, return);
|
||||
|
||||
m_manager->m_executable = rc->executable();
|
||||
m_manager->m_environment = rc->environment().toStringList();
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "gdbengine.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "debuggerconstants.h"
|
||||
#include "debuggermanager.h"
|
||||
#include "gdbmi.h"
|
||||
@@ -49,6 +48,8 @@
|
||||
#include "startexternaldialog.h"
|
||||
#include "attachexternaldialog.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
@@ -278,25 +279,8 @@ void GdbEngine::init()
|
||||
connect(&m_gdbProc, SIGNAL(finished(int, QProcess::ExitStatus)), q,
|
||||
SLOT(exitDebugger()));
|
||||
|
||||
// Custom dumpers
|
||||
//m_dumperServerConnection = 0;
|
||||
//m_dumperServer = new DumperServer(this);
|
||||
//QString name = "gdb-" +
|
||||
// QDateTime::currentDateTime().toString("yyyy_MM_dd-hh_mm_ss_zzz");
|
||||
//m_dumperServer->listen(name);
|
||||
//connect(m_dumperServer, SIGNAL(newConnection()),
|
||||
// this, SLOT(acceptConnection()));
|
||||
|
||||
//if (!m_dumperServer->isListening()) {
|
||||
// QMessageBox::critical(q->mainWindow(), tr("Dumper Server Setup Failed"),
|
||||
// tr("Unable to create server listening for data: %1.\n"
|
||||
// "Server name: %2").arg(m_dumperServer->errorString(), name),
|
||||
// QMessageBox::Retry | QMessageBox::Cancel);
|
||||
// }
|
||||
|
||||
connect(qq->debugDumpersAction(), SIGNAL(toggled(bool)),
|
||||
this, SLOT(setDebugDumpers(bool)));
|
||||
|
||||
connect(qq->useCustomDumpersAction(), SIGNAL(toggled(bool)),
|
||||
this, SLOT(setCustomDumpersWanted(bool)));
|
||||
|
||||
@@ -442,8 +426,7 @@ void GdbEngine::handleResponse()
|
||||
break;
|
||||
}
|
||||
|
||||
if (token == -1 && *from != '&' && *from != '~' && *from != '*'
|
||||
&& *from != '=') {
|
||||
if (token == -1 && *from != '&' && *from != '~' && *from != '*') {
|
||||
// FIXME: On Linux the application's std::out is merged in here.
|
||||
// High risk of falsely interpreting this as MI output.
|
||||
// We assume that we _always_ use tokens, so not finding a token
|
||||
@@ -452,7 +435,7 @@ void GdbEngine::handleResponse()
|
||||
while (from != to && *from != '\n')
|
||||
s += *from++;
|
||||
//qDebug() << "UNREQUESTED DATA " << s << " TAKEN AS APPLICATION OUTPUT";
|
||||
s += '\n';
|
||||
//s += '\n';
|
||||
|
||||
m_inbuffer = QByteArray(from, to - from);
|
||||
emit applicationOutputAvailable("app-stdout: ", s);
|
||||
@@ -648,7 +631,7 @@ void GdbEngine::readGdbStandardOutput()
|
||||
#endif
|
||||
|
||||
m_inbuffer.append(out);
|
||||
//QWB_ASSERT(!m_inbuffer.isEmpty(), return);
|
||||
//QTC_ASSERT(!m_inbuffer.isEmpty(), return);
|
||||
|
||||
char c = m_inbuffer[m_inbuffer.size() - 1];
|
||||
static const QByteArray termArray("(gdb) ");
|
||||
@@ -1416,7 +1399,7 @@ void GdbEngine::handleFileExecAndSymbols
|
||||
QString msg = response.data.findChild("msg").data();
|
||||
QMessageBox::critical(q->mainWindow(), tr("Error"),
|
||||
tr("Starting executable failed:\n") + msg);
|
||||
QWB_ASSERT(q->status() == DebuggerInferiorRunning, /**/);
|
||||
QTC_ASSERT(q->status() == DebuggerInferiorRunning, /**/);
|
||||
interruptInferior();
|
||||
}
|
||||
}
|
||||
@@ -1437,7 +1420,7 @@ void GdbEngine::handleExecRun(const GdbResultRecord &response)
|
||||
} else {
|
||||
QMessageBox::critical(q->mainWindow(), tr("Error"),
|
||||
tr("Starting executable failed:\n") + msg);
|
||||
QWB_ASSERT(q->status() == DebuggerInferiorRunning, /**/);
|
||||
QTC_ASSERT(q->status() == DebuggerInferiorRunning, /**/);
|
||||
interruptInferior();
|
||||
}
|
||||
}
|
||||
@@ -2432,7 +2415,7 @@ void GdbEngine::selectThread(int index)
|
||||
threadsHandler->setCurrentThread(index);
|
||||
|
||||
QList<ThreadData> threads = threadsHandler->threads();
|
||||
QWB_ASSERT(index < threads.size(), return);
|
||||
QTC_ASSERT(index < threads.size(), return);
|
||||
int id = threads.at(index).id;
|
||||
q->showStatusMessage(tr("Retrieving data for stack view..."), 10000);
|
||||
sendCommand(QLatin1String("-thread-select ") + QString::number(id),
|
||||
@@ -2449,7 +2432,7 @@ void GdbEngine::activateFrame(int frameIndex)
|
||||
//qDebug() << "ACTIVATE FRAME: " << frameIndex << oldIndex
|
||||
// << stackHandler->currentIndex();
|
||||
|
||||
QWB_ASSERT(frameIndex < stackHandler->stackSize(), return);
|
||||
QTC_ASSERT(frameIndex < stackHandler->stackSize(), return);
|
||||
|
||||
if (oldIndex != frameIndex) {
|
||||
// Assuming this always succeeds saves a roundtrip.
|
||||
@@ -2970,7 +2953,7 @@ bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const
|
||||
void GdbEngine::runCustomDumper(const WatchData & data0, bool dumpChildren)
|
||||
{
|
||||
WatchData data = data0;
|
||||
QWB_ASSERT(!data.exp.isEmpty(), return);
|
||||
QTC_ASSERT(!data.exp.isEmpty(), return);
|
||||
QString tmplate;
|
||||
QString inner;
|
||||
bool isTemplate = extractTemplate(data.type, &tmplate, &inner);
|
||||
@@ -3111,7 +3094,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
|
||||
#if DEBUG_SUBITEM
|
||||
qDebug() << "UPDATE SUBITEM: " << data.toString();
|
||||
#endif
|
||||
QWB_ASSERT(data.isValid(), return);
|
||||
QTC_ASSERT(data.isValid(), return);
|
||||
|
||||
// in any case we need the type first
|
||||
if (data.isTypeNeeded()) {
|
||||
@@ -3139,7 +3122,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
|
||||
}
|
||||
|
||||
// we should have a type now. this is relied upon further below
|
||||
QWB_ASSERT(!data.type.isEmpty(), return);
|
||||
QTC_ASSERT(!data.type.isEmpty(), return);
|
||||
|
||||
// a common case that can be easily solved
|
||||
if (data.isChildrenNeeded() && isPointerType(data.type)
|
||||
@@ -3197,7 +3180,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
|
||||
}
|
||||
|
||||
if (data.isValueNeeded()) {
|
||||
QWB_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
QTC_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
#if DEBUG_SUBITEM
|
||||
qDebug() << "UPDATE SUBITEM: VALUE";
|
||||
#endif
|
||||
@@ -3226,7 +3209,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
|
||||
}
|
||||
|
||||
if (data.isChildrenNeeded()) {
|
||||
QWB_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
QTC_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
QString cmd = "-var-list-children --all-values \"" + data.variable + "\"";
|
||||
sendSynchronizedCommand(cmd, WatchVarListChildren, QVariant::fromValue(data));
|
||||
return;
|
||||
@@ -3251,14 +3234,14 @@ void GdbEngine::updateSubItem(const WatchData &data0)
|
||||
}
|
||||
|
||||
if (data.isChildCountNeeded()) {
|
||||
QWB_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
QTC_ASSERT(!data.variable.isEmpty(), return); // tested above
|
||||
QString cmd = "-var-list-children --all-values \"" + data.variable + "\"";
|
||||
sendCommand(cmd, WatchVarListChildren, QVariant::fromValue(data));
|
||||
return;
|
||||
}
|
||||
|
||||
qDebug() << "FIXME: UPDATE SUBITEM: " << data.toString();
|
||||
QWB_ASSERT(false, return);
|
||||
QTC_ASSERT(false, return);
|
||||
}
|
||||
|
||||
void GdbEngine::updateWatchModel()
|
||||
@@ -3272,7 +3255,7 @@ void GdbEngine::updateWatchModel2()
|
||||
{
|
||||
PENDING_DEBUG("UPDATE WATCH MODEL");
|
||||
QList<WatchData> incomplete = qq->watchHandler()->takeCurrentIncompletes();
|
||||
//QWB_ASSERT(incomplete.isEmpty(), /**/);
|
||||
//QTC_ASSERT(incomplete.isEmpty(), /**/);
|
||||
if (!incomplete.isEmpty()) {
|
||||
#if DEBUG_PENDING
|
||||
qDebug() << "##############################################";
|
||||
@@ -3437,7 +3420,7 @@ void GdbEngine::handleEvaluateExpression(const GdbResultRecord &record,
|
||||
const WatchData &data0)
|
||||
{
|
||||
WatchData data = data0;
|
||||
QWB_ASSERT(data.isValid(), qDebug() << "HUH?");
|
||||
QTC_ASSERT(data.isValid(), qDebug() << "HUH?");
|
||||
if (record.resultClass == GdbResultDone) {
|
||||
//if (col == 0)
|
||||
// data.name = record.data.findChild("value").data();
|
||||
@@ -3465,7 +3448,7 @@ void GdbEngine::handleDumpCustomValue1(const GdbResultRecord &record,
|
||||
const WatchData &data0)
|
||||
{
|
||||
WatchData data = data0;
|
||||
QWB_ASSERT(data.isValid(), return);
|
||||
QTC_ASSERT(data.isValid(), return);
|
||||
if (record.resultClass == GdbResultDone) {
|
||||
// ignore this case, data will follow
|
||||
} else if (record.resultClass == GdbResultError) {
|
||||
@@ -3499,7 +3482,7 @@ void GdbEngine::handleDumpCustomValue2(const GdbResultRecord &record,
|
||||
const WatchData &data0)
|
||||
{
|
||||
WatchData data = data0;
|
||||
QWB_ASSERT(data.isValid(), return);
|
||||
QTC_ASSERT(data.isValid(), return);
|
||||
//qDebug() << "CUSTOM VALUE RESULT: " << record.toString();
|
||||
//qDebug() << "FOR DATA: " << data.toString() << record.resultClass;
|
||||
if (record.resultClass == GdbResultDone) {
|
||||
@@ -3660,7 +3643,17 @@ void GdbEngine::setLocals(const QList<GdbMi> &locals)
|
||||
QHash<QString, int> seen;
|
||||
|
||||
foreach (const GdbMi &item, locals) {
|
||||
// Local variables of inlined code are reported as
|
||||
// 26^done,locals={varobj={exp="this",value="",name="var4",exp="this",
|
||||
// numchild="1",type="const QtSharedPointer::Basic<CPlusPlus::..."
|
||||
// We do not want these at all. Current hypotheses is that those
|
||||
// "spurious" locals have _two_ "exp" field. Try to filter them:
|
||||
#ifdef Q_OS_MAC
|
||||
int numExps = 0;
|
||||
foreach (const GdbMi &child, item.children())
|
||||
numExps += int(child.name() == "exp");
|
||||
if (numExps > 1)
|
||||
continue;
|
||||
QString name = item.findChild("exp").data();
|
||||
#else
|
||||
QString name = item.findChild("name").data();
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
#ifndef DEBUGGER_GDBENGINE_H
|
||||
#define DEBUGGER_GDBENGINE_H
|
||||
|
||||
#include "idebuggerengine.h"
|
||||
#include "gdbmi.h"
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QMap>
|
||||
@@ -48,9 +51,6 @@ class QAbstractItemModel;
|
||||
class QWidget;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "idebuggerengine.h"
|
||||
#include "gdbmi.h"
|
||||
|
||||
namespace Debugger {
|
||||
namespace Internal {
|
||||
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "gdbmi.h"
|
||||
#include "assert.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
namespace Debugger {
|
||||
@@ -138,7 +138,7 @@ void GdbMi::parseValue(const Char *&from, const Char *to)
|
||||
void GdbMi::parseTuple(const Char *&from, const Char *to)
|
||||
{
|
||||
//qDebug() << "parseTuple: " << QByteArray::fromUtf16(from, to - from);
|
||||
QWB_ASSERT(*from == '{', /**/);
|
||||
QTC_ASSERT(*from == '{', /**/);
|
||||
++from;
|
||||
parseTuple_helper(from, to);
|
||||
}
|
||||
@@ -166,7 +166,7 @@ void GdbMi::parseTuple_helper(const Char *&from, const Char *to)
|
||||
void GdbMi::parseList(const Char *&from, const Char *to)
|
||||
{
|
||||
//qDebug() << "parseList: " << QByteArray::fromUtf16(from, to - from);
|
||||
QWB_ASSERT(*from == '[', /**/);
|
||||
QTC_ASSERT(*from == '[', /**/);
|
||||
++from;
|
||||
m_type = List;
|
||||
while (from < to) {
|
||||
|
||||
@@ -36,6 +36,11 @@
|
||||
|
||||
#include <QtCore/QObject>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QPoint;
|
||||
class QString;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Debugger {
|
||||
namespace Internal {
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "mode.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "debuggerconstants.h"
|
||||
#include "debuggermanager.h"
|
||||
|
||||
@@ -48,10 +47,14 @@
|
||||
#include <coreplugin/outputpane.h>
|
||||
#include <coreplugin/navigationwidget.h>
|
||||
#include <coreplugin/rightpane.h>
|
||||
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
#include <QtGui/QDockWidget>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QMainWindow>
|
||||
@@ -213,8 +216,8 @@ void DebugMode::focusCurrentEditor(IMode *mode)
|
||||
void DebugMode::writeSettings() const
|
||||
{
|
||||
QSettings *s = settings();
|
||||
QWB_ASSERT(m_manager, return);
|
||||
QWB_ASSERT(m_manager->mainWindow(), return);
|
||||
QTC_ASSERT(m_manager, return);
|
||||
QTC_ASSERT(m_manager->mainWindow(), return);
|
||||
s->beginGroup(QLatin1String("DebugMode"));
|
||||
s->setValue(QLatin1String("State"), m_manager->mainWindow()->saveState());
|
||||
s->setValue(QLatin1String("Locked"), m_toggleLockedAction->isChecked());
|
||||
|
||||
@@ -33,19 +33,18 @@
|
||||
|
||||
#include "scriptengine.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "attachexternaldialog.h"
|
||||
#include "breakhandler.h"
|
||||
#include "debuggerconstants.h"
|
||||
#include "debuggermanager.h"
|
||||
|
||||
#include "disassemblerhandler.h"
|
||||
#include "breakhandler.h"
|
||||
#include "moduleshandler.h"
|
||||
#include "registerhandler.h"
|
||||
#include "stackhandler.h"
|
||||
#include "startexternaldialog.h"
|
||||
#include "watchhandler.h"
|
||||
|
||||
#include "startexternaldialog.h"
|
||||
#include "attachexternaldialog.h"
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QDebug>
|
||||
@@ -574,7 +573,7 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
|
||||
{
|
||||
WatchData data = data0;
|
||||
//qDebug() << "\nUPDATE SUBITEM: " << data.toString();
|
||||
QWB_ASSERT(data.isValid(), return);
|
||||
QTC_ASSERT(data.isValid(), return);
|
||||
|
||||
if (data.isTypeNeeded() || data.isValueNeeded()) {
|
||||
QScriptValue ob = data.scriptValue;
|
||||
@@ -667,7 +666,7 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
|
||||
return;
|
||||
}
|
||||
|
||||
QWB_ASSERT(false, return);
|
||||
QTC_ASSERT(false, return);
|
||||
}
|
||||
|
||||
IDebuggerEngine *createScriptEngine(DebuggerManager *parent)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include "stackhandler.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QAbstractTableModel>
|
||||
#include <QtCore/QDebug>
|
||||
@@ -128,8 +128,8 @@ Qt::ItemFlags StackHandler::flags(const QModelIndex &index) const
|
||||
|
||||
StackFrame StackHandler::currentFrame() const
|
||||
{
|
||||
QWB_ASSERT(m_currentIndex >= 0, return StackFrame());
|
||||
QWB_ASSERT(m_currentIndex < m_stackFrames.size(), return StackFrame());
|
||||
QTC_ASSERT(m_currentIndex >= 0, return StackFrame());
|
||||
QTC_ASSERT(m_currentIndex < m_stackFrames.size(), return StackFrame());
|
||||
return m_stackFrames.at(m_currentIndex);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "modeltest.h"
|
||||
#endif
|
||||
|
||||
#include "assert.h"
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QEvent>
|
||||
@@ -118,7 +118,7 @@ static QByteArray quoteUnprintable(const QByteArray &ba)
|
||||
QByteArray res;
|
||||
char buf[10];
|
||||
for (int i = 0, n = ba.size(); i != n; ++i) {
|
||||
char c = ba.at(i);
|
||||
unsigned char c = ba.at(i);
|
||||
if (isprint(c)) {
|
||||
res += c;
|
||||
} else {
|
||||
@@ -426,7 +426,7 @@ QVariant WatchHandler::data(const QModelIndex &idx, int role) const
|
||||
int node = idx.internalId();
|
||||
if (node < 0)
|
||||
return QVariant();
|
||||
QWB_ASSERT(node < m_displaySet.size(), return QVariant());
|
||||
QTC_ASSERT(node < m_displaySet.size(), return QVariant());
|
||||
|
||||
const WatchData &data = m_displaySet.at(node);
|
||||
|
||||
@@ -702,10 +702,10 @@ void WatchHandler::rebuildModel()
|
||||
|
||||
// Possibly append dummy items to prevent empty views
|
||||
bool ok = true;
|
||||
QWB_ASSERT(m_displaySet.size() >= 2, ok = false);
|
||||
QWB_ASSERT(m_displaySet.at(1).iname == "local", ok = false);
|
||||
QWB_ASSERT(m_displaySet.at(2).iname == "tooltip", ok = false);
|
||||
QWB_ASSERT(m_displaySet.at(3).iname == "watch", ok = false);
|
||||
QTC_ASSERT(m_displaySet.size() >= 2, ok = false);
|
||||
QTC_ASSERT(m_displaySet.at(1).iname == "local", ok = false);
|
||||
QTC_ASSERT(m_displaySet.at(2).iname == "tooltip", ok = false);
|
||||
QTC_ASSERT(m_displaySet.at(3).iname == "watch", ok = false);
|
||||
if (ok) {
|
||||
for (int i = 1; i <= 3; ++i) {
|
||||
WatchData &data = m_displaySet[i];
|
||||
@@ -777,7 +777,7 @@ void WatchHandler::collapseChildren(const QModelIndex &idx)
|
||||
qDebug() << "WATCHHANDLER: COLLAPSE IGNORED" << idx;
|
||||
return;
|
||||
}
|
||||
QWB_ASSERT(checkIndex(idx.internalId()), return);
|
||||
QTC_ASSERT(checkIndex(idx.internalId()), return);
|
||||
#if 0
|
||||
QString iname0 = m_displaySet.at(idx.internalId()).iname;
|
||||
MODEL_DEBUG("COLLAPSE NODE" << iname0);
|
||||
@@ -806,11 +806,11 @@ void WatchHandler::expandChildren(const QModelIndex &idx)
|
||||
int index = idx.internalId();
|
||||
if (index == 0)
|
||||
return;
|
||||
QWB_ASSERT(index >= 0, qDebug() << toString() << index; return);
|
||||
QWB_ASSERT(index < m_completeSet.size(), qDebug() << toString() << index; return);
|
||||
QTC_ASSERT(index >= 0, qDebug() << toString() << index; return);
|
||||
QTC_ASSERT(index < m_completeSet.size(), qDebug() << toString() << index; return);
|
||||
const WatchData &display = m_displaySet.at(index);
|
||||
QWB_ASSERT(index >= 0, qDebug() << toString() << index; return);
|
||||
QWB_ASSERT(index < m_completeSet.size(), qDebug() << toString() << index; return);
|
||||
QTC_ASSERT(index >= 0, qDebug() << toString() << index; return);
|
||||
QTC_ASSERT(index < m_completeSet.size(), qDebug() << toString() << index; return);
|
||||
const WatchData &complete = m_completeSet.at(index);
|
||||
MODEL_DEBUG("\n\nEXPAND" << display.iname);
|
||||
if (display.iname.isEmpty()) {
|
||||
@@ -848,7 +848,7 @@ void WatchHandler::expandChildren(const QModelIndex &idx)
|
||||
void WatchHandler::insertData(const WatchData &data)
|
||||
{
|
||||
//MODEL_DEBUG("INSERTDATA: " << data.toString());
|
||||
QWB_ASSERT(data.isValid(), return);
|
||||
QTC_ASSERT(data.isValid(), return);
|
||||
if (data.isSomethingNeeded())
|
||||
insertDataHelper(m_incompleteSet, data);
|
||||
else
|
||||
@@ -977,7 +977,7 @@ bool WatchHandler::canFetchMore(const QModelIndex &parent) const
|
||||
// needs to be made synchronous to be useful. Busy loop is no good.
|
||||
if (!parent.isValid())
|
||||
return false;
|
||||
QWB_ASSERT(checkIndex(parent.internalId()), return false);
|
||||
QTC_ASSERT(checkIndex(parent.internalId()), return false);
|
||||
const WatchData &data = m_displaySet.at(parent.internalId());
|
||||
MODEL_DEBUG("CAN FETCH MORE: " << parent << " children: " << data.childCount
|
||||
<< data.iname);
|
||||
@@ -990,7 +990,7 @@ void WatchHandler::fetchMore(const QModelIndex &parent)
|
||||
MODEL_DEBUG("FETCH MORE: " << parent);
|
||||
return;
|
||||
|
||||
QWB_ASSERT(checkIndex(parent.internalId()), return);
|
||||
QTC_ASSERT(checkIndex(parent.internalId()), return);
|
||||
QString iname = m_displaySet.at(parent.internalId()).iname;
|
||||
|
||||
if (m_inFetchMore) {
|
||||
@@ -1049,15 +1049,15 @@ QModelIndex WatchHandler::index(int row, int col, const QModelIndex &parent) con
|
||||
MODEL_DEBUG(" -> " << QModelIndex() << " (2) ");
|
||||
return QModelIndex();
|
||||
}
|
||||
QWB_ASSERT(checkIndex(parentIndex), return QModelIndex());
|
||||
QTC_ASSERT(checkIndex(parentIndex), return QModelIndex());
|
||||
const WatchData &data = m_displaySet.at(parentIndex);
|
||||
QWB_ASSERT(row >= 0, qDebug() << "ROW: " << row << "PARENT: " << parent
|
||||
QTC_ASSERT(row >= 0, qDebug() << "ROW: " << row << "PARENT: " << parent
|
||||
<< data.toString() << toString(); return QModelIndex());
|
||||
QWB_ASSERT(row < data.childIndex.size(),
|
||||
QTC_ASSERT(row < data.childIndex.size(),
|
||||
MODEL_DEBUG("ROW: " << row << data.toString() << toString());
|
||||
return QModelIndex());
|
||||
QModelIndex idx = createIndex(row, col, data.childIndex.at(row));
|
||||
QWB_ASSERT(idx.row() == m_displaySet.at(idx.internalId()).row,
|
||||
QTC_ASSERT(idx.row() == m_displaySet.at(idx.internalId()).row,
|
||||
return QModelIndex());
|
||||
MODEL_DEBUG(" -> " << idx << " (A) ");
|
||||
return idx;
|
||||
@@ -1071,15 +1071,15 @@ QModelIndex WatchHandler::parent(const QModelIndex &idx) const
|
||||
}
|
||||
MODEL_DEBUG("PARENT " << idx);
|
||||
int currentIndex = idx.internalId();
|
||||
QWB_ASSERT(checkIndex(currentIndex), return QModelIndex());
|
||||
QWB_ASSERT(idx.row() == m_displaySet.at(currentIndex).row,
|
||||
QTC_ASSERT(checkIndex(currentIndex), return QModelIndex());
|
||||
QTC_ASSERT(idx.row() == m_displaySet.at(currentIndex).row,
|
||||
MODEL_DEBUG("IDX: " << idx << toString(); return QModelIndex()));
|
||||
int parentIndex = m_displaySet.at(currentIndex).parentIndex;
|
||||
if (parentIndex < 0) {
|
||||
MODEL_DEBUG(" -> " << QModelIndex() << " (2) ");
|
||||
return QModelIndex();
|
||||
}
|
||||
QWB_ASSERT(checkIndex(parentIndex), return QModelIndex());
|
||||
QTC_ASSERT(checkIndex(parentIndex), return QModelIndex());
|
||||
QModelIndex parent =
|
||||
createIndex(m_displaySet.at(parentIndex).row, 0, parentIndex);
|
||||
MODEL_DEBUG(" -> " << parent);
|
||||
@@ -1094,7 +1094,7 @@ int WatchHandler::rowCount(const QModelIndex &idx) const
|
||||
return 0;
|
||||
}
|
||||
int thisIndex = idx.internalId();
|
||||
QWB_ASSERT(checkIndex(thisIndex), return 0);
|
||||
QTC_ASSERT(checkIndex(thisIndex), return 0);
|
||||
if (idx.row() == -1 && idx.column() == -1) {
|
||||
MODEL_DEBUG(" -> " << 3 << " (B) ");
|
||||
return 1;
|
||||
@@ -1129,7 +1129,7 @@ int WatchHandler::columnCount(const QModelIndex &idx) const
|
||||
return 0;
|
||||
}
|
||||
MODEL_DEBUG(" -> " << 3 << " (B) ");
|
||||
QWB_ASSERT(checkIndex(idx.internalId()), return 3);
|
||||
QTC_ASSERT(checkIndex(idx.internalId()), return 3);
|
||||
return 3;
|
||||
}
|
||||
|
||||
@@ -1139,7 +1139,7 @@ bool WatchHandler::hasChildren(const QModelIndex &idx) const
|
||||
bool base = rowCount(idx) > 0 && columnCount(idx) > 0;
|
||||
MODEL_DEBUG("HAS CHILDREN: " << idx << base);
|
||||
return base;
|
||||
QWB_ASSERT(checkIndex(idx.internalId()), return false);
|
||||
QTC_ASSERT(checkIndex(idx.internalId()), return false);
|
||||
const WatchData &data = m_displaySet.at(idx.internalId());
|
||||
MODEL_DEBUG("HAS CHILDREN: " << idx << data.toString());
|
||||
return data.childCount > 0; // || data.childIndex.size() > 0;
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "formeditorw.h"
|
||||
|
||||
#include <coreplugin/minisplitter.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QEvent>
|
||||
#include <QtGui/QVBoxLayout>
|
||||
@@ -54,7 +55,7 @@ SharedSubWindow::SharedSubWindow(QWidget *shared, QWidget *parent) :
|
||||
m_shared(shared),
|
||||
m_layout(new QVBoxLayout)
|
||||
{
|
||||
Q_ASSERT(m_shared);
|
||||
QTC_ASSERT(m_shared, /**/);
|
||||
m_layout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(m_layout);
|
||||
}
|
||||
@@ -62,14 +63,14 @@ SharedSubWindow::SharedSubWindow(QWidget *shared, QWidget *parent) :
|
||||
void SharedSubWindow::activate()
|
||||
{
|
||||
// Take the widget off the other parent
|
||||
Q_ASSERT(m_shared);
|
||||
QTC_ASSERT(m_shared, return);
|
||||
QWidget *currentParent = m_shared->parentWidget();
|
||||
if (currentParent == this)
|
||||
return;
|
||||
|
||||
if (currentParent) {
|
||||
QVBoxLayout *lt = qobject_cast<QVBoxLayout *>(currentParent->layout());
|
||||
Q_ASSERT(lt);
|
||||
QTC_ASSERT(lt, return);
|
||||
m_shared->setParent(0);
|
||||
delete lt->takeAt(0);
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtDesigner/QDesignerFormEditorPluginInterface>
|
||||
#include <QtDesigner/private/pluginmanager_p.h>
|
||||
@@ -169,9 +170,9 @@ FormEditorW::FormEditorW() :
|
||||
{
|
||||
if (debugFormEditor)
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
Q_ASSERT(!m_self);
|
||||
QTC_ASSERT(!m_self, return);
|
||||
m_self = this;
|
||||
Q_ASSERT(m_core);
|
||||
QTC_ASSERT(m_core, return);
|
||||
|
||||
qFill(m_designerSubWindows, m_designerSubWindows + Designer::Constants::DesignerSubWindowCount,
|
||||
static_cast<QWidget *>(0));
|
||||
@@ -180,7 +181,7 @@ FormEditorW::FormEditorW() :
|
||||
m_formeditor->setSettingsManager(new SettingsManager());
|
||||
|
||||
m_fwm = qobject_cast<qdesigner_internal::QDesignerFormWindowManager*>(m_formeditor->formWindowManager());
|
||||
Q_ASSERT(m_fwm);
|
||||
QTC_ASSERT(m_fwm, return);
|
||||
|
||||
const int uid = m_core->uniqueIDManager()->uniqueIdentifier(QLatin1String(C_FORMEDITOR));
|
||||
m_context << uid;
|
||||
@@ -216,7 +217,7 @@ FormEditorW::~FormEditorW()
|
||||
|
||||
void FormEditorW::fullInit()
|
||||
{
|
||||
Q_ASSERT(m_initStage == RegisterPlugins);
|
||||
QTC_ASSERT(m_initStage == RegisterPlugins, return);
|
||||
QTime *initTime = 0;
|
||||
if (debugFormEditor) {
|
||||
initTime = new QTime;
|
||||
@@ -410,7 +411,7 @@ void FormEditorW::setupActions()
|
||||
createSeparator(this, am, m_context, mformtools, QLatin1String("FormEditor.Menu.Tools.Separator2"));
|
||||
|
||||
m_actionPreview = m_fwm->actionDefaultPreview();
|
||||
Q_ASSERT(m_actionPreview);
|
||||
QTC_ASSERT(m_actionPreview, return);
|
||||
addToolAction(m_actionPreview, am, m_context,
|
||||
QLatin1String("FormEditor.Preview"), mformtools, tr("Ctrl+Alt+R"));
|
||||
|
||||
@@ -446,7 +447,7 @@ QToolBar *FormEditorW::createEditorToolBar() const
|
||||
const QStringList::const_iterator cend = m_toolActionIds.constEnd();
|
||||
for (QStringList::const_iterator it = m_toolActionIds.constBegin(); it != cend; ++it) {
|
||||
Core::ICommand *cmd = am->command(*it);
|
||||
Q_ASSERT(cmd);
|
||||
QTC_ASSERT(cmd, continue);
|
||||
QAction *action = cmd->action();
|
||||
if (!action->icon().isNull()) // Simplify grid has no action yet
|
||||
rc->addAction(action);
|
||||
@@ -591,7 +592,7 @@ void FormEditorW::currentEditorChanged(Core::IEditor *editor)
|
||||
// Deactivate Designer if a non-form is being edited
|
||||
if (editor && !qstrcmp(editor->kind(), Constants::C_FORMWINDOW)) {
|
||||
FormWindowEditor *fw = qobject_cast<FormWindowEditor *>(editor);
|
||||
Q_ASSERT(fw);
|
||||
QTC_ASSERT(fw, return);
|
||||
fw->activate();
|
||||
m_fwm->setActiveFormWindow(fw->formWindow());
|
||||
} else {
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "basetextfind.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtGui/QTextBlock>
|
||||
|
||||
using namespace Find;
|
||||
@@ -49,26 +51,26 @@ BaseTextFind::BaseTextFind(QPlainTextEdit *editor)
|
||||
|
||||
QTextCursor BaseTextFind::textCursor() const
|
||||
{
|
||||
Q_ASSERT(m_editor || m_plaineditor);
|
||||
QTC_ASSERT(m_editor || m_plaineditor, return QTextCursor());
|
||||
return m_editor ? m_editor->textCursor() : m_plaineditor->textCursor();
|
||||
|
||||
}
|
||||
|
||||
void BaseTextFind::setTextCursor(const QTextCursor& cursor)
|
||||
{
|
||||
Q_ASSERT(m_editor || m_plaineditor);
|
||||
QTC_ASSERT(m_editor || m_plaineditor, return);
|
||||
m_editor ? m_editor->setTextCursor(cursor) : m_plaineditor->setTextCursor(cursor);
|
||||
}
|
||||
|
||||
QTextDocument *BaseTextFind::document() const
|
||||
{
|
||||
Q_ASSERT(m_editor || m_plaineditor);
|
||||
QTC_ASSERT(m_editor || m_plaineditor, return 0);
|
||||
return m_editor ? m_editor->document() : m_plaineditor->document();
|
||||
}
|
||||
|
||||
bool BaseTextFind::isReadOnly() const
|
||||
{
|
||||
Q_ASSERT(m_editor || m_plaineditor);
|
||||
QTC_ASSERT(m_editor || m_plaineditor, return true);
|
||||
return m_editor ? m_editor->isReadOnly() : m_plaineditor->isReadOnly();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,9 +36,10 @@
|
||||
#include <aggregation/aggregate.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/modemanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtDebug>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Find;
|
||||
@@ -59,15 +60,13 @@ void CurrentDocumentFind::removeConnections()
|
||||
|
||||
void CurrentDocumentFind::resetIncrementalSearch()
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
if (m_currentFind)
|
||||
QTC_ASSERT(m_currentFind, return);
|
||||
m_currentFind->resetIncrementalSearch();
|
||||
}
|
||||
|
||||
void CurrentDocumentFind::clearResults()
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
if (m_currentFind)
|
||||
QTC_ASSERT(m_currentFind, return);
|
||||
m_currentFind->clearResults();
|
||||
}
|
||||
|
||||
@@ -78,66 +77,63 @@ bool CurrentDocumentFind::isEnabled() const
|
||||
|
||||
bool CurrentDocumentFind::supportsReplace() const
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return m_currentFind ? m_currentFind->supportsReplace() : false;
|
||||
QTC_ASSERT(m_currentFind, return false);
|
||||
return m_currentFind->supportsReplace();
|
||||
}
|
||||
|
||||
QString CurrentDocumentFind::currentFindString() const
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return m_currentFind ? m_currentFind->currentFindString() : QString();
|
||||
QTC_ASSERT(m_currentFind, return QString());
|
||||
return m_currentFind->currentFindString();
|
||||
}
|
||||
|
||||
QString CurrentDocumentFind::completedFindString() const
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return m_currentFind ? m_currentFind->completedFindString() : QString();
|
||||
QTC_ASSERT(m_currentFind, return QString());
|
||||
return m_currentFind->completedFindString();
|
||||
}
|
||||
|
||||
void CurrentDocumentFind::highlightAll(const QString &txt, QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
if (m_currentFind)
|
||||
QTC_ASSERT(m_currentFind, return);
|
||||
m_currentFind->highlightAll(txt, findFlags);
|
||||
}
|
||||
|
||||
bool CurrentDocumentFind::findIncremental(const QString &txt, QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return (m_currentFind? m_currentFind->findIncremental(txt, findFlags) : false);
|
||||
QTC_ASSERT(m_currentFind, return false);
|
||||
return m_currentFind->findIncremental(txt, findFlags);
|
||||
}
|
||||
|
||||
bool CurrentDocumentFind::findStep(const QString &txt, QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return (m_currentFind? m_currentFind->findStep(txt, findFlags) : false);
|
||||
QTC_ASSERT(m_currentFind, return false);
|
||||
return m_currentFind->findStep(txt, findFlags);
|
||||
}
|
||||
|
||||
bool CurrentDocumentFind::replaceStep(const QString &before, const QString &after,
|
||||
QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return (m_currentFind? m_currentFind->replaceStep(before, after, findFlags) : false);
|
||||
QTC_ASSERT(m_currentFind, return false);
|
||||
return m_currentFind->replaceStep(before, after, findFlags);
|
||||
}
|
||||
|
||||
int CurrentDocumentFind::replaceAll(const QString &before, const QString &after,
|
||||
QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
return (m_currentFind? m_currentFind->replaceAll(before, after, findFlags) : 0);
|
||||
QTC_ASSERT(m_currentFind, return 0);
|
||||
return m_currentFind->replaceAll(before, after, findFlags);
|
||||
}
|
||||
|
||||
void CurrentDocumentFind::defineFindScope()
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
if (m_currentFind)
|
||||
QTC_ASSERT(m_currentFind, return);
|
||||
m_currentFind->defineFindScope();
|
||||
}
|
||||
|
||||
void CurrentDocumentFind::clearFindScope()
|
||||
{
|
||||
Q_ASSERT(m_currentFind);
|
||||
if (m_currentFind)
|
||||
QTC_ASSERT(m_currentFind, return);
|
||||
m_currentFind->clearFindScope();
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#include "findplugin.h"
|
||||
|
||||
#include "textfindconstants.h"
|
||||
@@ -42,6 +43,8 @@
|
||||
#include <coreplugin/actionmanager/icommand.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/qplugin.h>
|
||||
#include <QtCore/QSettings>
|
||||
|
||||
@@ -102,24 +105,18 @@ void FindPlugin::filterChanged()
|
||||
{
|
||||
IFindFilter *changedFilter = qobject_cast<IFindFilter *>(sender());
|
||||
QAction *action = m_filterActions.value(changedFilter);
|
||||
Q_ASSERT(changedFilter);
|
||||
Q_ASSERT(action);
|
||||
if (!changedFilter || !action)
|
||||
return;
|
||||
QTC_ASSERT(changedFilter, return);
|
||||
QTC_ASSERT(action, return);
|
||||
action->setEnabled(changedFilter->isEnabled());
|
||||
}
|
||||
|
||||
void FindPlugin::openFindFilter()
|
||||
{
|
||||
QAction *action = qobject_cast<QAction*>(sender());
|
||||
Q_ASSERT(action);
|
||||
if (!action)
|
||||
return;
|
||||
QTC_ASSERT(action, return);
|
||||
IFindFilter *filter = action->data().value<IFindFilter *>();
|
||||
Q_ASSERT(filter);
|
||||
Q_ASSERT(filter->isEnabled());
|
||||
if (!filter || !filter->isEnabled())
|
||||
return;
|
||||
QTC_ASSERT(filter, return);
|
||||
QTC_ASSERT(filter->isEnabled(), return);
|
||||
QString currentFindString = (m_currentDocumentFind->isEnabled() ? m_currentDocumentFind->currentFindString() : "");
|
||||
if (!currentFindString.isEmpty())
|
||||
m_findDialog->setFindText(currentFindString);
|
||||
|
||||
@@ -56,6 +56,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="findPreviousButton">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::LeftArrow</enum>
|
||||
</property>
|
||||
@@ -66,6 +69,9 @@
|
||||
<property name="font">
|
||||
<font/>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::RightArrow</enum>
|
||||
</property>
|
||||
@@ -103,6 +109,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="replacePreviousButton">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::LeftArrow</enum>
|
||||
</property>
|
||||
@@ -113,6 +122,9 @@
|
||||
<property name="font">
|
||||
<font/>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::RightArrow</enum>
|
||||
</property>
|
||||
|
||||
@@ -43,6 +43,7 @@ ChangeSelectionDialog::ChangeSelectionDialog(QWidget *parent)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
connect(m_ui.repositoryButton, SIGNAL(clicked()), this, SLOT(selectWorkingDirectory()));
|
||||
setWindowTitle(tr("Select a Git commit"));
|
||||
}
|
||||
|
||||
void ChangeSelectionDialog::selectWorkingDirectory()
|
||||
@@ -59,7 +60,7 @@ void ChangeSelectionDialog::selectWorkingDirectory()
|
||||
// the head directory of the repository.
|
||||
QDir repository(location);
|
||||
do {
|
||||
if (repository.entryList(QDir::AllDirs).contains(QLatin1String(".git"))) {
|
||||
if (repository.entryList(QDir::AllDirs|QDir::Hidden).contains(QLatin1String(".git"))) {
|
||||
m_ui.repositoryEdit->setText(repository.absolutePath());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -32,28 +32,30 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "gitclient.h"
|
||||
#include "gitplugin.h"
|
||||
#include "gitconstants.h"
|
||||
|
||||
#include "commitdata.h"
|
||||
#include "gitconstants.h"
|
||||
#include "gitplugin.h"
|
||||
#include "gitsubmiteditor.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/progressmanager/progressmanagerinterface.h>
|
||||
#include <vcsbase/vcsbaseeditor.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <texteditor/itexteditor.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <vcsbase/vcsbaseeditor.h>
|
||||
|
||||
#include <QtCore/QFuture>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
#include <QtCore/QFuture>
|
||||
#include <QtCore/QTime>
|
||||
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QMainWindow> // for msg box parent
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QPushButton>
|
||||
|
||||
using namespace Git;
|
||||
@@ -169,14 +171,14 @@ VCSBase::VCSBaseEditor
|
||||
// Exists already
|
||||
outputEditor->createNew(m_msgWait);
|
||||
rc = VCSBase::VCSBaseEditor::getVcsBaseEditor(outputEditor);
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
m_core->editorManager()->setCurrentEditor(outputEditor);
|
||||
} else {
|
||||
// Create new, set wait message, set up with source and codec
|
||||
outputEditor = m_core->editorManager()->newFile(kind, &title, m_msgWait);
|
||||
outputEditor->setProperty(registerDynamicProperty, dynamicPropertyValue);
|
||||
rc = VCSBase::VCSBaseEditor::getVcsBaseEditor(outputEditor);
|
||||
Q_ASSERT(rc);
|
||||
QTC_ASSERT(rc, return 0);
|
||||
rc->setSource(source);
|
||||
if (setSourceCodec)
|
||||
rc->setCodec(VCSBase::VCSBaseEditor::getCodec(m_core, source));
|
||||
@@ -394,11 +396,10 @@ void GitClient::executeGit(const QString &workingDirectory, const QStringList &a
|
||||
|
||||
GitCommand* command = new GitCommand();
|
||||
if (outputToWindow) {
|
||||
Q_ASSERT(outputWindow);
|
||||
connect(command, SIGNAL(outputText(QString)), outputWindow, SLOT(append(QString)));
|
||||
connect(command, SIGNAL(outputData(QByteArray)), outputWindow, SLOT(appendData(QByteArray)));
|
||||
} else {
|
||||
Q_ASSERT(editor);
|
||||
QTC_ASSERT(editor, /**/);
|
||||
connect(command, SIGNAL(outputText(QString)), editor, SLOT(setPlainText(QString)));
|
||||
connect(command, SIGNAL(outputData(QByteArray)), editor, SLOT(setPlainTextData(QByteArray)));
|
||||
}
|
||||
@@ -515,7 +516,7 @@ static bool parseFiles(const QString &output, CommitData *d)
|
||||
State s = None;
|
||||
// Match added/changed-not-updated files: "#<tab>modified: foo.cpp"
|
||||
QRegExp filesPattern(QLatin1String("#\\t[^:]+:\\s+.+"));
|
||||
Q_ASSERT(filesPattern.isValid());
|
||||
QTC_ASSERT(filesPattern.isValid(), return false);
|
||||
|
||||
const QStringList::const_iterator cend = lines.constEnd();
|
||||
for (QStringList::const_iterator it = lines.constBegin(); it != cend; ++it) {
|
||||
@@ -533,7 +534,7 @@ static bool parseFiles(const QString &output, CommitData *d)
|
||||
// Now match untracked: "#<tab>foo.cpp"
|
||||
s = UntrackedFiles;
|
||||
filesPattern = QRegExp(QLatin1String("#\\t.+"));
|
||||
Q_ASSERT(filesPattern.isValid());
|
||||
QTC_ASSERT(filesPattern.isValid(), return false);
|
||||
} else {
|
||||
if (filesPattern.exactMatch(line)) {
|
||||
const QString fileSpec = line.mid(2).trimmed();
|
||||
|
||||
@@ -32,22 +32,25 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "giteditor.h"
|
||||
|
||||
#include "annotationhighlighter.h"
|
||||
#include "gitclient.h"
|
||||
#include "gitconstants.h"
|
||||
#include "gitplugin.h"
|
||||
#include "gitclient.h"
|
||||
|
||||
#include <vcsbase/diffhighlighter.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <vcsbase/diffhighlighter.h>
|
||||
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QTextStream>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QTextEdit>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
#include <QtGui/QTextCursor>
|
||||
#include <QtGui/QTextEdit>
|
||||
|
||||
#define CHANGE_PATTERN_8C "[a-f0-9]{8,8}"
|
||||
#define CHANGE_PATTERN_40C "[a-f0-9]{40,40}"
|
||||
@@ -62,8 +65,8 @@ GitEditor::GitEditor(const VCSBase::VCSBaseEditorParameters *type,
|
||||
m_changeNumberPattern8(QLatin1String(CHANGE_PATTERN_8C)),
|
||||
m_changeNumberPattern40(QLatin1String(CHANGE_PATTERN_40C))
|
||||
{
|
||||
Q_ASSERT(m_changeNumberPattern8.isValid());
|
||||
Q_ASSERT(m_changeNumberPattern40.isValid());
|
||||
QTC_ASSERT(m_changeNumberPattern8.isValid(), return);
|
||||
QTC_ASSERT(m_changeNumberPattern40.isValid(), return);
|
||||
if (Git::Constants::debug)
|
||||
qDebug() << "GitEditor::GitEditor" << type->type << type->kind;
|
||||
}
|
||||
@@ -76,11 +79,11 @@ QSet<QString> GitEditor::annotationChanges() const
|
||||
return changes;
|
||||
// Hunt for first change number in annotation: "<change>:"
|
||||
QRegExp r(QLatin1String("^("CHANGE_PATTERN_8C") "));
|
||||
Q_ASSERT(r.isValid());
|
||||
QTC_ASSERT(r.isValid(), return changes);
|
||||
if (r.indexIn(txt) != -1) {
|
||||
changes.insert(r.cap(1));
|
||||
r.setPattern(QLatin1String("\n("CHANGE_PATTERN_8C") "));
|
||||
Q_ASSERT(r.isValid());
|
||||
QTC_ASSERT(r.isValid(), return changes);
|
||||
int pos = 0;
|
||||
while ((pos = r.indexIn(txt, pos)) != -1) {
|
||||
pos += r.matchedLength();
|
||||
|
||||
@@ -32,13 +32,14 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "gitplugin.h"
|
||||
#include "gitclient.h"
|
||||
#include "gitversioncontrol.h"
|
||||
#include "giteditor.h"
|
||||
#include "gitconstants.h"
|
||||
|
||||
#include "changeselectiondialog.h"
|
||||
#include "gitsubmiteditor.h"
|
||||
#include "commitdata.h"
|
||||
#include "gitclient.h"
|
||||
#include "gitconstants.h"
|
||||
#include "giteditor.h"
|
||||
#include "gitsubmiteditor.h"
|
||||
#include "gitversioncontrol.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
@@ -47,20 +48,24 @@
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <vcsbase/basevcseditorfactory.h>
|
||||
#include <vcsbase/vcsbaseeditor.h>
|
||||
#include <vcsbase/basevcssubmiteditorfactory.h>
|
||||
|
||||
#include <QtCore/qplugin.h>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
#include <QtCore/QDir>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QFileDialog>
|
||||
|
||||
static const VCSBase::VCSBaseEditorParameters editorParameters[] = {
|
||||
{
|
||||
@@ -142,7 +147,6 @@ GitPlugin::GitPlugin() :
|
||||
m_versionControl(0),
|
||||
m_changeTmpFile(0)
|
||||
{
|
||||
Q_ASSERT(m_instance == 0);
|
||||
m_instance = this;
|
||||
}
|
||||
|
||||
@@ -212,7 +216,7 @@ static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = {
|
||||
Git::Constants::DIFF_SELECTED
|
||||
};
|
||||
|
||||
static inline Core::ICommand *createSeparator(Core::ActionManagerInterface *am,
|
||||
static Core::ICommand *createSeparator(Core::ActionManagerInterface *am,
|
||||
const QList<int> &context,
|
||||
const QString &id,
|
||||
QObject *parent)
|
||||
@@ -627,7 +631,7 @@ Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const Commit
|
||||
qDebug() << Q_FUNC_INFO << fileName << editor;
|
||||
m_core->editorManager()->ensureEditorManagerVisible();
|
||||
GitSubmitEditor *submitEditor = qobject_cast<GitSubmitEditor*>(editor);
|
||||
Q_ASSERT(submitEditor);
|
||||
QTC_ASSERT(submitEditor, return 0);
|
||||
// The actions are for some reason enabled by the context switching
|
||||
// mechanism. Disable them correctly.
|
||||
m_submitCurrentAction->setEnabled(!cd.stagedFiles.empty());
|
||||
|
||||
@@ -149,9 +149,8 @@ void ContentsToolWindow::contentsDone()
|
||||
stack.push(newEntry);
|
||||
depth = 1;
|
||||
root = true;
|
||||
}
|
||||
else{
|
||||
if((item.depth > depth) && root) {
|
||||
} else {
|
||||
if (item.depth > depth && root) {
|
||||
depth = item.depth;
|
||||
stack.push(contentEntry);
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "helpfindsupport.h"
|
||||
#include "helpviewer.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace Help::Internal;
|
||||
|
||||
HelpFindSupport::HelpFindSupport(CentralWidget *centralWidget)
|
||||
@@ -52,7 +54,7 @@ bool HelpFindSupport::isEnabled() const
|
||||
|
||||
QString HelpFindSupport::currentFindString() const
|
||||
{
|
||||
Q_ASSERT(m_centralWidget);
|
||||
QTC_ASSERT(m_centralWidget, return QString());
|
||||
HelpViewer *viewer = m_centralWidget->currentHelpViewer();
|
||||
if (!viewer)
|
||||
return QString();
|
||||
@@ -70,13 +72,13 @@ QString HelpFindSupport::completedFindString() const
|
||||
|
||||
bool HelpFindSupport::findIncremental(const QString &txt, QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_centralWidget);
|
||||
QTC_ASSERT(m_centralWidget, return false);
|
||||
findFlags &= ~QTextDocument::FindBackward;
|
||||
return m_centralWidget->find(txt, findFlags, true);
|
||||
}
|
||||
|
||||
bool HelpFindSupport::findStep(const QString &txt, QTextDocument::FindFlags findFlags)
|
||||
{
|
||||
Q_ASSERT(m_centralWidget);
|
||||
QTC_ASSERT(m_centralWidget, return false);
|
||||
return m_centralWidget->find(txt, findFlags, false);
|
||||
}
|
||||
|
||||
@@ -32,26 +32,28 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "perforceeditor.h"
|
||||
|
||||
#include "annotationhighlighter.h"
|
||||
#include "perforceplugin.h"
|
||||
#include "perforceconstants.h"
|
||||
#include "perforceplugin.h"
|
||||
|
||||
#include <vcsbase/diffhighlighter.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <vcsbase/diffhighlighter.h>
|
||||
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QTextStream>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QProcess>
|
||||
#include <QtCore/QRegExp>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QKeyEvent>
|
||||
#include <QtGui/QLayout>
|
||||
#include <QtGui/QTextEdit>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QTextCursor>
|
||||
#include <QtCore/QProcess>
|
||||
#include <QtGui/QTextEdit>
|
||||
|
||||
namespace Perforce {
|
||||
namespace Internal {
|
||||
@@ -63,7 +65,7 @@ PerforceEditor::PerforceEditor(const VCSBase::VCSBaseEditorParameters *type,
|
||||
m_changeNumberPattern(QLatin1String("^\\d+$")),
|
||||
m_plugin(PerforcePlugin::perforcePluginInstance())
|
||||
{
|
||||
Q_ASSERT(m_changeNumberPattern.isValid());
|
||||
QTC_ASSERT(m_changeNumberPattern.isValid(), /**/);
|
||||
if (Perforce::Constants::debug)
|
||||
qDebug() << "PerforceEditor::PerforceEditor" << type->type << type->kind;
|
||||
}
|
||||
@@ -76,11 +78,11 @@ QSet<QString> PerforceEditor::annotationChanges() const
|
||||
return changes;
|
||||
// Hunt for first change number in annotation: "<change>:"
|
||||
QRegExp r(QLatin1String("^(\\d+):"));
|
||||
Q_ASSERT(r.isValid());
|
||||
QTC_ASSERT(r.isValid(), return changes);
|
||||
if (r.indexIn(txt) != -1) {
|
||||
changes.insert(r.cap(1));
|
||||
r.setPattern(QLatin1String("\n(\\d+):"));
|
||||
Q_ASSERT(r.isValid());
|
||||
QTC_ASSERT(r.isValid(), return changes);
|
||||
int pos = 0;
|
||||
while ((pos = r.indexIn(txt, pos)) != -1) {
|
||||
pos += r.matchedLength();
|
||||
|
||||
@@ -31,25 +31,27 @@
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
#include "p4.h"
|
||||
#include "perforceplugin.h"
|
||||
#include "perforceoutputwindow.h"
|
||||
#include "settingspage.h"
|
||||
#include "perforcesubmiteditor.h"
|
||||
#include "changenumberdialog.h"
|
||||
#include "perforceconstants.h"
|
||||
#include "perforceversioncontrol.h"
|
||||
#include "perforceeditor.h"
|
||||
#include "pendingchangesdialog.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
#include <coreplugin/filemanager.h>
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include "changenumberdialog.h"
|
||||
#include "p4.h"
|
||||
#include "pendingchangesdialog.h"
|
||||
#include "perforceconstants.h"
|
||||
#include "perforceeditor.h"
|
||||
#include "perforceoutputwindow.h"
|
||||
#include "perforcesubmiteditor.h"
|
||||
#include "perforceversioncontrol.h"
|
||||
#include "settingspage.h"
|
||||
|
||||
#include <coreplugin/actionmanager/actionmanagerinterface.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/filemanager.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/messagemanager.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/synchronousprocess.h>
|
||||
#include <vcsbase/basevcseditorfactory.h>
|
||||
#include <vcsbase/basevcssubmiteditorfactory.h>
|
||||
@@ -57,16 +59,17 @@
|
||||
|
||||
#include <QtCore/qplugin.h>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
#include <QtCore/QTextCodec>
|
||||
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QFileDialog>
|
||||
|
||||
using namespace Perforce::Internal;
|
||||
|
||||
@@ -420,7 +423,7 @@ void PerforcePlugin::deleteCurrentFile()
|
||||
|
||||
void PerforcePlugin::revertCurrentFile()
|
||||
{
|
||||
Q_ASSERT(m_coreInstance);
|
||||
QTC_ASSERT(m_coreInstance, return);
|
||||
|
||||
const QString fileName = currentFileName();
|
||||
QTextCodec *codec = VCSBase::VCSBaseEditor::getCodec(m_coreInstance, fileName);
|
||||
@@ -460,7 +463,7 @@ void PerforcePlugin::diffCurrentFile()
|
||||
|
||||
void PerforcePlugin::diffCurrentProject()
|
||||
{
|
||||
Q_ASSERT(m_projectExplorer);
|
||||
QTC_ASSERT(m_projectExplorer, return);
|
||||
QStringList files;
|
||||
QString name;
|
||||
ProjectExplorer::Project *currentProject = m_projectExplorer->currentProject();
|
||||
@@ -502,7 +505,8 @@ void PerforcePlugin::resolve()
|
||||
|
||||
void PerforcePlugin::submit()
|
||||
{
|
||||
Q_ASSERT(m_coreInstance);
|
||||
QTC_ASSERT(m_coreInstance, return);
|
||||
|
||||
if (!checkP4Command()) {
|
||||
showOutput(tr("No p4 executable specified!"));
|
||||
return;
|
||||
@@ -534,7 +538,7 @@ void PerforcePlugin::submit()
|
||||
m_changeTmpFile->seek(0);
|
||||
|
||||
// Assemble file list of project
|
||||
Q_ASSERT(m_projectExplorer);
|
||||
QTC_ASSERT(m_projectExplorer, return);
|
||||
QStringList files;
|
||||
QString name;
|
||||
ProjectExplorer::Project *currentProject = m_projectExplorer->currentProject();
|
||||
@@ -562,10 +566,9 @@ void PerforcePlugin::submit()
|
||||
QStringList stdOutLines = result2.stdOut.split(QLatin1Char('\n'));
|
||||
QStringList depotFileNames;
|
||||
foreach (const QString &line, stdOutLines) {
|
||||
if (line.startsWith("... depotFile")) {
|
||||
if (line.startsWith("... depotFile"))
|
||||
depotFileNames.append(line.mid(14));
|
||||
}
|
||||
}
|
||||
if (depotFileNames.isEmpty()) {
|
||||
showOutput(tr("Project has no files"));
|
||||
delete m_changeTmpFile;
|
||||
@@ -582,7 +585,7 @@ Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName,
|
||||
m_coreInstance->editorManager()->openEditor(fileName, Constants::PERFORCESUBMITEDITOR_KIND);
|
||||
m_coreInstance->editorManager()->ensureEditorManagerVisible();
|
||||
PerforceSubmitEditor *submitEditor = dynamic_cast<PerforceSubmitEditor*>(editor);
|
||||
Q_ASSERT(submitEditor);
|
||||
QTC_ASSERT(submitEditor, return 0);
|
||||
submitEditor->restrictToProjectFiles(depotFileNames);
|
||||
connect(submitEditor, SIGNAL(diffSelectedFiles(QStringList)), this, SLOT(slotDiff(QStringList)));
|
||||
// The actions are for some reason enabled by the context switching
|
||||
@@ -736,7 +739,7 @@ QString PerforcePlugin::findTopLevelForDirectory(const QString & /* dir */) cons
|
||||
return QString::null;
|
||||
|
||||
QRegExp regExp(QLatin1String("(\\n|\\r\\n|\\r)Root:\\s*(.*)(\\n|\\r\\n|\\r)"));
|
||||
Q_ASSERT(regExp.isValid());
|
||||
QTC_ASSERT(regExp.isValid(), /**/);
|
||||
regExp.setMinimal(true);
|
||||
if (regExp.indexIn(result.stdOut) != -1) {
|
||||
QString file = regExp.cap(2).trimmed();
|
||||
@@ -785,7 +788,7 @@ PerforceResponse PerforcePlugin::runP4Cmd(const QStringList &args,
|
||||
qDebug() << "PerforcePlugin::runP4Cmd" << args << extraArgs << debugCodec(outputCodec);
|
||||
PerforceResponse response;
|
||||
response.error = true;
|
||||
Q_ASSERT(m_coreInstance);
|
||||
QTC_ASSERT(m_coreInstance, return response);
|
||||
if (!checkP4Command()) {
|
||||
response.message = tr("No p4 executable specified!");
|
||||
m_perforceOutputWindow->append(response.message, true);
|
||||
@@ -875,7 +878,7 @@ Core::IEditor * PerforcePlugin::showOutputInEditor(const QString& title, const Q
|
||||
int editorType, QTextCodec *codec)
|
||||
{
|
||||
const VCSBase::VCSBaseEditorParameters *params = findType(editorType);
|
||||
Q_ASSERT(params);
|
||||
QTC_ASSERT(params, return 0);
|
||||
const QString kind = QLatin1String(params->kind);
|
||||
if (Perforce::Constants::debug)
|
||||
qDebug() << "PerforcePlugin::showOutputInEditor" << title << kind << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec);
|
||||
@@ -1048,10 +1051,9 @@ void PerforcePlugin::openFiles(const QStringList &files)
|
||||
|
||||
QString PerforcePlugin::clientFilePath(const QString &serverFilePath)
|
||||
{
|
||||
QString path;
|
||||
Q_ASSERT(m_coreInstance);
|
||||
QTC_ASSERT(m_coreInstance, return QString());
|
||||
if (!checkP4Command())
|
||||
return path;
|
||||
return QString();
|
||||
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
QProcess proc;
|
||||
@@ -1059,6 +1061,7 @@ QString PerforcePlugin::clientFilePath(const QString &serverFilePath)
|
||||
proc.start(m_settings.p4Command,
|
||||
basicP4Args() << QLatin1String("fstat") << serverFilePath);
|
||||
|
||||
QString path;
|
||||
if (proc.waitForFinished(3000)) {
|
||||
QString output = QString::fromUtf8(proc.readAllStandardOutput());
|
||||
if (!output.isEmpty()) {
|
||||
@@ -1285,5 +1288,17 @@ QString PerforcePlugin::fileNameFromPerforceName(const QString& perforceName,
|
||||
return rc;
|
||||
}
|
||||
|
||||
Core::ICore *PerforcePlugin::coreInstance()
|
||||
{
|
||||
QTC_ASSERT(m_coreInstance, return 0);
|
||||
return m_coreInstance;
|
||||
}
|
||||
|
||||
PerforcePlugin *PerforcePlugin::perforcePluginInstance()
|
||||
{
|
||||
QTC_ASSERT(m_perforcePluginInstance, return 0);
|
||||
return m_perforcePluginInstance;
|
||||
}
|
||||
|
||||
Q_EXPORT_PLUGIN(PerforcePlugin)
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ public:
|
||||
~PerforcePlugin();
|
||||
|
||||
QStringList basicP4Args() const;
|
||||
inline SettingsPage *settingsPage() const { return m_settingsPage; }
|
||||
SettingsPage *settingsPage() const { return m_settingsPage; }
|
||||
|
||||
bool initialize(const QStringList &arguments, QString *error_message);
|
||||
void extensionsInitialized();
|
||||
@@ -117,8 +117,8 @@ public:
|
||||
|
||||
Core::IEditor *openPerforceSubmitEditor(const QString &fileName, const QStringList &depotFileNames);
|
||||
|
||||
static Core::ICore *coreInstance() {Q_ASSERT(m_coreInstance); return m_coreInstance;}
|
||||
static PerforcePlugin *perforcePluginInstance() {Q_ASSERT(m_perforcePluginInstance); return m_perforcePluginInstance;}
|
||||
static Core::ICore *coreInstance();
|
||||
static PerforcePlugin *perforcePluginInstance();
|
||||
|
||||
PerforceSettings settings() const;
|
||||
void setSettings(const PerforceSettings &s);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user