mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
fix #38. Add options "Quick jump to the root node" and "Auto save query text".
Первая предназначена для отключения/включения быстрого перемещения к корневым узлам. Вторая для отключения/включения автоматического сохранения закладок в Query Tool. После отключения авто сохранения возможно понадобиться вручную очистить каталог с сохранёнными закладками %APPDATA%\postgresql\recovery
This commit is contained in:
parent
4d7ed843aa
commit
bce303c437
9 changed files with 198 additions and 84 deletions
|
|
@ -225,12 +225,13 @@ void ctlTree::OnMouse(wxMouseEvent& event)
|
|||
wxPoint pt = event.GetPosition();
|
||||
int flags = 0;
|
||||
wxTreeItemId item = DoTreeHitTest(pt, flags);
|
||||
if (event.LeftDown())
|
||||
if (isJumpRoot) {
|
||||
if (event.LeftDown())
|
||||
{
|
||||
if ((flags & wxTREE_HITTEST_ONITEMINDENT) == wxTREE_HITTEST_ONITEMINDENT) {
|
||||
if (item) {
|
||||
wxRect r;
|
||||
wxTreeItemId itemParent=item;
|
||||
wxTreeItemId itemParent = item;
|
||||
GetBoundingRect(itemParent, r, false);
|
||||
wxTreeItemId prev;
|
||||
prev = GetVerticalItem(pt);
|
||||
|
|
@ -245,46 +246,47 @@ void ctlTree::OnMouse(wxMouseEvent& event)
|
|||
|
||||
}
|
||||
else {
|
||||
if ((flags & wxTREE_HITTEST_ONITEMINDENT) == wxTREE_HITTEST_ONITEMINDENT && (item==GetSelection())) {
|
||||
wxRect r;
|
||||
GetBoundingRect(item, r, true);
|
||||
r.width = r.x-19;
|
||||
r.x = r.x - 19;
|
||||
if (r.x < 10) return;
|
||||
wxTreeItemId prev;
|
||||
wxTreeItemId itemParent = item;
|
||||
wxImageList *list=this->GetImageList();
|
||||
wxClientDC dc(this);
|
||||
bool ex = false;
|
||||
while (!ex) {
|
||||
//ex = true;
|
||||
prev = itemParent;
|
||||
itemParent = GetItemParent(itemParent);
|
||||
//this->ScrollTo(itemParent);
|
||||
if (!itemParent.IsOk()) break;
|
||||
if ((flags & wxTREE_HITTEST_ONITEMINDENT) == wxTREE_HITTEST_ONITEMINDENT && (item == GetSelection())) {
|
||||
wxRect r;
|
||||
GetBoundingRect(item, r, true);
|
||||
r.width = r.x - 19;
|
||||
r.x = r.x - 19;
|
||||
//if (r.x >= pt.x) ex = false;
|
||||
int image = this->GetItemImage(itemParent);
|
||||
if (image >= 0) {
|
||||
dc.SetClippingRegion(r.x + 1 - 19, r.y + 1,
|
||||
16, 16);
|
||||
list->Draw(image, dc,
|
||||
r.x + 1 - 19,
|
||||
r.y + 1,
|
||||
wxIMAGELIST_DRAW_TRANSPARENT
|
||||
);
|
||||
dc.DestroyClippingRegion();
|
||||
if (r.x < 10) return;
|
||||
wxTreeItemId prev;
|
||||
wxTreeItemId itemParent = item;
|
||||
wxImageList* list = this->GetImageList();
|
||||
wxClientDC dc(this);
|
||||
bool ex = false;
|
||||
while (!ex) {
|
||||
//ex = true;
|
||||
prev = itemParent;
|
||||
itemParent = GetItemParent(itemParent);
|
||||
//this->ScrollTo(itemParent);
|
||||
if (!itemParent.IsOk()) break;
|
||||
r.x = r.x - 19;
|
||||
//if (r.x >= pt.x) ex = false;
|
||||
int image = this->GetItemImage(itemParent);
|
||||
if (image >= 0) {
|
||||
dc.SetClippingRegion(r.x + 1 - 19, r.y + 1,
|
||||
16, 16);
|
||||
list->Draw(image, dc,
|
||||
r.x + 1 - 19,
|
||||
r.y + 1,
|
||||
wxIMAGELIST_DRAW_TRANSPARENT
|
||||
);
|
||||
dc.DestroyClippingRegion();
|
||||
}
|
||||
}
|
||||
}
|
||||
// dc.SetBrush(*wxRED);
|
||||
// dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
// dc.DrawRectangle(r);
|
||||
Update();
|
||||
return;
|
||||
// dc.SetBrush(*wxRED);
|
||||
// dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
// dc.DrawRectangle(r);
|
||||
Update();
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
event.Skip();
|
||||
}
|
||||
event.Skip();
|
||||
|
||||
}
|
||||
void ctlTree::OnChar(wxKeyEvent &event)
|
||||
|
|
@ -352,6 +354,7 @@ void ctlTree::OnChar(wxKeyEvent &event)
|
|||
ctlTree::ctlTree(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style)
|
||||
: wxTreeCtrl(parent, id, pos, size, style), m_findTimer(NULL)
|
||||
{
|
||||
isJumpRoot = settings->GetJumpRoot();
|
||||
}
|
||||
|
||||
ctlTree::~ctlTree()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue