mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
Add new dialog Transformation text.
В окне редактирования запросов можно вызвать диалог транформации текста (Ctrl+M).
Где при помощи PCRE регулярных выражений можно изменить выделенный текст или текст из буфера обмена.
Регулярные выражения имеют подсветку синтаксиса и подсветку найденных групп.
В выражении замены можно ссылаться на найденные группы при помощи \g{номер_группы}
Настройки цветов можно редактировать в pgadmin3opt.json файле.
This commit is contained in:
parent
61a5b78bc8
commit
763f587834
10 changed files with 1334 additions and 7 deletions
61
include/utils/dlgTransformText.h
Normal file
61
include/utils/dlgTransformText.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#pragma once
|
||||
#include "pgAdmin3.h"
|
||||
#include <wx/clipbrd.h>
|
||||
#include "ctl/ctlStyledText.h"
|
||||
class dlgTransformText :
|
||||
public pgDialog
|
||||
{
|
||||
public:
|
||||
dlgTransformText(ctlSQLBox* form,const wxString source);
|
||||
~dlgTransformText();
|
||||
|
||||
void SetSource(const wxString& src);
|
||||
private:
|
||||
void OnCheckUI(wxCommandEvent& ev);
|
||||
void OnOk(wxCommandEvent& ev);
|
||||
void OnClose(wxCloseEvent& ev);
|
||||
void OnCancel(wxCommandEvent& ev);
|
||||
void OnComboSelect(wxCommandEvent& ev);
|
||||
void OnChange(wxCommandEvent& ev);
|
||||
void OnChangeLimit(wxCommandEvent& ev);
|
||||
void OnChangeOnline(wxCommandEvent& ev);
|
||||
void OnSave(wxCommandEvent& ev);
|
||||
void OnLoad(wxCommandEvent& ev);
|
||||
|
||||
void OnChangeRegEx2(wxStyledTextEvent& ev);
|
||||
void TransformText(const wxRegEx ®fld);
|
||||
void OnIdle(wxIdleEvent &ev);
|
||||
struct replace_opt {
|
||||
bool isGroup = false;
|
||||
int nGroup = -1;
|
||||
wxString text;
|
||||
};
|
||||
wxJSONValue LoadConfig(const wxString confname);
|
||||
void CheckLimits();
|
||||
wxJSONValue FillConfig();
|
||||
void LoadOptions();
|
||||
void SetDecoration(ctlStyledText* s);
|
||||
void SetStyled(ctlStyledText* s);
|
||||
void showNumber(ctlStyledText* text, bool visible);
|
||||
void AppendTextControl(ctlStyledText* ctrl, const wxString appendtext, bool isnewline = false);
|
||||
std::vector<replace_opt> BuildString(const wxString repstr);
|
||||
|
||||
wxString src;
|
||||
|
||||
wxString srcRowSep;
|
||||
wxJSONValue opt,lastconf;
|
||||
int countGroupColor = 0;
|
||||
int limitLine;
|
||||
int limitChar;
|
||||
wxString strResult;
|
||||
// UI
|
||||
bool inizialize;
|
||||
bool isChange = false;
|
||||
bool isNeedTransform = false;
|
||||
bool isOnline = false;
|
||||
wxString strReg,strRep;
|
||||
wxColour bgerror;
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
};
|
||||
|
||||
|
|
@ -94,7 +94,8 @@ extern sysSettings *settings;
|
|||
#define CTRL_FONTPICKER(id) (XRCCTRL(*this, id, wxFontPickerCtrl))
|
||||
#define CTRL_CHECKTREEVIEW(id) (XRCCTRL(*this, id, ctlCheckTreeView))
|
||||
#define CTRL_GAUGE(id) (XRCCTRL(*this, id, wxGauge))
|
||||
|
||||
#define CTRL_STYLEDTEXT(id) (XRCCTRL(*this, id, ctlStyledText))
|
||||
#define CTRL_TREEJSON(id) (XRCCTRL(*this, id, ctlTreeJSON))
|
||||
#endif // PGSCLI
|
||||
|
||||
// Conversions
|
||||
|
|
@ -120,7 +121,7 @@ wxString NumToStr(OID value);
|
|||
wxString NumToStr(wxLongLong value);
|
||||
wxString DateToStr(const wxDateTime &datetime);
|
||||
wxString ElapsedTimeToStr(wxLongLong msec);
|
||||
|
||||
wxString ContrastColorBlackOrWhite(wxColour& bgColor);
|
||||
|
||||
// Quoting
|
||||
wxString qtConnString(const wxString &value); // connection strings always have single quotes escaped with backslash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue