forked from qt-creator/qt-creator
Merge commit 'origin/master'
This commit is contained in:
@@ -216,7 +216,7 @@ QT_END_NAMESPACE
|
|||||||
// comma-separated integer list
|
// comma-separated integer list
|
||||||
static char qDumpInBuffer[10000];
|
static char qDumpInBuffer[10000];
|
||||||
static char qDumpOutBuffer[100000];
|
static char qDumpOutBuffer[100000];
|
||||||
static char qDumpSize[20];
|
//static char qDumpSize[20];
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@@ -309,10 +309,16 @@ static bool isSimpleType(const char *type)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isShortKey(const char *type)
|
#if 0
|
||||||
|
static bool isStringType(const char *type)
|
||||||
{
|
{
|
||||||
return isSimpleType(type) || isEqual(type, NS"QString");
|
return isEqual(type, NS"QString")
|
||||||
|
|| isEqual(type, NS"QByteArray")
|
||||||
|
|| isEqual(type, "std::string")
|
||||||
|
|| isEqual(type, "std::wstring")
|
||||||
|
|| isEqual(type, "wstring");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static bool isMovableType(const char *type)
|
static bool isMovableType(const char *type)
|
||||||
{
|
{
|
||||||
@@ -555,7 +561,7 @@ void QDumper::addCommaIfNeeded()
|
|||||||
put(',');
|
put(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
void QDumper::putBase64Encoded(const char *buf, int n, char delim)
|
void QDumper::putBase64Encoded(const char *buf, int n)
|
||||||
{
|
{
|
||||||
const char alphabet[] = "ABCDEFGH" "IJKLMNOP" "QRSTUVWX" "YZabcdef"
|
const char alphabet[] = "ABCDEFGH" "IJKLMNOP" "QRSTUVWX" "YZabcdef"
|
||||||
"ghijklmn" "opqrstuv" "wxyz0123" "456789+/";
|
"ghijklmn" "opqrstuv" "wxyz0123" "456789+/";
|
||||||
@@ -740,6 +746,7 @@ static void qDumpInnerValueHelper(QDumper &d, const char *type, const void *addr
|
|||||||
return;
|
return;
|
||||||
case 'B':
|
case 'B':
|
||||||
if (isEqual(type, "QByteArray")) {
|
if (isEqual(type, "QByteArray")) {
|
||||||
|
d.addCommaIfNeeded();
|
||||||
d << field << "encoded=\"1\",";
|
d << field << "encoded=\"1\",";
|
||||||
P(d, field, *(QByteArray*)addr);
|
P(d, field, *(QByteArray*)addr);
|
||||||
}
|
}
|
||||||
@@ -769,6 +776,7 @@ static void qDumpInnerValueHelper(QDumper &d, const char *type, const void *addr
|
|||||||
return;
|
return;
|
||||||
case 'S':
|
case 'S':
|
||||||
if (isEqual(type, "QString")) {
|
if (isEqual(type, "QString")) {
|
||||||
|
d.addCommaIfNeeded();
|
||||||
d << field << "encoded=\"1\",";
|
d << field << "encoded=\"1\",";
|
||||||
P(d, field, *(QString*)addr);
|
P(d, field, *(QString*)addr);
|
||||||
}
|
}
|
||||||
@@ -1086,13 +1094,15 @@ static void qDumpQHash(QDumper &d)
|
|||||||
if (d.dumpChildren) {
|
if (d.dumpChildren) {
|
||||||
if (n > 1000)
|
if (n > 1000)
|
||||||
n = 1000;
|
n = 1000;
|
||||||
bool simpleKey = isShortKey(keyType);
|
bool isSimpleKey = isSimpleType(keyType);
|
||||||
bool simpleValue = isShortKey(valueType);
|
bool isSimpleValue = isSimpleType(valueType);
|
||||||
bool opt = isOptimizedIntKey(keyType);
|
bool opt = isOptimizedIntKey(keyType);
|
||||||
int keyOffset = hashOffset(opt, true, keySize, valueSize);
|
int keyOffset = hashOffset(opt, true, keySize, valueSize);
|
||||||
int valueOffset = hashOffset(opt, false, keySize, valueSize);
|
int valueOffset = hashOffset(opt, false, keySize, valueSize);
|
||||||
|
|
||||||
P(d, "extra", "simplekey: " << simpleKey << " simpleValue: " << simpleValue
|
P(d, "extra", "isSimpleKey: " << isSimpleKey
|
||||||
|
<< " isSimpleValue: " << isSimpleValue
|
||||||
|
<< " valueType: '" << isSimpleValue
|
||||||
<< " keySize: " << keyOffset << " valueOffset: " << valueOffset
|
<< " keySize: " << keyOffset << " valueOffset: " << valueOffset
|
||||||
<< " opt: " << opt);
|
<< " opt: " << opt);
|
||||||
|
|
||||||
@@ -1103,18 +1113,17 @@ static void qDumpQHash(QDumper &d)
|
|||||||
d << ",children=[";
|
d << ",children=[";
|
||||||
while (node != end) {
|
while (node != end) {
|
||||||
d.beginHash();
|
d.beginHash();
|
||||||
if (simpleKey) {
|
P(d, "name", i);
|
||||||
P(d, "name", i);
|
qDumpInnerValueHelper(d, keyType, addOffset(node, keyOffset), "key");
|
||||||
qDumpInnerValueHelper(d, keyType, addOffset(node, keyOffset), "key");
|
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
||||||
if (simpleValue)
|
if (isSimpleKey && isSimpleValue) {
|
||||||
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
|
||||||
P(d, "type", valueType);
|
P(d, "type", valueType);
|
||||||
P(d, "addr", addOffset(node, valueOffset));
|
P(d, "addr", addOffset(node, valueOffset));
|
||||||
} else {
|
} else {
|
||||||
P(d, "name", i);
|
P(d, "exp", "*('"NS"QHashNode<" << keyType << ","
|
||||||
//P(d, "exp", "*(char*)" << node);
|
<< valueType << " >'*)" << node);
|
||||||
P(d, "exp", "*('"NS"QHashNode<" << keyType << "," << valueType << " >'*)" << node);
|
P(d, "type", "'"NS"QHashNode<" << keyType << ","
|
||||||
P(d, "type", "'"NS"QHashNode<" << keyType << "," << valueType << " >'");
|
<< valueType << " >'");
|
||||||
}
|
}
|
||||||
d.endHash();
|
d.endHash();
|
||||||
++i;
|
++i;
|
||||||
@@ -1131,15 +1140,18 @@ static void qDumpQHashNode(QDumper &d)
|
|||||||
const char *keyType = d.templateParameters[0];
|
const char *keyType = d.templateParameters[0];
|
||||||
const char *valueType = d.templateParameters[1];
|
const char *valueType = d.templateParameters[1];
|
||||||
|
|
||||||
P(d, "value", "");
|
unsigned keySize = d.extraInt[0];
|
||||||
|
unsigned valueSize = d.extraInt[1];
|
||||||
|
bool opt = isOptimizedIntKey(keyType);
|
||||||
|
int keyOffset = hashOffset(opt, true, keySize, valueSize);
|
||||||
|
int valueOffset = hashOffset(opt, false, keySize, valueSize);
|
||||||
|
if (isSimpleType(valueType))
|
||||||
|
qDumpInnerValueHelper(d, valueType, addOffset(h, valueOffset));
|
||||||
|
else
|
||||||
|
P(d, "value", "");
|
||||||
|
|
||||||
P(d, "numchild", 2);
|
P(d, "numchild", 2);
|
||||||
if (d.dumpChildren) {
|
if (d.dumpChildren) {
|
||||||
unsigned keySize = d.extraInt[0];
|
|
||||||
unsigned valueSize = d.extraInt[1];
|
|
||||||
bool opt = isOptimizedIntKey(keyType);
|
|
||||||
int keyOffset = hashOffset(opt, true, keySize, valueSize);
|
|
||||||
int valueOffset = hashOffset(opt, false, keySize, valueSize);
|
|
||||||
|
|
||||||
// there is a hash specialization in cast the key are integers or shorts
|
// there is a hash specialization in cast the key are integers or shorts
|
||||||
d << ",children=[";
|
d << ",children=[";
|
||||||
d.beginHash();
|
d.beginHash();
|
||||||
@@ -1262,8 +1274,8 @@ static void qDumpQLinkedList(QDumper &d)
|
|||||||
P(d, "numchild", n);
|
P(d, "numchild", n);
|
||||||
P(d, "childtype", d.innertype);
|
P(d, "childtype", d.innertype);
|
||||||
if (d.dumpChildren) {
|
if (d.dumpChildren) {
|
||||||
unsigned innerSize = d.extraInt[0];
|
//unsigned innerSize = d.extraInt[0];
|
||||||
bool innerTypeIsPointer = isPointerType(d.innertype);
|
//bool innerTypeIsPointer = isPointerType(d.innertype);
|
||||||
QByteArray strippedInnerType = stripPointerType(d.innertype);
|
QByteArray strippedInnerType = stripPointerType(d.innertype);
|
||||||
const char *stripped =
|
const char *stripped =
|
||||||
isPointerType(d.innertype) ? strippedInnerType.data() : 0;
|
isPointerType(d.innertype) ? strippedInnerType.data() : 0;
|
||||||
@@ -1397,13 +1409,13 @@ static void qDumpQMap(QDumper &d)
|
|||||||
unsigned mapnodesize = d.extraInt[2];
|
unsigned mapnodesize = d.extraInt[2];
|
||||||
unsigned valueOff = d.extraInt[3];
|
unsigned valueOff = d.extraInt[3];
|
||||||
|
|
||||||
bool simpleKey = isShortKey(keyType);
|
bool isSimpleKey = isSimpleType(keyType);
|
||||||
bool simpleValue = isShortKey(valueType);
|
bool isSimpleValue = isSimpleType(valueType);
|
||||||
// both negative:
|
// both negative:
|
||||||
int keyOffset = 2 * sizeof(void*) - int(mapnodesize);
|
int keyOffset = 2 * sizeof(void*) - int(mapnodesize);
|
||||||
int valueOffset = 2 * sizeof(void*) - int(mapnodesize) + valueOff;
|
int valueOffset = 2 * sizeof(void*) - int(mapnodesize) + valueOff;
|
||||||
|
|
||||||
P(d, "extra", "simplekey: " << simpleKey << " simpleValue: " << simpleValue
|
P(d, "extra", "simplekey: " << isSimpleKey << " isSimpleValue: " << isSimpleValue
|
||||||
<< " keyOffset: " << keyOffset << " valueOffset: " << valueOffset
|
<< " keyOffset: " << keyOffset << " valueOffset: " << valueOffset
|
||||||
<< " mapnodesize: " << mapnodesize);
|
<< " mapnodesize: " << mapnodesize);
|
||||||
d << ",children=[";
|
d << ",children=[";
|
||||||
@@ -1415,12 +1427,9 @@ static void qDumpQMap(QDumper &d)
|
|||||||
while (node != end) {
|
while (node != end) {
|
||||||
d.beginHash();
|
d.beginHash();
|
||||||
P(d, "name", i);
|
P(d, "name", i);
|
||||||
if (simpleKey) {
|
qDumpInnerValueHelper(d, keyType, addOffset(node, keyOffset), "key");
|
||||||
P(d, "type", valueType);
|
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
||||||
qDumpInnerValueHelper(d, keyType, addOffset(node, keyOffset), "key");
|
if (isSimpleKey && isSimpleValue) {
|
||||||
if (simpleValue)
|
|
||||||
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
|
||||||
|
|
||||||
P(d, "type", valueType);
|
P(d, "type", valueType);
|
||||||
P(d, "addr", addOffset(node, valueOffset));
|
P(d, "addr", addOffset(node, valueOffset));
|
||||||
} else {
|
} else {
|
||||||
@@ -2194,35 +2203,36 @@ static void qDumpStdMap(QDumper &d)
|
|||||||
// (#4, "std::allocator<std::pair<key, value> >")
|
// (#4, "std::allocator<std::pair<key, value> >")
|
||||||
// as it is there, and, equally importantly, in an order that
|
// as it is there, and, equally importantly, in an order that
|
||||||
// gdb accepts when fed with it.
|
// gdb accepts when fed with it.
|
||||||
char *pairType = (char *)(d.templateParameters[3]) + 16;
|
char *pairType = (char *)(d.templateParameters[3]) + 15;
|
||||||
pairType[strlen(pairType) - 2] = 0;
|
pairType[strlen(pairType) - 2] = 0;
|
||||||
P(d, "pairtype", pairType);
|
P(d, "pairtype", pairType);
|
||||||
|
|
||||||
if (d.dumpChildren) {
|
if (d.dumpChildren) {
|
||||||
bool simpleKey = isSimpleType(keyType);
|
bool isSimpleKey = isSimpleType(keyType);
|
||||||
bool simpleValue = isShortKey(valueType);
|
bool isSimpleValue = isSimpleType(valueType);
|
||||||
int valueOffset = d.extraInt[2];
|
int valueOffset = d.extraInt[2];
|
||||||
|
|
||||||
|
P(d, "extra", "isSimpleKey: " << isSimpleKey
|
||||||
|
<< " isSimpleValue: " << isSimpleValue
|
||||||
|
<< " valueType: '" << valueType
|
||||||
|
<< " valueOffset: " << valueOffset);
|
||||||
|
|
||||||
d << ",children=[";
|
d << ",children=[";
|
||||||
it = map.begin();
|
it = map.begin();
|
||||||
for (int i = 0; i < 1000 && it != map.end(); ++i, ++it) {
|
for (int i = 0; i < 1000 && it != map.end(); ++i, ++it) {
|
||||||
const void *node = it.operator->();
|
d.beginHash();
|
||||||
if (simpleKey) {
|
const void *node = it.operator->();
|
||||||
d.beginHash();
|
|
||||||
P(d, "type", valueType);
|
|
||||||
qDumpInnerValueHelper(d, keyType, node, "name");
|
|
||||||
P(d, "nameisindex", "1");
|
|
||||||
if (simpleValue)
|
|
||||||
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
|
||||||
P(d, "addr", addOffset(node, valueOffset));
|
|
||||||
d.endHash();
|
|
||||||
} else {
|
|
||||||
d.beginHash();
|
|
||||||
P(d, "name", i);
|
P(d, "name", i);
|
||||||
P(d, "addr", it.operator->());
|
qDumpInnerValueHelper(d, keyType, node, "key");
|
||||||
P(d, "type", pairType);
|
qDumpInnerValueHelper(d, valueType, addOffset(node, valueOffset));
|
||||||
d.endHash();
|
if (isSimpleKey && isSimpleValue) {
|
||||||
}
|
P(d, "type", valueType);
|
||||||
|
P(d, "addr", addOffset(node, valueOffset));
|
||||||
|
} else {
|
||||||
|
P(d, "addr", node);
|
||||||
|
P(d, "type", pairType);
|
||||||
|
}
|
||||||
|
d.endHash();
|
||||||
}
|
}
|
||||||
if (it != map.end())
|
if (it != map.end())
|
||||||
d.putEllipsis();
|
d.putEllipsis();
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ PathChooser::PathChooser(QWidget *parent) :
|
|||||||
connect(m_d->m_lineEdit, SIGNAL(textChanged(QString)), this, SIGNAL(changed()));
|
connect(m_d->m_lineEdit, SIGNAL(textChanged(QString)), this, SIGNAL(changed()));
|
||||||
connect(m_d->m_lineEdit, SIGNAL(validChanged()), this, SIGNAL(validChanged()));
|
connect(m_d->m_lineEdit, SIGNAL(validChanged()), this, SIGNAL(validChanged()));
|
||||||
|
|
||||||
m_d->m_lineEdit->setMinimumWidth(260);
|
m_d->m_lineEdit->setMinimumWidth(200);
|
||||||
hLayout->addWidget(m_d->m_lineEdit);
|
hLayout->addWidget(m_d->m_lineEdit);
|
||||||
hLayout->setSizeConstraint(QLayout::SetMinimumSize);
|
hLayout->setSizeConstraint(QLayout::SetMinimumSize);
|
||||||
|
|
||||||
|
|||||||
@@ -2833,9 +2833,12 @@ static bool extractTemplate(const QString &type, QString *tmplate, QString *inne
|
|||||||
// 'tmplate' and "Inner1@Inner2@..." etc in 'inner'. Result indicates
|
// 'tmplate' and "Inner1@Inner2@..." etc in 'inner'. Result indicates
|
||||||
// whether parsing was successful
|
// whether parsing was successful
|
||||||
int level = 0;
|
int level = 0;
|
||||||
|
bool skipSpace = false;
|
||||||
for (int i = 0; i != type.size(); ++i) {
|
for (int i = 0; i != type.size(); ++i) {
|
||||||
QChar c = type[i];
|
QChar c = type[i];
|
||||||
if (c == '<') {
|
if (c == ' ' && skipSpace) {
|
||||||
|
skipSpace = false;
|
||||||
|
} else if (c == '<') {
|
||||||
*(level == 0 ? tmplate : inner) += c;
|
*(level == 0 ? tmplate : inner) += c;
|
||||||
++level;
|
++level;
|
||||||
} else if (c == '>') {
|
} else if (c == '>') {
|
||||||
@@ -2843,6 +2846,7 @@ static bool extractTemplate(const QString &type, QString *tmplate, QString *inne
|
|||||||
*(level == 0 ? tmplate : inner) += c;
|
*(level == 0 ? tmplate : inner) += c;
|
||||||
} else if (c == ',') {
|
} else if (c == ',') {
|
||||||
*inner += (level == 1) ? '@' : ',';
|
*inner += (level == 1) ? '@' : ',';
|
||||||
|
skipSpace = true;
|
||||||
} else {
|
} else {
|
||||||
*(level == 0 ? tmplate : inner) += c;
|
*(level == 0 ? tmplate : inner) += c;
|
||||||
}
|
}
|
||||||
@@ -2850,7 +2854,7 @@ static bool extractTemplate(const QString &type, QString *tmplate, QString *inne
|
|||||||
*tmplate = tmplate->trimmed();
|
*tmplate = tmplate->trimmed();
|
||||||
*tmplate = tmplate->remove("<>");
|
*tmplate = tmplate->remove("<>");
|
||||||
*inner = inner->trimmed();
|
*inner = inner->trimmed();
|
||||||
//qDebug() << "EXTRACT TEMPLATE: " << *tmplate << *inner;
|
//qDebug() << "EXTRACT TEMPLATE: " << *tmplate << *inner << " FROM " << type;
|
||||||
return !inner->isEmpty();
|
return !inner->isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3555,9 +3559,15 @@ void GdbEngine::handleDumpCustomValue2(const GdbResultRecord &record,
|
|||||||
data1.name = '[' + data1.name + ']';
|
data1.name = '[' + data1.name + ']';
|
||||||
QString key = item.findChild("key").data();
|
QString key = item.findChild("key").data();
|
||||||
if (!key.isEmpty()) {
|
if (!key.isEmpty()) {
|
||||||
if (item.findChild("keyencoded").data()[0] == '1')
|
if (item.findChild("keyencoded").data()[0] == '1') {
|
||||||
key = '"' + QByteArray::fromBase64(key.toUtf8()) + '"';
|
key = '"' + QByteArray::fromBase64(key.toUtf8()) + '"';
|
||||||
data1.name += " (" + key + ")";
|
if (key.size() > 13) {
|
||||||
|
key = key.left(12);
|
||||||
|
key += "...";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//data1.name += " (" + key + ")";
|
||||||
|
data1.name = key;
|
||||||
}
|
}
|
||||||
setWatchDataType(data1, item.findChild("type"));
|
setWatchDataType(data1, item.findChild("type"));
|
||||||
setWatchDataExpression(data1, item.findChild("exp"));
|
setWatchDataExpression(data1, item.findChild("exp"));
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ namespace ResourceEditor {
|
|||||||
namespace Constants {
|
namespace Constants {
|
||||||
|
|
||||||
const char * const C_RESOURCEEDITOR = "Resource Editor";
|
const char * const C_RESOURCEEDITOR = "Resource Editor";
|
||||||
const char * const C_RESOURCEWINDOW = "Resourcewindow";
|
|
||||||
const char * const C_RESOURCE_MIMETYPE = "application/vnd.nokia.xml.qt.resource";
|
const char * const C_RESOURCE_MIMETYPE = "application/vnd.nokia.xml.qt.resource";
|
||||||
|
|
||||||
} // namespace Constants
|
} // namespace Constants
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ bool ResourceEditorFile::save(const QString &name /*= QString()*/)
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *ResourceEditorW::kind() const {
|
const char *ResourceEditorW::kind() const {
|
||||||
return ResourceEditor::Constants::C_RESOURCEWINDOW;
|
return ResourceEditor::Constants::C_RESOURCEEDITOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ResourceEditorFile::fileName() const
|
QString ResourceEditorFile::fileName() const
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
#include <QtGui/QFileDialog>
|
#include <QtGui/QFileDialog>
|
||||||
#include <QtGui/QMessageBox>
|
#include <QtGui/QMessageBox>
|
||||||
|
|
||||||
namespace SharedTools {
|
using namespace SharedTools;
|
||||||
|
|
||||||
QrcEditor::QrcEditor(QWidget *parent)
|
QrcEditor::QrcEditor(QWidget *parent)
|
||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
@@ -405,5 +405,3 @@ void QrcEditor::onRedo()
|
|||||||
updateCurrent();
|
updateCurrent();
|
||||||
updateHistoryControls();
|
updateHistoryControls();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace SharedTools
|
|
||||||
|
|||||||
@@ -54,6 +54,19 @@ TRANSLATOR qdesigner_internal::ResourceModel
|
|||||||
|
|
||||||
namespace qdesigner_internal {
|
namespace qdesigner_internal {
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
** FileList
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool FileList::containsFile(File *file)
|
||||||
|
{
|
||||||
|
foreach(File *tmpFile, *this)
|
||||||
|
if (tmpFile->name == file->name && tmpFile->prefix() == file->prefix())
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
** ResourceFile
|
** ResourceFile
|
||||||
*/
|
*/
|
||||||
@@ -375,7 +388,7 @@ bool ResourceFile::contains(const QString &prefix, const QString &file) const
|
|||||||
Prefix * const p = m_prefix_list.at(pref_idx);
|
Prefix * const p = m_prefix_list.at(pref_idx);
|
||||||
Q_ASSERT(p);
|
Q_ASSERT(p);
|
||||||
File equalFile(p, absolutePath(file));
|
File equalFile(p, absolutePath(file));
|
||||||
return p->file_list.contains(&equalFile);
|
return p->file_list.containsFile(&equalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ResourceFile::contains(int pref_idx, const QString &file) const
|
bool ResourceFile::contains(int pref_idx, const QString &file) const
|
||||||
@@ -383,7 +396,7 @@ bool ResourceFile::contains(int pref_idx, const QString &file) const
|
|||||||
Q_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count());
|
Q_ASSERT(pref_idx >= 0 && pref_idx < m_prefix_list.count());
|
||||||
Prefix * const p = m_prefix_list.at(pref_idx);
|
Prefix * const p = m_prefix_list.at(pref_idx);
|
||||||
File equalFile(p, absolutePath(file));
|
File equalFile(p, absolutePath(file));
|
||||||
return p->file_list.contains(&equalFile);
|
return p->file_list.containsFile(&equalFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*static*/ QString ResourceFile::fixPrefix(const QString &prefix)
|
/*static*/ QString ResourceFile::fixPrefix(const QString &prefix)
|
||||||
|
|||||||
@@ -90,7 +90,12 @@ struct File : public Node {
|
|||||||
QString name;
|
QString name;
|
||||||
QString alias;
|
QString alias;
|
||||||
};
|
};
|
||||||
typedef QList<File *> FileList;
|
|
||||||
|
class FileList : public QList<File *>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool containsFile(File *file);
|
||||||
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\class Prefix
|
\class Prefix
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ SOURCES = customwidgets.cpp
|
|||||||
|
|
||||||
# Link against the qtcreator utils lib
|
# Link against the qtcreator utils lib
|
||||||
|
|
||||||
unix {
|
linux-* {
|
||||||
# form abs path to qtcreator lib dir
|
# form abs path to qtcreator lib dir
|
||||||
GH_LIB=$$dirname(PWD)
|
GH_LIB=$$dirname(PWD)
|
||||||
GH_LIB=$$dirname(GH_LIB)
|
GH_LIB=$$dirname(GH_LIB)
|
||||||
@@ -19,7 +19,13 @@ unix {
|
|||||||
}
|
}
|
||||||
|
|
||||||
INCLUDEPATH += ../../../src/libs
|
INCLUDEPATH += ../../../src/libs
|
||||||
LIBS += -L../../../lib -lUtils
|
macx {
|
||||||
|
LIBS += -L../../../bin/QtCreator.app/Contents/PlugIns
|
||||||
|
CONFIG(debug, debug|release):LIBS += -lUtils_debug
|
||||||
|
else:LIBS += -lUtils
|
||||||
|
} else {
|
||||||
|
LIBS += -L../../../lib -lUtils
|
||||||
|
}
|
||||||
|
|
||||||
DESTDIR= $$[QT_INSTALL_PLUGINS]/designer
|
DESTDIR= $$[QT_INSTALL_PLUGINS]/designer
|
||||||
|
|
||||||
|
|||||||
@@ -159,16 +159,27 @@ void testQHash()
|
|||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
|
|
||||||
QHash<QString, float> hgg1;
|
QHash<QString, int> hgg1;
|
||||||
hgg1["22.0"] = 22.0;
|
hgg1["22.0"] = 22.0;
|
||||||
hgg1["23.0"] = 22.0;
|
hgg1["123.0"] = 22.0;
|
||||||
hgg1["24.0"] = 22.0;
|
hgg1["111111ss111128.0"] = 28.0;
|
||||||
hgg1["25.0"] = 22.0;
|
hgg1["11124.0"] = 22.0;
|
||||||
hgg1["26.0"] = 22.0;
|
hgg1["1111125.0"] = 22.0;
|
||||||
hgg1["27.0"] = 27.0;
|
hgg1["11111126.0"] = 22.0;
|
||||||
hgg1["28.0"] = 28.0;
|
hgg1["111111127.0"] = 27.0;
|
||||||
hgg1["29.0"] = 29.0;
|
hgg1["111111111128.0"] = 28.0;
|
||||||
|
hgg1["111111111111111111129.0"] = 29.0;
|
||||||
|
|
||||||
|
QHash<QByteArray, float> hgx1;
|
||||||
|
hgx1["22.0"] = 22.0;
|
||||||
|
hgx1["123.0"] = 22.0;
|
||||||
|
hgx1["111111ss111128.0"] = 28.0;
|
||||||
|
hgx1["11124.0"] = 22.0;
|
||||||
|
hgx1["1111125.0"] = 22.0;
|
||||||
|
hgx1["11111126.0"] = 22.0;
|
||||||
|
hgx1["111111127.0"] = 27.0;
|
||||||
|
hgx1["111111111128.0"] = 28.0;
|
||||||
|
hgx1["111111111111111111129.0"] = 29.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
|
|||||||
Reference in New Issue
Block a user