mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
2024.2.24.0
Feed: improve move/copy
This commit is contained in:
@@ -20,7 +20,7 @@ Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons
|
||||
Imports RButton = PersonalUtilities.Forms.Toolbars.RangeSwitcherToolbar.ControlItem
|
||||
Friend Class ChannelViewForm : Implements IChannelLimits
|
||||
#Region "Events"
|
||||
Friend Event OnUsersAdded(ByVal StartIndex As Integer)
|
||||
Friend Event OnUsersAdded As UsersAddedEventHandler
|
||||
Friend Event OnDownloadDone As NotificationEventHandler
|
||||
#End Region
|
||||
#Region "Appended user structure"
|
||||
|
||||
@@ -16,6 +16,9 @@ Imports UserMediaD = SCrawler.DownloadObjects.TDownloader.UserMediaD
|
||||
Imports DTSModes = PersonalUtilities.Forms.DateTimeSelectionForm.Modes
|
||||
Namespace DownloadObjects
|
||||
Friend Class DownloadFeedForm
|
||||
#Region "Events"
|
||||
Friend Event UsersAdded As UsersAddedEventHandler
|
||||
#End Region
|
||||
#Region "Declarations"
|
||||
Private Const FeedTitleDefault As String = "Feed"
|
||||
Private WithEvents MyDefs As DefaultFormOptions
|
||||
@@ -495,13 +498,15 @@ Namespace DownloadObjects
|
||||
Private Sub BTT_COPY_MOVE_TO_Click(sender As Object, e As EventArgs) Handles BTT_COPY_TO.Click, BTT_MOVE_TO.Click
|
||||
MoveCopyFiles(True, sender, Nothing, Nothing)
|
||||
End Sub
|
||||
Private Function MoveCopyFiles(ByVal IsInternal As Boolean, ByVal Sender As Object, ByVal NewDestination As SFile, ByVal FeedMediaFile As SFile) As Boolean
|
||||
Private Function MoveCopyFiles(ByVal IsInternal As Boolean, ByVal Sender As Object, ByVal MCTOptions As FeedMoveCopyTo, ByVal FeedMediaData As FeedMedia) As Boolean
|
||||
Const MsgTitle$ = "Copy/Move checked files"
|
||||
Try
|
||||
Dim isCopy As Boolean = Not Sender Is Nothing AndAlso Sender Is BTT_COPY_TO
|
||||
Dim dest As SFile = Nothing
|
||||
Dim moveOptions As FeedMoveCopyTo = Nothing
|
||||
Dim ff As SFile = Nothing, df As SFile
|
||||
Dim files As IEnumerable(Of SFile) = Nothing
|
||||
Dim data As IEnumerable(Of UserMediaD) = Nothing
|
||||
Dim dd As UserMediaD
|
||||
Dim data_files As IEnumerable(Of SFile) = Nothing
|
||||
Dim mm As UserMediaD
|
||||
Dim mm_data As API.Base.UserMedia
|
||||
Dim indx%
|
||||
@@ -514,42 +519,91 @@ Namespace DownloadObjects
|
||||
Dim sesFile As SFile
|
||||
Dim sesFilesReplaced As Boolean = False
|
||||
Dim filesReplace As New List(Of KeyValuePair(Of SFile, SFile))
|
||||
Dim updateFileLocations As Boolean = Settings.FeedUpdateFileLocationOnMove
|
||||
Dim updateFileLocations As Boolean = Settings.FeedMoveCopyUpdateFileLocationOnMove
|
||||
Dim result As Boolean = False
|
||||
|
||||
If FeedMediaFile.IsEmptyString Then
|
||||
With GetCheckedMedia()
|
||||
If .ListExists Then files = .Select(Function(m) m.Data.File)
|
||||
If FeedMediaData Is Nothing Then
|
||||
data = GetCheckedMedia()
|
||||
With data
|
||||
If .ListExists Then data_files = .Select(Function(m) m.Data.File)
|
||||
End With
|
||||
Else
|
||||
files = {FeedMediaFile}
|
||||
data = {FeedMediaData.Media}
|
||||
data_files = {FeedMediaData.File}
|
||||
End If
|
||||
If files.ListExists Then
|
||||
If NewDestination.IsEmptyString Then
|
||||
Using f As New FeedCopyToForm(files, isCopy)
|
||||
If data.ListExists Then
|
||||
If MCTOptions.Destination.IsEmptyString Then
|
||||
Using f As New FeedCopyToForm(data_files, isCopy)
|
||||
f.ShowDialog()
|
||||
If f.DialogResult = DialogResult.OK Then dest = f.Destination
|
||||
If f.DialogResult = DialogResult.OK Then moveOptions = f.Result
|
||||
End Using
|
||||
Else
|
||||
dest = NewDestination
|
||||
moveOptions = MCTOptions
|
||||
End If
|
||||
If Not dest.IsEmptyString Then
|
||||
|
||||
With moveOptions
|
||||
If Not .Destination.IsEmptyString And .ReplaceUserProfile And .ReplaceUserProfile_CreateIfNull And .ReplaceUserProfile_Profile Is Nothing Then
|
||||
Dim existingPathInstances As IEnumerable(Of String) = Nothing
|
||||
Dim __user As UserInfo
|
||||
Dim __host As Plugin.Hosts.SettingsHost = Settings(API.PathPlugin.PluginKey).Default
|
||||
Dim __userName$ = .Destination.Segments.LastOrDefault
|
||||
If Settings.UsersList.Count > 0 Then _
|
||||
existingPathInstances = (From __uu As UserInfo In Settings.UsersList
|
||||
Where __uu.Plugin = API.PathPlugin.PluginKey
|
||||
Select __uu.Name.ToLower)
|
||||
Do
|
||||
__userName = InputBoxE("Enter a new username for the 'path' plugin:", MsgTitle, __userName)
|
||||
If __userName.IsEmptyString Then
|
||||
Return False
|
||||
Else
|
||||
If Not existingPathInstances.ListExists OrElse Not existingPathInstances.Contains(__userName.ToLower) Then
|
||||
Exit Do
|
||||
ElseIf MsgBoxE({$"The name you entered ({__userName}) already exists", MsgTitle}, vbCritical,,, {"Retry", "Cancel"}) = 1 Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Loop
|
||||
__user = New UserInfo(__userName, __host) With {.SpecialPath = moveOptions.Destination.CSFilePS}
|
||||
__user.UpdateUserFile()
|
||||
If Settings.UsersList.Count = 0 OrElse Not Settings.UsersList.Contains(__user) Then
|
||||
Settings.UpdateUsersList(__user)
|
||||
With Settings.Users
|
||||
Dim startIndx% = .Count
|
||||
.Add(API.Base.UserDataBase.GetInstance(__user))
|
||||
With .Last
|
||||
If Not .FileExists Then .UpdateUserInformation()
|
||||
End With
|
||||
RaiseEvent UsersAdded(startIndx)
|
||||
moveOptions.ReplaceUserProfile_Profile = .Last
|
||||
End With
|
||||
|
||||
Else
|
||||
MsgBoxE({$"The user list already contains the user you want to add.{vbCr}Operation canceled.", MsgTitle}, vbCritical)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
|
||||
If Not moveOptions.Destination.IsEmptyString Then
|
||||
If Not isCopy Then
|
||||
eFiles = files.Where(Function(ByVal fff As SFile) As Boolean
|
||||
fff.Path = dest
|
||||
Return fff.Exists
|
||||
End Function)
|
||||
Dim eFileResult As Func(Of UserMediaD, SFile) = Function(ByVal fff As UserMediaD) As SFile
|
||||
Dim _fff As SFile = fff.Data.File
|
||||
_fff.Path = moveOptions.DestinationTrue(fff).Path
|
||||
Return _fff
|
||||
End Function
|
||||
eFiles = (From ef As UserMediaD In data Where eFileResult.Invoke(ef).Exists Select eFileResult.Invoke(ef))
|
||||
If eFiles.ListExists Then _
|
||||
renameExisting = MsgBoxE(New MMessage("The following files already exist at the destination. " &
|
||||
"Do you still want to move them? These files will be renamed and moved." & vbCr &
|
||||
$"Destination: {dest.PathWithSeparator}{vbCr}{vbCr}" &
|
||||
eFiles.ListToString(vbCr), MsgTitle, {"Move", "Cancel"}, vbExclamation)) = 0
|
||||
$"Destination: {moveOptions.Destination.PathWithSeparator}{vbCr}{vbCr}" &
|
||||
eFiles.ListToString(vbCr), MsgTitle, {"Move", "Cancel"}, vbExclamation) With {.Editable = True}) = 0
|
||||
|
||||
End If
|
||||
For Each ff In files
|
||||
If Not ff.IsEmptyString Then
|
||||
For Each dd In data
|
||||
If Not dd.Data.File.IsEmptyString Then
|
||||
ff = dd.Data.File
|
||||
df = ff
|
||||
df.Path = dest.Path
|
||||
df.Path = moveOptions.DestinationTrue(dd).Path
|
||||
If isCopy Then
|
||||
If ff.Copy(df) Then result = True
|
||||
Else
|
||||
@@ -563,7 +617,7 @@ Namespace DownloadObjects
|
||||
mm = Downloader.Files(indx)
|
||||
mm_data = mm.Data
|
||||
mm_data.File = df
|
||||
mm = New UserMediaD(mm_data, mm.User, mm.Session, mm.Date)
|
||||
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date)
|
||||
Downloader.Files(indx) = mm
|
||||
downloaderFilesUpdated = True
|
||||
End If
|
||||
@@ -580,7 +634,7 @@ Namespace DownloadObjects
|
||||
sessionData.Clear()
|
||||
x = New XmlFile(sesFile, Protector.Modes.All, False) With {.AllowSameNames = True}
|
||||
x.LoadData()
|
||||
If x.Count > 0 Then sessionData.ListAddList(x)
|
||||
If x.Count > 0 Then sessionData.ListAddList(x, LAP.IgnoreICopier)
|
||||
x.Dispose()
|
||||
If sessionData.Count > 0 Then
|
||||
For Each rfile As KeyValuePair(Of SFile, SFile) In filesReplace
|
||||
@@ -591,9 +645,13 @@ Namespace DownloadObjects
|
||||
mm = sessionData(indx)
|
||||
mm_data = mm.Data
|
||||
mm_data.File = df
|
||||
mm = New UserMediaD(mm_data, mm.User, mm.Session, mm.Date)
|
||||
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date)
|
||||
sessionData(indx) = mm
|
||||
sesFilesReplaced = True
|
||||
If DataList.Count > 0 Then
|
||||
indx = DataList.FindIndex(finder)
|
||||
If indx >= 0 Then DataList(indx) = mm
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If sesFilesReplaced Then
|
||||
@@ -607,11 +665,11 @@ Namespace DownloadObjects
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If filesReplace.Count > 0 Then filesReplace.ForEach(Sub(fr) Settings.Feeds.UpdateDataByFile(fr.Key, fr.Value))
|
||||
If filesReplace.Count > 0 Then filesReplace.ForEach(Sub(fr) Settings.Feeds.UpdateDataByFile(fr.Key, fr.Value, moveOptions))
|
||||
filesReplace.Clear()
|
||||
RefillList()
|
||||
End If
|
||||
If IsInternal Then MsgBoxE({$"The following files were {IIf(isCopy, "copied", "moved")} to{vbCr}{dest}{vbCr}{vbCr}{files.ListToString(vbCr)}", MsgTitle})
|
||||
If IsInternal Then MsgBoxE(New MMessage($"The following files were {IIf(isCopy, "copied", "moved")} to{vbCr}{moveOptions.Destination}{vbCr}{vbCr}{data_files.ListToString(vbCr)}", MsgTitle) With {.Editable = True})
|
||||
If Not isCopy And updateFileLocations Then RefillList()
|
||||
End If
|
||||
Else
|
||||
MsgBoxE({"No files selected", MsgTitle}, vbExclamation)
|
||||
@@ -899,7 +957,7 @@ Namespace DownloadObjects
|
||||
Else
|
||||
MsgBoxE({"No destination selected", msgTitle}, vbExclamation)
|
||||
End If
|
||||
ElseIf mfrom.ListExists(1) Then
|
||||
ElseIf mFrom.ListExists(1) Then
|
||||
MsgBoxE({"You must select two or more files to merge feeds", msgTitle}, vbExclamation)
|
||||
Else
|
||||
MsgBoxE({"You haven't selected any feeds", msgTitle}, vbExclamation)
|
||||
@@ -957,8 +1015,8 @@ Namespace DownloadObjects
|
||||
End Sub
|
||||
#End Region
|
||||
#Region "FeedMedia handlers"
|
||||
Private Sub FeedMedia_MediaMove(ByVal Sender As FeedMedia, ByVal Destination As SFile, ByRef Result As Boolean)
|
||||
Result = MoveCopyFiles(False, Nothing, Destination, Sender.File)
|
||||
Private Sub FeedMedia_MediaMove(ByVal Sender As FeedMedia, ByVal MCTOptions As FeedMoveCopyTo, ByRef Result As Boolean)
|
||||
Result = MoveCopyFiles(False, Nothing, MCTOptions, Sender)
|
||||
End Sub
|
||||
Private Sub FeedMedia_MediaDeleted(ByVal Sender As FeedMedia)
|
||||
Try
|
||||
|
||||
219
SCrawler/Download/Feed/FeedCopyToForm.Designer.vb
generated
219
SCrawler/Download/Feed/FeedCopyToForm.Designer.vb
generated
@@ -22,24 +22,45 @@ Namespace DownloadObjects
|
||||
Private components As System.ComponentModel.IContainer
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Dim CONTAINER_MAIN As System.Windows.Forms.ToolStripContainer
|
||||
Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
|
||||
Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FeedCopyToForm))
|
||||
Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
|
||||
Dim FRM_FILES As System.Windows.Forms.GroupBox
|
||||
Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ListColumn1 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||
Dim ListColumn2 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||
Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||
Dim ListColumn3 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||
Dim ListColumn4 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||
Dim TP_PROFILES As System.Windows.Forms.TableLayoutPanel
|
||||
Dim TT_MAIN As System.Windows.Forms.ToolTip
|
||||
Me.CMB_DEST = New PersonalUtilities.Forms.Controls.ComboBoxExtended()
|
||||
Me.TXT_FILES = New System.Windows.Forms.RichTextBox()
|
||||
Me.CH_VIDEO_SEP = New System.Windows.Forms.CheckBox()
|
||||
Me.CMB_PROFILE = New PersonalUtilities.Forms.Controls.ComboBoxExtended()
|
||||
Me.CMB_PROFILE_PATH = New PersonalUtilities.Forms.Controls.ComboBoxExtended()
|
||||
Me.CH_PROFILE_REPLACE = New System.Windows.Forms.CheckBox()
|
||||
Me.CH_PROFILE_CREATE = New System.Windows.Forms.CheckBox()
|
||||
CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
|
||||
TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
||||
FRM_FILES = New System.Windows.Forms.GroupBox()
|
||||
TP_PROFILES = New System.Windows.Forms.TableLayoutPanel()
|
||||
TT_MAIN = New System.Windows.Forms.ToolTip(Me.components)
|
||||
CONTAINER_MAIN.ContentPanel.SuspendLayout()
|
||||
CONTAINER_MAIN.SuspendLayout()
|
||||
CType(Me.CMB_DEST, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
TP_MAIN.SuspendLayout()
|
||||
CType(Me.CMB_DEST, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
FRM_FILES.SuspendLayout()
|
||||
CType(Me.CMB_PROFILE, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.CMB_PROFILE_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
TP_PROFILES.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'CONTAINER_MAIN
|
||||
@@ -48,16 +69,39 @@ Namespace DownloadObjects
|
||||
'CONTAINER_MAIN.ContentPanel
|
||||
'
|
||||
CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN)
|
||||
CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(534, 116)
|
||||
CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(534, 266)
|
||||
CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
CONTAINER_MAIN.LeftToolStripPanelVisible = False
|
||||
CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||
CONTAINER_MAIN.Name = "CONTAINER_MAIN"
|
||||
CONTAINER_MAIN.RightToolStripPanelVisible = False
|
||||
CONTAINER_MAIN.Size = New System.Drawing.Size(534, 141)
|
||||
CONTAINER_MAIN.Size = New System.Drawing.Size(534, 266)
|
||||
CONTAINER_MAIN.TabIndex = 0
|
||||
CONTAINER_MAIN.TopToolStripPanelVisible = False
|
||||
'
|
||||
'TP_MAIN
|
||||
'
|
||||
TP_MAIN.ColumnCount = 1
|
||||
TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
TP_MAIN.Controls.Add(Me.CMB_DEST, 0, 0)
|
||||
TP_MAIN.Controls.Add(FRM_FILES, 0, 5)
|
||||
TP_MAIN.Controls.Add(Me.CH_VIDEO_SEP, 0, 1)
|
||||
TP_MAIN.Controls.Add(Me.CMB_PROFILE, 0, 3)
|
||||
TP_MAIN.Controls.Add(Me.CMB_PROFILE_PATH, 0, 4)
|
||||
TP_MAIN.Controls.Add(TP_PROFILES, 0, 2)
|
||||
TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||
TP_MAIN.Name = "TP_MAIN"
|
||||
TP_MAIN.RowCount = 6
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
TP_MAIN.Size = New System.Drawing.Size(534, 266)
|
||||
TP_MAIN.TabIndex = 0
|
||||
'
|
||||
'CMB_DEST
|
||||
'
|
||||
ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
|
||||
@@ -78,10 +122,13 @@ Namespace DownloadObjects
|
||||
Me.CMB_DEST.Buttons.Add(ActionButton2)
|
||||
Me.CMB_DEST.Buttons.Add(ActionButton3)
|
||||
Me.CMB_DEST.Buttons.Add(ActionButton4)
|
||||
Me.CMB_DEST.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.Label
|
||||
Me.CMB_DEST.CaptionText = "Destination:"
|
||||
Me.CMB_DEST.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||
Me.CMB_DEST.CaptionText = "Destination"
|
||||
Me.CMB_DEST.CaptionToolTipEnabled = True
|
||||
Me.CMB_DEST.CaptionToolTipText = "If checked, the profile path will be ignored"
|
||||
Me.CMB_DEST.CaptionVisible = True
|
||||
Me.CMB_DEST.CaptionWidth = 70.0R
|
||||
Me.CMB_DEST.CaptionWidth = 90.0R
|
||||
Me.CMB_DEST.ChangeControlsEnableOnCheckedChange = False
|
||||
Me.CMB_DEST.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CMB_DEST.Location = New System.Drawing.Point(3, 3)
|
||||
Me.CMB_DEST.Name = "CMB_DEST"
|
||||
@@ -89,30 +136,14 @@ Namespace DownloadObjects
|
||||
Me.CMB_DEST.TabIndex = 0
|
||||
Me.CMB_DEST.TextBoxBorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
'
|
||||
'TP_MAIN
|
||||
'
|
||||
TP_MAIN.ColumnCount = 1
|
||||
TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
TP_MAIN.Controls.Add(Me.CMB_DEST, 0, 0)
|
||||
TP_MAIN.Controls.Add(FRM_FILES, 0, 1)
|
||||
TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||
TP_MAIN.Name = "TP_MAIN"
|
||||
TP_MAIN.RowCount = 2
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||
TP_MAIN.Size = New System.Drawing.Size(534, 116)
|
||||
TP_MAIN.TabIndex = 0
|
||||
'
|
||||
'FRM_FILES
|
||||
'
|
||||
FRM_FILES.Controls.Add(Me.TXT_FILES)
|
||||
FRM_FILES.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
FRM_FILES.Location = New System.Drawing.Point(3, 31)
|
||||
FRM_FILES.Location = New System.Drawing.Point(3, 137)
|
||||
FRM_FILES.Name = "FRM_FILES"
|
||||
FRM_FILES.Size = New System.Drawing.Size(528, 82)
|
||||
FRM_FILES.TabIndex = 1
|
||||
FRM_FILES.Size = New System.Drawing.Size(528, 126)
|
||||
FRM_FILES.TabIndex = 5
|
||||
FRM_FILES.TabStop = False
|
||||
FRM_FILES.Text = "Files:"
|
||||
'
|
||||
@@ -122,32 +153,160 @@ Namespace DownloadObjects
|
||||
Me.TXT_FILES.Location = New System.Drawing.Point(3, 16)
|
||||
Me.TXT_FILES.Name = "TXT_FILES"
|
||||
Me.TXT_FILES.ReadOnly = True
|
||||
Me.TXT_FILES.Size = New System.Drawing.Size(522, 63)
|
||||
Me.TXT_FILES.Size = New System.Drawing.Size(522, 107)
|
||||
Me.TXT_FILES.TabIndex = 0
|
||||
Me.TXT_FILES.Text = ""
|
||||
'
|
||||
'CH_VIDEO_SEP
|
||||
'
|
||||
Me.CH_VIDEO_SEP.AutoSize = True
|
||||
Me.CH_VIDEO_SEP.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CH_VIDEO_SEP.Location = New System.Drawing.Point(3, 31)
|
||||
Me.CH_VIDEO_SEP.Name = "CH_VIDEO_SEP"
|
||||
Me.CH_VIDEO_SEP.Size = New System.Drawing.Size(528, 19)
|
||||
Me.CH_VIDEO_SEP.TabIndex = 1
|
||||
Me.CH_VIDEO_SEP.Text = "Place videos in a separate video folder"
|
||||
Me.CH_VIDEO_SEP.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CMB_PROFILE
|
||||
'
|
||||
ActionButton5.BackgroundImage = CType(resources.GetObject("ActionButton5.BackgroundImage"), System.Drawing.Image)
|
||||
ActionButton5.Enabled = False
|
||||
ActionButton5.Name = "Clear"
|
||||
ActionButton5.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||
ActionButton6.BackgroundImage = CType(resources.GetObject("ActionButton6.BackgroundImage"), System.Drawing.Image)
|
||||
ActionButton6.Enabled = False
|
||||
ActionButton6.Name = "ArrowDown"
|
||||
ActionButton6.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
||||
Me.CMB_PROFILE.Buttons.Add(ActionButton5)
|
||||
Me.CMB_PROFILE.Buttons.Add(ActionButton6)
|
||||
Me.CMB_PROFILE.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.RadioButton
|
||||
Me.CMB_PROFILE.CaptionPadding = New System.Windows.Forms.Padding(0, 0, 1, 0)
|
||||
Me.CMB_PROFILE.CaptionText = "Profile"
|
||||
Me.CMB_PROFILE.CaptionVisible = True
|
||||
ListColumn1.DisplayMember = True
|
||||
ListColumn1.Name = "COL_NAME"
|
||||
ListColumn1.Text = "Name"
|
||||
ListColumn1.Width = -1
|
||||
ListColumn2.Name = "COL_VALUE"
|
||||
ListColumn2.Text = "Value"
|
||||
ListColumn2.ValueMember = True
|
||||
ListColumn2.Visible = False
|
||||
Me.CMB_PROFILE.Columns.Add(ListColumn1)
|
||||
Me.CMB_PROFILE.Columns.Add(ListColumn2)
|
||||
Me.CMB_PROFILE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CMB_PROFILE.Location = New System.Drawing.Point(3, 81)
|
||||
Me.CMB_PROFILE.Name = "CMB_PROFILE"
|
||||
Me.CMB_PROFILE.Size = New System.Drawing.Size(528, 22)
|
||||
Me.CMB_PROFILE.TabIndex = 3
|
||||
Me.CMB_PROFILE.TextBoxBorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
'
|
||||
'CMB_PROFILE_PATH
|
||||
'
|
||||
ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image)
|
||||
ActionButton7.Enabled = False
|
||||
ActionButton7.Name = "Clear"
|
||||
ActionButton7.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||
ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image)
|
||||
ActionButton8.Enabled = False
|
||||
ActionButton8.Name = "ArrowDown"
|
||||
ActionButton8.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
||||
Me.CMB_PROFILE_PATH.Buttons.Add(ActionButton7)
|
||||
Me.CMB_PROFILE_PATH.Buttons.Add(ActionButton8)
|
||||
Me.CMB_PROFILE_PATH.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.RadioButton
|
||||
Me.CMB_PROFILE_PATH.CaptionPadding = New System.Windows.Forms.Padding(0, 0, 1, 0)
|
||||
Me.CMB_PROFILE_PATH.CaptionText = "Profile (path)"
|
||||
Me.CMB_PROFILE_PATH.CaptionVisible = True
|
||||
ListColumn3.DisplayMember = True
|
||||
ListColumn3.Name = "COL_NAME"
|
||||
ListColumn3.Text = "Name"
|
||||
ListColumn3.Width = -1
|
||||
ListColumn4.Name = "COL_VALUE"
|
||||
ListColumn4.Text = "Value"
|
||||
ListColumn4.ValueMember = True
|
||||
ListColumn4.Visible = False
|
||||
Me.CMB_PROFILE_PATH.Columns.Add(ListColumn3)
|
||||
Me.CMB_PROFILE_PATH.Columns.Add(ListColumn4)
|
||||
Me.CMB_PROFILE_PATH.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CMB_PROFILE_PATH.Location = New System.Drawing.Point(3, 109)
|
||||
Me.CMB_PROFILE_PATH.Name = "CMB_PROFILE_PATH"
|
||||
Me.CMB_PROFILE_PATH.Size = New System.Drawing.Size(528, 22)
|
||||
Me.CMB_PROFILE_PATH.TabIndex = 4
|
||||
Me.CMB_PROFILE_PATH.TextBoxBorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
'
|
||||
'TP_PROFILES
|
||||
'
|
||||
TP_PROFILES.ColumnCount = 2
|
||||
TP_PROFILES.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
TP_PROFILES.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
TP_PROFILES.Controls.Add(Me.CH_PROFILE_REPLACE, 0, 0)
|
||||
TP_PROFILES.Controls.Add(Me.CH_PROFILE_CREATE, 1, 0)
|
||||
TP_PROFILES.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
TP_PROFILES.Location = New System.Drawing.Point(0, 53)
|
||||
TP_PROFILES.Margin = New System.Windows.Forms.Padding(0)
|
||||
TP_PROFILES.Name = "TP_PROFILES"
|
||||
TP_PROFILES.RowCount = 1
|
||||
TP_PROFILES.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
TP_PROFILES.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||
TP_PROFILES.Size = New System.Drawing.Size(534, 25)
|
||||
TP_PROFILES.TabIndex = 2
|
||||
'
|
||||
'CH_PROFILE_REPLACE
|
||||
'
|
||||
Me.CH_PROFILE_REPLACE.AutoSize = True
|
||||
Me.CH_PROFILE_REPLACE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CH_PROFILE_REPLACE.Location = New System.Drawing.Point(3, 3)
|
||||
Me.CH_PROFILE_REPLACE.Name = "CH_PROFILE_REPLACE"
|
||||
Me.CH_PROFILE_REPLACE.Size = New System.Drawing.Size(261, 19)
|
||||
Me.CH_PROFILE_REPLACE.TabIndex = 0
|
||||
Me.CH_PROFILE_REPLACE.Text = "Replace user profile"
|
||||
TT_MAIN.SetToolTip(Me.CH_PROFILE_REPLACE, "The user profile will be replaced with the selected one")
|
||||
Me.CH_PROFILE_REPLACE.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CH_PROFILE_CREATE
|
||||
'
|
||||
Me.CH_PROFILE_CREATE.AutoSize = True
|
||||
Me.CH_PROFILE_CREATE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.CH_PROFILE_CREATE.Location = New System.Drawing.Point(270, 3)
|
||||
Me.CH_PROFILE_CREATE.Name = "CH_PROFILE_CREATE"
|
||||
Me.CH_PROFILE_CREATE.Size = New System.Drawing.Size(261, 19)
|
||||
Me.CH_PROFILE_CREATE.TabIndex = 1
|
||||
Me.CH_PROFILE_CREATE.Text = "Create path profile"
|
||||
TT_MAIN.SetToolTip(Me.CH_PROFILE_CREATE, "Create a path profile if it doesn't exist")
|
||||
Me.CH_PROFILE_CREATE.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FeedCopyToForm
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(534, 141)
|
||||
Me.ClientSize = New System.Drawing.Size(534, 266)
|
||||
Me.Controls.Add(CONTAINER_MAIN)
|
||||
Me.KeyPreview = True
|
||||
Me.MinimizeBox = False
|
||||
Me.MinimumSize = New System.Drawing.Size(550, 150)
|
||||
Me.MinimumSize = New System.Drawing.Size(550, 305)
|
||||
Me.Name = "FeedCopyToForm"
|
||||
Me.ShowInTaskbar = False
|
||||
Me.Text = "Copy to..."
|
||||
CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
|
||||
CONTAINER_MAIN.ResumeLayout(False)
|
||||
CONTAINER_MAIN.PerformLayout()
|
||||
CType(Me.CMB_DEST, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
TP_MAIN.ResumeLayout(False)
|
||||
TP_MAIN.PerformLayout()
|
||||
CType(Me.CMB_DEST, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
FRM_FILES.ResumeLayout(False)
|
||||
CType(Me.CMB_PROFILE, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.CMB_PROFILE_PATH, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
TP_PROFILES.ResumeLayout(False)
|
||||
TP_PROFILES.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Private WithEvents CMB_DEST As PersonalUtilities.Forms.Controls.ComboBoxExtended
|
||||
Private WithEvents TXT_FILES As RichTextBox
|
||||
Private WithEvents CH_VIDEO_SEP As CheckBox
|
||||
Private WithEvents CMB_PROFILE As PersonalUtilities.Forms.Controls.ComboBoxExtended
|
||||
Private WithEvents CMB_PROFILE_PATH As PersonalUtilities.Forms.Controls.ComboBoxExtended
|
||||
Private WithEvents CH_PROFILE_REPLACE As CheckBox
|
||||
Private WithEvents CH_PROFILE_CREATE As CheckBox
|
||||
End Class
|
||||
End Namespace
|
||||
@@ -258,4 +258,209 @@
|
||||
<metadata name="FRM_FILES.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="ActionButton5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
|
||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="ActionButton6.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ActionButton7.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
|
||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="ActionButton8.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="TP_PROFILES.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="TT_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="TT_MAIN.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -6,23 +6,31 @@
|
||||
'
|
||||
' This program is distributed in the hope that it will be useful,
|
||||
' but WITHOUT ANY WARRANTY
|
||||
Imports SCrawler.API
|
||||
Imports SCrawler.API.Base
|
||||
Imports PersonalUtilities.Tools
|
||||
Imports PersonalUtilities.Forms
|
||||
Imports PersonalUtilities.Forms.Controls
|
||||
Imports PersonalUtilities.Forms.Controls.Base
|
||||
Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons
|
||||
Namespace DownloadObjects
|
||||
Friend Class FeedCopyToForm
|
||||
#Region "Declarations"
|
||||
Private WithEvents MyDefs As DefaultFormOptions
|
||||
Private _Destination As SFile = Nothing
|
||||
Friend ReadOnly Property Destination As SFile
|
||||
Private _Result As FeedMoveCopyTo
|
||||
Friend ReadOnly Property Result As FeedMoveCopyTo
|
||||
Get
|
||||
Return _Destination
|
||||
Return _Result
|
||||
End Get
|
||||
End Property
|
||||
Private ReadOnly Profiles As List(Of IUserData)
|
||||
#End Region
|
||||
#Region "Initializer"
|
||||
Friend Sub New(ByVal Files As IEnumerable(Of SFile), ByVal IsCopy As Boolean)
|
||||
InitializeComponent()
|
||||
MyDefs = New DefaultFormOptions(Me, Settings.Design)
|
||||
If Files.ListExists Then TXT_FILES.Text = Files.ListToString(vbNewLine)
|
||||
Profiles = New List(Of IUserData)
|
||||
Text = $"{IIf(IsCopy, "Copy", "Move")} files to..."
|
||||
Try
|
||||
If IsCopy Then
|
||||
@@ -34,10 +42,12 @@ Namespace DownloadObjects
|
||||
ShowIcon = False
|
||||
End Try
|
||||
End Sub
|
||||
#End Region
|
||||
#Region "Form handlers"
|
||||
Private Sub FeedCopyToForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Try
|
||||
With MyDefs
|
||||
.MyViewInitialize(True)
|
||||
.MyViewInitialize()
|
||||
.AddOkCancelToolbar()
|
||||
.MyFieldsCheckerE = New FieldsChecker
|
||||
With .MyFieldsCheckerE
|
||||
@@ -45,7 +55,43 @@ Namespace DownloadObjects
|
||||
.EndLoaderOperations()
|
||||
End With
|
||||
Settings.DownloadLocations.PopulateComboBox(CMB_DEST)
|
||||
CMB_DEST.Text = Settings.FeedLastCopyMoveLocation.Value
|
||||
With Settings
|
||||
CMB_DEST.Text = .FeedMoveCopyLastLocation.Value
|
||||
CH_VIDEO_SEP.Checked = .FeedMoveCopySeparateVideo
|
||||
CH_PROFILE_REPLACE.Checked = .FeedMoveCopyReplaceUserProfile
|
||||
CH_PROFILE_CREATE.Checked = .FeedMoveCopyCreatePathProfile
|
||||
End With
|
||||
If Settings.Users.Count > 0 Then _
|
||||
Profiles.AddRange(Settings.Users.SelectMany(Of IUserData)(Function(ByVal p As IUserData) As IEnumerable(Of IUserData)
|
||||
If p.IsCollection Then
|
||||
Return DirectCast(p, UserDataBind).Collections
|
||||
Else
|
||||
Return {p}
|
||||
End If
|
||||
End Function))
|
||||
If Profiles.Count > 0 Then
|
||||
CMB_PROFILE.BeginUpdate()
|
||||
CMB_PROFILE_PATH.BeginUpdate()
|
||||
For i% = 0 To Profiles.Count - 1
|
||||
With DirectCast(Profiles(i), UserDataBase)
|
||||
If If(.HOST?.Key, String.Empty) = PathPlugin.PluginKey Then
|
||||
CMB_PROFILE_PATH.Items.Add(New ListItem({ .Self.ToStringForLog, i}))
|
||||
Else
|
||||
CMB_PROFILE.Items.Add(New ListItem({ .Self.ToStringForLog, i}))
|
||||
End If
|
||||
End With
|
||||
Next
|
||||
CMB_PROFILE.EndUpdate()
|
||||
CMB_PROFILE_PATH.EndUpdate()
|
||||
End If
|
||||
UpdateCombo()
|
||||
If Not CMB_DEST.Text.IsEmptyString Then
|
||||
_ComboChangingByDest = True
|
||||
UpdateComboIndex(CMB_PROFILE)
|
||||
UpdateComboIndex(CMB_PROFILE_PATH)
|
||||
_ComboChangingByDest = False
|
||||
End If
|
||||
UpdateComboCheck()
|
||||
.EndLoaderOperations()
|
||||
.MyOkCancel.EnableOK = True
|
||||
End With
|
||||
@@ -64,16 +110,169 @@ Namespace DownloadObjects
|
||||
End If
|
||||
If b Then e.Handled = True
|
||||
End Sub
|
||||
Private Sub MyDefs_ButtonOkClick(ByVal Sender As Object, ByVal e As KeyHandleEventArgs) Handles MyDefs.ButtonOkClick
|
||||
If MyDefs.MyFieldsChecker.AllParamsOK Then
|
||||
_Destination = CMB_DEST.Text
|
||||
Settings.FeedLastCopyMoveLocation.Value = _Destination
|
||||
MyDefs.CloseForm()
|
||||
End If
|
||||
Private Sub FeedCopyToForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
||||
Profiles.Clear()
|
||||
End Sub
|
||||
#End Region
|
||||
#Region "Ok, Cancel"
|
||||
Private Sub MyDefs_ButtonOkClick(ByVal Sender As Object, ByVal e As KeyHandleEventArgs) Handles MyDefs.ButtonOkClick
|
||||
Try
|
||||
If MyDefs.MyFieldsChecker.AllParamsOK Then
|
||||
_Result = New FeedMoveCopyTo With {
|
||||
.Destination = CMB_DEST.Text,
|
||||
.SeparateVideoFolder = CH_VIDEO_SEP.Checked,
|
||||
.ReplaceUserProfile = CH_PROFILE_REPLACE.Checked,
|
||||
.ReplaceUserProfile_CreateIfNull = CH_PROFILE_CREATE.Checked
|
||||
}
|
||||
If CH_PROFILE_REPLACE.Checked Then
|
||||
If CMB_PROFILE.Enabled And CMB_PROFILE.Checked Then
|
||||
With CMB_PROFILE
|
||||
If .SelectedIndex >= 0 Then _
|
||||
_Result.ReplaceUserProfile_Profile = Settings.GetUser(GetComboProfile(.Self), False)
|
||||
End With
|
||||
ElseIf CMB_PROFILE_PATH.Enabled And CMB_PROFILE_PATH.Checked Then
|
||||
With CMB_PROFILE_PATH
|
||||
If .SelectedIndex >= 0 Then _
|
||||
_Result.ReplaceUserProfile_Profile = Settings.GetUser(GetComboProfile(.Self), False)
|
||||
End With
|
||||
End If
|
||||
End If
|
||||
With Settings
|
||||
.BeginUpdate()
|
||||
.FeedMoveCopyLastLocation.Value = CMB_DEST.Text
|
||||
.FeedMoveCopyIsProfileChecked.Value = CMB_PROFILE.Checked
|
||||
.FeedMoveCopySeparateVideo.Value = CH_VIDEO_SEP.Checked
|
||||
.FeedMoveCopyReplaceUserProfile.Value = CH_PROFILE_REPLACE.Checked
|
||||
.FeedMoveCopyCreatePathProfile.Value = CH_PROFILE_CREATE.Checked
|
||||
.EndUpdate()
|
||||
End With
|
||||
MyDefs.CloseForm()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ErrorsDescriber.Execute(EDP.LogMessageValue, ex, "[FeedCopyToForm.OK]")
|
||||
End Try
|
||||
End Sub
|
||||
#End Region
|
||||
#Region "Controls"
|
||||
Private _TextChangingByCombo As Boolean = False
|
||||
Private _ComboChangingByDest As Boolean = False
|
||||
Private Sub CMB_DEST_ActionOnButtonClick(ByVal Sender As Object, ByVal e As ActionButtonEventArgs) Handles CMB_DEST.ActionOnButtonClick
|
||||
If Sender.DefaultButton = ADB.Open Or Sender.DefaultButton = ADB.Add Then _
|
||||
Settings.DownloadLocations.ChooseNewLocation(CMB_DEST, Sender.DefaultButton = ADB.Add, Sender.DefaultButton = ADB.Add)
|
||||
End Sub
|
||||
Private Sub CMB_DEST_ActionOnTextChanged(ByVal Sender As Object, ByVal e As EventArgs) Handles CMB_DEST.ActionOnTextChanged
|
||||
If Not _TextChangingByCombo And Not CMB_DEST.Checked And Not CMB_DEST.Text.IsEmptyString Then
|
||||
_ComboChangingByDest = True
|
||||
UpdateComboIndex(CMB_PROFILE)
|
||||
UpdateComboIndex(CMB_PROFILE_PATH)
|
||||
UpdateComboCheck()
|
||||
_ComboChangingByDest = False
|
||||
End If
|
||||
End Sub
|
||||
Private Sub UpdateComboIndex(ByVal CMB As ComboBoxExtended)
|
||||
Try
|
||||
With CMB
|
||||
If .Count > 0 Then
|
||||
Dim t$ = CMB_DEST.Text.CSFilePSN.StringToLower
|
||||
Dim lvi_check As Func(Of ListItem, Boolean, Boolean) =
|
||||
Function(ByVal lvi As ListItem, ByVal exact As Boolean) As Boolean
|
||||
Dim ii% = lvi.Value(1)
|
||||
If ii.ValueBetween(0, Profiles.Count - 1) Then
|
||||
With DirectCast(Profiles(ii), UserDataBase)
|
||||
If exact Then
|
||||
Return t = .MyFile.CutPath.PathNoSeparator.StringToLower
|
||||
Else
|
||||
Return t.StartsWith(.MyFile.CutPath.PathNoSeparator.StringToLower)
|
||||
End If
|
||||
End With
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
Dim i% = CMB.Items.ListIndexOf(Function(lvi) lvi_check.Invoke(lvi, True))
|
||||
If i = -1 Then i = CMB.Items.ListIndexOf(Function(lvi) lvi_check.Invoke(lvi, False))
|
||||
CMB.SelectedIndex = i
|
||||
End If
|
||||
End With
|
||||
Catch ex As Exception
|
||||
CMB.SelectedIndex = -1
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub UpdateComboCheck()
|
||||
Try
|
||||
Dim isProfile As Boolean
|
||||
If CMB_PROFILE.SelectedIndex >= 0 And CMB_PROFILE_PATH.SelectedIndex >= 0 Then
|
||||
isProfile = Settings.FeedMoveCopyIsProfileChecked
|
||||
ElseIf CMB_PROFILE.SelectedIndex >= 0 Then
|
||||
isProfile = True
|
||||
ElseIf CMB_PROFILE_PATH.SelectedIndex >= 0 Then
|
||||
isProfile = False
|
||||
Else
|
||||
isProfile = Settings.FeedMoveCopyIsProfileChecked
|
||||
End If
|
||||
If isProfile Then
|
||||
CMB_PROFILE.Checked = True
|
||||
Else
|
||||
CMB_PROFILE_PATH.Checked = True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[FeedCopyToForm.UpdateComboCheck]")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub CH_PROFILE_REPLACE_CheckedChanged(sender As Object, e As EventArgs) Handles CH_PROFILE_REPLACE.CheckedChanged
|
||||
UpdateCombo()
|
||||
End Sub
|
||||
Private Sub UpdateCombo()
|
||||
Dim e As Boolean = CH_PROFILE_REPLACE.Checked
|
||||
CH_PROFILE_CREATE.Enabled = e
|
||||
CMB_PROFILE.Enabled(True) = e And CMB_PROFILE.Count > 0
|
||||
CMB_PROFILE_PATH.Enabled(True) = e And CMB_PROFILE_PATH.Count > 0
|
||||
End Sub
|
||||
#Region "Comboboxes"
|
||||
Private Sub CMB_PROFILE_ActionSelectedItemChanged(ByVal Sender As Object, ByVal e As EventArgs, ByVal Item As ListViewItem) Handles CMB_PROFILE.ActionSelectedItemChanged
|
||||
If Not MyDefs.Initializing Then SetDestinationByCombo(CMB_PROFILE)
|
||||
End Sub
|
||||
Private Sub CMB_PROFILE_ActionOnCheckedChange(ByVal Sender As Object, ByVal e As EventArgs, ByVal Checked As Boolean) Handles CMB_PROFILE.ActionOnCheckedChange
|
||||
If Checked And Not MyDefs.Initializing And Not _ComboChangingByDest Then SetDestinationByCombo(CMB_PROFILE)
|
||||
End Sub
|
||||
Private Sub CMB_PROFILE_ActionOnButtonClick(ByVal Sender As Object, ByVal e As ActionButtonEventArgs) Handles CMB_PROFILE.ActionOnButtonClick
|
||||
If e.DefaultButton = ADB.Clear Then CMB_PROFILE.SelectedIndex = -1
|
||||
End Sub
|
||||
Private Sub CMB_PROFILE_PATH_ActionSelectedItemChanged(ByVal Sender As Object, ByVal e As EventArgs, ByVal Item As ListViewItem) Handles CMB_PROFILE_PATH.ActionSelectedItemChanged
|
||||
If Not MyDefs.Initializing Then SetDestinationByCombo(CMB_PROFILE_PATH)
|
||||
End Sub
|
||||
Private Sub CMB_PROFILE_PATH_ActionOnButtonClick(ByVal Sender As Object, ByVal e As ActionButtonEventArgs) Handles CMB_PROFILE_PATH.ActionOnButtonClick
|
||||
If e.DefaultButton = ADB.Clear Then CMB_PROFILE_PATH.SelectedIndex = -1
|
||||
End Sub
|
||||
Private Sub CMB_PROFILE_PATH_ActionOnCheckedChange(ByVal Sender As Object, ByVal e As EventArgs, ByVal Checked As Boolean) Handles CMB_PROFILE_PATH.ActionOnCheckedChange
|
||||
If Checked And Not MyDefs.Initializing And Not _ComboChangingByDest Then SetDestinationByCombo(CMB_PROFILE_PATH)
|
||||
End Sub
|
||||
Private Sub SetDestinationByCombo(ByVal CMB As ComboBoxExtended)
|
||||
Try
|
||||
With CMB
|
||||
If .Checked And .Enabled And Not CMB_DEST.Checked And Not _ComboChangingByDest And .SelectedIndex >= 0 Then
|
||||
_TextChangingByCombo = True
|
||||
CMB_DEST.Text = GetComboProfile(.Self).MyFile.CutPath.PathWithSeparator
|
||||
_TextChangingByCombo = False
|
||||
End If
|
||||
End With
|
||||
Catch ex As Exception
|
||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[FeedCopyToForm.SetDestinationByCombo]")
|
||||
End Try
|
||||
End Sub
|
||||
Private Function GetComboProfile(ByVal CMB As ComboBoxExtended) As UserDataBase
|
||||
Try
|
||||
With CMB
|
||||
If .SelectedIndex >= 0 Then
|
||||
Dim i% = .Items(.SelectedIndex).Value(1)
|
||||
If i.ValueBetween(0, Profiles.Count - 1) Then Return Profiles(i)
|
||||
End If
|
||||
End With
|
||||
Return Nothing
|
||||
Catch ex As Exception
|
||||
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, "[FeedCopyToForm.GetComboProfile]")
|
||||
End Try
|
||||
End Function
|
||||
#End Region
|
||||
#End Region
|
||||
End Class
|
||||
End Namespace
|
||||
@@ -18,7 +18,7 @@ Namespace DownloadObjects
|
||||
Friend Event MediaDeleted(ByVal Sender As Object)
|
||||
Friend Event MediaDownload As EventHandler
|
||||
Friend Event FeedAddWithRemove(ByVal Sender As FeedMedia, ByVal Feeds As IEnumerable(Of String), ByVal Media As UserMediaD, ByVal RemoveOperation As Boolean)
|
||||
Friend Event MediaMove(ByVal Sender As FeedMedia, ByVal Destination As SFile, ByRef Result As Boolean)
|
||||
Friend Event MediaMove(ByVal Sender As FeedMedia, ByVal MCTOptions As FeedMoveCopyTo, ByRef Result As Boolean)
|
||||
#End Region
|
||||
#Region "Declarations"
|
||||
Private Const VideoHeight As Integer = 450
|
||||
@@ -489,20 +489,20 @@ Namespace DownloadObjects
|
||||
Try
|
||||
If Not File.IsEmptyString Then
|
||||
Dim isCopy As Boolean = sender Is BTT_COPY_TO
|
||||
Dim dest As SFile = Nothing
|
||||
Dim moveOptions As FeedMoveCopyTo = Nothing
|
||||
Dim ff As SFile = File
|
||||
Dim result As Boolean = False
|
||||
|
||||
Using f As New FeedCopyToForm({File}, isCopy)
|
||||
f.ShowDialog()
|
||||
If f.DialogResult = DialogResult.OK Then dest = f.Destination
|
||||
If f.DialogResult = DialogResult.OK Then moveOptions = f.Result
|
||||
End Using
|
||||
If Not dest.IsEmptyString Then
|
||||
ff.Path = dest
|
||||
If Not moveOptions.Destination.IsEmptyString Then
|
||||
ff.Path = moveOptions.Destination.Path
|
||||
If isCopy Then
|
||||
result = File.Copy(ff)
|
||||
Else
|
||||
RaiseEvent MediaMove(Me, dest, result)
|
||||
RaiseEvent MediaMove(Me, moveOptions, result)
|
||||
End If
|
||||
If result Then MsgBoxE({$"File {IIf(isCopy, "copied", "moved")}{vbCr}Source: '{File}'{vbCr}Destination: '{ff}'", MsgTitle})
|
||||
End If
|
||||
|
||||
31
SCrawler/Download/Feed/FeedMoveCopyTo.vb
Normal file
31
SCrawler/Download/Feed/FeedMoveCopyTo.vb
Normal file
@@ -0,0 +1,31 @@
|
||||
' Copyright (C) Andy https://github.com/AAndyProgram
|
||||
' This program is free software: you can redistribute it and/or modify
|
||||
' it under the terms of the GNU General Public License as published by
|
||||
' the Free Software Foundation, either version 3 of the License, or
|
||||
' (at your option) any later version.
|
||||
'
|
||||
' This program is distributed in the hope that it will be useful,
|
||||
' but WITHOUT ANY WARRANTY
|
||||
Imports UTypes = SCrawler.API.Base.UserMedia.Types
|
||||
Namespace DownloadObjects
|
||||
Friend Structure FeedMoveCopyTo
|
||||
Friend Destination As SFile
|
||||
Friend SeparateVideoFolder As Boolean
|
||||
Friend ReplaceUserProfile As Boolean
|
||||
Friend ReplaceUserProfile_CreateIfNull As Boolean
|
||||
Friend ReplaceUserProfile_Profile As API.Base.IUserData
|
||||
Friend ReadOnly Property DestinationTrue(ByVal Media As TDownloader.UserMediaD) As SFile
|
||||
Get
|
||||
If SeparateVideoFolder Then
|
||||
Dim f$ = Destination.PathWithSeparator
|
||||
With Media.Data
|
||||
If Not (.Type = UTypes.Picture Or .Type = UTypes.GIF) Then f &= "Video\"
|
||||
End With
|
||||
Return f
|
||||
Else
|
||||
Return Destination
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
End Structure
|
||||
End Namespace
|
||||
@@ -169,14 +169,14 @@ Namespace DownloadObjects
|
||||
End Function
|
||||
#End Region
|
||||
#Region "UpdateDataByFile"
|
||||
Friend Sub UpdateDataByFile(ByVal InitialFile As SFile, ByVal NewFile As SFile)
|
||||
Friend Sub UpdateDataByFile(ByVal InitialFile As SFile, ByVal NewFile As SFile, ByVal MCTOptions As FeedMoveCopyTo)
|
||||
Try
|
||||
Dim indx% = Items.FindIndex(Function(ii) ii.Data.File = InitialFile)
|
||||
If indx >= 0 Then
|
||||
Dim m As UserMediaD = Items(indx)
|
||||
Dim mm As UserMedia = m.Data
|
||||
mm.File = NewFile
|
||||
m = New UserMediaD(mm, m.User, m.Session, m.Date)
|
||||
m = New UserMediaD(mm, If(MCTOptions.ReplaceUserProfile_Profile, m.User), m.Session, m.Date)
|
||||
Items(indx) = m
|
||||
_FilesUpdated = True
|
||||
End If
|
||||
|
||||
@@ -219,8 +219,8 @@ Namespace DownloadObjects
|
||||
End If
|
||||
Return result
|
||||
End Function
|
||||
Friend Sub UpdateDataByFile(ByVal InitialFile As SFile, ByVal NewFile As SFile)
|
||||
If Count > 0 Then Feeds.ForEach(Sub(f) f.UpdateDataByFile(InitialFile, NewFile))
|
||||
Friend Sub UpdateDataByFile(ByVal InitialFile As SFile, ByVal NewFile As SFile, ByVal MCTOptions As FeedMoveCopyTo)
|
||||
If Count > 0 Then Feeds.ForEach(Sub(f) f.UpdateDataByFile(InitialFile, NewFile, MCTOptions))
|
||||
End Sub
|
||||
Friend Sub UpdateWhereDataReplaced()
|
||||
If Count > 0 Then Feeds.ForEach(Sub(f) f.UpdateIfRequired())
|
||||
|
||||
@@ -143,7 +143,7 @@ Namespace Editors
|
||||
CH_FEED_OPEN_LAST_MODE.Checked = .FeedOpenLastMode
|
||||
CH_FEED_SHOW_FRIENDLY.Checked = .FeedShowFriendlyNames
|
||||
CH_FEED_SHOW_SPEC_MEDIAITEM.Checked = .FeedShowSpecialFeedsMediaItem
|
||||
CH_FEED_UP_FILE_LOC_MOVE.Checked = .FeedUpdateFileLocationOnMove
|
||||
CH_FEED_UP_FILE_LOC_MOVE.Checked = .FeedMoveCopyUpdateFileLocationOnMove
|
||||
End With
|
||||
.MyFieldsChecker = New FieldsChecker
|
||||
With .MyFieldsCheckerE
|
||||
@@ -317,7 +317,7 @@ Namespace Editors
|
||||
.FeedOpenLastMode.Value = CH_FEED_OPEN_LAST_MODE.Checked
|
||||
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
|
||||
.FeedShowSpecialFeedsMediaItem.Value = CH_FEED_SHOW_SPEC_MEDIAITEM.Checked
|
||||
.FeedUpdateFileLocationOnMove.Value = CH_FEED_UP_FILE_LOC_MOVE.Checked
|
||||
.FeedMoveCopyUpdateFileLocationOnMove.Value = CH_FEED_UP_FILE_LOC_MOVE.Checked
|
||||
FeedParametersChanged = .FeedDataRows.ChangesDetected Or .FeedDataColumns.ChangesDetected Or
|
||||
.FeedEndless.ChangesDetected Or .FeedBackColor.ChangesDetected Or
|
||||
.FeedForeColor.ChangesDetected Or .FeedCenterImage.ChangesDetected
|
||||
|
||||
@@ -488,6 +488,7 @@ CloseResume:
|
||||
If MyFeed Is Nothing Then
|
||||
MyFeed = New DownloadFeedForm
|
||||
AddHandler Downloader.FeedFilesChanged, AddressOf MyFeed.Downloader_FilesChanged
|
||||
AddHandler MyFeed.UsersAdded, AddressOf OnUsersAddedHandler
|
||||
If Not MySavedPosts Is Nothing Then AddHandler MySavedPosts.FeedFilesChanged, AddressOf MyFeed.Downloader_FilesChanged
|
||||
End If
|
||||
If MyFeed.Visible Then MyFeed.BringToFront() Else MyFeed.Show()
|
||||
|
||||
@@ -21,6 +21,7 @@ Friend Module MainMod
|
||||
Friend ReadOnly FilesPattern As RParams = RParams.DM("[^\./]+?\.\w+", 1, EDP.ReturnValue)
|
||||
Friend Delegate Sub NotificationEventHandler(ByVal Sender As SettingsCLS.NotificationObjects, ByVal Message As String)
|
||||
Friend Delegate Sub UserDownloadStateChangedEventHandler(ByVal User As IUserData, ByVal IsDownloading As Boolean)
|
||||
Friend Delegate Sub UsersAddedEventHandler(ByVal StartIndex As Integer)
|
||||
Friend Delegate Function PathMoverHandler(ByVal User As UserInfo, ByVal DestinationPattern As SFile) As SFile
|
||||
Friend Const LVI_TempOption As String = "Temp"
|
||||
Friend Const LVI_FavOption As String = "Favorite"
|
||||
|
||||
@@ -279,6 +279,7 @@
|
||||
<Compile Include="Download\Feed\FeedMedia.vb">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Download\Feed\FeedMoveCopyTo.vb" />
|
||||
<Compile Include="Download\Feed\FeedSpecial.vb" />
|
||||
<Compile Include="Download\Feed\FeedSpecialCollection.vb" />
|
||||
<Compile Include="Download\Feed\FeedVideo.Designer.vb">
|
||||
|
||||
@@ -320,8 +320,13 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
||||
FeedLastModeSubscriptions = New XMLValue(Of Boolean)("LastModeSubscriptions", False, MyXML, n)
|
||||
FeedShowFriendlyNames = New XMLValue(Of Boolean)("ShowFriendlyNames", True, MyXML, n)
|
||||
FeedShowSpecialFeedsMediaItem = New XMLValue(Of Boolean)("ShowSpecialFeedsMediaItem", False, MyXML, n)
|
||||
FeedLastCopyMoveLocation = New XMLValue(Of SFile)("LastCopyMoveLocation",, MyXML, n)
|
||||
FeedUpdateFileLocationOnMove = New XMLValue(Of Boolean)("UpdateFileLocationOnMove", True, MyXML, n)
|
||||
n = {"Feed", "MoveCopy"}
|
||||
FeedMoveCopyLastLocation = New XMLValue(Of SFile)("LastLocation",, MyXML, n)
|
||||
FeedMoveCopyUpdateFileLocationOnMove = New XMLValue(Of Boolean)("UpdateFileLocationOnMove", True, MyXML, n)
|
||||
FeedMoveCopyIsProfileChecked = New XMLValue(Of Boolean)("IsProfileChecked", True, MyXML, n)
|
||||
FeedMoveCopySeparateVideo = New XMLValue(Of Boolean)("SeparateVideo",, MyXML, n)
|
||||
FeedMoveCopyReplaceUserProfile = New XMLValue(Of Boolean)("ReplaceUserProfile",, MyXML, n)
|
||||
FeedMoveCopyCreatePathProfile = New XMLValue(Of Boolean)("CreatePathProfile",, MyXML, n)
|
||||
|
||||
n = {"Users"}
|
||||
FromChannelDownloadTop = New XMLValue(Of Integer)("FromChannelDownloadTop", 10, MyXML, n)
|
||||
@@ -956,8 +961,14 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
||||
Friend ReadOnly Property FeedLastModeSubscriptions As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedShowFriendlyNames As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedShowSpecialFeedsMediaItem As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedLastCopyMoveLocation As XMLValue(Of SFile)
|
||||
Friend ReadOnly Property FeedUpdateFileLocationOnMove As XMLValue(Of Boolean)
|
||||
#Region "MoveCopy"
|
||||
Friend ReadOnly Property FeedMoveCopyLastLocation As XMLValue(Of SFile)
|
||||
Friend ReadOnly Property FeedMoveCopyUpdateFileLocationOnMove As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedMoveCopyIsProfileChecked As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedMoveCopySeparateVideo As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedMoveCopyReplaceUserProfile As XMLValue(Of Boolean)
|
||||
Friend ReadOnly Property FeedMoveCopyCreatePathProfile As XMLValue(Of Boolean)
|
||||
#End Region
|
||||
#End Region
|
||||
#Region "New version properties"
|
||||
Friend ReadOnly Property CheckUpdatesAtStart As XMLValue(Of Boolean)
|
||||
|
||||
Reference in New Issue
Block a user