mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
Draw DBname in browse
Для улучшения наглядности и понимания в какой БД мы находимся в строке браузера объектов при выделении элемента будет напротив отображаться имя БД. Это поведение можно отключить в настройках.
This commit is contained in:
parent
7dc02bd6fc
commit
de9f725b13
6 changed files with 75 additions and 4 deletions
|
|
@ -171,6 +171,55 @@ wxTreeItemId ctlTree::GetVerticalItem(wxPoint& pt) {
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
void ctlTree::DrawDbName(const wxTreeItemId& item) {
|
||||
if (item && settings->GetVisibleDbNameTree()) {
|
||||
wxRect r;
|
||||
GetBoundingRect(item, r, false);
|
||||
wxTreeItemId prev;
|
||||
wxString name = "";
|
||||
pgObject* o = GetObject(item);
|
||||
if (o) {
|
||||
pgConn* conn = o->GetConnection();
|
||||
pgServer* s = o->GetServer();
|
||||
if (conn)
|
||||
name = conn->GetName().BeforeFirst(' ');
|
||||
if (name.IsEmpty()) {
|
||||
return ;
|
||||
}
|
||||
wxColour c;
|
||||
wxClientDC dc(this);
|
||||
if (s) {
|
||||
if (!(s->GetColour().IsEmpty())) {
|
||||
c=s->GetColour();
|
||||
dc.SetBrush(wxBrush(c, wxSOLID));
|
||||
} else
|
||||
dc.SetBrush(*wxYELLOW_BRUSH);
|
||||
}
|
||||
// pgServer* s = wxColour(server->GetColour();
|
||||
|
||||
wxRect orig;
|
||||
// dc.SetBrush(*wxYELLOW_BRUSH);
|
||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
|
||||
wxString str = wxString::Format("%s", name);
|
||||
wxSize sz = dc.GetTextExtent(str);
|
||||
sz.SetWidth(sz.GetX() + 3);
|
||||
r.SetWidth(sz.GetX() + 5);
|
||||
orig = r;
|
||||
orig.Deflate(2);
|
||||
orig.SetLeft(orig.GetLeft() + (orig.GetWidth() - sz.GetWidth()));
|
||||
orig.SetHeight(sz.GetHeight());
|
||||
orig.SetWidth(sz.GetWidth());
|
||||
dc.DrawRoundedRectangle(orig, 2);
|
||||
|
||||
dc.DrawText(name, wxPoint(orig.x + 2, orig.y + 1));
|
||||
}
|
||||
|
||||
//Update();
|
||||
//return;
|
||||
}
|
||||
|
||||
}
|
||||
void ctlTree::OnMouse(wxMouseEvent& event)
|
||||
{
|
||||
wxPoint pt = event.GetPosition();
|
||||
|
|
@ -193,7 +242,7 @@ void ctlTree::OnMouse(wxMouseEvent& event)
|
|||
//event.Skip(!GetEventHandler()->ProcessEvent(nevent));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
if ((flags & wxTREE_HITTEST_ONITEMINDENT) == wxTREE_HITTEST_ONITEMINDENT && (item==GetSelection())) {
|
||||
|
|
@ -234,7 +283,6 @@ void ctlTree::OnMouse(wxMouseEvent& event)
|
|||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
event.Skip();
|
||||
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ void frmMain::execSelChange(wxTreeItemId item, bool currentNode)
|
|||
ResetLists();
|
||||
sqlPane->Clear();
|
||||
}
|
||||
|
||||
|
||||
// Get the item data, and feed it to the relevant handler,
|
||||
// cast as required.
|
||||
//
|
||||
|
|
@ -596,6 +596,7 @@ void frmMain::execSelChange(wxTreeItemId item, bool currentNode)
|
|||
else
|
||||
setDisplay(currentObject, 0, 0);
|
||||
}
|
||||
browser->DrawDbName(item);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@
|
|||
#define chkAskSaveConfirm CTRL_CHECKBOX("chkAskSaveConfirm")
|
||||
#define chkAskDelete CTRL_CHECKBOX("chkAskDelete")
|
||||
#define chkShowUsersForPrivileges CTRL_CHECKBOX("chkShowUsersForPrivileges")
|
||||
#define chkShowDBnameTree CTRL_CHECKBOX("chkShowDBnameTree")
|
||||
#define txtAutoRowCount CTRL_TEXT("txtAutoRowCount")
|
||||
#define txtIndent CTRL_TEXT("txtIndent")
|
||||
#define chkSpacesForTabs CTRL_CHECKBOX("chkSpacesForTabs")
|
||||
|
|
@ -293,6 +294,7 @@ frmOptions::frmOptions(frmMain *parent)
|
|||
chkAskDelete->SetValue(settings->GetConfirmDelete());
|
||||
chkShowUsersForPrivileges->SetValue(settings->GetShowUsersForPrivileges());
|
||||
txtAutoRowCount->SetValue(NumToStr(settings->GetAutoRowCountThreshold()));
|
||||
chkShowDBnameTree->SetValue(settings->GetVisibleDbNameTree());
|
||||
txtIndent->SetValue(NumToStr(settings->GetIndentSpaces()));
|
||||
chkSpacesForTabs->SetValue(settings->GetSpacesForTabs());
|
||||
cbCopyQuote->SetSelection(settings->GetCopyQuoting());
|
||||
|
|
@ -662,6 +664,8 @@ void frmOptions::OnOK(wxCommandEvent &ev)
|
|||
settings->SetAskSaveConfirmation(!chkAskSaveConfirm->GetValue());
|
||||
settings->SetConfirmDelete(chkAskDelete->GetValue());
|
||||
settings->SetShowUsersForPrivileges(chkShowUsersForPrivileges->GetValue());
|
||||
settings->SetVisibleDbNameTree(chkShowDBnameTree->GetValue());
|
||||
|
||||
settings->SetAutoRowCountThreshold(StrToLong(txtAutoRowCount->GetValue()));
|
||||
settings->SetIndentSpaces(StrToLong(txtIndent->GetValue()));
|
||||
settings->SetSpacesForTabs(chkSpacesForTabs->GetValue());
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ public:
|
|||
void NavigateTree(int keyCode);
|
||||
virtual ~ctlTree();
|
||||
void OnMouse(wxMouseEvent& ev);
|
||||
void DrawDbName(const wxTreeItemId& item);
|
||||
wxTreeItemId GetVerticalItem(wxPoint& pt);
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
|
|
@ -51,7 +52,6 @@ private:
|
|||
void OnChar(wxKeyEvent &event);
|
||||
wxString m_findPrefix;
|
||||
ctlTreeFindTimer *m_findTimer;
|
||||
|
||||
friend class ctlTreeFindTimer;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -814,6 +814,16 @@ public:
|
|||
{
|
||||
WriteBool(wxT("ASUTPstyle"), newval);
|
||||
}
|
||||
bool GetVisibleDbNameTree() const
|
||||
{
|
||||
bool b;
|
||||
Read(wxT("VisibleDbNameTree"), &b, true);
|
||||
return b;
|
||||
}
|
||||
void SetVisibleDbNameTree(const bool newval)
|
||||
{
|
||||
WriteBool(wxT("VisibleDbNameTree"), newval);
|
||||
}
|
||||
|
||||
|
||||
wxString GetOptionsLastTreeItem() const
|
||||
|
|
|
|||
|
|
@ -363,6 +363,14 @@
|
|||
<flag>wxEXPAND|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<object class="wxCheckBox" name="chkShowDBnameTree">
|
||||
<label>Show DB name in tree</label>
|
||||
<checked>0</checked>
|
||||
</object>
|
||||
<flag>wxEXPAND|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<object class="wxFlexGridSizer">
|
||||
<cols>2</cols>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue