Skip to content

Commit

Permalink
Added: Add, Change, Remove and Clear buttons to New Project Dialog's …
Browse files Browse the repository at this point in the history
…Recent files tab
  • Loading branch information
XusinboyBekchanov committed Apr 13, 2022
1 parent 4b79d5b commit 4b72272
Show file tree
Hide file tree
Showing 6 changed files with 252 additions and 32 deletions.
54 changes: 29 additions & 25 deletions src/Main.bas
Expand Up @@ -7371,6 +7371,34 @@ Sub frmMain_ActivateApp(ByRef Sender As Form)
#endif
End Sub

Sub SaveMRU
Dim i As Integer
For i = 0 To MRUFiles.Count - 1
iniSettings.WriteString("MRUFiles", "MRUFile_0" & WStr(i), MRUFiles.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUFiles", "MRUFile_0" & WStr(i))
Next
For i = 0 To MRUFolders.Count - 1
iniSettings.WriteString("MRUFolders", "MRUFolder_0" & WStr(i), MRUFolders.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUFolders", "MRUFolder_0" & WStr(i))
Next
For i = 0 To MRUProjects.Count - 1
iniSettings.WriteString("MRUProjects", "MRUProject_0" & WStr(i), MRUProjects.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUProjects", "MRUProject_0" & WStr(i))
Next
For i = 0 To MRUSessions.Count - 1
iniSettings.WriteString("MRUSessions", "MRUSession_0" & WStr(i), MRUSessions.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUSessions", "MRUSession_0" & WStr(i))
Next
End Sub

Sub frmMain_Close(ByRef Sender As Form, ByRef Action As Integer)
On Error Goto ErrorHandler
FormClosing = True
Expand Down Expand Up @@ -7457,31 +7485,7 @@ Sub frmMain_Close(ByRef Sender As Form, ByRef Action As Integer)
iniSettings.WriteInteger("MainWindow", "ShowTipoftheDayIndex", ShowTipoftheDayIndex)
iniSettings.WriteBool("MainWindow", "ShowTipoftheDay", ShowTipoftheDay)

Dim i As Integer
For i = 0 To MRUFiles.Count - 1
iniSettings.WriteString("MRUFiles", "MRUFile_0" & WStr(i), MRUFiles.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUFiles", "MRUFile_0" & WStr(i))
Next
For i = 0 To MRUFolders.Count - 1
iniSettings.WriteString("MRUFolders", "MRUFolder_0" & WStr(i), MRUFolders.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUFolders", "MRUFolder_0" & WStr(i))
Next
For i = 0 To MRUProjects.Count - 1
iniSettings.WriteString("MRUProjects", "MRUProject_0" & WStr(i), MRUProjects.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUProjects", "MRUProject_0" & WStr(i))
Next
For i = 0 To MRUSessions.Count - 1
iniSettings.WriteString("MRUSessions", "MRUSession_0" & WStr(i), MRUSessions.Item(i))
Next
For i = i To miRecentMax
iniSettings.KeyRemove("MRUSessions", "MRUSession_0" & WStr(i))
Next
SaveMRU

iniSettings.WriteString("MainWindow", "RecentFiles", *RecentFiles)
iniSettings.WriteString("MainWindow", "RecentFile", *RecentFile)
Expand Down
1 change: 1 addition & 0 deletions src/Main.bi
Expand Up @@ -179,6 +179,7 @@ Declare Sub AddMRUSession(ByRef FileName As WString) '
Declare Sub AddFromTemplates
Declare Sub AddFilesToProject
Declare Sub RemoveFileFromProject
Declare Sub SaveMRU
Declare Sub RestoreStatusText
Declare Sub OpenUrl(ByVal url As String)
Declare Function AddProject(ByRef FileName As WString = "", pFilesList As WStringList Ptr = 0, tn As TreeNode Ptr = 0, bNew As Boolean = False) As TreeNode Ptr
Expand Down
2 changes: 1 addition & 1 deletion src/frmPath.bi
Expand Up @@ -32,7 +32,7 @@ Using My.Sys.Forms
Dim As Label lblVersion, lblPath, lblCommandLine, lblExtensions
Dim As OpenFileDialog OpenD
Dim As FolderBrowserDialog BrowseD
Dim As Boolean ChooseFolder, SetFileNameToVersion, WithoutCommandLine, WithExtensions, WithType, WithKey
Dim As Boolean ChooseFolder, SetFileNameToVersion, WithoutVersion, WithoutCommandLine, WithExtensions, WithType, WithKey
Dim As UString ExeFileName
Dim As ComboBoxEdit cboType
End Type
Expand Down
5 changes: 3 additions & 2 deletions src/frmPath.frm
Expand Up @@ -217,8 +217,8 @@ Private Sub frmPath.Form_Show_(ByRef Sender As Form)
*Cast(frmPath Ptr, Sender.Designer).Form_Show(Sender)
End Sub
Private Sub frmPath.Form_Show(ByRef Sender As Form)
lblVersion.Visible = Not ChooseFolder
txtVersion.Visible = Not ChooseFolder
lblVersion.Visible = (Not WithoutVersion) AndAlso Not ChooseFolder
txtVersion.Visible = (Not WithoutVersion) AndAlso Not ChooseFolder
lblCommandLine.Visible = Not (WithoutCommandLine OrElse ChooseFolder)
txtCommandLine.Visible = Not (WithoutCommandLine OrElse ChooseFolder OrElse WithType)
lblExtensions.Visible = WithExtensions
Expand All @@ -234,6 +234,7 @@ Private Sub frmPath.Form_Close_(ByRef Sender As Form, ByRef Action As Integer)
End Sub
Private Sub frmPath.Form_Close(ByRef Sender As Form, ByRef Action As Integer)
ChooseFolder = False
WithoutVersion = False
WithoutCommandLine = False
WithExtensions = False
WithType = False
Expand Down
14 changes: 11 additions & 3 deletions src/frmTemplates.bi
Expand Up @@ -38,18 +38,26 @@
Declare Sub cmdSaveLocation_Click(ByRef Sender As Control)
Declare Static Sub lvTemplates_SelectedItemChanged_(ByRef Sender As ListView, ByVal ItemIndex As Integer)
Declare Sub lvTemplates_SelectedItemChanged(ByRef Sender As ListView, ByVal ItemIndex As Integer)
Declare Static Sub cmdClear_Click_(ByRef Sender As Control)
Declare Sub cmdClear_Click(ByRef Sender As Control)
Declare Static Sub cmdRemove_Click_(ByRef Sender As Control)
Declare Sub cmdRemove_Click(ByRef Sender As Control)
Declare Static Sub cmdChange_Click_(ByRef Sender As Control)
Declare Sub cmdChange_Click(ByRef Sender As Control)
Declare Static Sub cmdAdd_Click_(ByRef Sender As Control)
Declare Sub cmdAdd_Click(ByRef Sender As Control)
Declare Constructor

Dim As TabControl TabControl1
Dim As TabPage tpNew, tpExisting, tpRecent
Dim As TreeView tvTemplates, tvRecent
Dim As ListView lvTemplates, lvRecent
Dim As CommandButton cmdOK, cmdCancel, cmdSaveLocation
Dim As CommandButton cmdOK, cmdCancel, cmdSaveLocation, cmdClear, cmdRemove, cmdChange, cmdAdd
Dim As WStringList Templates
Dim As Boolean OnlyFiles
Dim As Boolean OnlyFiles, RecentChanged
Dim As UString SelectedTemplate, SelectedFile, SelectedFolder
Dim As OpenFileControl OpenFileControl1
Dim As Panel pnlBottom, pnlSaveLocation
Dim As Panel pnlBottom, pnlSaveLocation, pnlRecent
Dim As Label lblSaveLocation
Dim As TextBox txtSaveLocation
End Type
Expand Down
208 changes: 207 additions & 1 deletion src/frmTemplates.frm
Expand Up @@ -186,7 +186,7 @@
.Name = "pnlSaveLocation"
.Text = "Panel1"
.TabIndex = 12
.SetBounds 0, -1, 390, 30
.SetBounds 10, -1, 410, 30
.Visible = False
.Parent = @pnlBottom
End With
Expand Down Expand Up @@ -218,8 +218,89 @@
.OnClick = @cmdSaveLocation_Click_
.Parent = @pnlSaveLocation
End With
' pnlRecent
With pnlRecent
.Name = "pnlRecent"
.Text = "Panel1"
.TabIndex = 16
.SetBounds 10, 0, 420, 30
.Designer = @This
.Parent = @pnlBottom
End With
' cmdAdd
With cmdAdd
.Name = "cmdAdd"
.Text = ML("Add")
.TabIndex = 20
.Align = DockStyle.alLeft
.ExtraMargins.Right = 10
.ExtraMargins.Bottom = 10
.Caption = ML("Add")
.SetBounds 0, 0, 88, 20
.Designer = @This
.OnClick = @cmdAdd_Click_
.Parent = @pnlRecent
End With
' cmdChange
With cmdChange
.Name = "cmdChange"
.Text = ML("Change")
.TabIndex = 19
.Align = DockStyle.alLeft
.ExtraMargins.Right = 10
.ExtraMargins.Bottom = 10
.Caption = ML("Change")
.SetBounds 98, 0, 88, 20
.Designer = @This
.OnClick = @cmdChange_Click_
.Parent = @pnlRecent
End With
' cmdRemove
With cmdRemove
.Name = "cmdRemove"
.Text = ML("Remove")
.TabIndex = 18
.Align = DockStyle.alLeft
.ExtraMargins.Right = 10
.ExtraMargins.Bottom = 10
.Caption = ML("Remove")
.SetBounds 196, 0, 88, 20
.Designer = @This
.OnClick = @cmdRemove_Click_
.Parent = @pnlRecent
End With
' cmdClear
With cmdClear
.Name = "cmdClear"
.Text = ML("Clear")
.TabIndex = 17
.Align = DockStyle.alLeft
.ExtraMargins.Right = 10
.ExtraMargins.Bottom = 10
.Caption = ML("Clear")
.SetBounds 0, 0, 88, 20
.Designer = @This
.OnClick = @cmdClear_Click_
.Parent = @pnlRecent
End With
End Constructor

Private Sub frmTemplates.cmdAdd_Click_(ByRef Sender As Control)
*Cast(frmTemplates Ptr, Sender.Designer).cmdAdd_Click(Sender)
End Sub

Private Sub frmTemplates.cmdChange_Click_(ByRef Sender As Control)
*Cast(frmTemplates Ptr, Sender.Designer).cmdChange_Click(Sender)
End Sub

Private Sub frmTemplates.cmdRemove_Click_(ByRef Sender As Control)
*Cast(frmTemplates Ptr, Sender.Designer).cmdRemove_Click(Sender)
End Sub

Private Sub frmTemplates.cmdClear_Click_(ByRef Sender As Control)
*Cast(frmTemplates Ptr, Sender.Designer).cmdClear_Click(Sender)
End Sub

Private Sub frmTemplates.TabControl1_SelChange_(ByRef Sender As TabControl, NewIndex As Integer)
*Cast(frmTemplates Ptr, Sender.Designer).TabControl1_SelChange(Sender, NewIndex)
End Sub
Expand Down Expand Up @@ -302,6 +383,9 @@ Private Sub frmTemplates.cmdOK_Click(ByRef Sender As Control)
Me.BringToFront
End If
End Select
If RecentChanged Then
SaveMRU
End If
End Sub

Private Sub frmTemplates.tvTemplates_SelChanged_(ByRef Sender As TreeView, ByRef Item As TreeNode)
Expand Down Expand Up @@ -366,6 +450,7 @@ Private Sub frmTemplates.Form_Show(ByRef Sender As Form)
tvTemplates.Nodes.Add ML("Files"), "Files"
tvTemplates_SelChanged tvTemplates, *tvTemplates.Nodes.Item(0)
tvRecent_SelChanged tvRecent, *tvRecent.Nodes.Item(0)
RecentChanged = False
TabControl1.SelectedTabIndex = 0
'This.Width = This.Width + 1
Var n = 0
Expand Down Expand Up @@ -426,6 +511,8 @@ Private Sub frmTemplates.TabControl1_SelChange(ByRef Sender As TabControl, NewIn
'OpenFileControl1.SetBounds TabControl1.Left, TabControl1.Top, TabControl1.Width, TabControl1.Height
'TabControl1.RequestAlign
'End If
pnlSaveLocation.Visible = lvTemplates.SelectedItemIndex >= 0 AndAlso Templates.Object(lvTemplates.SelectedItemIndex) > 0 AndAlso TabControl1.SelectedTabIndex = 0
pnlRecent.Visible = TabControl1.SelectedTabIndex = 2
End Sub

Private Sub frmTemplates.cmdSaveLocation_Click_(ByRef Sender As Control)
Expand All @@ -447,3 +534,122 @@ Private Sub frmTemplates.lvTemplates_SelectedItemChanged(ByRef Sender As ListVie
pnlSaveLocation.Visible = Templates.Object(lvTemplates.SelectedItemIndex) > 0
End If
End Sub

Private Sub frmTemplates.cmdClear_Click(ByRef Sender As Control)
Dim NodeIdx As Integer = -1
If tvRecent.SelectedNode <> 0 Then NodeIdx = tvRecent.SelectedNode->Index
If NodeIdx = 0 Then
miRecentSessions->Clear
miRecentSessions->Enabled = False
MRUSessions.Clear
ElseIf NodeIdx = 1 Then
miRecentFolders->Clear
miRecentFolders->Enabled = False
MRUFolders.Clear
ElseIf NodeIdx = 2 Then
miRecentProjects->Clear
miRecentProjects->Enabled = False
MRUProjects.Clear
ElseIf NodeIdx = 3 Then
miRecentFiles->Clear
miRecentFiles->Enabled = False
MRUFiles.Clear
End If
lvRecent.ListItems.Clear
RecentChanged = True
End Sub

Private Sub frmTemplates.cmdRemove_Click(ByRef Sender As Control)
Var Idx = lvRecent.SelectedItemIndex
Dim NodeIdx As Integer = -1
If tvRecent.SelectedNode <> 0 Then NodeIdx = tvRecent.SelectedNode->Index
If Idx <> -1 Then
If NodeIdx <= 0 Then
miRecentSessions->Remove miRecentSessions->Item(Idx)
MRUSessions.Remove Idx
ElseIf NodeIdx = 1 Then
miRecentFolders->Remove miRecentFolders->Item(Idx)
MRUFolders.Remove Idx
ElseIf NodeIdx = 2 Then
miRecentProjects->Remove miRecentProjects->Item(Idx)
MRUProjects.Remove Idx
ElseIf NodeIdx = 3 Then
miRecentFiles->Remove miRecentFiles->Item(Idx)
MRUFiles.Remove Idx
End If
lvRecent.ListItems.Remove Idx
RecentChanged = True
End If
End Sub

Private Sub frmTemplates.cmdChange_Click(ByRef Sender As Control)
Var Idx = lvRecent.SelectedItemIndex
Dim NodeIdx As Integer = -1
If tvRecent.SelectedNode <> 0 Then NodeIdx = tvRecent.SelectedNode->Index
If Idx <> -1 Then
pfPath->WithoutVersion = True
pfPath->WithoutCommandLine = True
If NodeIdx = 1 Then
pfPath->ChooseFolder = True
End If
pfPath->txtPath.Text = lvRecent.SelectedItem->Text(1)
Dim As UString Path
If pfPath->ShowModal() = ModalResults.OK Then
Path = pfPath->txtPath.Text
Else
Exit Sub
End If
If StartsWith(Path, "." & Slash) Then Path = Mid(Path, 3)
If NodeIdx <= 0 Then
miRecentSessions->Item(Idx)->Caption = Path
MRUSessions.Item(Idx) = Path
ElseIf NodeIdx = 1 Then
miRecentFolders->Item(Idx)->Caption = Path
MRUFolders.Item(Idx) = Path
ElseIf NodeIdx = 2 Then
miRecentProjects->Item(Idx)->Caption = Path
MRUProjects.Item(Idx) = Path
ElseIf NodeIdx = 3 Then
miRecentFiles->Item(Idx)->Caption = Path
MRUFiles.Item(Idx) = Path
End If
lvRecent.ListItems.Item(Idx)->Text(0) = GetFileName(Path)
lvRecent.ListItems.Item(Idx)->Text(1) = Path
lvRecent.ListItems.Item(Idx)->ImageKey = GetIconName(Path)
RecentChanged = True
End If
End Sub

Private Sub frmTemplates.cmdAdd_Click(ByRef Sender As Control)
Dim NodeIdx As Integer = -1
If tvRecent.SelectedNode <> 0 Then NodeIdx = tvRecent.SelectedNode->Index
pfPath->WithoutVersion = True
pfPath->WithoutCommandLine = True
If NodeIdx = 1 Then
pfPath->ChooseFolder = True
End If
pfPath->txtPath.Text = ""
Dim As UString Path
If pfPath->ShowModal() = ModalResults.OK Then
Path = pfPath->txtPath.Text
Else
Exit Sub
End If
If StartsWith(Path, "." & Slash) Then Path = Mid(Path, 3)
If NodeIdx <= 0 Then
miRecentSessions->Add Path, "", , @mClickMRU, , 0
MRUSessions.Insert 0, Path
ElseIf NodeIdx = 1 Then
miRecentFolders->Add Path, "", , @mClickMRU, , 0
MRUFolders.Insert 0, Path
ElseIf NodeIdx = 2 Then
miRecentProjects->Add Path, "", , @mClickMRU, , 0
MRUProjects.Insert 0, Path
ElseIf NodeIdx = 3 Then
miRecentFiles->Add Path, "", , @mClickMRU, , 0
MRUFiles.Insert 0, Path
End If
Var Item = lvRecent.ListItems.Add(GetFileName(Path), GetIconName(Path), , , 0)
Item->Text(1) = Path
RecentChanged = True
End Sub

0 comments on commit 4b72272

Please sign in to comment.