Porting QT memory fixes
This commit is contained in:
@@ -83,7 +83,7 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode mode,
|
||||
deleteAction = new QAction(ui->deleteAddress->text(), this);
|
||||
|
||||
// Build context menu
|
||||
contextMenu = new QMenu();
|
||||
contextMenu = new QMenu(this);
|
||||
contextMenu->addAction(copyAddressAction);
|
||||
contextMenu->addAction(copyLabelAction);
|
||||
contextMenu->addAction(editAction);
|
||||
|
||||
@@ -86,7 +86,7 @@ BanTableModel::BanTableModel(ClientModel *parent) :
|
||||
clientModel(parent)
|
||||
{
|
||||
columns << tr("IP/Netmask") << tr("Banned Until");
|
||||
priv = new BanTablePriv();
|
||||
priv.reset(new BanTablePriv());
|
||||
// default to unsorted
|
||||
priv->sortColumn = -1;
|
||||
|
||||
@@ -94,6 +94,11 @@ BanTableModel::BanTableModel(ClientModel *parent) :
|
||||
refresh();
|
||||
}
|
||||
|
||||
BanTableModel::~BanTableModel()
|
||||
{
|
||||
// Intentionally left empty
|
||||
}
|
||||
|
||||
int BanTableModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
|
||||
@@ -40,6 +40,7 @@ class BanTableModel : public QAbstractTableModel
|
||||
|
||||
public:
|
||||
explicit BanTableModel(ClientModel *parent = 0);
|
||||
~BanTableModel();
|
||||
void startAutoRefresh();
|
||||
void stopAutoRefresh();
|
||||
|
||||
@@ -66,7 +67,7 @@ public Q_SLOTS:
|
||||
private:
|
||||
ClientModel *clientModel;
|
||||
QStringList columns;
|
||||
BanTablePriv *priv;
|
||||
std::unique_ptr<BanTablePriv> priv;
|
||||
};
|
||||
|
||||
#endif // BITCOIN_QT_BANTABLEMODEL_H
|
||||
|
||||
@@ -1178,7 +1178,7 @@ void UnitDisplayStatusBarControl::mousePressEvent(QMouseEvent *event)
|
||||
/** Creates context menu, its actions, and wires up all the relevant signals for mouse events. */
|
||||
void UnitDisplayStatusBarControl::createContextMenu()
|
||||
{
|
||||
menu = new QMenu();
|
||||
menu = new QMenu(this);
|
||||
Q_FOREACH(BitcoinUnits::Unit u, BitcoinUnits::availableUnits())
|
||||
{
|
||||
QAction *menuAction = new QAction(QString(BitcoinUnits::name(u)), this);
|
||||
|
||||
@@ -52,7 +52,7 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *platformStyle, QWidget
|
||||
unlockAction = new QAction(tr("Unlock unspent"), this); // we need to enable/disable this
|
||||
|
||||
// context menu
|
||||
contextMenu = new QMenu();
|
||||
contextMenu = new QMenu(this);
|
||||
contextMenu->addAction(copyAddressAction);
|
||||
contextMenu->addAction(copyLabelAction);
|
||||
contextMenu->addAction(copyAmountAction);
|
||||
|
||||
@@ -573,7 +573,8 @@ void TableViewLastColumnResizingFixer::on_geometriesChanged()
|
||||
* Initializes all internal variables and prepares the
|
||||
* the resize modes of the last 2 columns of the table and
|
||||
*/
|
||||
TableViewLastColumnResizingFixer::TableViewLastColumnResizingFixer(QTableView* table, int lastColMinimumWidth, int allColsMinimumWidth) :
|
||||
TableViewLastColumnResizingFixer::TableViewLastColumnResizingFixer(QTableView* table, int lastColMinimumWidth, int allColsMinimumWidth, QObject *parent) :
|
||||
QObject(parent),
|
||||
tableView(table),
|
||||
lastColumnMinimumWidth(lastColMinimumWidth),
|
||||
allColumnsMinimumWidth(allColsMinimumWidth)
|
||||
|
||||
@@ -150,7 +150,7 @@ namespace GUIUtil
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TableViewLastColumnResizingFixer(QTableView* table, int lastColMinimumWidth, int allColsMinimumWidth);
|
||||
TableViewLastColumnResizingFixer(QTableView* table, int lastColMinimumWidth, int allColsMinimumWidth, QObject *parent);
|
||||
void stretchColumnWidth(int column);
|
||||
|
||||
private:
|
||||
|
||||
@@ -25,9 +25,9 @@ class TxViewDelegate : public QAbstractItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TxViewDelegate(const PlatformStyle *platformStyle):
|
||||
QAbstractItemDelegate(), unit(BitcoinUnits::BTC),
|
||||
platformStyle(platformStyle)
|
||||
TxViewDelegate(const PlatformStyle *_platformStyle, QObject *parent=nullptr):
|
||||
QAbstractItemDelegate(parent), unit(BitcoinUnits::BTC),
|
||||
platformStyle(_platformStyle)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -119,8 +119,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
|
||||
currentWatchOnlyBalance(-1),
|
||||
currentWatchUnconfBalance(-1),
|
||||
currentWatchImmatureBalance(-1),
|
||||
txdelegate(new TxViewDelegate(platformStyle)),
|
||||
filter(0)
|
||||
txdelegate(new TxViewDelegate(platformStyle, this))
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -213,7 +212,7 @@ void OverviewPage::setWalletModel(WalletModel *model)
|
||||
if(model && model->getOptionsModel())
|
||||
{
|
||||
// Set up transaction list
|
||||
filter = new TransactionFilterProxy();
|
||||
filter.reset(new TransactionFilterProxy());
|
||||
filter->setSourceModel(model->getTransactionTableModel());
|
||||
filter->setLimit(NUM_ITEMS);
|
||||
filter->setDynamicSortFilter(true);
|
||||
@@ -221,7 +220,7 @@ void OverviewPage::setWalletModel(WalletModel *model)
|
||||
filter->setShowInactive(false);
|
||||
filter->sort(TransactionTableModel::Status, Qt::DescendingOrder);
|
||||
|
||||
ui->listTransactions->setModel(filter);
|
||||
ui->listTransactions->setModel(filter.get());
|
||||
ui->listTransactions->setModelColumn(TransactionTableModel::ToAddress);
|
||||
|
||||
// Keep up to date with wallet
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "amount.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
|
||||
class ClientModel;
|
||||
class TransactionFilterProxy;
|
||||
@@ -55,7 +56,7 @@ private:
|
||||
CAmount currentWatchImmatureBalance;
|
||||
|
||||
TxViewDelegate *txdelegate;
|
||||
TransactionFilterProxy *filter;
|
||||
std::unique_ptr<TransactionFilterProxy> filter;
|
||||
|
||||
private Q_SLOTS:
|
||||
void updateDisplayUnit();
|
||||
|
||||
@@ -115,12 +115,12 @@ PeerTableModel::PeerTableModel(ClientModel *parent) :
|
||||
timer(0)
|
||||
{
|
||||
columns << tr("Node/Service") << tr("User Agent") << tr("Ping Time");
|
||||
priv = new PeerTablePriv();
|
||||
priv.reset(new PeerTablePriv());
|
||||
// default to unsorted
|
||||
priv->sortColumn = -1;
|
||||
|
||||
// set up timer for auto refresh
|
||||
timer = new QTimer();
|
||||
timer = new QTimer(this);
|
||||
connect(timer, SIGNAL(timeout()), SLOT(refresh()));
|
||||
timer->setInterval(MODEL_UPDATE_DELAY);
|
||||
|
||||
@@ -128,6 +128,11 @@ PeerTableModel::PeerTableModel(ClientModel *parent) :
|
||||
refresh();
|
||||
}
|
||||
|
||||
PeerTableModel::~PeerTableModel()
|
||||
{
|
||||
// Intentionally left empty
|
||||
}
|
||||
|
||||
void PeerTableModel::startAutoRefresh()
|
||||
{
|
||||
timer->start();
|
||||
|
||||
@@ -46,6 +46,7 @@ class PeerTableModel : public QAbstractTableModel
|
||||
|
||||
public:
|
||||
explicit PeerTableModel(ClientModel *parent = 0);
|
||||
~PeerTableModel();
|
||||
const CNodeCombinedStats *getNodeStats(int idx);
|
||||
int getRowByNodeId(NodeId nodeid);
|
||||
void startAutoRefresh();
|
||||
@@ -74,7 +75,7 @@ public Q_SLOTS:
|
||||
private:
|
||||
ClientModel *clientModel;
|
||||
QStringList columns;
|
||||
PeerTablePriv *priv;
|
||||
std::unique_ptr<PeerTablePriv> priv;
|
||||
QTimer *timer;
|
||||
};
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
ReceiveCoinsDialog::ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::ReceiveCoinsDialog),
|
||||
columnResizingFixer(0),
|
||||
model(0),
|
||||
platformStyle(platformStyle)
|
||||
{
|
||||
@@ -48,7 +49,7 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidg
|
||||
QAction *copyAmountAction = new QAction(tr("Copy amount"), this);
|
||||
|
||||
// context menu
|
||||
contextMenu = new QMenu();
|
||||
contextMenu = new QMenu(this);
|
||||
contextMenu->addAction(copyLabelAction);
|
||||
contextMenu->addAction(copyMessageAction);
|
||||
contextMenu->addAction(copyAmountAction);
|
||||
@@ -87,7 +88,7 @@ void ReceiveCoinsDialog::setModel(WalletModel *model)
|
||||
SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this,
|
||||
SLOT(recentRequestsView_selectionChanged(QItemSelection, QItemSelection)));
|
||||
// Last 2 columns are set by the columnResizingFixer, when the table geometry is ready.
|
||||
columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(tableView, AMOUNT_MINIMUM_COLUMN_WIDTH, DATE_COLUMN_WIDTH);
|
||||
columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(tableView, AMOUNT_MINIMUM_COLUMN_WIDTH, DATE_COLUMN_WIDTH, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
QRImageWidget::QRImageWidget(QWidget *parent):
|
||||
QLabel(parent), contextMenu(0)
|
||||
{
|
||||
contextMenu = new QMenu();
|
||||
contextMenu = new QMenu(this);
|
||||
QAction *saveImageAction = new QAction(tr("&Save Image..."), this);
|
||||
connect(saveImageAction, SIGNAL(triggered()), this, SLOT(saveImage()));
|
||||
contextMenu->addAction(saveImageAction);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
RecentRequestsTableModel::RecentRequestsTableModel(CWallet *wallet, WalletModel *parent) :
|
||||
walletModel(parent)
|
||||
QAbstractTableModel(parent), walletModel(parent)
|
||||
{
|
||||
Q_UNUSED(wallet);
|
||||
nReceiveRequestsMaxId = 0;
|
||||
|
||||
@@ -364,7 +364,7 @@ void RPCConsole::setClientModel(ClientModel *model)
|
||||
QAction* banAction365d = new QAction(tr("Ban Node for") + " " + tr("1 &year"), this);
|
||||
|
||||
// create peer table context menu
|
||||
peersTableContextMenu = new QMenu();
|
||||
peersTableContextMenu = new QMenu(this);
|
||||
peersTableContextMenu->addAction(disconnectAction);
|
||||
peersTableContextMenu->addAction(banAction1h);
|
||||
peersTableContextMenu->addAction(banAction24h);
|
||||
@@ -410,7 +410,7 @@ void RPCConsole::setClientModel(ClientModel *model)
|
||||
QAction* unbanAction = new QAction(tr("&Unban Node"), this);
|
||||
|
||||
// create ban table context menu
|
||||
banTableContextMenu = new QMenu();
|
||||
banTableContextMenu = new QMenu(this);
|
||||
banTableContextMenu->addAction(unbanAction);
|
||||
|
||||
// ban table context menu signals
|
||||
|
||||
@@ -145,7 +145,7 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
|
||||
QAction *editLabelAction = new QAction(tr("Edit label"), this);
|
||||
QAction *showDetailsAction = new QAction(tr("Show transaction details"), this);
|
||||
|
||||
contextMenu = new QMenu();
|
||||
contextMenu = new QMenu(this);
|
||||
contextMenu->addAction(copyAddressAction);
|
||||
contextMenu->addAction(copyLabelAction);
|
||||
contextMenu->addAction(copyAmountAction);
|
||||
@@ -205,7 +205,7 @@ void TransactionView::setModel(WalletModel *model)
|
||||
transactionView->setColumnWidth(TransactionTableModel::Type, TYPE_COLUMN_WIDTH);
|
||||
transactionView->setColumnWidth(TransactionTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH);
|
||||
|
||||
columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(transactionView, AMOUNT_MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH);
|
||||
columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(transactionView, AMOUNT_MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH, this);
|
||||
|
||||
if (model->getOptionsModel())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user