Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions panels/dock/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ add_subdirectory(tray)
add_subdirectory(multitaskview)
add_subdirectory(dcc-dock-plugin)

add_subdirectory(searchitem)
#add_subdirectory(appruntimeitem)

# dock qml element(include Dock.xx defines and DockCompositor)
Expand Down
2 changes: 1 addition & 1 deletion panels/dock/multitaskview/package/multitaskview.qml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import org.deepin.ds.dock 1.0
AppletItem {
id: toggleworkspace
property bool useColumnLayout: Panel.position % 2
property int dockOrder: 13
property int dockOrder: 15
property bool shouldVisible: Applet.visible
// 1:4 the distance between app : dock height; get width/height≈0.8
implicitWidth: useColumnLayout ? Panel.rootObject.dockSize : Panel.rootObject.dockItemMaxSize * 0.8
Expand Down
24 changes: 24 additions & 0 deletions panels/dock/searchitem/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: GPL-3.0-or-later

add_library(dock-searchitem SHARED
searchitem.cpp
searchitem.h
../dockiteminfo.cpp
../dockiteminfo.h
)

target_include_directories(dock-searchitem PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/../"
"../"
)

target_link_libraries(dock-searchitem PRIVATE
dde-shell-frame
)

ds_install_package(PACKAGE org.deepin.ds.dock.searchitem TARGET dock-searchitem)
ds_handle_package_translation(PACKAGE org.deepin.ds.dock.searchitem)

install(FILES "package/icons/search.svg" DESTINATION share/dde-dock/icons/dcc-setting)
Binary file not shown.
Binary file added panels/dock/searchitem/package/icons/search.dci
Binary file not shown.
7 changes: 7 additions & 0 deletions panels/dock/searchitem/package/icons/search.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions panels/dock/searchitem/package/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"Plugin": {
"Version": "1.0",
"Id": "org.deepin.ds.dock.searchitem",
"Url": "searchitem.qml",
"Parent": "org.deepin.ds.dock"
}
}
64 changes: 64 additions & 0 deletions panels/dock/searchitem/package/searchitem.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

import QtQuick 2.15
import QtQuick.Controls 2.15

import org.deepin.ds 1.0
import org.deepin.dtk 1.0 as D
import org.deepin.ds.dock 1.0

AppletItem {
property bool useColumnLayout: Panel.position % 2
property int dockOrder: Panel.itemAlignment === Dock.CenterAlignment ? 5 : 14
property bool shouldVisible: Applet.visible
// 1:4 the distance between app : dock height; get width/height≈0.8
implicitWidth: useColumnLayout ? Panel.rootObject.dockSize : Panel.rootObject.dockItemMaxSize * 0.8
implicitHeight: useColumnLayout ? Panel.rootObject.dockItemMaxSize * 0.8 : Panel.rootObject.dockSize

PanelToolTip {
id: toolTip
text: qsTr("GrandSearch")
toolTipX: DockPanelPositioner.x
toolTipY: DockPanelPositioner.y
}

D.DciIcon {
id: icon
anchors.centerIn: parent
name: "dde-grand-search"
scale: Panel.rootObject.dockItemMaxSize * 9 / 14 / Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE
// 9:14 (iconSize/dockHeight)
sourceSize: Qt.size(Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE, Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE)
Timer {
id: toolTipShowTimer
interval: 50
onTriggered: {
var point = Applet.rootObject.mapToItem(null, Applet.rootObject.width / 2, Applet.rootObject.height / 2)
toolTip.DockPanelPositioner.bounding = Qt.rect(point.x, point.y, toolTip.width, toolTip.height)
toolTip.open()
}
}
TapHandler {
acceptedButtons: Qt.LeftButton
onTapped: {
Applet.toggleGrandSearch()
toolTip.close()
}
}
HoverHandler {
onHoveredChanged: {
if (hovered) {
toolTipShowTimer.start()
} else {
if (toolTipShowTimer.running) {
toolTipShowTimer.stop()
}

toolTip.close()
}
}
}
}
}
80 changes: 80 additions & 0 deletions panels/dock/searchitem/searchitem.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#include "searchitem.h"
#include "../constants.h"
#include "applet.h"
#include "pluginfactory.h"

#include <DDBusSender>
#include <DDciIcon>
#include <DGuiApplicationHelper>

#include <QBuffer>
#include <QGuiApplication>
#include <QProcess>

