Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
杉菜酱子
RedisDesktopManager
提交
283e00b1
R
RedisDesktopManager
项目概览
杉菜酱子
/
RedisDesktopManager
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
RedisDesktopManager
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
283e00b1
编写于
10月 07, 2020
作者:
M
Mrn Om
提交者:
Igor Malinovskiy
11月 09, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Save filter history
Add filter history combobox
上级
0ccc757e
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
105 addition
and
13 deletion
+105
-13
src/app/models/connectionconf.cpp
src/app/models/connectionconf.cpp
+10
-0
src/app/models/connectionconf.h
src/app/models/connectionconf.h
+3
-1
src/app/models/connectionsmanager.cpp
src/app/models/connectionsmanager.cpp
+5
-0
src/app/models/treeoperations.cpp
src/app/models/treeoperations.cpp
+14
-2
src/app/models/treeoperations.h
src/app/models/treeoperations.h
+5
-0
src/modules/connections-tree/items/databaseitem.cpp
src/modules/connections-tree/items/databaseitem.cpp
+36
-0
src/modules/connections-tree/items/databaseitem.h
src/modules/connections-tree/items/databaseitem.h
+1
-0
src/modules/connections-tree/operations.h
src/modules/connections-tree/operations.h
+2
-0
src/qml/connections-tree/menu/database.qml
src/qml/connections-tree/menu/database.qml
+29
-10
未找到文件。
src/app/models/connectionconf.cpp
浏览文件 @
283e00b1
...
...
@@ -63,3 +63,13 @@ void ServerConfig::setOwner(QWeakPointer<TreeOperations> o)
{
m_owner
=
o
;
}
QVariantMap
ServerConfig
::
filterHistory
()
{
return
param
<
QVariantMap
>
(
"filter_history"
);
}
void
ServerConfig
::
setFilterHistory
(
QVariantMap
filterHistory
)
{
setParam
<
QVariantMap
>
(
"filter_history"
,
filterHistory
);
}
src/app/models/connectionconf.h
浏览文件 @
283e00b1
...
...
@@ -39,7 +39,6 @@ class ServerConfig : public RedisClient::ConnectionConfig
Q_PROPERTY
(
uint
databaseScanLimit
READ
databaseScanLimit
WRITE
setDatabaseScanLimit
)
public:
static
const
char
DEFAULT_NAMESPACE_SEPARATOR
=
':'
;
static
const
char
DEFAULT_KEYS_GLOB_PATTERN
=
'*'
;
...
...
@@ -71,6 +70,9 @@ public:
QWeakPointer
<
TreeOperations
>
owner
()
const
;
void
setOwner
(
QWeakPointer
<
TreeOperations
>
o
);
QVariantMap
filterHistory
();
void
setFilterHistory
(
QVariantMap
filterHistory
);
private:
QWeakPointer
<
TreeOperations
>
m_owner
;
};
...
...
src/app/models/connectionsmanager.cpp
浏览文件 @
283e00b1
...
...
@@ -272,6 +272,11 @@ void ConnectionsManager::createServerItemForConnection(
serverItem
.
dynamicCast
<
ConnectionsTree
::
TreeItem
>
().
toWeakRef
());
});
connect
(
treeModel
.
data
(),
&
TreeOperations
::
filterHistoryUpdated
,
this
,
[
this
]()
{
saveConfig
();
});
connect
(
serverItem
.
data
(),
&
ConnectionsTree
::
ServerItem
::
editActionRequested
,
this
,
[
this
,
treeModel
]()
{
if
(
!
treeModel
)
return
;
...
...
src/app/models/treeoperations.cpp
浏览文件 @
283e00b1
...
...
@@ -141,6 +141,14 @@ void TreeOperations::loadNamespaceItems(
QSet
<
QByteArray
>
expandedNs
)
{
QString
keyPattern
=
filter
.
isEmpty
()
?
m_config
.
keysPattern
()
:
filter
;
if
(
m_filterHistory
.
contains
(
keyPattern
))
{
m_filterHistory
[
keyPattern
]
=
m_filterHistory
[
keyPattern
].
toInt
()
+
1
;
}
else
{
m_filterHistory
[
keyPattern
]
=
1
;
}
m_config
.
setFilterHistory
(
m_filterHistory
);
emit
filterHistoryUpdated
();
auto
renderingCallback
=
[
this
,
callback
,
filter
,
parent
,
expandedNs
](
const
RedisClient
::
Connection
::
RawKeysList
&
keylist
,
...
...
@@ -205,8 +213,12 @@ QString TreeOperations::getNamespaceSeparator() {
QString
TreeOperations
::
defaultFilter
()
{
return
m_config
.
keysPattern
();
}
QString
TreeOperations
::
connectionName
()
const
{
QVariantMap
TreeOperations
::
getFilterHistory
()
{
m_filterHistory
=
m_config
.
filterHistory
();
return
m_filterHistory
;
}
QString
TreeOperations
::
connectionName
()
const
{
return
m_config
.
name
();
}
...
...
src/app/models/treeoperations.h
浏览文件 @
283e00b1
...
...
@@ -40,6 +40,8 @@ class TreeOperations : public QObject,
QString
defaultFilter
()
override
;
QVariantMap
getFilterHistory
()
override
;
QString
connectionName
()
const
override
;
void
openKeyTab
(
QSharedPointer
<
ConnectionsTree
::
KeyItem
>
key
,
...
...
@@ -99,6 +101,8 @@ signals:
void
configUpdated
();
void
filterHistoryUpdated
();
protected:
bool
loadDatabases
(
std
::
function
<
void
(
RedisClient
::
DatabaseList
)
>
callback
);
...
...
@@ -115,5 +119,6 @@ signals:
uint
m_dbCount
;
RedisClient
::
Connection
::
Mode
m_connectionMode
;
ServerConfig
m_config
;
QVariantMap
m_filterHistory
;
QWeakPointer
<
ConnectionsTree
::
ServerItem
>
m_serverItem
;
};
src/modules/connections-tree/items/databaseitem.cpp
浏览文件 @
283e00b1
...
...
@@ -96,6 +96,7 @@ void DatabaseItem::loadKeys(std::function<void()> callback) {
QVariantMap
DatabaseItem
::
metadata
()
const
{
QVariantMap
metadata
=
TreeItem
::
metadata
();
metadata
[
"filter"
]
=
m_filter
.
pattern
();
metadata
[
"filterHistory"
]
=
filterHistoryTop10
();
metadata
[
"live_update"
]
=
isLiveUpdateEnabled
();
return
metadata
;
}
...
...
@@ -227,6 +228,12 @@ QHash<QString, std::function<void()>> DatabaseItem::eventHandlers() {
loadKeys
();
});
events
.
insert
(
"right-click"
,
[
this
]()
{
if
(
m_childItems
.
size
()
!=
0
)
return
;
emit
m_model
.
itemChanged
(
getSelf
());
});
events
.
insert
(
"add_key"
,
[
this
]()
{
m_operations
->
openNewKeyDialog
(
m_dbIndex
,
[
this
]()
{
confirmAction
(
...
...
@@ -304,3 +311,32 @@ QSharedPointer<QTimer> DatabaseItem::liveUpdateTimer() {
bool
DatabaseItem
::
isLiveUpdateEnabled
()
const
{
return
m_liveUpdateTimer
&&
m_liveUpdateTimer
->
isActive
();
}
// Top 10 filters
QVariantList
DatabaseItem
::
filterHistoryTop10
()
const
{
typedef
QPair
<
QString
,
int
>
FilterUsage
;
QList
<
FilterUsage
>
filterHistoryRating
;
QVariantList
filterHistoryList
;
auto
server
=
parent
().
toStrongRef
();
if
(
!
server
||
!
server
.
staticCast
<
ServerItem
>
())
return
filterHistoryList
;
QVariantMap
filterHistory
=
m_operations
->
getFilterHistory
();
QVariantMap
::
const_iterator
i
(
filterHistory
.
begin
());
while
(
i
!=
filterHistory
.
end
())
{
FilterUsage
filterUsage
;
filterUsage
.
first
=
i
.
key
();
filterUsage
.
second
=
i
.
value
().
toInt
();
filterHistoryRating
.
append
(
filterUsage
);
++
i
;
}
std
::
sort
(
filterHistoryRating
.
begin
(),
filterHistoryRating
.
end
(),
[](
FilterUsage
i
,
FilterUsage
j
)
{
return
(
i
.
second
>
j
.
second
);
});
for
(
int
i
=
0
;
filterHistoryRating
.
size
();
i
++
)
{
if
(
i
>=
10
)
break
;
filterHistoryList
.
append
(
filterHistoryRating
.
takeFirst
().
first
);
}
return
filterHistoryList
;
}
src/modules/connections-tree/items/databaseitem.h
浏览文件 @
283e00b1
...
...
@@ -45,6 +45,7 @@ class DatabaseItem : public AbstractNamespaceItem {
private:
QSharedPointer
<
QTimer
>
liveUpdateTimer
();
bool
isLiveUpdateEnabled
()
const
;
QVariantList
filterHistoryTop10
()
const
;
private:
unsigned
int
m_keysCount
;
...
...
src/modules/connections-tree/operations.h
浏览文件 @
283e00b1
...
...
@@ -61,6 +61,8 @@ class Operations {
virtual
QString
defaultFilter
()
=
0
;
virtual
QVariantMap
getFilterHistory
()
=
0
;
virtual
QString
connectionName
()
const
=
0
;
virtual
void
openKeyTab
(
QSharedPointer
<
KeyItem
>
key
,
bool
openInNewTab
)
=
0
;
...
...
src/qml/connections-tree/menu/database.qml
浏览文件 @
283e00b1
import
QtQuick
2.5
import
QtQuick
.
Layouts
1.1
import
QtQuick
.
Controls
1.4
import
QtQuick
.
Controls
2.13
import
QtQuick
.
Window
2.2
import
"
./../../common/platformutils.js
"
as
PlatformUtils
import
"
.
"
...
...
@@ -146,15 +146,34 @@ RowLayout {
property
int
btnWidth
:
PlatformUtils
.
isOSXRetina
(
Screen
)?
18
:
22
property
int
btnHeight
:
PlatformUtils
.
isOSXRetina
(
Screen
)?
18
:
22
TextField
{
id
:
filterText
Layout.fillWidth
:
true
placeholderText
:
qsTranslate
(
"
RDM
"
,
"
Enter Filter
"
)
BetterComboBox
{
id
:
filterCombobox
objectName
:
"
rdm_inline_menu_filter_field
"
text
:
styleData
.
value
[
"
filter
"
]
editable
:
true
Layout.fillWidth
:
true
indicator.width
:
30
selectTextByMouse
:
true
editText
:
styleData
.
value
[
"
filter
"
]
model
:
styleData
.
value
[
"
filterHistory
"
]
palette.highlightedText
:
sysPalette
.
highlightedText
delegate
:
ItemDelegate
{
height
:
filterCombobox
.
height
width
:
filterCombobox
.
width
highlighted
:
filterCombobox
.
highlightedIndex
===
index
contentItem
:
Text
{
text
:
modelData
color
:
parent
.
highlighted
?
sysPalette
.
buttonText
:
sysPalette
.
text
verticalAlignment
:
Text
.
AlignVCenter
elide
:
Text
.
ElideRight
BetterToolTip
{
title
:
modelData
visible
:
parent
.
truncated
&&
title
&&
hovered
}
}
}
onAccepted
:
{
filterOk
.
setFilter
()
...
...
@@ -178,7 +197,7 @@ RowLayout {
if
(
!
connectionsManager
)
return
connectionsManager
.
setMetadata
(
styleData
.
index
,
"
filter
"
,
filter
Text
.
t
ext
)
connectionsManager
.
setMetadata
(
styleData
.
index
,
"
filter
"
,
filter
Combobox
.
editT
ext
)
root
.
state
=
"
menu
"
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录