Skip to content

Commit

Permalink
Merge remote-tracking branch 'github/2.5'
Browse files Browse the repository at this point in the history
  • Loading branch information
vkrause committed Aug 3, 2016
2 parents 7cd0fe6 + 53f20fc commit a38b17a
Show file tree
Hide file tree
Showing 12 changed files with 58 additions and 4 deletions.
2 changes: 1 addition & 1 deletion 3rdparty/qt/resourcemodel.cpp
Expand Up @@ -250,7 +250,7 @@ ResourceModel::ResourceModel(QObject *parent)

ResourceModel::~ResourceModel()
{

delete d_ptr;
}

/*!
Expand Down
8 changes: 8 additions & 0 deletions core/metaobjectrepository.cpp
Expand Up @@ -220,6 +220,7 @@ MetaObjectRepository *MetaObjectRepository::instance()
void MetaObjectRepository::addMetaObject(MetaObject *mo)
{
Q_ASSERT(!mo->className().isEmpty());
Q_ASSERT(!m_metaObjects.contains(mo->className()));
m_metaObjects.insert(mo->className(), mo);
}

Expand All @@ -238,3 +239,10 @@ bool MetaObjectRepository::hasMetaObject(const QString &typeName) const
{
return m_metaObjects.contains(typeName);
}

void MetaObjectRepository::clear()
{
qDeleteAll(m_metaObjects);
m_metaObjects.clear();
m_initialized = false;
}
7 changes: 7 additions & 0 deletions core/metaobjectrepository.h
Expand Up @@ -72,6 +72,13 @@ class GAMMARAY_CORE_EXPORT MetaObjectRepository
*/
bool hasMetaObject(const QString &typeName) const;

/*!
* Clears the content of the meta object repository.
* Call this when removing the probe from a target.
* \internal
*/
void clear();

protected:
MetaObjectRepository();

Expand Down
2 changes: 2 additions & 0 deletions core/probe.cpp
Expand Up @@ -31,6 +31,7 @@
#include <config-gammaray.h>

#include "probe.h"
#include "metaobjectrepository.h"
#include "objectlistmodel.h"
#include "objecttreemodel.h"
#include "metaobjecttreemodel.h"
Expand Down Expand Up @@ -265,6 +266,7 @@ Probe::~Probe()

ObjectBroker::clear();
ProbeSettings::resetLauncherIdentifier();
MetaObjectRepository::instance()->clear();

s_instance = QAtomicPointer<Probe>(0);
}
Expand Down
6 changes: 6 additions & 0 deletions core/probesettings.cpp
Expand Up @@ -59,6 +59,7 @@ class ProbeSettingsReceiver : public QObject
Q_OBJECT
public:
explicit ProbeSettingsReceiver(QObject *parent = Q_NULLPTR);
~ProbeSettingsReceiver();
Q_INVOKABLE void sendServerAddress(const QUrl &address);

void waitForSettingsReceived();
Expand All @@ -81,6 +82,11 @@ ProbeSettingsReceiver::ProbeSettingsReceiver(QObject *parent)
{
}

ProbeSettingsReceiver::~ProbeSettingsReceiver()
{
delete m_socket;
}

void ProbeSettingsReceiver::run()
{
m_mutex.lock(); // we only need this for ordering run after waitForSettingsReceived
Expand Down
1 change: 1 addition & 0 deletions core/propertycontroller.cpp
Expand Up @@ -53,6 +53,7 @@ PropertyController::~PropertyController()
const auto i = s_instances.indexOf(this);
if (i >= 0)
s_instances.remove(i);
qDeleteAll(m_extensions);
}

void PropertyController::loadExtension(PropertyControllerExtensionFactoryBase *factory)
Expand Down
7 changes: 7 additions & 0 deletions core/varianthandler.cpp
Expand Up @@ -59,10 +59,17 @@ using namespace GammaRay;
namespace GammaRay {
struct VariantHandlerRepository
{
~VariantHandlerRepository();

QHash<int, VariantHandler::Converter<QString> *> stringConverters;
QVector<VariantHandler::GenericStringConverter> genericStringConverters;
};

VariantHandlerRepository::~VariantHandlerRepository()
{
qDeleteAll(stringConverters);
}

static QString displayMatrix4x4(const QMatrix4x4 &matrix)
{
QStringList rows;
Expand Down
1 change: 0 additions & 1 deletion plugins/quickinspector/quickinspector.cpp
Expand Up @@ -737,7 +737,6 @@ void QuickInspector::registerVariantHandlers()
VariantHandler::registerStringConverter<QSGOpacityNode *>(Util::addressToString);
VariantHandler::registerStringConverter<QSGNode::Flags>(qSGNodeFlagsToString);
VariantHandler::registerStringConverter<QSGNode::DirtyState>(qSGNodeDirtyStateToString);
VariantHandler::registerStringConverter<const QSGClipNode *>(Util::addressToString);
VariantHandler::registerStringConverter<QSGGeometry *>(Util::addressToString);
VariantHandler::registerStringConverter<const QSGGeometry *>(Util::addressToString);
VariantHandler::registerStringConverter<QSGMaterial *>(Util::addressToString);
Expand Down
1 change: 1 addition & 0 deletions plugins/signalmonitor/signalhistorymodel.cpp
Expand Up @@ -97,6 +97,7 @@ SignalHistoryModel::SignalHistoryModel(ProbeInterface *probe, QObject *parent)
SignalHistoryModel::~SignalHistoryModel()
{
s_historyModel = 0;
qDeleteAll(m_tracedObjects);
}

int SignalHistoryModel::rowCount(const QModelIndex &parent) const
Expand Down
12 changes: 10 additions & 2 deletions tests/remotemodeltest.cpp
Expand Up @@ -173,8 +173,11 @@ private slots:
QTest::qWait(1);
QCOMPARE(index.data().toString(), QStringLiteral("entry1"));

listModel->takeRow(3);
const auto deleteMe = listModel->takeRow(3);
qDeleteAll(deleteMe);
QCOMPARE(client.rowCount(), 4);

delete listModel;
}

void testTreeRemoteModel()
Expand Down Expand Up @@ -225,10 +228,13 @@ private slots:
QCOMPARE(i11.data().toString(), QStringLiteral("entry11"));
QCOMPARE(client.rowCount(i11), 0);

e1->takeRow(0);
const auto deleteMe = e1->takeRow(0);
qDeleteAll(deleteMe);
QCOMPARE(client.rowCount(i1), 2);
i11 = client.index(0, 0, i1);
QCOMPARE(i11.data().toString(), QStringLiteral("entry11"));

delete treeModel;
}

// this should not make a difference if the above works, however it broke massively with Qt 5.4...
Expand Down Expand Up @@ -283,6 +289,8 @@ private slots:
// this fails with data() call batching sizes close to 1
// QEXPECT_FAIL("", "QSFPM misbehavior, no idea yet where this is coming from", Continue);
QCOMPARE(proxy.rowCount(pi1), 2);

delete treeModel;
}
};

Expand Down
13 changes: 13 additions & 0 deletions ui/propertywidget.cpp
Expand Up @@ -32,6 +32,7 @@
#include "common/objectbroker.h"
#include "common/propertycontrollerinterface.h"

#include <QCoreApplication>
#include <QTimer>

#include <algorithm>
Expand Down Expand Up @@ -87,13 +88,25 @@ void PropertyWidget::setObjectBaseName(const QString &baseName)
updateShownTabs();
}

static void propertyWidgetCleanup()
{
PropertyWidget::cleanupTabs();
}

void PropertyWidget::registerTab(PropertyWidgetTabFactoryBase *factory)
{
if (s_tabFactories.isEmpty())
qAddPostRoutine(propertyWidgetCleanup);
s_tabFactories.push_back(factory);
foreach (PropertyWidget *widget, s_propertyWidgets)
widget->updateShownTabs();
}

void PropertyWidget::cleanupTabs()
{
qDeleteAll(s_tabFactories);
}

void PropertyWidget::createWidgets()
{
if (m_objectBaseName.isEmpty())
Expand Down
2 changes: 2 additions & 0 deletions ui/propertywidget.h
Expand Up @@ -71,6 +71,8 @@ class GAMMARAY_UI_EXPORT PropertyWidget : public QTabWidget
registerTab(new PropertyWidgetTabFactory<T>(name, label, priority));
}

//! \internal
static void cleanupTabs();
signals:
void tabsUpdated();

Expand Down

0 comments on commit a38b17a

Please sign in to comment.