diff --git a/frame/controller/dockitemcontroller.cpp b/frame/controller/dockitemcontroller.cpp index c9b147d3d..e5823e458 100644 --- a/frame/controller/dockitemcontroller.cpp +++ b/frame/controller/dockitemcontroller.cpp @@ -38,11 +38,6 @@ DockItemController *DockItemController::instance(QObject *parent) return INSTANCE; } -DockItemController::~DockItemController() -{ - qDeleteAll(m_itemList); -} - const QList DockItemController::itemList() const { return m_itemList; @@ -274,8 +269,8 @@ void DockItemController::appItemRemoved(const QString &appId) void DockItemController::appItemRemoved(AppItem *appItem) { emit itemRemoved(appItem); - appItem->deleteLater(); m_itemList.removeOne(appItem); + appItem->deleteLater(); } void DockItemController::pluginItemInserted(PluginsItem *item) diff --git a/frame/controller/dockitemcontroller.h b/frame/controller/dockitemcontroller.h index 6dcaeefbd..350289821 100644 --- a/frame/controller/dockitemcontroller.h +++ b/frame/controller/dockitemcontroller.h @@ -39,7 +39,6 @@ class DockItemController : public QObject public: static DockItemController *instance(QObject *parent); - ~DockItemController(); const QList itemList() const; const QList pluginList() const; diff --git a/frame/controller/dockpluginscontroller.cpp b/frame/controller/dockpluginscontroller.cpp index ba190698f..dcc624bb8 100644 --- a/frame/controller/dockpluginscontroller.cpp +++ b/frame/controller/dockpluginscontroller.cpp @@ -38,10 +38,6 @@ DockPluginsController::DockPluginsController(DockItemController *itemControllerI QTimer::singleShot(1, this, &DockPluginsController::startLoader); } -DockPluginsController::~DockPluginsController() -{ -} - void DockPluginsController::itemAdded(PluginsItemInterface * const itemInter, const QString &itemKey) { // check if same item added @@ -80,7 +76,7 @@ void DockPluginsController::itemRemoved(PluginsItemInterface * const itemInter, emit pluginItemRemoved(item); m_pluginList[itemInter].remove(itemKey); - QTimer::singleShot(1, item, &PluginsItem::deleteLater); + item->deleteLater(); } //void DockPluginsController::requestRefershWindowVisible() @@ -138,7 +134,7 @@ void DockPluginsController::positionChanged() void DockPluginsController::loadPlugin(const QString &pluginFile) { - QPluginLoader *pluginLoader = new QPluginLoader(pluginFile, this); + QPluginLoader *pluginLoader = new QPluginLoader(pluginFile); const auto meta = pluginLoader->metaData().value("MetaData").toObject(); if (!meta.contains("api") || meta["api"].toString() != API_VERSION) { diff --git a/frame/controller/dockpluginscontroller.h b/frame/controller/dockpluginscontroller.h index ede0d3ba5..221a34b38 100644 --- a/frame/controller/dockpluginscontroller.h +++ b/frame/controller/dockpluginscontroller.h @@ -39,7 +39,6 @@ class DockPluginsController : public QObject, PluginProxyInterface public: explicit DockPluginsController(DockItemController *itemControllerInter = 0); - ~DockPluginsController(); // implements PluginProxyInterface void itemAdded(PluginsItemInterface * const itemInter, const QString &itemKey); diff --git a/frame/item/dockitem.cpp b/frame/item/dockitem.cpp index bba1adedf..f90bddea7 100644 --- a/frame/item/dockitem.cpp +++ b/frame/item/dockitem.cpp @@ -28,7 +28,7 @@ Position DockItem::DockPosition = Position::Top; DisplayMode DockItem::DockDisplayMode = DisplayMode::Efficient; -std::unique_ptr DockItem::PopupWindow(nullptr); +QPointer DockItem::PopupWindow(nullptr); DockItem::DockItem(QWidget *parent) : QWidget(parent), @@ -40,7 +40,7 @@ DockItem::DockItem(QWidget *parent) m_menuManagerInter(new DBusMenuManager(this)) { - if (!PopupWindow.get()) + if (PopupWindow.isNull()) { DockPopupWindow *arrowRectangle = new DockPopupWindow(nullptr); arrowRectangle->setShadowBlurRadius(20); @@ -51,7 +51,7 @@ DockItem::DockItem(QWidget *parent) arrowRectangle->setShadowXOffset(0); arrowRectangle->setArrowWidth(18); arrowRectangle->setArrowHeight(10); - PopupWindow.reset(arrowRectangle); + PopupWindow = arrowRectangle; } m_popupTipsDelayTimer->setInterval(500); @@ -215,7 +215,7 @@ void DockItem::showPopupWindow(QWidget * const content, const bool model) if (model) emit requestWindowAutoHide(false); - DockPopupWindow *popup = PopupWindow.get(); + DockPopupWindow *popup = PopupWindow.data(); QWidget *lastContent = popup->getContent(); if (lastContent) lastContent->setVisible(false); @@ -244,7 +244,7 @@ void DockItem::popupWindowAccept() if (!PopupWindow->isVisible()) return; - disconnect(PopupWindow.get(), &DockPopupWindow::accept, this, &DockItem::popupWindowAccept); + disconnect(PopupWindow.data(), &DockPopupWindow::accept, this, &DockItem::popupWindowAccept); hidePopup(); diff --git a/frame/item/dockitem.h b/frame/item/dockitem.h index ea79f1d4b..5705629a7 100644 --- a/frame/item/dockitem.h +++ b/frame/item/dockitem.h @@ -100,7 +100,7 @@ protected: static Position DockPosition; static DisplayMode DockDisplayMode; - static std::unique_ptr PopupWindow; + static QPointer PopupWindow; }; #endif // DOCKITEM_H diff --git a/plugins/datetime/datetimeplugin.cpp b/plugins/datetime/datetimeplugin.cpp index e75fe28f7..4f435d048 100644 --- a/plugins/datetime/datetimeplugin.cpp +++ b/plugins/datetime/datetimeplugin.cpp @@ -45,12 +45,6 @@ DatetimePlugin::DatetimePlugin(QObject *parent) connect(m_refershTimer, &QTimer::timeout, this, &DatetimePlugin::updateCurrentTimeString); } -DatetimePlugin::~DatetimePlugin() -{ - delete m_centralWidget; - delete m_dateTipsLabel; -} - const QString DatetimePlugin::pluginName() const { return "datetime"; diff --git a/plugins/datetime/datetimeplugin.h b/plugins/datetime/datetimeplugin.h index 04d3ad266..356dedc79 100644 --- a/plugins/datetime/datetimeplugin.h +++ b/plugins/datetime/datetimeplugin.h @@ -36,7 +36,6 @@ class DatetimePlugin : public QObject, PluginsItemInterface public: explicit DatetimePlugin(QObject *parent = 0); - ~DatetimePlugin(); const QString pluginName() const override; const QString pluginDisplayName() const override; @@ -60,8 +59,8 @@ private slots: void updateCurrentTimeString(); private: - DatetimeWidget *m_centralWidget; - QLabel *m_dateTipsLabel; + QPointer m_centralWidget; + QPointer m_dateTipsLabel; QTimer *m_refershTimer;