DGUI_USE_NAMESPACE
namespace dock
{

const QString grandSearchService = "com.deepin.dde.GrandSearch";
const QString grandSearchPath = "/com/deepin/dde/GrandSearch";
const QString grandSearchInterface = "com.deepin.dde.GrandSearch";
static DDBusSender searchDbus()
{
return DDBusSender().service(grandSearchService).path(grandSearchPath).interface(grandSearchInterface);
}

SearchItem::SearchItem(QObject *parent)
: DApplet(parent)
, m_visible(true)
, m_grandSearchVisible(false)
{
}

void SearchItem::toggleGrandSearch()
{
searchDbus().method("SetVisible").arg(true).call();
}

void SearchItem::toggleGrandSearchConfig()
{
QProcess::startDetached("dde-grand-search", QStringList() << "--setting");
}

DockItemInfo SearchItem::dockItemInfo()
{
DockItemInfo info;
info.name = "search";
info.displayName = tr("GrandSearch");
info.itemKey = "search";
info.settingKey = "search";
info.visible = m_visible;
info.dccIcon = DCCIconPath + "search.svg";
return info;
}

void SearchItem::setVisible(bool visible)
{
if (m_visible != visible) {
m_visible = visible;

Q_EMIT visibleChanged(visible);
}
}

void SearchItem::onGrandSearchVisibleChanged(bool visible)
{
if (m_grandSearchVisible != visible) {
m_grandSearchVisible = visible;

Q_EMIT grandSearchVisibleChanged(visible);
}
}

D_APPLET_CLASS(SearchItem)
}

#include "searchitem.moc"
51 changes: 51 additions & 0 deletions panels/dock/searchitem/searchitem.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#pragma once

#include "../dockiteminfo.h"
#include "applet.h"
#include "dsglobal.h"

class QDBusMessage;
namespace dock
{

class SearchItem : public DS_NAMESPACE::DApplet
{
Q_OBJECT
Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged)
Q_PROPERTY(bool grandSearchVisible READ grandSearchVisible NOTIFY grandSearchVisibleChanged)
public:
explicit SearchItem(QObject *parent = nullptr);

Q_INVOKABLE void toggleGrandSearch();
Q_INVOKABLE void toggleGrandSearchConfig();

Q_INVOKABLE DockItemInfo dockItemInfo();

inline bool visible() const
{
return m_visible;
}
Q_INVOKABLE void setVisible(bool visible);

Q_INVOKABLE bool grandSearchVisible() const
{
return m_grandSearchVisible;
}

Q_SIGNALS:
void visibleChanged(bool);
void grandSearchVisibleChanged(bool);

private slots:
void onGrandSearchVisibleChanged(bool);

private:
bool m_visible;
bool m_grandSearchVisible;
};

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>dock::SearchItem</name>
<message>
<location filename="../searchitem.cpp" line="47"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>searchitem</name>
<message>
<location filename="../package/searchitem.qml" line="24"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/searchitem.qml" line="53"/>
<source>SearchConfig</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>dock::SearchItem</name>
<message>
<location filename="../searchitem.cpp" line="47"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>searchitem</name>
<message>
<location filename="../package/searchitem.qml" line="24"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/searchitem.qml" line="53"/>
<source>SearchConfig</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>dock::SearchItem</name>
<message>
<location filename="../searchitem.cpp" line="47"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>searchitem</name>
<message>
<location filename="../package/searchitem.qml" line="24"/>
<source>GrandSearch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/searchitem.qml" line="53"/>
<source>SearchConfig</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="ca">
<context>
<name>dock::SearchItem</name>
<message>
<location filename="../searchitem.cpp" line="47"/>
<source>GrandSearch</source>
<translation>Cerca grossa</translation>
</message>
</context>
<context>
<name>searchitem</name>
<message>
<location filename="../package/searchitem.qml" line="24"/>
<source>GrandSearch</source>
<translation>Cerca grossa</translation>
</message>
<message>
<location filename="../package/searchitem.qml" line="53"/>
<source>SearchConfig</source>
<translation>Cerca de configuració</translation>
</message>
</context>
</TS>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="de">
<context>
<name>dock::SearchItem</name>
<message>
<location filename="../searchitem.cpp" line="47"/>
<source>GrandSearch</source>
<translation>Große Suche</translation>
</message>
</context>
<context>
<name>searchitem</name>
<message>
<location filename="../package/searchitem.qml" line="24"/>
<source>GrandSearch</source>
<translation>Große Suche</translation>
</message>
<message>
<location filename="../package/searchitem.qml" line="53"/>
<source>SearchConfig</source>
<translation type="unfinished"/>
</message>
</context>
</TS>
Loading