From d283d9c9f9262f559611c02983d5f918cb77cd2a Mon Sep 17 00:00:00 2001 From: Andy <88590076+AAndyProgram@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:40:04 +0300 Subject: [PATCH] 2024.2.22.0 Feed: add the ability to move/copy media --- SCrawler/Content/Pictures/CutPic_48.png | Bin 0 -> 3123 bytes .../Feed/DownloadFeedForm.Designer.vb | 27 +- SCrawler/Download/Feed/DownloadFeedForm.resx | 3 + SCrawler/Download/Feed/DownloadFeedForm.vb | 34 +++ .../Download/Feed/FeedCopyToForm.Designer.vb | 153 ++++++++++ SCrawler/Download/Feed/FeedCopyToForm.resx | 261 ++++++++++++++++++ SCrawler/Download/Feed/FeedCopyToForm.vb | 79 ++++++ SCrawler/Download/Feed/FeedMedia.Designer.vb | 89 +++--- SCrawler/Download/Feed/FeedMedia.resx | 9 +- SCrawler/Download/Feed/FeedMedia.vb | 33 ++- SCrawler/My Project/Resources.Designer.vb | 10 + SCrawler/My Project/Resources.resx | 3 + SCrawler/SCrawler.vbproj | 12 + SCrawler/SettingsCLS.vb | 2 + 14 files changed, 678 insertions(+), 37 deletions(-) create mode 100644 SCrawler/Content/Pictures/CutPic_48.png create mode 100644 SCrawler/Download/Feed/FeedCopyToForm.Designer.vb create mode 100644 SCrawler/Download/Feed/FeedCopyToForm.resx create mode 100644 SCrawler/Download/Feed/FeedCopyToForm.vb diff --git a/SCrawler/Content/Pictures/CutPic_48.png b/SCrawler/Content/Pictures/CutPic_48.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3a6c3824448f2c846d9db82e22ab2a5de6bdc9 GIT binary patch literal 3123 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 N002ovPDHLkV1jH}5PSdt literal 0 HcmV?d00001 diff --git a/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb b/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb index b7fb234..938cae7 100644 --- a/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb +++ b/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb @@ -33,6 +33,7 @@ Namespace DownloadObjects Dim MENU_LOAD_SEP_5 As System.Windows.Forms.ToolStripSeparator Dim MENU_LOAD_SEP_6 As System.Windows.Forms.ToolStripSeparator Dim MENU_LOAD_SEP_7 As System.Windows.Forms.ToolStripSeparator + Dim MENU_LOAD_SEP_0 As System.Windows.Forms.ToolStripSeparator Me.OPT_DEFAULT = New System.Windows.Forms.ToolStripMenuItem() Me.OPT_SUBSCRIPTIONS = New System.Windows.Forms.ToolStripMenuItem() Me.ToolbarTOP = New System.Windows.Forms.ToolStrip() @@ -40,6 +41,8 @@ Namespace DownloadObjects Me.BTT_LOAD_SESSION_CURRENT = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_LOAD_SESSION_LAST = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_LOAD_SESSION_CHOOSE = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_LOAD_FAV = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_LOAD_SPEC = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem() @@ -74,6 +77,7 @@ Namespace DownloadObjects MENU_LOAD_SEP_5 = New System.Windows.Forms.ToolStripSeparator() MENU_LOAD_SEP_6 = New System.Windows.Forms.ToolStripSeparator() MENU_LOAD_SEP_7 = New System.Windows.Forms.ToolStripSeparator() + MENU_LOAD_SEP_0 = New System.Windows.Forms.ToolStripSeparator() Me.ToolbarTOP.SuspendLayout() Me.SuspendLayout() ' @@ -144,6 +148,11 @@ Namespace DownloadObjects MENU_LOAD_SEP_7.Name = "MENU_LOAD_SEP_7" MENU_LOAD_SEP_7.Size = New System.Drawing.Size(349, 6) ' + 'MENU_LOAD_SEP_0 + ' + MENU_LOAD_SEP_0.Name = "MENU_LOAD_SEP_0" + MENU_LOAD_SEP_0.Size = New System.Drawing.Size(349, 6) + ' 'ToolbarTOP ' Me.ToolbarTOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden @@ -157,7 +166,7 @@ Namespace DownloadObjects ' Me.MENU_LOAD_SESSION.AutoToolTip = False Me.MENU_LOAD_SESSION.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.MENU_LOAD_SESSION.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_LOAD_SESSION_CURRENT, Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE, MENU_LOAD_SEP_1, Me.BTT_LOAD_FAV, Me.BTT_LOAD_SPEC, MENU_LOAD_SEP_2, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_REMOVE_FAV, MENU_LOAD_SEP_3, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_SPEC, MENU_LOAD_SEP_4, Me.BTT_FEED_CLEAR_FAV, Me.BTT_FEED_CLEAR_SPEC, Me.BTT_FEED_DELETE_SPEC, Me.BTT_FEED_DELETE_DAILY_LIST, Me.BTT_FEED_DELETE_DAILY_DATE, MENU_LOAD_SEP_5, Me.BTT_MERGE_SESSIONS, Me.BTT_CLEAR_DAILY, MENU_LOAD_SEP_6, Me.BTT_MERGE_FEEDS, MENU_LOAD_SEP_7, Me.BTT_CHECK_ALL, Me.BTT_CHECK_NONE}) + Me.MENU_LOAD_SESSION.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_LOAD_SESSION_CURRENT, Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE, MENU_LOAD_SEP_0, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, MENU_LOAD_SEP_1, Me.BTT_LOAD_FAV, Me.BTT_LOAD_SPEC, MENU_LOAD_SEP_2, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_REMOVE_FAV, MENU_LOAD_SEP_3, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_SPEC, MENU_LOAD_SEP_4, Me.BTT_FEED_CLEAR_FAV, Me.BTT_FEED_CLEAR_SPEC, Me.BTT_FEED_DELETE_SPEC, Me.BTT_FEED_DELETE_DAILY_LIST, Me.BTT_FEED_DELETE_DAILY_DATE, MENU_LOAD_SEP_5, Me.BTT_MERGE_SESSIONS, Me.BTT_CLEAR_DAILY, MENU_LOAD_SEP_6, Me.BTT_MERGE_FEEDS, MENU_LOAD_SEP_7, Me.BTT_CHECK_ALL, Me.BTT_CHECK_NONE}) Me.MENU_LOAD_SESSION.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24 Me.MENU_LOAD_SESSION.ImageTransparentColor = System.Drawing.Color.Magenta Me.MENU_LOAD_SESSION.Name = "MENU_LOAD_SESSION" @@ -185,6 +194,20 @@ Namespace DownloadObjects Me.BTT_LOAD_SESSION_CHOOSE.Size = New System.Drawing.Size(352, 22) Me.BTT_LOAD_SESSION_CHOOSE.Text = "Select loading session" ' + 'BTT_COPY_TO + ' + Me.BTT_COPY_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32 + Me.BTT_COPY_TO.Name = "BTT_COPY_TO" + Me.BTT_COPY_TO.Size = New System.Drawing.Size(352, 22) + Me.BTT_COPY_TO.Text = "Copy checked to..." + ' + 'BTT_MOVE_TO + ' + Me.BTT_MOVE_TO.Image = Global.SCrawler.My.Resources.Resources.CutPic_48 + Me.BTT_MOVE_TO.Name = "BTT_MOVE_TO" + Me.BTT_MOVE_TO.Size = New System.Drawing.Size(352, 22) + Me.BTT_MOVE_TO.Text = "Move checked to..." + ' 'BTT_LOAD_FAV ' Me.BTT_LOAD_FAV.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32 @@ -433,5 +456,7 @@ Namespace DownloadObjects Private WithEvents BTT_FEED_ADD_SPEC_REMOVE As ToolStripMenuItem Private WithEvents BTT_CHECK_ALL As ToolStripMenuItem Private WithEvents BTT_CHECK_NONE As ToolStripMenuItem + Private WithEvents BTT_COPY_TO As ToolStripMenuItem + Private WithEvents BTT_MOVE_TO As ToolStripMenuItem End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Download/Feed/DownloadFeedForm.resx b/SCrawler/Download/Feed/DownloadFeedForm.resx index 6b14342..55a4543 100644 --- a/SCrawler/Download/Feed/DownloadFeedForm.resx +++ b/SCrawler/Download/Feed/DownloadFeedForm.resx @@ -156,6 +156,9 @@ False + + False + 17, 17 diff --git a/SCrawler/Download/Feed/DownloadFeedForm.vb b/SCrawler/Download/Feed/DownloadFeedForm.vb index 203e503..7bc18b5 100644 --- a/SCrawler/Download/Feed/DownloadFeedForm.vb +++ b/SCrawler/Download/Feed/DownloadFeedForm.vb @@ -492,6 +492,40 @@ Namespace DownloadObjects End Try End Sub #End Region + Private Sub BTT_COPY_MOVE_TO_Click(sender As Object, e As EventArgs) Handles BTT_COPY_TO.Click, BTT_MOVE_TO.Click + Const MsgTitle$ = "Copy/Move checked files" + Try + Dim isCopy As Boolean = sender Is BTT_COPY_TO + Dim dest As SFile = Nothing + Dim ff As SFile, df As SFile + Dim files As IEnumerable(Of SFile) = Nothing + + With GetCheckedMedia() + If .ListExists Then files = .Select(Function(m) m.Data.File) + End With + If files.ListExists Then + Using f As New FeedCopyToForm(files, isCopy) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then dest = f.Destination + End Using + If Not dest.IsEmptyString Then + For Each ff In files + If Not ff.IsEmptyString Then + df = ff + df.Path = dest.Path + If isCopy Then ff.Copy(df) Else SFile.Move(ff, df) + End If + Next + If Not isCopy Then RefillList0() + MsgBoxE({$"The following files were copied to{vbCr}{dest}{vbCr}{vbCr}{files.ListToString(vbCr)}", MsgTitle}) + End If + Else + MsgBoxE({"No files selected", MsgTitle}, vbExclamation) + End If + Catch ex As Exception + ErrorsDescriber.Execute(EDP.LogMessageValue, ex, MsgTitle) + End Try + End Sub #Region "Load fav, spec" Private Sub BTT_LOAD_FAV_Click(sender As Object, e As EventArgs) Handles BTT_LOAD_FAV.Click FeedChangeMode(FeedModes.Special, {FeedSpecial.FavoriteName}) diff --git a/SCrawler/Download/Feed/FeedCopyToForm.Designer.vb b/SCrawler/Download/Feed/FeedCopyToForm.Designer.vb new file mode 100644 index 0000000..786ed5e --- /dev/null +++ b/SCrawler/Download/Feed/FeedCopyToForm.Designer.vb @@ -0,0 +1,153 @@ +' 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 +Namespace DownloadObjects + + Partial Friend Class FeedCopyToForm : Inherits System.Windows.Forms.Form + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + Private components As System.ComponentModel.IContainer + + Private Sub InitializeComponent() + Dim CONTAINER_MAIN As System.Windows.Forms.ToolStripContainer + 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 + Me.CMB_DEST = New PersonalUtilities.Forms.Controls.ComboBoxExtended() + Me.TXT_FILES = New System.Windows.Forms.RichTextBox() + CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer() + TP_MAIN = New System.Windows.Forms.TableLayoutPanel() + FRM_FILES = New System.Windows.Forms.GroupBox() + CONTAINER_MAIN.ContentPanel.SuspendLayout() + CONTAINER_MAIN.SuspendLayout() + CType(Me.CMB_DEST, System.ComponentModel.ISupportInitialize).BeginInit() + TP_MAIN.SuspendLayout() + FRM_FILES.SuspendLayout() + Me.SuspendLayout() + ' + 'CONTAINER_MAIN + ' + ' + 'CONTAINER_MAIN.ContentPanel + ' + CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN) + CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(534, 116) + 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.TabIndex = 0 + CONTAINER_MAIN.TopToolStripPanelVisible = False + ' + 'CMB_DEST + ' + ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image) + ActionButton1.Name = "Open" + ActionButton1.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton1.ToolTipText = "Choose a new location (Ctrl+O)" + ActionButton2.BackgroundImage = CType(resources.GetObject("ActionButton2.BackgroundImage"), System.Drawing.Image) + ActionButton2.Name = "Add" + ActionButton2.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Add + ActionButton2.ToolTipText = "Choose a new location and add it to the list (Alt+O)" + ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image) + ActionButton3.Name = "Clear" + ActionButton3.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image) + ActionButton4.Name = "ArrowDown" + ActionButton4.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown + Me.CMB_DEST.Buttons.Add(ActionButton1) + 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.CaptionVisible = True + Me.CMB_DEST.CaptionWidth = 70.0R + 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" + Me.CMB_DEST.Size = New System.Drawing.Size(528, 22) + 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.Name = "FRM_FILES" + FRM_FILES.Size = New System.Drawing.Size(528, 82) + FRM_FILES.TabIndex = 1 + FRM_FILES.TabStop = False + FRM_FILES.Text = "Files:" + ' + 'TXT_FILES + ' + Me.TXT_FILES.Dock = System.Windows.Forms.DockStyle.Fill + 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.TabIndex = 0 + Me.TXT_FILES.Text = "" + ' + '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.Controls.Add(CONTAINER_MAIN) + Me.KeyPreview = True + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(550, 150) + 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) + FRM_FILES.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Private WithEvents CMB_DEST As PersonalUtilities.Forms.Controls.ComboBoxExtended + Private WithEvents TXT_FILES As RichTextBox + End Class +End Namespace \ No newline at end of file diff --git a/SCrawler/Download/Feed/FeedCopyToForm.resx b/SCrawler/Download/Feed/FeedCopyToForm.resx new file mode 100644 index 0000000..0266693 --- /dev/null +++ b/SCrawler/Download/Feed/FeedCopyToForm.resx @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + False + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + 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 + AAAASUVORK5CYII= + + + + False + + \ No newline at end of file diff --git a/SCrawler/Download/Feed/FeedCopyToForm.vb b/SCrawler/Download/Feed/FeedCopyToForm.vb new file mode 100644 index 0000000..2d14f43 --- /dev/null +++ b/SCrawler/Download/Feed/FeedCopyToForm.vb @@ -0,0 +1,79 @@ +' 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 PersonalUtilities.Tools +Imports PersonalUtilities.Forms +Imports PersonalUtilities.Forms.Controls.Base +Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons +Namespace DownloadObjects + Friend Class FeedCopyToForm + Private WithEvents MyDefs As DefaultFormOptions + Private _Destination As SFile = Nothing + Friend ReadOnly Property Destination As SFile + Get + Return _Destination + End Get + End Property + 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) + Text = $"{IIf(IsCopy, "Copy", "Move")} files to..." + Try + If IsCopy Then + Icon = ImageRenderer.GetIcon(My.Resources.PastePic_32, EDP.ThrowException) + Else + Icon = ImageRenderer.GetIcon(My.Resources.CutPic_48, EDP.ThrowException) + End If + Catch + ShowIcon = False + End Try + End Sub + Private Sub FeedCopyToForm_Load(sender As Object, e As EventArgs) Handles Me.Load + Try + With MyDefs + .MyViewInitialize(True) + .AddOkCancelToolbar() + .MyFieldsCheckerE = New FieldsChecker + With .MyFieldsCheckerE + .AddControl(Of String)(CMB_DEST, "Destination") + .EndLoaderOperations() + End With + Settings.DownloadLocations.PopulateComboBox(CMB_DEST) + CMB_DEST.Text = Settings.FeedLastCopyMoveLocation.Value + .EndLoaderOperations() + .MyOkCancel.EnableOK = True + End With + Catch ex As Exception + MyDefs.InvokeLoaderError(ex) + End Try + End Sub + Private Sub FeedCopyToForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown + Dim b As Boolean = True + If e.KeyCode = Keys.O And e.Control Then + Settings.DownloadLocations.ChooseNewLocation(CMB_DEST, False, False) + ElseIf e.KeyCode = Keys.O And e.Alt Then + Settings.DownloadLocations.ChooseNewLocation(CMB_DEST, True, True) + Else + b = False + 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 + End Sub + 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 + End Class +End Namespace \ No newline at end of file diff --git a/SCrawler/Download/Feed/FeedMedia.Designer.vb b/SCrawler/Download/Feed/FeedMedia.Designer.vb index 200bf40..7a191c8 100644 --- a/SCrawler/Download/Feed/FeedMedia.Designer.vb +++ b/SCrawler/Download/Feed/FeedMedia.Designer.vb @@ -24,8 +24,10 @@ Namespace DownloadObjects Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim CONTEXT_SEP_1 As System.Windows.Forms.ToolStripSeparator - Dim CONTEXT_SEP_2 As System.Windows.Forms.ToolStripSeparator Dim TP_LBL As System.Windows.Forms.TableLayoutPanel + Dim CONTEXT_SEP_3 As System.Windows.Forms.ToolStripSeparator + Dim CONTEXT_SEP_4 As System.Windows.Forms.ToolStripSeparator + Me.CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator() Me.CH_CHECKED = New System.Windows.Forms.CheckBox() Me.LBL_INFO = New System.Windows.Forms.Label() Me.CONTEXT_DATA = New System.Windows.Forms.ContextMenuStrip(Me.components) @@ -35,23 +37,25 @@ Namespace DownloadObjects Me.BTT_CONTEXT_OPEN_USER = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_OPEN_USER_URL = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_OPEN_USER_POST = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_FEED_ADD_FAV_REMOVE = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_FEED_ADD_SPEC = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_FEED_ADD_SPEC_REMOVE = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_FEED_REMOVE_FAV = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_FEED_REMOVE_SPEC = New System.Windows.Forms.ToolStripMenuItem() - Me.CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator() Me.BTT_CONTEXT_FIND_USER = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_INFO = New System.Windows.Forms.ToolStripMenuItem() - Me.CONTEXT_SEP_4 = New System.Windows.Forms.ToolStripSeparator() + Me.CONTEXT_SEP_5 = New System.Windows.Forms.ToolStripSeparator() Me.BTT_CONTEXT_DELETE = New System.Windows.Forms.ToolStripMenuItem() Me.ICON_SITE = New System.Windows.Forms.PictureBox() Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel() Me.LBL_TITLE = New System.Windows.Forms.Label() - Me.BTT_FEED_ADD_FAV_REMOVE = New System.Windows.Forms.ToolStripMenuItem() - Me.BTT_FEED_ADD_SPEC_REMOVE = New System.Windows.Forms.ToolStripMenuItem() CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator() - CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator() TP_LBL = New System.Windows.Forms.TableLayoutPanel() + CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator() + CONTEXT_SEP_4 = New System.Windows.Forms.ToolStripSeparator() TP_LBL.SuspendLayout() Me.CONTEXT_DATA.SuspendLayout() CType(Me.ICON_SITE, System.ComponentModel.ISupportInitialize).BeginInit() @@ -65,8 +69,8 @@ Namespace DownloadObjects ' 'CONTEXT_SEP_2 ' - CONTEXT_SEP_2.Name = "CONTEXT_SEP_2" - CONTEXT_SEP_2.Size = New System.Drawing.Size(302, 6) + Me.CONTEXT_SEP_2.Name = "CONTEXT_SEP_2" + Me.CONTEXT_SEP_2.Size = New System.Drawing.Size(302, 6) ' 'TP_LBL ' @@ -110,9 +114,9 @@ Namespace DownloadObjects ' 'CONTEXT_DATA ' - Me.CONTEXT_DATA.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.CONTEXT_SEP_0, Me.BTT_CONTEXT_OPEN_MEDIA, Me.BTT_CONTEXT_OPEN_USER, CONTEXT_SEP_1, Me.BTT_CONTEXT_OPEN_USER_URL, Me.BTT_CONTEXT_OPEN_USER_POST, CONTEXT_SEP_2, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_FAV, Me.BTT_FEED_REMOVE_SPEC, Me.CONTEXT_SEP_3, Me.BTT_CONTEXT_FIND_USER, Me.BTT_CONTEXT_INFO, Me.CONTEXT_SEP_4, Me.BTT_CONTEXT_DELETE}) + Me.CONTEXT_DATA.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.CONTEXT_SEP_0, Me.BTT_CONTEXT_OPEN_MEDIA, Me.BTT_CONTEXT_OPEN_USER, CONTEXT_SEP_1, Me.BTT_CONTEXT_OPEN_USER_URL, Me.BTT_CONTEXT_OPEN_USER_POST, Me.CONTEXT_SEP_2, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, CONTEXT_SEP_3, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_FAV, Me.BTT_FEED_REMOVE_SPEC, CONTEXT_SEP_4, Me.BTT_CONTEXT_FIND_USER, Me.BTT_CONTEXT_INFO, Me.CONTEXT_SEP_5, Me.BTT_CONTEXT_DELETE}) Me.CONTEXT_DATA.Name = "CONTEXT_PIC" - Me.CONTEXT_DATA.Size = New System.Drawing.Size(306, 364) + Me.CONTEXT_DATA.Size = New System.Drawing.Size(306, 414) ' 'BTT_CONTEXT_DOWN ' @@ -156,6 +160,25 @@ Namespace DownloadObjects Me.BTT_CONTEXT_OPEN_USER_POST.Size = New System.Drawing.Size(305, 22) Me.BTT_CONTEXT_OPEN_USER_POST.Text = "Open post" ' + 'BTT_COPY_TO + ' + Me.BTT_COPY_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32 + Me.BTT_COPY_TO.Name = "BTT_COPY_TO" + Me.BTT_COPY_TO.Size = New System.Drawing.Size(305, 22) + Me.BTT_COPY_TO.Text = "Copy to..." + ' + 'BTT_MOVE_TO + ' + Me.BTT_MOVE_TO.Image = Global.SCrawler.My.Resources.Resources.CutPic_48 + Me.BTT_MOVE_TO.Name = "BTT_MOVE_TO" + Me.BTT_MOVE_TO.Size = New System.Drawing.Size(305, 22) + Me.BTT_MOVE_TO.Text = "Move to..." + ' + 'CONTEXT_SEP_3 + ' + CONTEXT_SEP_3.Name = "CONTEXT_SEP_3" + CONTEXT_SEP_3.Size = New System.Drawing.Size(302, 6) + ' 'BTT_FEED_ADD_FAV ' Me.BTT_FEED_ADD_FAV.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32 @@ -163,6 +186,13 @@ Namespace DownloadObjects Me.BTT_FEED_ADD_FAV.Size = New System.Drawing.Size(305, 22) Me.BTT_FEED_ADD_FAV.Text = "Add to Favorite" ' + 'BTT_FEED_ADD_FAV_REMOVE + ' + Me.BTT_FEED_ADD_FAV_REMOVE.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32 + Me.BTT_FEED_ADD_FAV_REMOVE.Name = "BTT_FEED_ADD_FAV_REMOVE" + Me.BTT_FEED_ADD_FAV_REMOVE.Size = New System.Drawing.Size(305, 22) + Me.BTT_FEED_ADD_FAV_REMOVE.Text = "Add to Favorite (remove from current)" + ' 'BTT_FEED_ADD_SPEC ' Me.BTT_FEED_ADD_SPEC.Image = Global.SCrawler.My.Resources.Resources.RSSPic_512 @@ -170,6 +200,13 @@ Namespace DownloadObjects Me.BTT_FEED_ADD_SPEC.Size = New System.Drawing.Size(305, 22) Me.BTT_FEED_ADD_SPEC.Text = "Add to special feed..." ' + 'BTT_FEED_ADD_SPEC_REMOVE + ' + Me.BTT_FEED_ADD_SPEC_REMOVE.Image = Global.SCrawler.My.Resources.Resources.RSSPic_512 + Me.BTT_FEED_ADD_SPEC_REMOVE.Name = "BTT_FEED_ADD_SPEC_REMOVE" + Me.BTT_FEED_ADD_SPEC_REMOVE.Size = New System.Drawing.Size(305, 22) + Me.BTT_FEED_ADD_SPEC_REMOVE.Text = "Add to special feed (remove from current)..." + ' 'BTT_FEED_REMOVE_FAV ' Me.BTT_FEED_REMOVE_FAV.Image = Global.SCrawler.My.Resources.Resources.DeletePic_24 @@ -184,10 +221,10 @@ Namespace DownloadObjects Me.BTT_FEED_REMOVE_SPEC.Size = New System.Drawing.Size(305, 22) Me.BTT_FEED_REMOVE_SPEC.Text = "Remove from special feed..." ' - 'CONTEXT_SEP_3 + 'CONTEXT_SEP_4 ' - Me.CONTEXT_SEP_3.Name = "CONTEXT_SEP_3" - Me.CONTEXT_SEP_3.Size = New System.Drawing.Size(302, 6) + CONTEXT_SEP_4.Name = "CONTEXT_SEP_4" + CONTEXT_SEP_4.Size = New System.Drawing.Size(302, 6) ' 'BTT_CONTEXT_FIND_USER ' @@ -203,10 +240,10 @@ Namespace DownloadObjects Me.BTT_CONTEXT_INFO.Size = New System.Drawing.Size(305, 22) Me.BTT_CONTEXT_INFO.Text = "Information" ' - 'CONTEXT_SEP_4 + 'CONTEXT_SEP_5 ' - Me.CONTEXT_SEP_4.Name = "CONTEXT_SEP_4" - Me.CONTEXT_SEP_4.Size = New System.Drawing.Size(302, 6) + Me.CONTEXT_SEP_5.Name = "CONTEXT_SEP_5" + Me.CONTEXT_SEP_5.Size = New System.Drawing.Size(302, 6) ' 'BTT_CONTEXT_DELETE ' @@ -252,20 +289,6 @@ Namespace DownloadObjects Me.LBL_TITLE.Size = New System.Drawing.Size(140, 25) Me.LBL_TITLE.TabIndex = 1 ' - 'BTT_FEED_ADD_FAV_REMOVE - ' - Me.BTT_FEED_ADD_FAV_REMOVE.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32 - Me.BTT_FEED_ADD_FAV_REMOVE.Name = "BTT_FEED_ADD_FAV_REMOVE" - Me.BTT_FEED_ADD_FAV_REMOVE.Size = New System.Drawing.Size(305, 22) - Me.BTT_FEED_ADD_FAV_REMOVE.Text = "Add to Favorite (remove from current)" - ' - 'BTT_FEED_ADD_SPEC_REMOVE - ' - Me.BTT_FEED_ADD_SPEC_REMOVE.Image = Global.SCrawler.My.Resources.Resources.RSSPic_512 - Me.BTT_FEED_ADD_SPEC_REMOVE.Name = "BTT_FEED_ADD_SPEC_REMOVE" - Me.BTT_FEED_ADD_SPEC_REMOVE.Size = New System.Drawing.Size(305, 22) - Me.BTT_FEED_ADD_SPEC_REMOVE.Text = "Add to special feed (remove from current)..." - ' 'FeedMedia ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -299,7 +322,6 @@ Namespace DownloadObjects Private WithEvents LBL_INFO As Label Private WithEvents BTT_CONTEXT_INFO As ToolStripMenuItem Private WithEvents ICON_SITE As PictureBox - Private WithEvents CONTEXT_SEP_3 As ToolStripSeparator Private WithEvents BTT_CONTEXT_DOWN As ToolStripMenuItem Private WithEvents CONTEXT_SEP_0 As ToolStripSeparator Private WithEvents LBL_TITLE As Label @@ -307,8 +329,11 @@ Namespace DownloadObjects Private WithEvents BTT_FEED_ADD_SPEC As ToolStripMenuItem Private WithEvents BTT_FEED_REMOVE_FAV As ToolStripMenuItem Private WithEvents BTT_FEED_REMOVE_SPEC As ToolStripMenuItem - Private WithEvents CONTEXT_SEP_4 As ToolStripSeparator Private WithEvents BTT_FEED_ADD_FAV_REMOVE As ToolStripMenuItem Private WithEvents BTT_FEED_ADD_SPEC_REMOVE As ToolStripMenuItem + Private WithEvents BTT_COPY_TO As ToolStripMenuItem + Private WithEvents BTT_MOVE_TO As ToolStripMenuItem + Private WithEvents CONTEXT_SEP_5 As ToolStripSeparator + Private WithEvents CONTEXT_SEP_2 As ToolStripSeparator End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Download/Feed/FeedMedia.resx b/SCrawler/Download/Feed/FeedMedia.resx index d0a3aa8..eb410b0 100644 --- a/SCrawler/Download/Feed/FeedMedia.resx +++ b/SCrawler/Download/Feed/FeedMedia.resx @@ -120,13 +120,16 @@ False - - False - False 17, 17 + + False + + + False + \ No newline at end of file diff --git a/SCrawler/Download/Feed/FeedMedia.vb b/SCrawler/Download/Feed/FeedMedia.vb index f1665a6..e402f86 100644 --- a/SCrawler/Download/Feed/FeedMedia.vb +++ b/SCrawler/Download/Feed/FeedMedia.vb @@ -177,9 +177,13 @@ Namespace DownloadObjects BTT_CONTEXT_DOWN.Visible = True CONTEXT_SEP_0.Visible = True BTT_CONTEXT_OPEN_USER.Visible = False - CONTEXT_SEP_4.Visible = False + CONTEXT_SEP_5.Visible = False BTT_CONTEXT_DELETE.Visible = False + CONTEXT_SEP_2.Visible = False + BTT_COPY_TO.Visible = False + BTT_MOVE_TO.Visible = False + If Not Media.Data.URL.IsEmptyString Then Dim ext$ = Media.Data.URL.CSFile.Extension Dim imgFile As New SFile With {.Path = Settings.Cache.RootDirectory.Path} @@ -478,6 +482,33 @@ Namespace DownloadObjects End Try End Sub #End Region +#Region "Copy, Move" + Private Sub BTT_COPY_MOVE_TO_Click(sender As Object, e As EventArgs) Handles BTT_COPY_TO.Click, BTT_MOVE_TO.Click + Const MsgTitle$ = "Copy/Move checked files" + Try + If Not File.IsEmptyString Then + Dim isCopy As Boolean = sender Is BTT_COPY_TO + Dim dest As SFile = Nothing + Dim ff As SFile = File + Using f As New FeedCopyToForm({File}, isCopy) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then dest = f.Destination + End Using + If Not dest.IsEmptyString Then + ff.Path = dest + If isCopy Then + File.Copy(ff) + Else + If SFile.Move(File, ff) Then RaiseEvent MediaDeleted(Me) + End If + MsgBoxE({$"File {IIf(isCopy, "copied", "moved")}{vbCr}Source: '{File}'{vbCr}Destination: '{ff}'", MsgTitle}) + End If + End If + Catch ex As Exception + ErrorsDescriber.Execute(EDP.LogMessageValue, ex, MsgTitle) + End Try + End Sub +#End Region #Region "Feed" Private Sub BTT_FEED_ADD_FAV_Click(sender As Object, e As EventArgs) Handles BTT_FEED_ADD_FAV.Click, BTT_FEED_ADD_FAV_REMOVE.Click With Settings.Feeds.Favorite diff --git a/SCrawler/My Project/Resources.Designer.vb b/SCrawler/My Project/Resources.Designer.vb index 60a588e..5eeb9d7 100644 --- a/SCrawler/My Project/Resources.Designer.vb +++ b/SCrawler/My Project/Resources.Designer.vb @@ -120,6 +120,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CutPic_48() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CutPic_48", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Bitmap. ''' diff --git a/SCrawler/My Project/Resources.resx b/SCrawler/My Project/Resources.resx index a3b77c7..9f63ed8 100644 --- a/SCrawler/My Project/Resources.resx +++ b/SCrawler/My Project/Resources.resx @@ -220,4 +220,7 @@ ..\Content\Pictures\BrushToolPic_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\CutPic_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/SCrawler/SCrawler.vbproj b/SCrawler/SCrawler.vbproj index 78d5314..237c423 100644 --- a/SCrawler/SCrawler.vbproj +++ b/SCrawler/SCrawler.vbproj @@ -267,6 +267,12 @@ Form + + FeedCopyToForm.vb + + + Form + FeedMedia.vb @@ -524,6 +530,9 @@ DownloadSavedPostsForm.vb + + FeedCopyToForm.vb + FeedMedia.vb @@ -732,6 +741,9 @@ + + + diff --git a/SCrawler/SettingsCLS.vb b/SCrawler/SettingsCLS.vb index 842c2e2..440f22d 100644 --- a/SCrawler/SettingsCLS.vb +++ b/SCrawler/SettingsCLS.vb @@ -320,6 +320,7 @@ 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) n = {"Users"} FromChannelDownloadTop = New XMLValue(Of Integer)("FromChannelDownloadTop", 10, MyXML, n) @@ -954,6 +955,7 @@ 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) #End Region #Region "New version properties" Friend ReadOnly Property CheckUpdatesAtStart As XMLValue(Of Boolean)