* New Tree interface

git-svn-id: trunk@51118 -
This commit is contained in:
michael 2016-01-02 12:59:10 +00:00
parent de4fbfafc7
commit 5022355897
5 changed files with 405 additions and 54 deletions

View File

@ -3,9 +3,9 @@ object MainForm: TMainForm
Height = 480
Top = 226
Width = 666
ActiveControl = PCDD
ActiveControl = PCRecent
Caption = 'Lazarus Database Desktop'
ClientHeight = 460
ClientHeight = 464
ClientWidth = 666
Menu = MainMenu1
OnClose = FormClose
@ -15,7 +15,7 @@ object MainForm: TMainForm
OnShow = FormShow
Position = poScreenCenter
SessionProperties = 'Height;Left;Top;Width;WindowState'
LCLVersion = '1.5'
LCLVersion = '1.7'
object TBMain: TToolBar
Left = 0
Height = 26
@ -52,83 +52,98 @@ object MainForm: TMainForm
Style = tbsSeparator
end
object TBNewTable: TToolButton
Left = 83
Left = 115
Top = 2
Action = ANewTable
end
object TBNewField: TToolButton
Left = 107
Left = 139
Top = 2
Action = ANewField
end
object ToolButton2: TToolButton
Left = 227
Left = 259
Height = 24
Top = 2
Width = 10
Style = tbsSeparator
end
object TBDeleteTable: TToolButton
Left = 237
Left = 269
Top = 2
Action = ADeleteObject
end
object ToolButton3: TToolButton
Left = 261
Left = 293
Height = 24
Top = 2
Width = 10
Style = tbsSeparator
end
object TBGenerateSQL: TToolButton
Left = 271
Left = 303
Top = 2
Action = AGenerateSQL
end
object TBAddIndex: TToolButton
Left = 155
Left = 187
Top = 2
Action = ANewIndex
end
object ToolButton5: TToolButton
Left = 295
Left = 327
Top = 2
Action = ACreateCode
end
object TBAddSequence: TToolButton
Left = 179
Left = 211
Top = 2
Action = AAddSequence
end
object ToolButton4: TToolButton
Left = 203
Left = 235
Top = 2
Action = AAddDomain
end
object ToolButton6: TToolButton
Left = 131
Left = 163
Top = 2
Action = AAddForeignKey
end
object ToolButton7: TToolButton
Left = 107
Height = 24
Top = 2
Width = 8
Caption = 'ToolButton7'
Style = tbsSeparator
end
object ToolButton8: TToolButton
Left = 83
Top = 2
Action = ANewConnection
end
end
object PCDD: TPageControl
object PCRecent: TPageControl
Left = 0
Height = 414
Height = 418
Top = 26
Width = 666
ActivePage = TSRecent
Width = 466
ActivePage = TSAll
Align = alClient
TabIndex = 0
Images = ILMain
TabIndex = 2
TabOrder = 1
object TSRecent: TTabSheet
Caption = 'Dictionaries'
ClientHeight = 388
ClientWidth = 658
ClientHeight = 380
ClientWidth = 458
ImageIndex = 19
object LVDicts: TListView
Left = 0
Height = 388
Height = 380
Top = 0
Width = 658
Width = 458
Align = alClient
Columns = <
item
@ -146,6 +161,7 @@ object MainForm: TMainForm
PopupMenu = PMDataDict
ReadOnly = True
RowSelect = True
SortColumn = 2
SortType = stText
TabOrder = 0
ViewStyle = vsReport
@ -155,13 +171,14 @@ object MainForm: TMainForm
end
object TSConnections: TTabSheet
Caption = 'Connections'
ClientHeight = 388
ClientWidth = 658
ClientHeight = 380
ClientWidth = 458
ImageIndex = 16
object LVConnections: TListView
Left = 0
Height = 388
Height = 380
Top = 0
Width = 658
Width = 458
Align = alClient
Columns = <
item
@ -190,11 +207,28 @@ object MainForm: TMainForm
OnKeyUp = LVConnectionsKeyUp
end
end
object TSAll: TTabSheet
Caption = 'Connections/Dictionaries'
ClientHeight = 380
ClientWidth = 458
ImageIndex = 17
object TVAll: TTreeView
Left = 0
Height = 380
Top = 0
Width = 458
Align = alClient
DefaultItemHeight = 16
Images = ILMain
TabOrder = 0
OnDblClick = TVAllDblClick
end
end
end
object PStatus: TPanel
Left = 0
Height = 20
Top = 440
Top = 444
Width = 666
Align = alBottom
BevelOuter = bvNone
@ -221,6 +255,15 @@ object MainForm: TMainForm
TabOrder = 0
end
end
object PCItems: TPageControl
Left = 466
Height = 418
Top = 26
Width = 200
Align = alRight
Images = ILMain
TabOrder = 3
end
object MainMenu1: TMainMenu
Images = ILMain
left = 40
@ -790,6 +833,14 @@ object MainForm: TMainForm
Action = ADeleteConnection
end
end
object MView: TMenuItem
Caption = '&View'
object MIListView: TMenuItem
AutoCheck = True
Caption = 'Legacy List View'
OnClick = MIListViewClick
end
end
end
object ALMain: TActionList
Images = ILMain
@ -907,6 +958,7 @@ object MainForm: TMainForm
object ANewConnection: TAction
Category = 'Connections'
Caption = '&New connection'
ImageIndex = 14
OnExecute = ANewConnectionExecute
ShortCut = 49230
end
@ -986,7 +1038,7 @@ object MainForm: TMainForm
left = 43
top = 136
Bitmap = {
4C690F0000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
4C69140000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CFFD09E6DFFCC96
5FFFC4794200B2673C00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
@ -1466,6 +1518,166 @@ object MainForm: TMainForm
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000FFFFFF009E6E4D2B9D6D4CD69D6D4BC59D6C
4BFF9C6C4AFF9C6B49FF9B6A49FF9B6A48FF9A6947FF996846FF986745FF9364
43FF845D3EDEFFFFFF00FFFFFF00FFFFFF009D6D4C919D6D4BFEBB9778FFAC82
62FFAC8161FFAB8060FFAB7F5FFFAA7F5EFFA87E5DFFA87C5CFF9D6D4CFF9766
43FF885C3CFFFFFFFF00FFFFFF00FFFFFF009D6D4BCFBA9778FFD8C5B9FFE8DE
D7FFE7DDD6FFE6DCD6FFE4DBD4FFE3DAD3FFE2D8D1FFE1D7D0FFEBE7E5FFEFEF
EFFF573E2AFFFFFFFF00FFFFFF00FFFFFF009C6C4BE0D9C2A5FFB59170FFAB80
5FFFA97E5EFFA97E5EFFA87D5CFFA87C5BFFA77B5AFFA67959FF9C6B49FF9664
41FF573E2AFFFFFFFF00FFFFFF00FFFFFF009C6B4AE1DDC8A9FFD4BD95FFE6D4
B9FFE6D1B6FFE4D0B5FFE3CEB3FFE2CBB0FFE0C9ADFFDFC7A9FFDABFA0FF9A6B
4AFF573E2AFFFFFFFF00FFFFFF00FFFFFF009B6A49E1DBC5A6FFC6A776FFD9BF
9BFFD1B793FFCBB08EFFCAAE8AFFC8AB87FFCBAB83FFD1B087FFD8BB9BFF996A
48FF573E2AFFFFFFFF00FFFFFF00FFFFFF009B6A48E1D9C2A4FFC1A472FFD2B8
94FFF5EDE4FFF4ECE2FFF4ECE1FFF4EBE0FFF3EADFFFCBA97FFFD6B896FF9969
47FF573E2AFFFFFFFF00FFFFFF00FFFFFF009A6947E1D7BF9FFFBD9F6FFFD4B5
90FFCBAD88FFC7A881FFC6A57DFFC4A17AFFC5A176FFCBA77BFFD4B490FF9868
46FF573E2AFFFFFFFF00FFFFFF00FFFFFF00996846E1D5BB9BFFB89A69FFD4B3
8AFFD2AF87FFD0AD82FFCFAA7DFFCDA678FFCBA474FFCCA475FFD2B18AFF9767
45FF573E2AFFFFFFFF00FFFFFF00FFFFFF00996745E1D2B796FFB49265FFD1AE
83FFCFAB7FFFCDA87AFFCBA576FFCAA271FFC89E6DFFC89F6DFFD0AE86FF9665
44FF573E2AFFFFFFFF00FFFFFF00FFFFFF00986644E1D0B492FFAF8B60FFCEA9
7CFFCCA677FFCBA374FFC9A06EFFC79D6AFFC69A66FFC69B68FFCDA882FF9564
42FF573E2AFFFFFFFF00FFFFFF00FFFFFF00976543E1CEB08EFFAA855BFFCBA4
75FFCAA271FFC89E6BFFC69B68FFC59963FFC2945EFFC49461FFCCA57DFF9463
41FF573E2AFFFFFFFF00FFFFFF00FFFFFF00966441E1CBAC88FFA67E57FFC99F
6EFFC79D69FFC69966FFC39761FFC2925CFFC18F59FFC18E5BFFCAA178FF9462
40FF573E2AFFFFFFFF00FFFFFF00FFFFFF00966340E1CAA985FFA37854FFC69A
67FFC49862FFC2945EFFC1905AFFC08C56FFBE8953FFBF8855FFC99D75FF9362
3FFF553C28E1FFFFFF00FFFFFF00FFFFFF0095623FE1CCAB85FFD1AF89FFD2B0
88FFD1AD85FFD0AA81FFCFA77FFFCEA47BFFCDA17AFFCB9F77FFC79971FF9361
3EFF4E3421A1FFFFFF00FFFFFF00FFFFFF0094613E9C94603DFF93603CFF925F
3BFF925E3AFF915D39FF905D38FF905C38FF8F5B37FF8F5A36FF8E5A35FF8E59
35B1FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000010000000580000
007A0000009D000000CB000000E8000000F9000000F4000000D9000000340000
00000000002B000000240000001700000000000000000000003D68686859CCCC
CC78CCCCCCA8CCCCCCCDCCCCCCEBEBEBEBF8FAFAFAEF888888C60000008D0000
00000000004668686817CCCCCC0C000000000000002A00000039CCCCCC590000
007C000000A8000000CE000000EE000000F9000000F0EFEFEFC40000008C0000
00650000003ECCCCCC130000000A00000000CCCCCC2FCCCCCC3FEAEAEA5E8585
85A2636363C7000000D8353535F9B1B1B1FBF4F4F4F0E0E0E0C6CCCCCC92CCCC
CC6CDCDCDC44F4F4F416F9F9F908000000000000002F000000438E8E8E600000
0088000000B2000000DB000000F3000000FA000000F0CCCCCCC7000000960000
0071000000478E8E8E180000000800000000000000000000004468686869AAAA
AA8AAAAAAAB8AAAAAADDAAAAAAF7AAAAAAFBAAAAAAF0787878C7000000930000
0000000000457878781BAAAAAA0B000000000000000000000014000000680000
0093000000BC000000E1000000F7000000FB000000F0000000C6000000270000
0000000000150000001E0000000D000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000002A0000008D000000F2000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF00000064000000220000006ABFBFBFFFF5F5F5FFF5F5F5FFF6F6
F6FFF6F6F6FFF6F6F6FFF6F6F6FFF7F7F7FFF7F7F7FFF8F8F8FFF8F8F8FFF9F9
F9FFF9F9F9FFB9B9B9FF00000069000000FFF5F5F5FFE1E1E1FFE2E2E2FFE3E3
E3FFE4E4E4FFE5E5E5FFE7E7E7FFE8E8E8FFE9E9E9FFEAEAEAFFEBEBEBFFEDED
EDFFEEEEEEFFEFEFEFFF000000FF000000FFF5F5F5FFE2E2E2FF6D6D6DFF6D6D
6DFFE5E5E5FFE7E7E7FF6F6F6FFF707070FF707070FF717171FF727272FF7272
72FFEFEFEFFFF0F0F0FF000000FF000000FFF6F6F6FFE3E3E3FF6D6D6DFF6E6E
6EFFE7E7E7FFE8E8E8FFE9E9E9FFEAEAEAFFEBEBEBFFEDEDEDFFEEEEEEFFEFEF
EFFFF0F0F0FFF1F1F1FF000000FF000000FFF6F6F6FFE4E4E4FFE5E5E5FFE7E7
E7FFE8E8E8FFE9E9E9FF707070FF717171FF727272FF727272FF737373FF7373
73FFF1F1F1FFF3F3F3FF000000FF000000FFF6F6F6FFE5E5E5FFE7E7E7FFE8E8
E8FFE9E9E9FFEAEAEAFFEBEBEBFFEDEDEDFFEEEEEEFFEFEFEFFFF0F0F0FFF1F1
F1FFF3F3F3FFF4F4F4FF000000FF000000FFF6F6F6FFE7E7E7FFE8E8E8FFE9E9
E9FFEAEAEAFFEBEBEBFF727272FF727272FF737373FFF0F0F0FFF1F1F1FFF3F3
F3FFF4F4F4FFF5F5F5FF000000FF000000FFF7F7F7FFE8E8E8FFE9E9E9FFEAEA
EAFFEBEBEBFFEDEDEDFFEEEEEEFFEFEFEFFFF0F0F0FFF1F1F1FFF3F3F3FFF4F4
F4FFF5F5F5FFF6F6F6FF000000FF000000FFF7F7F7FFE9E9E9FF707070FF7171
71FFEDEDEDFFEEEEEEFF737373FF737373FF747474FF757575FF757575FF7676
76FFF6F6F6FFF7F7F7FF000000FF000000FFF8F8F8FFEAEAEAFF717171FF7272
72FFEEEEEEFFEFEFEFFFF0F0F0FFF1F1F1FFF3F3F3FFF4F4F4FFF5F5F5FFF6F6
F6FFF7F7F7FFF9F9F9FF000000FF000000FFF9F9F9FFEDEDEDFFEEEEEEFFEFEF
EFFFF0F0F0FFF1F1F1FF757575FF757575FFF5F5F5FFF6F6F6FFF7F7F7FFF9F9
F9FFFAFAFAFFFBFBFBFF000000FF000000FFF9F9F9FFEEEEEEFFEFEFEFFFF0F0
F0FFF1F1F1FFF3F3F3FFF4F4F4FFF5F5F5FFF6F6F6FFF7F7F7FFF9F9F9FFFAFA
FAFFFBFBFBFFFCFCFCFF000000FF00000082BEBEBEFFEFEFEFFFF0F0F0FFF1F1
F1FFF3F3F3FFF4F4F4FFF5F5F5FFF6F6F6FFF7F7F7FFF9F9F9FFFAFAFAFFFBFB
FBFFFCFCFCFFC1C1C1FF0000006E0000002400000069000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF0000006900000024000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0020CCCCCC1D0000001D8E8E8E1F00000021AAAAAA1F0000001E000000000000
0000000000000000000000000000000000000000000000000000000000000000
0054CCCCCC4600000045F9F9F9410000003BAAAAAA3A00000035000000000000
0000000000000000000000000000000000000000000000000000000000000000
00A66868689ECCCCCC9EF4F4F49E8E8E8E9E7878789E0000009E000000000000
0000000000000000000000000000000000000000000000000000000000000000
004D000000BA000000BADCDCDCB1000000B1000000B100000034000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000F2CCCCCCF2000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
004B000000FF000000FFCCCCCCFF000000FF000000FF00000046000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FE888888FFEFEFEFFFAAAAAAFFCCCCCCFF787878FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FCFAFAFAFC000000FD8E8E8EFE000000FEAAAAAAFD000000FE000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FAEBEBEBFA000000FA626262F9000000FBAAAAAAFC000000FD000000000000
0000000000000000000000000000000000000000000000000000000000000000
00E8CCCCCCEB000000EE000000F3000000F3AAAAAAF7000000F7000000000000
0000000000000000000000000000000000000000000000000000000000000000
00CBCCCCCCCD000000CE000000D8000000DBAAAAAADD000000E1000000000000
0000000000000000000000000000000000000000000000000000000000000000
009DCCCCCCA8000000A8A0A0A0AF000000B2AAAAAAB8000000BC000000000000
0000000000000000000000000000000000000000000000000000000000000000
007ACCCCCC780000007CF9F9F97B00000088AAAAAA8A00000093000000000000
0000000000000000000000000000000000000000000000000000000000000000
005868686859CCCCCC59EAEAEA5E8E8E8E606868686900000068000000000000
0000000000000000000000000000000000000000000000000000000000000000
00100000003D00000039CCCCCC3F000000430000004400000014000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000002ACCCCCC2F0000002F0000000000000000000000000000
000000000000000000000000000000000056000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000530000
0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
0000000000000000000000000000000000FFFFFFFFFF828282FF878787FF8C8C
8CFFC9C9C9FF9A9A9AFFDADADAFFE2E2E2FFEAEAEAFFD3D3D3FF000000FF0000
00FF000000530000000000000000000000FFFFFFFFFFB4B4B4FFBCBCBCFFC4C4
C4FFCCCCCCFFD5D5D5FFDDDDDDFFE5E5E5FFEEEEEEFFD3D3D3FF000000FFA5A5
A5FF000000FF0000000000000000000000FFFFFFFFFF878787FFBFBFBFFF9393
93FF999999FFD9D9D9FFA6A6A6FFACACACFFF1F1F1FFD3D3D3FF000000FF9B9B
9BFF000000FF0000000100000000000000FFFFFFFFFFD3D3D3FFD3D3D3FFD3D3
D3FFD3D3D3FFD3D3D3FFD3D3D3FFD3D3D3FFD3D3D3FFD3D3D3FF000000FF9B9B
9BFF000000FF00000063000000000000003D000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF525252FF9B9B
9BFF000000FF000000FF000000000000000500000000000000FFCFCFCFFF8A8A
8AFF8D8D8DFF919191FF949494FF989898FF9B9B9BFF9F9F9FFF9B9B9BFF9B9B
9BFF000000FF000000FF0000000000000000000000000000005E000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF4F4F4FFF000000FF00000000000000000000000000000005000000FFC7C7
C7FF8B8B8BFF8E8E8EFF919191FF959595FF989898FF9C9C9CFF9F9F9FFF8181
81FF4B4B4BFF000000FF00000000000000000000000000000000000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000FFD3D3
D3FF7F7F7FFF838383FF868686FF898989FF8C8C8CFF909090FF939393FF7676
76FF646464FF000000FF00000000000000000000000000000000000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000FFD3D3
D3FF969696FF969696FF969696FF969696FF969696FF969696FF969696FF7676
76FF646464FF000000FF000000000000000000000000000000000000006B0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF0000007700000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000
}
end

View File

@ -83,7 +83,10 @@ type
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MIListView: TMenuItem;
MView: TMenuItem;
MICreateCode: TMenuItem;
PCItems: TPageControl;
PMINewConnection: TMenuItem;
PMINewDataDict: TMenuItem;
PMIOpenDataDict: TMenuItem;
@ -122,14 +125,18 @@ type
MIOpen: TMenuItem;
MFIle: TMenuItem;
ODDD: TOpenDialog;
PCDD: TPageControl;
PCRecent: TPageControl;
SDDD: TSaveDialog;
TSAll: TTabSheet;
TBAddIndex: TToolButton;
TBCreateCode: TToolButton;
TBAddSequence: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
TVAll: TTreeView;
TSConnections: TTabSheet;
ToolButton1: TToolButton;
TBNewTable: TToolButton;
@ -182,6 +189,7 @@ type
procedure HaveTabs(Sender: TObject);
procedure HaveTab(Sender: TObject);
procedure HaveTables(Sender: TObject);
procedure MIListViewClick(Sender: TObject);
procedure OpenRecentConnection(Sender: TObject);
procedure LVConnectionsKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
@ -189,10 +197,16 @@ type
procedure LVDictsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure MIDataDictClick(Sender: TObject);
procedure SaveAsExecute(Sender: TObject);
procedure TVAllDblClick(Sender: TObject);
private
FTreeIntf : Boolean;
FNRecentConnections : TTreeNode;
FNRecentDictionaries : TTreeNode;
FRecentDicts : TRecentDataDicts;
FRecentConnections : TRecentConnections;
procedure AddRecentConnection(RC: TRecentConnection; AssumeNew: Boolean);
PCDD : TPageControl;
procedure AddRecentConnectionList(RC: TRecentConnection; AssumeNew: Boolean);
procedure AddRecentConnectionTree(RC: TRecentConnection; AssumeNew: Boolean);
procedure CheckParams;
function CloseCurrentConnection: TModalResult;
function CloseCurrentTab(AddCancelClose: Boolean = False): TModalResult;
@ -207,6 +221,7 @@ type
procedure OpenConnection(RC: TRecentConnection);
procedure RegisterDDEngines;
Function SelectEngineType(out EngineName : String) : Boolean;
procedure SetupIntf;
procedure ShowImportRecentconnections;
procedure ShowNewConnectionTypes;
procedure ShowRecentConnections;
@ -218,8 +233,10 @@ type
procedure RegisterConnectionCallBacks;
procedure GetDBFDir(Sender : TObject; Var ADir : String);
procedure GetSQLConnectionDlg(Sender : TObject; Var AConnection : String);
Procedure AddRecentDict(DF : TRecentDataDict; AssumeNew : Boolean);
Procedure AddRecentDictList(DF : TRecentDataDict; AssumeNew : Boolean);
Procedure AddRecentDictTree(DF : TRecentDataDict; AssumeNew : Boolean);
Function FindLi(LV : TListView;RI : TRecentItem) : TListItem;
function FindTN(AParent: TTreeNode; RI: TRecentItem): TTreeNode;
procedure ImportClick(Sender : TObject);
procedure RecentImportClick(Sender : TObject);
procedure NewConnectionClick(Sender : TObject);
@ -269,6 +286,7 @@ uses
{$endif}
fpddsqlite3, // SQLite 3
fpddodbc, // Any ODBC supported
mssqlconn,
frmimportdd,frmgeneratesql,fpddsqldb,frmSQLConnect,fpstdexports;
{ ---------------------------------------------------------------------
@ -382,6 +400,8 @@ begin
SDDD.Title:= sld_savefileastitle;
SDDD.Filter:= sld_savefileasfilter;
//
MIListView.Caption:=sld_LegacyView;
//
//
// Register DD engines.
RegisterDDEngines;
@ -392,13 +412,20 @@ begin
FN:=SysToUTF8(GetAppConfigDir(False));
ForceDirectoriesUTF8(FN);
FN:=SysToUTF8(GetAppConfigFile(False));
PSMain.IniFileName:=ChangeFileExt(FN,'.ini');
FTreeIntf:=PSMain.ReadBoolean('TreeInterface',True);
// We need these 2 in all cases
FNRecentConnections:=TVAll.Items.AddChild(Nil,sld_Connections);
FNRecentConnections.ImageIndex:=16;
FNRecentDictionaries:=TVAll.Items.AddChild(Nil,sld_Dictionaries);
FNRecentDictionaries.ImageIndex:=19;
SetupIntf;
FRecentDicts.LoadFromFile(UTF8ToSys(FN),'RecentDicts');
FRecentConnections.LoadFromFile(UTF8ToSys(FN),'RecentConnections');
ShowRecentDictionaries;
ShowRecentConnections;
ShowDDImports;
ShowNewConnectionTypes;
PSMain.IniFileName:=ChangeFileExt(FN,'.ini');
LVDicts.Columns[0].Width:=120;
LVDicts.Columns[1].Width:=380;
LVDicts.Columns[2].Width:=150;
@ -409,10 +436,35 @@ begin
RegisterConnectionCallBacks;
end;
procedure TMainForm.SetupIntf;
begin
TSAll.TabVisible:=FTreeIntf;
TSRecent.TabVisible:=Not FTreeIntf;
TSConnections.TabVisible:=Not FTreeIntf;
if FTreeIntf then
begin
PCDD:=PCItems;
PCRecent.Align:=alLeft;
PCRecent.Width:=300;
PCItems.Visible:=True;
PCItems.Align:=alClient;
end
else
begin
PCItems.Align:=alRight;
PCItems.Visible:=False;
PCRecent.Align:=alClient;
PCDD:=PCRecent;
end;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil(FRecentConnections);
FreeAndNil(FRecentDicts);
PSMain.WriteBoolean('TreeInterface',FTreeIntf);
end;
procedure TMainForm.FormShow(Sender: TObject);
@ -560,8 +612,10 @@ begin
For I:=0 to FRecentDicts.Count-1 do
begin
DF:=FRecentDicts[i];
AddRecentDict(DF,True);
AddRecentDictList(DF,True);
AddRecentDictTree(DF,True);
end;
FNRecentDictionaries.Expand(False);
end;
procedure TMainForm.ShowRecentConnections;
@ -575,8 +629,10 @@ begin
For I:=0 to FRecentConnections.Count-1 do
begin
RC:=FRecentConnections[i];
AddRecentConnection(RC,True);
AddRecentConnectionList(RC,True);
AddRecentConnectionTree(RC,True);
end;
FNRecentConnections.Expand(False);
end;
procedure TMainForm.ShowDDImports;
@ -712,7 +768,7 @@ begin
Application.ProcessMessages;
end;
procedure TMainForm.ShowStatus(Const Msg : String);
procedure TMainForm.ShowStatus(const Msg: String);
begin
PStatusText.Caption:=Msg;
@ -725,7 +781,7 @@ begin
Application.ProcessMessages;
end;
Procedure TMainForm.DoDDEProgress(Sender : TObject; Const Msg : String);
procedure TMainForm.DoDDEProgress(Sender: TObject; const Msg: String);
begin
ShowStatus(Msg);
@ -754,7 +810,8 @@ begin
end;
procedure TMainForm.GetSQLConnectionDlg(Sender : TObject; Var AConnection : String);
procedure TMainForm.GetSQLConnectionDlg(Sender: TObject; var AConnection: String
);
Var
Last : String;
@ -767,7 +824,8 @@ begin
PSmain.StoredValue[Sender.ClassName]:=AConnection;
end;
procedure TMainForm.GetDBFDir(Sender : TObject; Var ADir : String);
procedure TMainForm.GetDBFDir(Sender: TObject; var ADir: String);
Var
IDir : String;
@ -1022,6 +1080,12 @@ begin
and (CurrentEditor.DataDictionary.Tables.Count>0);
end;
procedure TMainForm.MIListViewClick(Sender: TObject);
begin
FTreeIntf:=Not MIListView.Checked;
SetupIntf;
end;
procedure TMainForm.OpenRecentConnection(Sender: TObject);
begin
If (LVConnections.Selected<>Nil)
@ -1041,6 +1105,22 @@ begin
SaveCurrentEditorAs;
end;
procedure TMainForm.TVAllDblClick(Sender: TObject);
Var
TN : TTreeNode;
begin
TN:=TVAll.Selected;
if Assigned(TN) and Assigned(Tn) then
if TObject(TN.Data).InheritsFrom(TRecentConnection) then
OpenConnection(TRecentConnection(TN.Data))
else if TObject(TN.Data).InheritsFrom(TRecentDatadict) then
OpenDataDict(TRecentDatadict(TN.Data))
end;
{ ---------------------------------------------------------------------
File menu commands
@ -1080,7 +1160,8 @@ begin
end;
DDF.Use;
DDF.UserData:=DDE;
AddRecentDict(DDF,B);
AddRecentDictList(DDF,B);
AddRecentDictTree(DDF,B);
end;
procedure TMainForm.SaveCurrentEditor;
@ -1126,12 +1207,13 @@ begin
DDF.Name:=CurrentEditor.DataDictionary.Name;
DDF.UserData:=CurrentEditor;
DDF.Use;
AddRecentDict(DDF,True);
AddRecentDictList(DDF,True);
AddRecentDictTree(DDF,True);
end;
end;
end;
Function TMainForm.CloseAllEditors : Boolean;
function TMainForm.CloseAllEditors: Boolean;
begin
Result:=True;
@ -1140,7 +1222,7 @@ begin
Result:=CloseCurrentTab(True)<>mrCancel;
end;
Function TMainForm.CloseCurrentTab(AddCancelClose : Boolean = False) : TModalResult;
function TMainForm.CloseCurrentTab(AddCancelClose: Boolean): TModalResult;
begin
If (CurrentEditor<>Nil) then
@ -1152,7 +1234,7 @@ begin
end;
end;
Function TMainForm.CloseCurrentConnection : TModalResult;
function TMainForm.CloseCurrentConnection: TModalResult;
Var
CE : TConnectionEditor;
@ -1165,7 +1247,7 @@ begin
Result:=mrOK;
end;
Function TMainForm.CloseCurrentEditor(AddCancelClose : Boolean) : TModalResult;
function TMainForm.CloseCurrentEditor(AddCancelClose: Boolean): TModalResult;
Var
DD : TDataDictEditor;
@ -1202,7 +1284,7 @@ end;
Data dictionary Editor Auxiliary routines
---------------------------------------------------------------------}
Function TMainForm.NewDataDict : TFPDataDictionary;
function TMainForm.NewDataDict: TFPDataDictionary;
Var
DD : TDataDictEditor;
@ -1217,6 +1299,7 @@ begin
Result:=TDataDictEditor.Create(Self);
Result.PageControl:=PCDD;
Result.Parent:=PCDD;
Result.ImageIndex:=15;
PCDD.ActivePage:=Result;
Result.DataDictionary.OnProgress:=@DoDDEprogress;
end;
@ -1316,13 +1399,13 @@ begin
CurrentEditor.NewTableObject(AObjectName,TD,AObjectType);
end;
procedure TMainForm.DoImport(Const EngineName : String);
procedure TMainForm.DoImport(const EngineName: String);
begin
DoImport(EngineName,'');
end;
procedure TMainForm.DoImport(Const EngineName, Connectionstring : String);
procedure TMainForm.DoImport(const EngineName, ConnectionString: String);
Function UseNewDataDict : Boolean;
@ -1424,7 +1507,7 @@ begin
end;
Function TMainForm.FindLi(LV : TListView;RI : TRecentItem) : TListItem;
function TMainForm.FindLi(LV: TListView; RI: TRecentItem): TListItem;
Var
LI : TListItem;
@ -1442,8 +1525,17 @@ begin
end;
end;
function TMainForm.FindTN(AParent: TTreeNode; RI: TRecentItem): TTreeNode;
Procedure TMainForm.AddRecentDict(DF : TRecentDataDict; AssumeNew : Boolean);
begin
Result:=APArent.GetFirstChild;
While (Result<>Nil) and (Result.Data<>Pointer(RI)) do
Result:=Result.GetNextSibling;
end;
procedure TMainForm.AddRecentDictList(DF: TRecentDataDict; AssumeNew: Boolean);
Var
LI : TListItem;
@ -1465,11 +1557,32 @@ begin
LI.Data:=DF;
end;
procedure TMainForm.AddRecentDictTree(DF: TRecentDataDict; AssumeNew: Boolean);
Var
TN : TTreeNode;
begin
TN:=Nil;
If Not AssumeNew then
TN:=FindTN(FNRecentDictionaries,DF);
If (TN=Nil) then
TN:=TVAll.Items.AddChild(FNRecentDictionaries,DF.Name);
TN.DeleteChildren;
TVAll.Items.AddChild(TN,sld_Recentlv2+': '+DF.Filename);
TVAll.Items.AddChild(TN,sld_Recentlv3+': '+DateTimeToStr(DF.LastUse));
TN.Data:=DF;
TN.ImageIndex:=15;
TN.SelectedIndex:=15;
end;
{ ---------------------------------------------------------------------
Connection handling
---------------------------------------------------------------------}
Procedure TMainForm.AddRecentConnection(RC : TRecentConnection; AssumeNew : Boolean);
procedure TMainForm.AddRecentConnectionList(RC: TRecentConnection;
AssumeNew: Boolean);
Var
LI : TListItem;
@ -1490,9 +1603,31 @@ begin
LI.SubItems.Add(DateTimeToStr(RC.LastUse));
LI.SubItems.Add(RC.ConnectionString);
LI.Data:=RC;
end;
procedure TMainForm.AddRecentConnectionTree(RC: TRecentConnection;
AssumeNew: Boolean);
Var
TN : TTreeNode;
begin
If Not AssumeNew then
TN:=FindTN(FNRecentConnections,RC)
else
TN:=Nil;
if TN=Nil then
TN:=TVAll.Items.AddChild(FNRecentConnections,RC.Name);
TN.DeleteChildren;
TVAll.Items.AddChild(TN,sld_Connectionlv2+': '+RC.EngineName);
TVAll.Items.AddChild(TN,sld_Connectionlv3+': '+DateTimeToStr(RC.LastUse));
TVAll.Items.AddChild(TN,sld_Connectionlv2+': '+RC.ConnectionString);
TN.Data:=RC;
TN.ImageIndex:=18;
TN.SelectedIndex:=18;
end;
Function TMainForm.GetConnectionName(out AName : String) : Boolean;
function TMainForm.GetConnectionName(out AName: String): Boolean;
Var
OK : Boolean;
@ -1560,13 +1695,14 @@ begin
ShowRecentConnections;
end;
Function TMainForm.NewConnectionEditor(AName : String) : TConnectionEditor;
function TMainForm.NewConnectionEditor(AName: String): TConnectionEditor;
begin
Result:=TConnectioneditor.Create(Self);
Result.PageControl:=PCDD;
Result.Parent:=PCDD;
Result.Description:=AName;
Result.ImageIndex:=18;
PCDD.ActivePage:=Result;
end;
@ -1580,7 +1716,7 @@ begin
NewConnection(ET);
end;
Function TMainForm.SelectEngineType(out EngineName : String) : Boolean;
function TMainForm.SelectEngineType(out EngineName: String): Boolean;
begin
With TSelectConnectionTypeForm.Create(Self) do

View File

@ -242,6 +242,8 @@ resourcestring
//
sld_Fromconnection = 'From connection';
//
sld_ConnectionType = 'Connection type';
sld_LegacyView = 'Legacy List View';
implementation

View File

@ -4,6 +4,7 @@
<Version Value="9"/>
<General>
<Flags>
<SaveOnlyProjectUnits Value="True"/>
<LRSInOutputDirectory Value="False"/>
</Flags>
<SessionStorage Value="InProjectDir"/>