dde-dock/frame/util/menudialog.h
songwentao 04762453fa feat: 任务栏拖拽图标交互优化
单指长按应用图标超过1s后显示右键菜单,继续拖拽应用进行调整位置,拖拽的过程中右键菜单隐藏

Log: 优化任务栏拖拽图标人机交互逻辑
Influence: 优化任务栏拖拽图标与右键菜单显示的人机交互逻辑
Task: https://pms.uniontech.com/zentao/task-view-86283.html
Change-Id: I15b4e0cafeb94fc4545090e60965d217b93ab8cd
2021-11-01 17:43:32 +08:00

57 lines
1.6 KiB
C++

/*
* Copyright (C) 2020 ~ 2021 Deepin Technology Co., Ltd.
*
* Author: songwentao <songwentao@uniontech.com>
*
* Maintainer: songwentao <songwentao@uniontech.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* This program aims to cache the the icon and name of apps to the hash table,
* which can decrease the repeated resource consumption of loading the app info in the
* running time.
*/
#ifndef MYMENU_H
#define MYMENU_H
#include <com_deepin_api_xeventmonitor.h>
#include <com_deepin_dde_daemon_dock.h>
#include <QMenu>
#include <QWidget>
using DBusDock = com::deepin::dde::daemon::Dock;
using XEventMonitor = ::com::deepin::api::XEventMonitor;
class Menu : public QMenu
{
Q_OBJECT
public:
explicit Menu(QWidget *dockItem = nullptr, QWidget *parent = nullptr);
void onButtonPress();
protected:
bool eventFilter(QObject *watched, QEvent *event);
private:
QWidget *m_dockItem;
XEventMonitor *m_eventInter;
DBusDock *m_dockInter;
};
#endif //MYMENU_H