From 28ae44f0ae8359326215d547b77b794babd52bac Mon Sep 17 00:00:00 2001 From: Andy <88590076+AAndyProgram@users.noreply.github.com> Date: Thu, 17 Aug 2023 23:54:19 +0300 Subject: [PATCH] 2023.08.17.0 YT.VideoListForm: hide progress API.Base.UserDataBase: add 'IsUser' property; remove 'DownloadedPictures' debug line; add a special log for non-existent users API.Twitter: group 'limit' notifications; update 'TwitterLimitException' (inherits Plugin.ExitException) AutoDownloader: fix 'Initialization' value bug DownloadedInfoForm: fix a bug due to which profiles were disposed FeedMedia: add subscriptions users BackColor & ForeColor; fix file name issue; remove icon cloning TDownloader, UserDownloadQueueForm: fix progress hang issue ColorPicker: add 'TooltipText' GlobalSettingsForm: add new properties; move design properties to new tab ListImagesLoader: add subscriptions users BackColor & ForeColor --- SCrawler.YouTube/Downloader/VideoListForm.vb | 1 + SCrawler.YouTube/My Project/AssemblyInfo.vb | 4 +- .../My Project/AssemblyInfo.vb | 4 +- SCrawler/API/Base/IUserData.vb | 1 + SCrawler/API/Base/UserDataBase.vb | 10 +- SCrawler/API/Pinterest/UserData.vb | 24 +- SCrawler/API/PornHub/UserData.vb | 13 +- SCrawler/API/ThisVid/UserData.vb | 2 +- SCrawler/API/Twitter/SiteSettings.vb | 13 + SCrawler/API/Twitter/UserData.vb | 17 +- SCrawler/API/XVIDEOS/UserData.vb | 5 + SCrawler/API/Xhamster/UserData.vb | 5 + .../Download/Automation/AutoDownloader.vb | 2 + SCrawler/Download/DownloadedInfoForm.vb | 2 +- SCrawler/Download/Feed/FeedMedia.vb | 17 +- .../STDownloader/VideoDownloaderForm.vb | 4 +- SCrawler/Download/TDownloader.vb | 12 +- SCrawler/Download/UserDownloadQueueForm.vb | 122 ++--- SCrawler/Editors/ColorPicker.vb | 18 + .../Editors/GlobalSettingsForm.Designer.vb | 492 ++++++++++-------- SCrawler/Editors/GlobalSettingsForm.resx | 164 +++--- SCrawler/Editors/GlobalSettingsForm.vb | 21 +- SCrawler/ListImagesLoader.vb | 21 +- SCrawler/MainFrame.Designer.vb | 4 +- SCrawler/MainFrame.vb | 5 +- SCrawler/MainMod.vb | 7 + SCrawler/My Project/AssemblyInfo.vb | 4 +- SCrawler/SettingsCLS.vb | 8 + 28 files changed, 566 insertions(+), 436 deletions(-) diff --git a/SCrawler.YouTube/Downloader/VideoListForm.vb b/SCrawler.YouTube/Downloader/VideoListForm.vb index c7957e1..0d3d283 100644 --- a/SCrawler.YouTube/Downloader/VideoListForm.vb +++ b/SCrawler.YouTube/Downloader/VideoListForm.vb @@ -526,6 +526,7 @@ Namespace DownloadObjects.STDownloader MyProgress.InformationTemporary = "Download error" ErrorsDescriber.Execute(EDP.SendToLog, ex, "[VideoListForm.DownloadData]") Finally + MyProgress.Visible(, False) = False MyJob.Finish() EnableDownloadButtons(False) End Try diff --git a/SCrawler.YouTube/My Project/AssemblyInfo.vb b/SCrawler.YouTube/My Project/AssemblyInfo.vb index 0e64b65..0b246d2 100644 --- a/SCrawler.YouTube/My Project/AssemblyInfo.vb +++ b/SCrawler.YouTube/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb b/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb index 5c5c805..9028021 100644 --- a/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb +++ b/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler/API/Base/IUserData.vb b/SCrawler/API/Base/IUserData.vb index 9c01523..7a073ac 100644 --- a/SCrawler/API/Base/IUserData.vb +++ b/SCrawler/API/Base/IUserData.vb @@ -31,6 +31,7 @@ Namespace API.Base Sub DownloadSingleObject(ByVal Data As YouTube.Objects.IYouTubeMediaContainer, ByVal Token As CancellationToken) Property ParseUserMediaOnly As Boolean ReadOnly Property IsSubscription As Boolean + ReadOnly Property IsUser As Boolean #Region "Images" Function GetPicture() As Image Sub SetPicture(ByVal f As SFile) diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb index f922590..6e36220 100644 --- a/SCrawler/API/Base/UserDataBase.vb +++ b/SCrawler/API/Base/UserDataBase.vb @@ -553,6 +553,11 @@ BlockNullPicture: Return User.IsSubscription End Get End Property + Friend Overridable ReadOnly Property IsUser As Boolean Implements IUserData.IsUser + Get + Return True + End Get + End Property Private Property IPluginContentProvider_IsSubscription As Boolean Implements IPluginContentProvider.IsSubscription Get Return IsSubscription @@ -1191,7 +1196,6 @@ BlockNullPicture: End Function)) Else DownloadContent(Token) - DownloadedPictures(False) += 1 ThrowIfDisposed() End If @@ -1240,9 +1244,10 @@ BlockNullPicture: LogError(ex, "downloading data error") HasError = True Finally - If Not UserExists Then MyMainLOG = $"User '{ToStringForLog()}' not found on the site" + If Not UserExists Then AddNonExistingUserToLog($"User '{ToStringForLog()}' not found on the site") If Not Responser Is Nothing Then Responser.Dispose() : Responser = Nothing If Not Canceled Then _DataParsed = True + TokenPersonal = Nothing _ContentNew.Clear() _DownloadInProgress = False DownloadTopCount = Nothing @@ -2137,6 +2142,7 @@ BlockNullPicture: LatestData.Clear() _TempMediaList.Clear() _TempPostsList.Clear() + TokenPersonal = Nothing If Not ProgressPre Is Nothing Then ProgressPre.Reset() : ProgressPre.Dispose() If Not Responser Is Nothing Then Responser.Dispose() If Not BTT_CONTEXT_DOWN Is Nothing Then BTT_CONTEXT_DOWN.Dispose() diff --git a/SCrawler/API/Pinterest/UserData.vb b/SCrawler/API/Pinterest/UserData.vb index b494416..6875020 100644 --- a/SCrawler/API/Pinterest/UserData.vb +++ b/SCrawler/API/Pinterest/UserData.vb @@ -37,7 +37,7 @@ Namespace API.Pinterest End Property Friend Property TrueUserName As String Friend Property TrueBoardName As String - Friend Property IsUser As Boolean + Friend Property IsUser_NB As Boolean Private Const BoardLabelName As String = "Board" Friend Overrides ReadOnly Property SpecialLabels As IEnumerable(Of String) Get @@ -51,10 +51,10 @@ Namespace API.Pinterest Dim n$() = Name.Split("@") If n.ListExists Then TrueUserName = n(0) - IsUser = True - If n.Length > 1 Then TrueBoardName = n(1) : IsUser = False + IsUser_NB = True + If n.Length > 1 Then TrueBoardName = n(1) : IsUser_NB = False If Not IsSavedPosts And Not IsSingleObjectDownload Then - Dim l$ = IIf(IsUser, UserLabelName, BoardLabelName) + Dim l$ = IIf(IsUser_NB, UserLabelName, BoardLabelName) Settings.Labels.Add(l) Labels.ListAddValue(l, LNC) Labels.Sort() @@ -69,13 +69,13 @@ Namespace API.Pinterest If Loading Then TrueUserName = .Value(Name_TrueUserName) TrueBoardName = .Value(Name_TrueBoardName) - IsUser = .Value(Name_IsUser).FromXML(Of Boolean)(False) + IsUser_NB = .Value(Name_IsUser).FromXML(Of Boolean)(False) ReconfUserName() Else If ReconfUserName() Then .Value(Name_LabelsName) = LabelsString .Add(Name_TrueUserName, TrueUserName) .Add(Name_TrueBoardName, TrueBoardName) - .Add(Name_IsUser, IsUser.BoolToInteger) + .Add(Name_IsUser, IsUser_NB.BoolToInteger) End If End With End Sub @@ -85,7 +85,7 @@ Namespace API.Pinterest Dim URL$ = String.Empty Try If IsSavedPosts Then - IsUser = True + IsUser_NB = True TrueUserName = MySettings.SavedPostsUserName.Value If TrueUserName.IsEmptyString Then Throw New ArgumentNullException("SavedPostsUserName", "Saved posts user not set") End If @@ -94,7 +94,7 @@ Namespace API.Pinterest Dim b$ = TrueBoardName If Not b.IsEmptyString Then b &= "/" URL = $"https://www.pinterest.com/{TrueUserName}/{b}" - If IsUser Then + If IsUser_NB Then boards = GetBoards(Token) Else boards = New List(Of BoardInfo) From {New BoardInfo With {.URL = URL, .ID = ID, .Title = UserSiteName}} @@ -107,7 +107,7 @@ Namespace API.Pinterest boards(i) = board Next With boards.First - If IsUser Then + If IsUser_NB Then If ID.IsEmptyString Then ID = .UserID UserSiteNameUpdate(.UserTitle) Else @@ -175,7 +175,7 @@ Namespace API.Pinterest Dim r$ Dim j As EContainer, jj As EContainer Dim u As UserMedia - Dim folder$ = If(IsUser, Board.Title.IfNullOrEmpty(Board.ID), String.Empty) + Dim folder$ = If(IsUser_NB, Board.Title.IfNullOrEmpty(Board.ID), String.Empty) Dim titleExists As Boolean = Not Board.Title.IsEmptyString Dim i% = -1 Dim jErr As New ErrorsDescriber(EDP.SendToLog + EDP.ReturnValue) @@ -216,7 +216,7 @@ Namespace API.Pinterest End If Board.UserID = .Value({"board", "owner"}, "id") Board.UserTitle = TitleHtmlConverter(.Value({"board", "owner"}, "full_name")) - If Not titleExists And IsUser Then + If Not titleExists And IsUser_NB Then If Not Board.Title.IsEmptyString Then folder = Board.Title ElseIf Not Board.ID.IsEmptyString Then @@ -322,7 +322,7 @@ Namespace API.Pinterest If Not TrueBoardName.IsEmptyString Then Data.Title &= $"/{TrueBoardName}" End If Dim additPath$ = TitleHtmlConverter(UserSiteName) - If additPath.IsEmptyString Then additPath = IIf(IsUser, TrueUserName, TrueBoardName) + If additPath.IsEmptyString Then additPath = IIf(IsUser_NB, TrueUserName, TrueBoardName) If Not additPath.IsEmptyString Then Dim f As SFile = User.File f.Path = f.PathWithSeparator & additPath diff --git a/SCrawler/API/PornHub/UserData.vb b/SCrawler/API/PornHub/UserData.vb index 15b1811..78f8156 100644 --- a/SCrawler/API/PornHub/UserData.vb +++ b/SCrawler/API/PornHub/UserData.vb @@ -144,7 +144,12 @@ Namespace API.PornHub Friend Property DownloadFavorite As Boolean = False Friend Property DownloadGifs As Boolean Friend Property DownloadPhotoOnlyFromModelHub As Boolean = True - Friend Property IsUser As Boolean = True + Private _IsUser As Boolean = True + Friend Overrides ReadOnly Property IsUser As Boolean + Get + Return _IsUser + End Get + End Property Friend Property QueryString As String Get If IsUser Then @@ -207,7 +212,7 @@ Namespace API.PornHub If IsUser And Force Then Return False Else - IsUser = False + _IsUser = False Options = If(Force, eObj.Options, Options) NameTrue = Options If Not Force Then @@ -218,7 +223,7 @@ Namespace API.PornHub End If End If Else - IsUser = True + _IsUser = True Dim n$() = Name.Split("_") If n.ListExists(2) Then NameTrue = Name.Replace($"{n(0)}_", String.Empty) @@ -242,7 +247,7 @@ Namespace API.PornHub DownloadFavorite = .Value(Name_DownloadFavorite).FromXML(Of Boolean)(False) DownloadGifs = .Value(Name_DownloadGifs).FromXML(Of Integer)(False) DownloadPhotoOnlyFromModelHub = .Value(Name_DownloadPhotoOnlyFromModelHub).FromXML(Of Boolean)(True) - IsUser = .Value(Name_IsUser).FromXML(Of Boolean)(True) + _IsUser = .Value(Name_IsUser).FromXML(Of Boolean)(True) UpdateUserOptions() Else If UpdateUserOptions() Then .Value(Name_LabelsName) = LabelsString diff --git a/SCrawler/API/ThisVid/UserData.vb b/SCrawler/API/ThisVid/UserData.vb index 6c4c57d..f55f5b2 100644 --- a/SCrawler/API/ThisVid/UserData.vb +++ b/SCrawler/API/ThisVid/UserData.vb @@ -67,7 +67,7 @@ Namespace API.ThisVid UpdateUserOptions(True, q) End Set End Property - Friend ReadOnly Property IsUser As Boolean + Friend Overrides ReadOnly Property IsUser As Boolean Get Return SiteMode = SiteModes.User End Get diff --git a/SCrawler/API/Twitter/SiteSettings.vb b/SCrawler/API/Twitter/SiteSettings.vb index d6cac57..512990f 100644 --- a/SCrawler/API/Twitter/SiteSettings.vb +++ b/SCrawler/API/Twitter/SiteSettings.vb @@ -87,6 +87,7 @@ Namespace API.Twitter MyBase.New(TwitterSite, "twitter.com") _Image = My.Resources.SiteResources.TwitterIcon_32.ToBitmap + LimitSkippedUsers = New List(Of UserDataBase) With Responser .Cookies.ChangedAllowInternalDrop = False @@ -126,7 +127,19 @@ Namespace API.Twitter Return Settings.GalleryDLFile.Exists And BaseAuthExists() End Function Friend Property LIMIT_ABORT As Boolean = False + Friend ReadOnly Property LimitSkippedUsers As List(Of UserDataBase) Friend Overrides Sub DownloadDone(ByVal What As ISiteSettings.Download) + If LimitSkippedUsers.Count > 0 Then + With LimitSkippedUsers + If .Count = 1 Then + MyMainLOG = $"{ .Item(0).ToStringForLog}: twitter limit reached. Data has not been downloaded." + Else + MyMainLOG = "The following twitter users have not been downloaded (twitter limit reached):" & vbNewLine & + .ListToStringE(vbNewLine, New CustomProvider(Function(v As UserDataBase) $"{v.Name} ({v.ToStringForLog})")) + End If + .Clear() + End With + End If LIMIT_ABORT = False MyBase.DownloadDone(What) End Sub diff --git a/SCrawler/API/Twitter/UserData.vb b/SCrawler/API/Twitter/UserData.vb index d456bb7..83c5c82 100644 --- a/SCrawler/API/Twitter/UserData.vb +++ b/SCrawler/API/Twitter/UserData.vb @@ -140,7 +140,7 @@ Namespace API.Twitter End Function Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken) If MySettings.LIMIT_ABORT Then - TwitterLimitException.LogMessage(ToStringForLog, True) + Throw New TwitterLimitException(Me) Else If IsSavedPosts Then If _ContentList.Count > 0 Then _DataNames.ListAddList(_ContentList.Select(Function(c) c.Post.ID), LAP.ClearBeforeAdd, LAP.NotContainsOnly) @@ -340,6 +340,7 @@ Namespace API.Twitter DownloadModelForceApply = False FirstDownloadComplete = True Catch limit_ex As TwitterLimitException + Throw limit_ex Catch ex As Exception ProcessException(ex, Token, $"data downloading error [{URL}]") Finally @@ -491,12 +492,10 @@ Namespace API.Twitter End Function #End Region #Region "Gallery-DL Support" - Private Class TwitterLimitException : Inherits Exception - Friend Sub New(ByVal User As String, ByVal Skipped As Boolean) - LogMessage(User, Skipped) - End Sub - Friend Shared Sub LogMessage(ByVal User As String, ByVal Skipped As Boolean) - MyMainLOG = $"{User}: twitter limit reached.{IIf(Skipped, "Data has not been downloaded", String.Empty)}" + Private Class TwitterLimitException : Inherits Plugin.ExitException + Friend Sub New(ByVal User As UserData) + Silent = True + User.MySettings.LimitSkippedUsers.Add(User) End Sub End Class Private Class TwitterGDL : Inherits GDL.GDLBatch @@ -558,7 +557,7 @@ Namespace API.Twitter MySettings.LIMIT_ABORT = True Return dir Else - Throw New TwitterLimitException(ToStringForLog, False) + Throw New TwitterLimitException(Me) End If End If End Using @@ -626,7 +625,7 @@ Namespace API.Twitter MySettings.LIMIT_ABORT = True Exit For Else - Throw New TwitterLimitException(ToStringForLog, False) + Throw New TwitterLimitException(Me) End If End If End If diff --git a/SCrawler/API/XVIDEOS/UserData.vb b/SCrawler/API/XVIDEOS/UserData.vb index 13e520a..24f3248 100644 --- a/SCrawler/API/XVIDEOS/UserData.vb +++ b/SCrawler/API/XVIDEOS/UserData.vb @@ -51,6 +51,11 @@ Namespace API.XVIDEOS Private Property TrueName As String = String.Empty Private Property Arguments As String = String.Empty Private Property PersonType As String = String.Empty + Friend Overrides ReadOnly Property IsUser As Boolean + Get + Return SiteMode = SiteModes.User + End Get + End Property Friend Overrides ReadOnly Property SpecialLabels As IEnumerable(Of String) Get Return {SearchRequestLabelName} diff --git a/SCrawler/API/Xhamster/UserData.vb b/SCrawler/API/Xhamster/UserData.vb index 73102c1..8adcc37 100644 --- a/SCrawler/API/Xhamster/UserData.vb +++ b/SCrawler/API/Xhamster/UserData.vb @@ -34,6 +34,11 @@ Namespace API.Xhamster Friend Property Gender As String = String.Empty Friend Property SiteMode As SiteModes = SiteModes.User Friend Property Arguments As String = String.Empty + Friend Overrides ReadOnly Property IsUser As Boolean + Get + Return SiteMode = SiteModes.User Or SiteMode = SiteModes.Pornstars + End Get + End Property Friend Overrides ReadOnly Property SpecialLabels As IEnumerable(Of String) Get Return {SearchRequestLabelName} diff --git a/SCrawler/Download/Automation/AutoDownloader.vb b/SCrawler/Download/Automation/AutoDownloader.vb index 3c56bbb..1c17a7a 100644 --- a/SCrawler/Download/Automation/AutoDownloader.vb +++ b/SCrawler/Download/Automation/AutoDownloader.vb @@ -297,9 +297,11 @@ Namespace DownloadObjects Groups = New List(Of String) UserKeys = New List(Of NotifiedUser) _IsNewPlan = IsNewPlan + Initialization = False End Sub Friend Sub New(ByVal x As EContainer) Me.New + Initialization = True Mode = x.Value(Name_Mode).FromXML(Of Integer)(Modes.None) Import(x) If Name.IsEmptyString Then Name = "Default" diff --git a/SCrawler/Download/DownloadedInfoForm.vb b/SCrawler/Download/DownloadedInfoForm.vb index 8442ced..d984459 100644 --- a/SCrawler/Download/DownloadedInfoForm.vb +++ b/SCrawler/Download/DownloadedInfoForm.vb @@ -123,7 +123,7 @@ Namespace DownloadObjects With Downloader.Downloaded If .Count > 0 Then With .Select(Function(u) Settings.GetUser(u, False)).Reverse - If _UsersListSession.Count > 0 Then _UsersListSession.ListWithRemove(.Self) + If _UsersListSession.Count > 0 Then _UsersListSession.ListWithRemove(.Self, New ListAddParams With {.DisableDispose = True}) If _UsersListSession.Count > 0 Then _UsersListSession.InsertRange(0, .Self) Else diff --git a/SCrawler/Download/Feed/FeedMedia.vb b/SCrawler/Download/Feed/FeedMedia.vb index 54921ca..06bc98a 100644 --- a/SCrawler/Download/Feed/FeedMedia.vb +++ b/SCrawler/Download/Feed/FeedMedia.vb @@ -61,7 +61,6 @@ Namespace DownloadObjects End Property Private ReadOnly UserKey As String Friend ReadOnly Post As UserMedia - Private ReadOnly Media As UserMediaD Friend Property Checked As Boolean Get Return CH_CHECKED.Checked @@ -106,11 +105,15 @@ Namespace DownloadObjects Me.Width = Width End If End Sub - Private Sub ApplyColors() + Private Sub ApplyColors(ByVal Media As UserMediaD) Dim b As Color? = Nothing, f As Color? = Nothing If Not Media.User Is Nothing Then If Media.User.BackColor.HasValue Then b = Media.User.BackColor If Media.User.ForeColor.HasValue Then f = Media.User.ForeColor + If Media.User.IsSubscription And Media.User.IsUser Then + If Not b.HasValue And Settings.MainFrameUsersSubscriptionsColorBack_USERS.Exists Then b = Settings.MainFrameUsersSubscriptionsColorBack_USERS.Value + If Not f.HasValue And Settings.MainFrameUsersSubscriptionsColorFore_USERS.Exists Then b = Settings.MainFrameUsersSubscriptionsColorFore_USERS.Value + End If End If If Not b.HasValue And Settings.FeedBackColor.Exists Then b = Settings.FeedBackColor.Value If Not f.HasValue And Settings.FeedForeColor.Exists Then f = Settings.FeedForeColor.Value @@ -158,7 +161,6 @@ Namespace DownloadObjects Friend Sub New(ByVal Media As UserMediaD, ByVal Width As Integer, ByVal Height As Integer) Try InitializeComponent() - Me.Media = Media IsSubscription = If(Media.User?.IsSubscription, False) If IsSubscription Then @@ -179,8 +181,9 @@ Namespace DownloadObjects Dim ext$ = Media.Data.URL.CSFile.Extension Dim imgFile As New SFile With {.Path = Settings.Cache.RootDirectory.Path} With Media.User - imgFile.Name = $"{IIf(.IncludedInCollection, "{.CollectionName}", String.Empty)}{ .Site}{ .Name}_" + imgFile.Name = $"{IIf(.IncludedInCollection, .CollectionName, String.Empty)}{ .Site}{ .Name}_" imgFile.Name &= (CLng(Media.Data.URL.GetHashCode) + CLng(Media.Data.File.GetHashCode)).ToString + imgFile.Name = imgFile.Name.StringRemoveWinForbiddenSymbols imgFile.Extension = ExtJpg If Not imgFile.Exists AndAlso Not ext.IsEmptyString AndAlso ext.ToLower = ExtWebp Then imgFile.Extension = ExtWebp End With @@ -279,9 +282,9 @@ Namespace DownloadObjects If Not Media.User Is Nothing AndAlso Not Media.User.HOST Is Nothing Then With Media.User.HOST.Source If Not .Image Is Nothing Then - ICON_SITE.Image = .Image.Clone + ICON_SITE.Image = .Image ElseIf Not .Icon Is Nothing Then - ICON_SITE.Image = .Icon.Clone.ToBitmap + ICON_SITE.Image = .Icon.ToBitmap End If End With End If @@ -290,7 +293,7 @@ Namespace DownloadObjects Size = s MinimumSize = s MaximumSize = s - ApplyColors() + ApplyColors(Media) Else Throw New ArgumentNullException With {.HelpLink = 1} End If diff --git a/SCrawler/Download/STDownloader/VideoDownloaderForm.vb b/SCrawler/Download/STDownloader/VideoDownloaderForm.vb index 8045573..9a51217 100644 --- a/SCrawler/Download/STDownloader/VideoDownloaderForm.vb +++ b/SCrawler/Download/STDownloader/VideoDownloaderForm.vb @@ -121,7 +121,6 @@ Namespace DownloadObjects.STDownloader If isArr Then Dim urls As List(Of String) = Nothing - Dim cntAdded As Boolean = False If isExternal Then urls = New List(Of String)(ExternalUrlsTemp) Using fa As New DownloaderUrlsArrForm(urls) fa.ShowDialog() @@ -143,10 +142,9 @@ Namespace DownloadObjects.STDownloader For Each url In urls If Not TryYouTube.Invoke Then media = FindSource(url, output) - If Not media Is Nothing Then ControlCreateAndAdd(media, True) : cntAdded = True + If Not media Is Nothing Then ControlCreateAndAdd(media, disableDown) End If Next - If cntAdded And Settings.STDownloader_DownloadAutomatically Then BTT_DOWN.PerformClick() urls.Clear() Else MsgBoxE({"There are no valid URLs in the list", "Add URLs array"}, vbCritical) diff --git a/SCrawler/Download/TDownloader.vb b/SCrawler/Download/TDownloader.vb index c941801..8d5d278 100644 --- a/SCrawler/Download/TDownloader.vb +++ b/SCrawler/Download/TDownloader.vb @@ -125,8 +125,6 @@ Namespace DownloadObjects End Try End Sub #End Region - Friend ReadOnly Property ActiveDownloading As List(Of IUserData) - Friend Property QueueFormOpening As Boolean = False Friend ReadOnly Property Downloaded As List(Of IUserData) Private ReadOnly NProv As IFormatProvider #End Region @@ -249,6 +247,7 @@ Namespace DownloadObjects End Sub Public Overrides Sub Finish() _Working = False + TokenSource.DisposeIfReady TokenSource = Nothing Try If Not Thread Is Nothing Then @@ -275,7 +274,6 @@ Namespace DownloadObjects #Region "Initializer" Friend Sub New() Files = New List(Of UserMediaD) - ActiveDownloading = New List(Of IUserData) Downloaded = New List(Of IUserData) NProv = New ANumbers With {.FormatOptions = ANumbers.Options.GroupIntegral} Pool = New List(Of Job) @@ -410,9 +408,6 @@ Namespace DownloadObjects Dim Keys As New List(Of String) Dim h As Boolean = False Dim host As SettingsHost = Nothing - Dim waitQueueForm As Action = Sub() - While QueueFormOpening : Thread.Sleep(100) : End While - End Sub For Each _Item As IUserData In _Job.Items If Not _Item.Disposed Then Keys.Add(_Item.Key) @@ -420,10 +415,8 @@ Namespace DownloadObjects If host.Source.ReadyToDownload(Download.Main) Then host.BeforeStartDownload(_Item, Download.Main) _Job.ThrowIfCancellationRequested() - waitQueueForm.Invoke DirectCast(_Item, UserDataBase).Progress = _Job.Progress t.Add(Task.Run(Sub() _Item.DownloadData(Token))) - ActiveDownloading.Add(_Item) RaiseEvent UserDownloadStateChanged(_Item, True) i += 1 If i >= limit Then Exit For @@ -441,12 +434,10 @@ Namespace DownloadObjects Dim dcc As Boolean = False If Keys.Count > 0 Then For Each k$ In Keys - waitQueueForm.Invoke i = _Job.Items.FindIndex(Function(ii) ii.Key = k) If i >= 0 Then With _Job.Items(i) If DirectCast(.Self, UserDataBase).ContentMissingExists Then MissingPostsDetected = True - If ActiveDownloading.Count > 0 AndAlso ActiveDownloading.Contains(.Self) Then ActiveDownloading.Remove(.Self) RaiseEvent UserDownloadStateChanged(.Self, False) host.AfterDownload(.Self, Download.Main) If Not .Disposed AndAlso Not .IsCollection AndAlso .DownloadedTotal(False) > 0 Then @@ -531,7 +522,6 @@ Namespace DownloadObjects [Stop]() Pool.ListClearDispose Files.Clear() - ActiveDownloading.Clear() Downloaded.Clear() End If disposedValue = True diff --git a/SCrawler/Download/UserDownloadQueueForm.vb b/SCrawler/Download/UserDownloadQueueForm.vb index a0cb5f2..2dd9db7 100644 --- a/SCrawler/Download/UserDownloadQueueForm.vb +++ b/SCrawler/Download/UserDownloadQueueForm.vb @@ -12,10 +12,9 @@ Imports SCrawler.API.Base Imports PersonalUtilities.Forms Namespace DownloadObjects Friend Class UserDownloadQueueForm - Private ReadOnly MyVew As FormView + Private MyVew As FormView Private ReadOnly Tokens As List(Of CancellationTokenSource) Private Structure ListUser - Friend ReadOnly User As UserDataBase Friend IsDownloading As Boolean Private ReadOnly _UserString As String Private ReadOnly Property UserString As String @@ -25,11 +24,10 @@ Namespace DownloadObjects End Property Friend ReadOnly Key As String Friend Sub New(ByVal _User As IUserData) - User = _User Key = _User.Key IsDownloading = True - _UserString = DirectCast(User, UserDataBase).ToStringForLog() - If Not User.FriendlyName.IsEmptyString Then _UserString &= $" ({User.FriendlyName})" + _UserString = DirectCast(_User, UserDataBase).ToStringForLog() + If Not _User.FriendlyName.IsEmptyString Then _UserString &= $" ({_User.FriendlyName})" End Sub Public Shared Widening Operator CType(ByVal _User As UserDataBase) As ListUser Return New ListUser(_User) @@ -47,31 +45,16 @@ Namespace DownloadObjects End Structure Public Sub New() InitializeComponent() - MyVew = New FormView(Me, Settings.Design) Tokens = New List(Of CancellationTokenSource) End Sub Private Sub UserDownloadQueueForm_Load(sender As Object, e As EventArgs) Handles Me.Load Try - MyVew.Import() - MyVew.SetFormSize() - With Downloader - .QueueFormOpening = True - If .ActiveDownloading.Count > 0 Then - For Each user As UserDataBase In .ActiveDownloading - ApplyHandlers(user, user.DownloadInProgress) - LIST_QUEUE.Items.Add(New ListUser(user)) - Next - End If - AddHandler .UserDownloadStateChanged, AddressOf Downloader_UserDownloadStateChanged - AddHandler .Downloading, AddressOf Downloader_Downloading - .QueueFormOpening = False - End With - Catch aoutex As ArgumentOutOfRangeException - Catch iex As IndexOutOfRangeException - Catch ex As Exception - ErrorsDescriber.Execute(EDP.SendToLog + EDP.ShowMainMsg, ex, "Error when opening user download queue form") - Finally - Downloader.QueueFormOpening = False + If MyVew Is Nothing Then + MyVew = New FormView(Me, Settings.Design) + MyVew.Import() + MyVew.SetFormSize() + End If + Catch End Try End Sub Private Sub UserDownloadQueueForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing @@ -79,7 +62,7 @@ Namespace DownloadObjects Hide() End Sub Private Sub UserDownloadQueueForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed - MyVew.Dispose() + MyVew.DisposeIfReady Tokens.ListClearDispose End Sub Private Sub UserDownloadQueueForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown @@ -93,45 +76,44 @@ Namespace DownloadObjects End If If b Then e.Handled = True End Sub - Private Sub Downloader_Downloading(ByVal Value As Boolean) - ControlInvokeFast(LIST_QUEUE, Sub() If Not Value Then LIST_QUEUE.Items.Clear() : Tokens.ListClearDispose, EDP.None) + Friend Sub Downloader_Downloading(ByVal Value As Boolean) + If Not Value Then ControlInvokeFast(LIST_QUEUE, Sub() + LIST_QUEUE.Items.Clear() + Tokens.ListClearDispose + End Sub, EDP.None) End Sub - Private Async Sub Downloader_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean) - Await Task.Run(Sub() - Try - ControlInvokeFast(LIST_QUEUE, Sub() - Dim u As New ListUser(User) - ApplyHandlers(User, IsDownloading) - If IsDownloading Then - LIST_QUEUE.Items.Add(u) - Else - LIST_QUEUE.Items.Remove(u) - End If - LIST_QUEUE.Refresh() - End Sub) - Catch ex As Exception - End Try - End Sub) + Friend Sub Downloader_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean) + Try + ControlInvokeFast(LIST_QUEUE, Sub() + Dim u As New ListUser(User) + ApplyHandlers(User, IsDownloading) + If IsDownloading Then + LIST_QUEUE.Items.Add(u) + Else + LIST_QUEUE.Items.Remove(u) + End If + LIST_QUEUE.Refresh() + End Sub) + Catch ex As Exception + End Try End Sub - Private Async Sub User_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean) - Await Task.Run(Sub() - Try - ControlInvokeFast(LIST_QUEUE, - Sub() - Dim lu As New ListUser(User) - Dim i% = LIST_QUEUE.Items.IndexOf(lu) - If i >= 0 Then - lu = LIST_QUEUE.Items(i) - If Not lu.User Is Nothing And Not lu.IsDownloading = IsDownloading Then - lu.IsDownloading = IsDownloading - LIST_QUEUE.Items(i) = lu - LIST_QUEUE.Refresh() - End If - End If - End Sub) - Catch - End Try - End Sub) + Private Sub User_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean) + Try + ControlInvokeFast(LIST_QUEUE, + Sub() + Dim lu As New ListUser(User) + Dim i% = LIST_QUEUE.Items.IndexOf(lu) + If i >= 0 Then + lu = LIST_QUEUE.Items(i) + If Not lu.Key.IsEmptyString And Not lu.IsDownloading = IsDownloading Then + lu.IsDownloading = IsDownloading + LIST_QUEUE.Items(i) = lu + LIST_QUEUE.Refresh() + End If + End If + End Sub) + Catch + End Try End Sub Private Sub ApplyHandlers(ByVal User As IUserData, ByVal IsDownloading As Boolean) Try @@ -151,13 +133,15 @@ Namespace DownloadObjects Const msgTitle$ = "Stop user download" Try Dim lu As ListUser = GetUserSelectedUser() - If Not lu.User Is Nothing AndAlso + If Not lu.Key.IsEmptyString AndAlso MsgBoxE({$"Are you sure you want to stop downloading the following user?{vbCr}{lu}", msgTitle}, vbExclamation + vbYesNo) = vbYes Then Dim token As New CancellationTokenSource - lu.User.TokenPersonal = token.Token - token.Cancel() - Tokens.Add(token) - MsgBoxE({"Cancel user download processed.", msgTitle}) + Dim u As IUserData = Settings.GetUser(lu.Key) + If Not u Is Nothing Then + DirectCast(u, UserDataBase).TokenPersonal = token.Token + token.Cancel() + Tokens.Add(token) + End If End If Catch ex As Exception End Try diff --git a/SCrawler/Editors/ColorPicker.vb b/SCrawler/Editors/ColorPicker.vb index a318dc3..ad7f490 100644 --- a/SCrawler/Editors/ColorPicker.vb +++ b/SCrawler/Editors/ColorPicker.vb @@ -12,9 +12,13 @@ Imports PersonalUtilities.Functions.XML.Objects Namespace Editors Public Class ColorPicker : Implements IChangeDetectorCompatible Private Event DataChanged As EventHandler Implements IChangeDetectorCompatible.DataChanged + Private TT As ToolTip Public Sub New() InitializeComponent() End Sub + Private Sub ColorPicker_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed + TT.DisposeIfReady + End Sub #Region "Appearance" Public Property CaptionWidth As Integer @@ -52,6 +56,20 @@ Namespace Editors LBL_CAPTION.Text = t End Set End Property + Private _TooltipText As String = String.Empty + + Public Property TooltipText As String + Get + Return _TooltipText + End Get + Set(ByVal NewText As String) + _TooltipText = NewText + If Not NewText.IsEmptyString Then + If TT Is Nothing Then TT = New ToolTip + TT.SetToolTip(LBL_CAPTION, _TooltipText) + End If + End Set + End Property #End Region #Region "Colors" Private BackColorDefault As Color = DefaultBackColor diff --git a/SCrawler/Editors/GlobalSettingsForm.Designer.vb b/SCrawler/Editors/GlobalSettingsForm.Designer.vb index 3b40d7c..d5dac8a 100644 --- a/SCrawler/Editors/GlobalSettingsForm.Designer.vb +++ b/SCrawler/Editors/GlobalSettingsForm.Designer.vb @@ -34,10 +34,6 @@ Namespace Editors Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() 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 ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton10 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton11 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton12 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TP_FILE_NAME As System.Windows.Forms.TableLayoutPanel Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel Dim LBL_DATE_POS As System.Windows.Forms.Label @@ -50,14 +46,14 @@ Namespace Editors Dim TP_CHANNELS As System.Windows.Forms.TableLayoutPanel Dim TAB_BEHAVIOR As System.Windows.Forms.TabPage Dim TP_BEHAVIOR As System.Windows.Forms.TableLayoutPanel - Dim ActionButton13 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton14 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton10 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TP_OPEN_INFO As System.Windows.Forms.TableLayoutPanel Dim TP_OPEN_PROGRESS As System.Windows.Forms.TableLayoutPanel Dim TAB_DOWN As System.Windows.Forms.TabPage Dim TP_DOWNLOADING As System.Windows.Forms.TableLayoutPanel - Dim ActionButton15 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton16 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton11 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton12 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TP_MISSING_DATA As System.Windows.Forms.TableLayoutPanel Dim TAB_FEED As System.Windows.Forms.TabPage Dim TP_FEED As System.Windows.Forms.TableLayoutPanel @@ -65,21 +61,27 @@ Namespace Editors Dim TAB_NOTIFY As System.Windows.Forms.TabPage Dim TP_NOTIFY_MAIN As System.Windows.Forms.TableLayoutPanel Dim TP_ENVIR As System.Windows.Forms.TableLayoutPanel + Dim ActionButton13 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton14 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton15 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton16 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton17 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton18 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton19 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton20 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton21 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton22 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim TAB_STD As System.Windows.Forms.TabPage + Dim TP_STD As System.Windows.Forms.TableLayoutPanel Dim ActionButton23 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 TAB_DESIGN As System.Windows.Forms.TabPage + Dim TP_DESIGN As System.Windows.Forms.TableLayoutPanel Dim ActionButton24 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton25 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton26 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim TAB_STD As System.Windows.Forms.TabPage - Dim TP_STD As System.Windows.Forms.TableLayoutPanel Dim ActionButton27 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() Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended() @@ -91,11 +93,6 @@ Namespace Editors Me.CH_SHOW_GROUPS = New System.Windows.Forms.CheckBox() Me.CH_USERS_GROUPING = New System.Windows.Forms.CheckBox() Me.TXT_USER_AGENT = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.TXT_USER_LIST_IMAGE = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.COLORS_USERLIST = New SCrawler.Editors.ColorPicker() - Me.COLORS_SUBSCRIPTIONS = New SCrawler.Editors.ColorPicker() - Me.TXT_PRG_TITLE = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.TXT_PRG_DESCR = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.OPT_FILE_NAME_REPLACE = New System.Windows.Forms.RadioButton() Me.OPT_FILE_NAME_ADD_DATE = New System.Windows.Forms.RadioButton() Me.CH_FILE_NAME_CHANGE = New System.Windows.Forms.CheckBox() @@ -157,6 +154,7 @@ Namespace Editors Me.CH_FEED_ADD_DATE = New System.Windows.Forms.CheckBox() Me.TXT_FEED_CENTER_IMAGE = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.COLORS_FEED = New SCrawler.Editors.ColorPicker() + Me.CH_FEED_SHOW_FRIENDLY = New System.Windows.Forms.CheckBox() Me.TXT_YTDLP = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_FFMPEG = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_CURL = New PersonalUtilities.Forms.Controls.TextBoxExtended() @@ -168,10 +166,15 @@ Namespace Editors Me.CMB_STD_OPEN_DBL = New PersonalUtilities.Forms.Controls.ComboBoxExtended() Me.CH_STD_TAKESNAP = New System.Windows.Forms.CheckBox() Me.CH_STD_UPDATE_YT_PATH = New System.Windows.Forms.CheckBox() + Me.TXT_PRG_TITLE = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.TXT_PRG_DESCR = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.TXT_USER_LIST_IMAGE = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.COLORS_USERLIST = New SCrawler.Editors.ColorPicker() + Me.COLORS_SUBSCRIPTIONS = New SCrawler.Editors.ColorPicker() + Me.COLORS_SUBSCRIPTIONS_USERS = New SCrawler.Editors.ColorPicker() Me.TAB_MAIN = New System.Windows.Forms.TabControl() Me.TAB_ENVIR = New System.Windows.Forms.TabPage() Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer() - Me.CH_FEED_SHOW_FRIENDLY = New System.Windows.Forms.CheckBox() TP_BASIS = New System.Windows.Forms.TableLayoutPanel() TP_IMAGES = New System.Windows.Forms.TableLayoutPanel() TP_FILE_NAME = New System.Windows.Forms.TableLayoutPanel() @@ -199,6 +202,8 @@ Namespace Editors TP_ENVIR = New System.Windows.Forms.TableLayoutPanel() TAB_STD = New System.Windows.Forms.TabPage() TP_STD = New System.Windows.Forms.TableLayoutPanel() + TAB_DESIGN = New System.Windows.Forms.TabPage() + TP_DESIGN = New System.Windows.Forms.TableLayoutPanel() TP_BASIS.SuspendLayout() CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit() TP_IMAGES.SuspendLayout() @@ -209,9 +214,6 @@ Namespace Editors CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TXT_IMGUR_CLIENT_ID, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TXT_USER_AGENT, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_USER_LIST_IMAGE, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_PRG_TITLE, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_PRG_DESCR, System.ComponentModel.ISupportInitialize).BeginInit() TP_FILE_NAME.SuspendLayout() TP_FILE_PATTERNS.SuspendLayout() TP_CHANNELS_IMGS.SuspendLayout() @@ -252,6 +254,11 @@ Namespace Editors TP_STD.SuspendLayout() CType(Me.TXT_STD_MAX_JOBS_COUNT, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.CMB_STD_OPEN_DBL, System.ComponentModel.ISupportInitialize).BeginInit() + TAB_DESIGN.SuspendLayout() + TP_DESIGN.SuspendLayout() + CType(Me.TXT_PRG_TITLE, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_PRG_DESCR, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_USER_LIST_IMAGE, System.ComponentModel.ISupportInitialize).BeginInit() Me.TAB_MAIN.SuspendLayout() Me.TAB_ENVIR.SuspendLayout() Me.CONTAINER_MAIN.ContentPanel.SuspendLayout() @@ -269,19 +276,14 @@ Namespace Editors TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_USERS, 0, 3) TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_CHANNELS, 0, 4) TP_BASIS.Controls.Add(Me.CH_CHECK_VER_START, 0, 5) - TP_BASIS.Controls.Add(Me.TXT_IMGUR_CLIENT_ID, 0, 9) - TP_BASIS.Controls.Add(Me.CH_SHOW_GROUPS, 0, 13) - TP_BASIS.Controls.Add(Me.CH_USERS_GROUPING, 0, 14) - TP_BASIS.Controls.Add(Me.TXT_USER_AGENT, 0, 8) - TP_BASIS.Controls.Add(Me.TXT_USER_LIST_IMAGE, 0, 10) - TP_BASIS.Controls.Add(Me.COLORS_USERLIST, 0, 11) - TP_BASIS.Controls.Add(Me.COLORS_SUBSCRIPTIONS, 0, 12) - TP_BASIS.Controls.Add(Me.TXT_PRG_TITLE, 0, 6) - TP_BASIS.Controls.Add(Me.TXT_PRG_DESCR, 0, 7) + TP_BASIS.Controls.Add(Me.TXT_IMGUR_CLIENT_ID, 0, 7) + TP_BASIS.Controls.Add(Me.CH_SHOW_GROUPS, 0, 8) + TP_BASIS.Controls.Add(Me.CH_USERS_GROUPING, 0, 9) + TP_BASIS.Controls.Add(Me.TXT_USER_AGENT, 0, 6) TP_BASIS.Dock = System.Windows.Forms.DockStyle.Fill TP_BASIS.Location = New System.Drawing.Point(3, 3) TP_BASIS.Name = "TP_BASIS" - TP_BASIS.RowCount = 16 + TP_BASIS.RowCount = 11 TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) @@ -290,15 +292,15 @@ Namespace Editors TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) - TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_BASIS.Size = New System.Drawing.Size(570, 445) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.Size = New System.Drawing.Size(570, 366) TP_BASIS.TabIndex = 0 ' 'TXT_GLOBAL_PATH @@ -444,19 +446,19 @@ Namespace Editors Me.TXT_IMGUR_CLIENT_ID.CaptionText = "Imgur Client ID" Me.TXT_IMGUR_CLIENT_ID.Dock = System.Windows.Forms.DockStyle.Fill Me.TXT_IMGUR_CLIENT_ID.Lines = New String(-1) {} - Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 262) + Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 204) Me.TXT_IMGUR_CLIENT_ID.Name = "TXT_IMGUR_CLIENT_ID" Me.TXT_IMGUR_CLIENT_ID.Size = New System.Drawing.Size(562, 22) - Me.TXT_IMGUR_CLIENT_ID.TabIndex = 9 + Me.TXT_IMGUR_CLIENT_ID.TabIndex = 7 ' 'CH_SHOW_GROUPS ' Me.CH_SHOW_GROUPS.AutoSize = True Me.CH_SHOW_GROUPS.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_SHOW_GROUPS.Location = New System.Drawing.Point(4, 372) + Me.CH_SHOW_GROUPS.Location = New System.Drawing.Point(4, 233) Me.CH_SHOW_GROUPS.Name = "CH_SHOW_GROUPS" Me.CH_SHOW_GROUPS.Size = New System.Drawing.Size(562, 19) - Me.CH_SHOW_GROUPS.TabIndex = 13 + Me.CH_SHOW_GROUPS.TabIndex = 8 Me.CH_SHOW_GROUPS.Text = "Show groups" TT_MAIN.SetToolTip(Me.CH_SHOW_GROUPS, "Grouping users by site") Me.CH_SHOW_GROUPS.UseVisualStyleBackColor = True @@ -465,10 +467,10 @@ Namespace Editors ' Me.CH_USERS_GROUPING.AutoSize = True Me.CH_USERS_GROUPING.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_USERS_GROUPING.Location = New System.Drawing.Point(4, 398) + Me.CH_USERS_GROUPING.Location = New System.Drawing.Point(4, 259) Me.CH_USERS_GROUPING.Name = "CH_USERS_GROUPING" Me.CH_USERS_GROUPING.Size = New System.Drawing.Size(562, 19) - Me.CH_USERS_GROUPING.TabIndex = 14 + Me.CH_USERS_GROUPING.TabIndex = 9 Me.CH_USERS_GROUPING.Text = "Use user grouping" TT_MAIN.SetToolTip(Me.CH_USERS_GROUPING, "Group users by groups and/or labels") Me.CH_USERS_GROUPING.UseVisualStyleBackColor = True @@ -488,88 +490,10 @@ Namespace Editors Me.TXT_USER_AGENT.CaptionToolTipText = "Default user agent to use in requests" Me.TXT_USER_AGENT.Dock = System.Windows.Forms.DockStyle.Fill Me.TXT_USER_AGENT.Lines = New String(-1) {} - Me.TXT_USER_AGENT.Location = New System.Drawing.Point(4, 233) + Me.TXT_USER_AGENT.Location = New System.Drawing.Point(4, 175) Me.TXT_USER_AGENT.Name = "TXT_USER_AGENT" Me.TXT_USER_AGENT.Size = New System.Drawing.Size(562, 22) - Me.TXT_USER_AGENT.TabIndex = 8 - ' - 'TXT_USER_LIST_IMAGE - ' - ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image) - ActionButton9.Name = "Open" - ActionButton9.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open - ActionButton10.BackgroundImage = CType(resources.GetObject("ActionButton10.BackgroundImage"), System.Drawing.Image) - ActionButton10.Name = "Clear" - ActionButton10.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton9) - Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton10) - Me.TXT_USER_LIST_IMAGE.CaptionText = "Userlist image" - Me.TXT_USER_LIST_IMAGE.CaptionToolTipEnabled = True - Me.TXT_USER_LIST_IMAGE.CaptionToolTipText = "Background image for user list" - Me.TXT_USER_LIST_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_USER_LIST_IMAGE.Lines = New String(-1) {} - Me.TXT_USER_LIST_IMAGE.Location = New System.Drawing.Point(4, 291) - Me.TXT_USER_LIST_IMAGE.Name = "TXT_USER_LIST_IMAGE" - Me.TXT_USER_LIST_IMAGE.Size = New System.Drawing.Size(562, 22) - Me.TXT_USER_LIST_IMAGE.TabIndex = 10 - ' - 'COLORS_USERLIST - ' - Me.COLORS_USERLIST.ButtonsMargin = New System.Windows.Forms.Padding(1, 2, 1, 2) - Me.COLORS_USERLIST.CaptionText = "Userlist colors" - Me.COLORS_USERLIST.CaptionWidth = 103 - Me.COLORS_USERLIST.Dock = System.Windows.Forms.DockStyle.Fill - Me.COLORS_USERLIST.Location = New System.Drawing.Point(1, 317) - Me.COLORS_USERLIST.Margin = New System.Windows.Forms.Padding(0) - Me.COLORS_USERLIST.Name = "COLORS_USERLIST" - Me.COLORS_USERLIST.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) - Me.COLORS_USERLIST.Size = New System.Drawing.Size(568, 25) - Me.COLORS_USERLIST.TabIndex = 11 - ' - 'COLORS_SUBSCRIPTIONS - ' - Me.COLORS_SUBSCRIPTIONS.ButtonsMargin = New System.Windows.Forms.Padding(1, 2, 1, 2) - Me.COLORS_SUBSCRIPTIONS.CaptionText = "Subscriptions color" - Me.COLORS_SUBSCRIPTIONS.CaptionWidth = 103 - Me.COLORS_SUBSCRIPTIONS.Dock = System.Windows.Forms.DockStyle.Fill - Me.COLORS_SUBSCRIPTIONS.Location = New System.Drawing.Point(1, 343) - Me.COLORS_SUBSCRIPTIONS.Margin = New System.Windows.Forms.Padding(0) - Me.COLORS_SUBSCRIPTIONS.Name = "COLORS_SUBSCRIPTIONS" - Me.COLORS_SUBSCRIPTIONS.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) - Me.COLORS_SUBSCRIPTIONS.Size = New System.Drawing.Size(568, 25) - Me.COLORS_SUBSCRIPTIONS.TabIndex = 12 - ' - 'TXT_PRG_TITLE - ' - ActionButton11.BackgroundImage = CType(resources.GetObject("ActionButton11.BackgroundImage"), System.Drawing.Image) - ActionButton11.Name = "Clear" - ActionButton11.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_PRG_TITLE.Buttons.Add(ActionButton11) - Me.TXT_PRG_TITLE.CaptionText = "Program title" - Me.TXT_PRG_TITLE.CaptionToolTipEnabled = True - Me.TXT_PRG_TITLE.CaptionToolTipText = "Change the title of the main window if you need to" - Me.TXT_PRG_TITLE.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_PRG_TITLE.Lines = New String(-1) {} - Me.TXT_PRG_TITLE.Location = New System.Drawing.Point(4, 175) - Me.TXT_PRG_TITLE.Name = "TXT_PRG_TITLE" - Me.TXT_PRG_TITLE.Size = New System.Drawing.Size(562, 22) - Me.TXT_PRG_TITLE.TabIndex = 6 - ' - 'TXT_PRG_DESCR - ' - ActionButton12.BackgroundImage = CType(resources.GetObject("ActionButton12.BackgroundImage"), System.Drawing.Image) - ActionButton12.Name = "Clear" - ActionButton12.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_PRG_DESCR.Buttons.Add(ActionButton12) - Me.TXT_PRG_DESCR.CaptionText = "Program description" - Me.TXT_PRG_DESCR.CaptionToolTipEnabled = True - Me.TXT_PRG_DESCR.CaptionToolTipText = "Add some additional info to the program info if you need" - Me.TXT_PRG_DESCR.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_PRG_DESCR.Lines = New String(-1) {} - Me.TXT_PRG_DESCR.Location = New System.Drawing.Point(4, 204) - Me.TXT_PRG_DESCR.Name = "TXT_PRG_DESCR" - Me.TXT_PRG_DESCR.Size = New System.Drawing.Size(562, 22) - Me.TXT_PRG_DESCR.TabIndex = 7 + Me.TXT_USER_AGENT.TabIndex = 6 ' 'TP_FILE_NAME ' @@ -1156,7 +1080,7 @@ Namespace Editors TAB_BASIS.Location = New System.Drawing.Point(4, 22) TAB_BASIS.Name = "TAB_BASIS" TAB_BASIS.Padding = New System.Windows.Forms.Padding(3) - TAB_BASIS.Size = New System.Drawing.Size(576, 451) + TAB_BASIS.Size = New System.Drawing.Size(576, 372) TAB_BASIS.TabIndex = 0 TAB_BASIS.Text = "Basis" ' @@ -1166,7 +1090,7 @@ Namespace Editors TAB_DEFAULTS.Location = New System.Drawing.Point(4, 22) TAB_DEFAULTS.Name = "TAB_DEFAULTS" TAB_DEFAULTS.Padding = New System.Windows.Forms.Padding(3) - TAB_DEFAULTS.Size = New System.Drawing.Size(576, 451) + TAB_DEFAULTS.Size = New System.Drawing.Size(576, 372) TAB_DEFAULTS.TabIndex = 1 TAB_DEFAULTS.Text = "Defaults" ' @@ -1192,7 +1116,7 @@ Namespace Editors TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_DEFS.Size = New System.Drawing.Size(570, 445) + TP_DEFS.Size = New System.Drawing.Size(570, 366) TP_DEFS.TabIndex = 0 ' 'CH_DOWN_IMAGES_NATIVE @@ -1212,7 +1136,7 @@ Namespace Editors TAB_DEFS_CHANNELS.Location = New System.Drawing.Point(4, 22) TAB_DEFS_CHANNELS.Name = "TAB_DEFS_CHANNELS" TAB_DEFS_CHANNELS.Padding = New System.Windows.Forms.Padding(3) - TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 451) + TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 372) TAB_DEFS_CHANNELS.TabIndex = 4 TAB_DEFS_CHANNELS.Text = "Channels" ' @@ -1236,7 +1160,7 @@ Namespace Editors TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_CHANNELS.Size = New System.Drawing.Size(570, 445) + TP_CHANNELS.Size = New System.Drawing.Size(570, 366) TP_CHANNELS.TabIndex = 0 ' 'TXT_CHANNEL_USER_POST_LIMIT @@ -1265,7 +1189,7 @@ Namespace Editors TAB_BEHAVIOR.Controls.Add(TP_BEHAVIOR) TAB_BEHAVIOR.Location = New System.Drawing.Point(4, 22) TAB_BEHAVIOR.Name = "TAB_BEHAVIOR" - TAB_BEHAVIOR.Size = New System.Drawing.Size(576, 451) + TAB_BEHAVIOR.Size = New System.Drawing.Size(576, 372) TAB_BEHAVIOR.TabIndex = 5 TAB_BEHAVIOR.Text = "Behavior" ' @@ -1296,17 +1220,17 @@ Namespace Editors TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) - TP_BEHAVIOR.Size = New System.Drawing.Size(576, 451) + TP_BEHAVIOR.Size = New System.Drawing.Size(576, 372) TP_BEHAVIOR.TabIndex = 0 ' 'TXT_FOLDER_CMD ' Me.TXT_FOLDER_CMD.AutoShowClearButton = True - ActionButton13.BackgroundImage = CType(resources.GetObject("ActionButton13.BackgroundImage"), System.Drawing.Image) - ActionButton13.Enabled = False - ActionButton13.Name = "Clear" - ActionButton13.Visible = False - Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton13) + ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image) + ActionButton9.Enabled = False + ActionButton9.Name = "Clear" + ActionButton9.Visible = False + Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton9) Me.TXT_FOLDER_CMD.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox Me.TXT_FOLDER_CMD.CaptionText = "Folder cmd" Me.TXT_FOLDER_CMD.CaptionToolTipEnabled = True @@ -1346,11 +1270,11 @@ Namespace Editors 'TXT_CLOSE_SCRIPT ' Me.TXT_CLOSE_SCRIPT.AutoShowClearButton = True - ActionButton14.BackgroundImage = CType(resources.GetObject("ActionButton14.BackgroundImage"), System.Drawing.Image) - ActionButton14.Enabled = False - ActionButton14.Name = "Clear" - ActionButton14.Visible = False - Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton14) + ActionButton10.BackgroundImage = CType(resources.GetObject("ActionButton10.BackgroundImage"), System.Drawing.Image) + ActionButton10.Enabled = False + ActionButton10.Name = "Clear" + ActionButton10.Visible = False + Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton10) Me.TXT_CLOSE_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox Me.TXT_CLOSE_SCRIPT.CaptionText = "Close cmd" Me.TXT_CLOSE_SCRIPT.CaptionToolTipEnabled = True @@ -1439,7 +1363,7 @@ Namespace Editors TAB_DOWN.Controls.Add(TP_DOWNLOADING) TAB_DOWN.Location = New System.Drawing.Point(4, 22) TAB_DOWN.Name = "TAB_DOWN" - TAB_DOWN.Size = New System.Drawing.Size(576, 451) + TAB_DOWN.Size = New System.Drawing.Size(576, 372) TAB_DOWN.TabIndex = 6 TAB_DOWN.Text = "Downloading" ' @@ -1471,17 +1395,17 @@ Namespace Editors TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_DOWNLOADING.Size = New System.Drawing.Size(576, 451) + TP_DOWNLOADING.Size = New System.Drawing.Size(576, 372) TP_DOWNLOADING.TabIndex = 1 ' 'TXT_SCRIPT ' - ActionButton15.BackgroundImage = CType(resources.GetObject("ActionButton15.BackgroundImage"), System.Drawing.Image) - ActionButton15.Name = "Open" - ActionButton16.BackgroundImage = CType(resources.GetObject("ActionButton16.BackgroundImage"), System.Drawing.Image) - ActionButton16.Name = "Clear" - Me.TXT_SCRIPT.Buttons.Add(ActionButton15) - Me.TXT_SCRIPT.Buttons.Add(ActionButton16) + ActionButton11.BackgroundImage = CType(resources.GetObject("ActionButton11.BackgroundImage"), System.Drawing.Image) + ActionButton11.Name = "Open" + ActionButton12.BackgroundImage = CType(resources.GetObject("ActionButton12.BackgroundImage"), System.Drawing.Image) + ActionButton12.Name = "Clear" + Me.TXT_SCRIPT.Buttons.Add(ActionButton11) + Me.TXT_SCRIPT.Buttons.Add(ActionButton12) Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox Me.TXT_SCRIPT.CaptionText = "Script" Me.TXT_SCRIPT.CaptionToolTipEnabled = True @@ -1559,7 +1483,7 @@ Namespace Editors TAB_FEED.Controls.Add(TP_FEED) TAB_FEED.Location = New System.Drawing.Point(4, 22) TAB_FEED.Name = "TAB_FEED" - TAB_FEED.Size = New System.Drawing.Size(576, 451) + TAB_FEED.Size = New System.Drawing.Size(576, 372) TAB_FEED.TabIndex = 7 TAB_FEED.Text = "Feed" ' @@ -1591,7 +1515,7 @@ Namespace Editors TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_FEED.Size = New System.Drawing.Size(576, 451) + TP_FEED.Size = New System.Drawing.Size(576, 372) TP_FEED.TabIndex = 0 ' 'TP_FEED_IMG_COUNT @@ -1711,12 +1635,23 @@ Namespace Editors Me.COLORS_FEED.Size = New System.Drawing.Size(574, 25) Me.COLORS_FEED.TabIndex = 2 ' + 'CH_FEED_SHOW_FRIENDLY + ' + Me.CH_FEED_SHOW_FRIENDLY.AutoSize = True + Me.CH_FEED_SHOW_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_FEED_SHOW_FRIENDLY.Location = New System.Drawing.Point(4, 218) + Me.CH_FEED_SHOW_FRIENDLY.Name = "CH_FEED_SHOW_FRIENDLY" + Me.CH_FEED_SHOW_FRIENDLY.Size = New System.Drawing.Size(568, 19) + Me.CH_FEED_SHOW_FRIENDLY.TabIndex = 8 + Me.CH_FEED_SHOW_FRIENDLY.Text = "Show friendly names instead of usernames" + Me.CH_FEED_SHOW_FRIENDLY.UseVisualStyleBackColor = True + ' 'TAB_NOTIFY ' TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN) TAB_NOTIFY.Location = New System.Drawing.Point(4, 22) TAB_NOTIFY.Name = "TAB_NOTIFY" - TAB_NOTIFY.Size = New System.Drawing.Size(576, 451) + TAB_NOTIFY.Size = New System.Drawing.Size(576, 372) TAB_NOTIFY.TabIndex = 8 TAB_NOTIFY.Text = "Notifications" ' @@ -1746,7 +1681,7 @@ Namespace Editors TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_NOTIFY_MAIN.Size = New System.Drawing.Size(576, 451) + TP_NOTIFY_MAIN.Size = New System.Drawing.Size(576, 372) TP_NOTIFY_MAIN.TabIndex = 0 ' 'TP_ENVIR @@ -1769,19 +1704,19 @@ Namespace Editors TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_ENVIR.Size = New System.Drawing.Size(576, 451) + TP_ENVIR.Size = New System.Drawing.Size(576, 372) TP_ENVIR.TabIndex = 0 ' 'TXT_YTDLP ' - ActionButton17.BackgroundImage = CType(resources.GetObject("ActionButton17.BackgroundImage"), System.Drawing.Image) - ActionButton17.Name = "Open" - ActionButton17.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open - ActionButton18.BackgroundImage = CType(resources.GetObject("ActionButton18.BackgroundImage"), System.Drawing.Image) - ActionButton18.Name = "Clear" - ActionButton18.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_YTDLP.Buttons.Add(ActionButton17) - Me.TXT_YTDLP.Buttons.Add(ActionButton18) + ActionButton13.BackgroundImage = CType(resources.GetObject("ActionButton13.BackgroundImage"), System.Drawing.Image) + ActionButton13.Name = "Open" + ActionButton13.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton14.BackgroundImage = CType(resources.GetObject("ActionButton14.BackgroundImage"), System.Drawing.Image) + ActionButton14.Name = "Clear" + ActionButton14.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_YTDLP.Buttons.Add(ActionButton13) + Me.TXT_YTDLP.Buttons.Add(ActionButton14) Me.TXT_YTDLP.CaptionText = "yt-dlp" Me.TXT_YTDLP.CaptionToolTipEnabled = True Me.TXT_YTDLP.CaptionToolTipText = "Path to yt-dlp.exe file" @@ -1796,14 +1731,14 @@ Namespace Editors ' 'TXT_FFMPEG ' - ActionButton19.BackgroundImage = CType(resources.GetObject("ActionButton19.BackgroundImage"), System.Drawing.Image) - ActionButton19.Name = "Open" - ActionButton19.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open - ActionButton20.BackgroundImage = CType(resources.GetObject("ActionButton20.BackgroundImage"), System.Drawing.Image) - ActionButton20.Name = "Clear" - ActionButton20.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_FFMPEG.Buttons.Add(ActionButton19) - Me.TXT_FFMPEG.Buttons.Add(ActionButton20) + ActionButton15.BackgroundImage = CType(resources.GetObject("ActionButton15.BackgroundImage"), System.Drawing.Image) + ActionButton15.Name = "Open" + ActionButton15.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton16.BackgroundImage = CType(resources.GetObject("ActionButton16.BackgroundImage"), System.Drawing.Image) + ActionButton16.Name = "Clear" + ActionButton16.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_FFMPEG.Buttons.Add(ActionButton15) + Me.TXT_FFMPEG.Buttons.Add(ActionButton16) Me.TXT_FFMPEG.CaptionText = "ffmpeg" Me.TXT_FFMPEG.CaptionToolTipEnabled = True Me.TXT_FFMPEG.CaptionToolTipText = "Path to ffmpeg.exe file" @@ -1818,14 +1753,14 @@ Namespace Editors ' 'TXT_CURL ' - ActionButton21.BackgroundImage = CType(resources.GetObject("ActionButton21.BackgroundImage"), System.Drawing.Image) - ActionButton21.Name = "Open" - ActionButton21.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open - ActionButton22.BackgroundImage = CType(resources.GetObject("ActionButton22.BackgroundImage"), System.Drawing.Image) - ActionButton22.Name = "Clear" - ActionButton22.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_CURL.Buttons.Add(ActionButton21) - Me.TXT_CURL.Buttons.Add(ActionButton22) + ActionButton17.BackgroundImage = CType(resources.GetObject("ActionButton17.BackgroundImage"), System.Drawing.Image) + ActionButton17.Name = "Open" + ActionButton17.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton18.BackgroundImage = CType(resources.GetObject("ActionButton18.BackgroundImage"), System.Drawing.Image) + ActionButton18.Name = "Clear" + ActionButton18.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_CURL.Buttons.Add(ActionButton17) + Me.TXT_CURL.Buttons.Add(ActionButton18) Me.TXT_CURL.CaptionText = "cURL" Me.TXT_CURL.CaptionToolTipEnabled = True Me.TXT_CURL.CaptionToolTipText = "Path to curl.exe file" @@ -1840,14 +1775,14 @@ Namespace Editors ' 'TXT_GALLERYDL ' - ActionButton23.BackgroundImage = CType(resources.GetObject("ActionButton23.BackgroundImage"), System.Drawing.Image) - ActionButton23.Name = "Open" - ActionButton23.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open - ActionButton24.BackgroundImage = CType(resources.GetObject("ActionButton24.BackgroundImage"), System.Drawing.Image) - ActionButton24.Name = "Clear" - ActionButton24.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_GALLERYDL.Buttons.Add(ActionButton23) - Me.TXT_GALLERYDL.Buttons.Add(ActionButton24) + ActionButton19.BackgroundImage = CType(resources.GetObject("ActionButton19.BackgroundImage"), System.Drawing.Image) + ActionButton19.Name = "Open" + ActionButton19.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton20.BackgroundImage = CType(resources.GetObject("ActionButton20.BackgroundImage"), System.Drawing.Image) + ActionButton20.Name = "Clear" + ActionButton20.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_GALLERYDL.Buttons.Add(ActionButton19) + Me.TXT_GALLERYDL.Buttons.Add(ActionButton20) Me.TXT_GALLERYDL.CaptionText = "gallery-dl" Me.TXT_GALLERYDL.CaptionToolTipText = "Path to gallery-dl.exe file" Me.TXT_GALLERYDL.CaptionWidth = 80.0R @@ -1861,14 +1796,14 @@ Namespace Editors ' 'TXT_CMD_ENCODING ' - ActionButton25.BackgroundImage = CType(resources.GetObject("ActionButton25.BackgroundImage"), System.Drawing.Image) - ActionButton25.Name = "Refresh" - ActionButton25.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh - ActionButton26.BackgroundImage = CType(resources.GetObject("ActionButton26.BackgroundImage"), System.Drawing.Image) - ActionButton26.Name = "Clear" - ActionButton26.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear - Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton25) - Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton26) + ActionButton21.BackgroundImage = CType(resources.GetObject("ActionButton21.BackgroundImage"), System.Drawing.Image) + ActionButton21.Name = "Refresh" + ActionButton21.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh + ActionButton22.BackgroundImage = CType(resources.GetObject("ActionButton22.BackgroundImage"), System.Drawing.Image) + ActionButton22.Name = "Clear" + ActionButton22.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton21) + Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton22) Me.TXT_CMD_ENCODING.CaptionText = "CMD Encoding" Me.TXT_CMD_ENCODING.CaptionToolTipEnabled = True Me.TXT_CMD_ENCODING.CaptionToolTipText = "Command line encoding" @@ -1885,7 +1820,7 @@ Namespace Editors TAB_STD.Controls.Add(TP_STD) TAB_STD.Location = New System.Drawing.Point(4, 22) TAB_STD.Name = "TAB_STD" - TAB_STD.Size = New System.Drawing.Size(576, 451) + TAB_STD.Size = New System.Drawing.Size(576, 372) TAB_STD.TabIndex = 10 TAB_STD.Text = "Downloader" ' @@ -1925,7 +1860,7 @@ Namespace Editors TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_STD.Size = New System.Drawing.Size(576, 451) + TP_STD.Size = New System.Drawing.Size(576, 372) TP_STD.TabIndex = 0 ' 'TXT_STD_MAX_JOBS_COUNT @@ -1971,10 +1906,10 @@ Namespace Editors ' 'CMB_STD_OPEN_DBL ' - ActionButton27.BackgroundImage = CType(resources.GetObject("ActionButton27.BackgroundImage"), System.Drawing.Image) - ActionButton27.Name = "ArrowDown" - ActionButton27.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown - Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton27) + ActionButton23.BackgroundImage = CType(resources.GetObject("ActionButton23.BackgroundImage"), System.Drawing.Image) + ActionButton23.Name = "ArrowDown" + ActionButton23.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown + Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton23) Me.CMB_STD_OPEN_DBL.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.Label Me.CMB_STD_OPEN_DBL.CaptionText = "DoubleClick opens" Me.CMB_STD_OPEN_DBL.CaptionToolTipEnabled = True @@ -2021,9 +1956,134 @@ Namespace Editors Me.CH_STD_UPDATE_YT_PATH.Text = "Update the YouTube output path when you change the output path." Me.CH_STD_UPDATE_YT_PATH.UseVisualStyleBackColor = True ' + 'TAB_DESIGN + ' + TAB_DESIGN.Controls.Add(TP_DESIGN) + TAB_DESIGN.Location = New System.Drawing.Point(4, 22) + TAB_DESIGN.Name = "TAB_DESIGN" + TAB_DESIGN.Size = New System.Drawing.Size(576, 372) + TAB_DESIGN.TabIndex = 11 + TAB_DESIGN.Text = "Design" + ' + 'TP_DESIGN + ' + TP_DESIGN.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_DESIGN.ColumnCount = 1 + TP_DESIGN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_DESIGN.Controls.Add(Me.TXT_PRG_TITLE, 0, 0) + TP_DESIGN.Controls.Add(Me.TXT_PRG_DESCR, 0, 1) + TP_DESIGN.Controls.Add(Me.TXT_USER_LIST_IMAGE, 0, 2) + TP_DESIGN.Controls.Add(Me.COLORS_USERLIST, 0, 3) + TP_DESIGN.Controls.Add(Me.COLORS_SUBSCRIPTIONS, 0, 4) + TP_DESIGN.Controls.Add(Me.COLORS_SUBSCRIPTIONS_USERS, 0, 5) + TP_DESIGN.Dock = System.Windows.Forms.DockStyle.Fill + TP_DESIGN.Location = New System.Drawing.Point(0, 0) + TP_DESIGN.Name = "TP_DESIGN" + TP_DESIGN.RowCount = 7 + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_DESIGN.Size = New System.Drawing.Size(576, 372) + TP_DESIGN.TabIndex = 0 + ' + 'TXT_PRG_TITLE + ' + ActionButton24.BackgroundImage = CType(resources.GetObject("ActionButton24.BackgroundImage"), System.Drawing.Image) + ActionButton24.Name = "Clear" + ActionButton24.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_PRG_TITLE.Buttons.Add(ActionButton24) + Me.TXT_PRG_TITLE.CaptionText = "Program title" + Me.TXT_PRG_TITLE.CaptionToolTipEnabled = True + Me.TXT_PRG_TITLE.CaptionToolTipText = "Change the title of the main window if you need to" + Me.TXT_PRG_TITLE.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_PRG_TITLE.Lines = New String(-1) {} + Me.TXT_PRG_TITLE.Location = New System.Drawing.Point(4, 4) + Me.TXT_PRG_TITLE.Name = "TXT_PRG_TITLE" + Me.TXT_PRG_TITLE.Size = New System.Drawing.Size(568, 22) + Me.TXT_PRG_TITLE.TabIndex = 0 + ' + 'TXT_PRG_DESCR + ' + ActionButton25.BackgroundImage = CType(resources.GetObject("ActionButton25.BackgroundImage"), System.Drawing.Image) + ActionButton25.Name = "Clear" + ActionButton25.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_PRG_DESCR.Buttons.Add(ActionButton25) + Me.TXT_PRG_DESCR.CaptionText = "Program description" + Me.TXT_PRG_DESCR.CaptionToolTipEnabled = True + Me.TXT_PRG_DESCR.CaptionToolTipText = "Add some additional info to the program info if you need" + Me.TXT_PRG_DESCR.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_PRG_DESCR.Lines = New String(-1) {} + Me.TXT_PRG_DESCR.Location = New System.Drawing.Point(4, 33) + Me.TXT_PRG_DESCR.Name = "TXT_PRG_DESCR" + Me.TXT_PRG_DESCR.Size = New System.Drawing.Size(568, 22) + Me.TXT_PRG_DESCR.TabIndex = 1 + ' + 'TXT_USER_LIST_IMAGE + ' + ActionButton26.BackgroundImage = CType(resources.GetObject("ActionButton26.BackgroundImage"), System.Drawing.Image) + ActionButton26.Name = "Open" + ActionButton26.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open + ActionButton27.BackgroundImage = CType(resources.GetObject("ActionButton27.BackgroundImage"), System.Drawing.Image) + ActionButton27.Name = "Clear" + ActionButton27.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear + Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton26) + Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton27) + Me.TXT_USER_LIST_IMAGE.CaptionText = "Userlist image" + Me.TXT_USER_LIST_IMAGE.CaptionToolTipEnabled = True + Me.TXT_USER_LIST_IMAGE.CaptionToolTipText = "Background image for user list" + Me.TXT_USER_LIST_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_USER_LIST_IMAGE.Lines = New String(-1) {} + Me.TXT_USER_LIST_IMAGE.Location = New System.Drawing.Point(4, 62) + Me.TXT_USER_LIST_IMAGE.Name = "TXT_USER_LIST_IMAGE" + Me.TXT_USER_LIST_IMAGE.Size = New System.Drawing.Size(568, 22) + Me.TXT_USER_LIST_IMAGE.TabIndex = 2 + ' + 'COLORS_USERLIST + ' + Me.COLORS_USERLIST.ButtonsMargin = New System.Windows.Forms.Padding(1, 2, 1, 2) + Me.COLORS_USERLIST.CaptionText = "Userlist colors" + Me.COLORS_USERLIST.Dock = System.Windows.Forms.DockStyle.Fill + Me.COLORS_USERLIST.Location = New System.Drawing.Point(1, 88) + Me.COLORS_USERLIST.Margin = New System.Windows.Forms.Padding(0) + Me.COLORS_USERLIST.Name = "COLORS_USERLIST" + Me.COLORS_USERLIST.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.COLORS_USERLIST.Size = New System.Drawing.Size(574, 25) + Me.COLORS_USERLIST.TabIndex = 3 + ' + 'COLORS_SUBSCRIPTIONS + ' + Me.COLORS_SUBSCRIPTIONS.ButtonsMargin = New System.Windows.Forms.Padding(1, 2, 1, 2) + Me.COLORS_SUBSCRIPTIONS.CaptionText = "Subscriptions" + Me.COLORS_SUBSCRIPTIONS.Dock = System.Windows.Forms.DockStyle.Fill + Me.COLORS_SUBSCRIPTIONS.Location = New System.Drawing.Point(1, 114) + Me.COLORS_SUBSCRIPTIONS.Margin = New System.Windows.Forms.Padding(0) + Me.COLORS_SUBSCRIPTIONS.Name = "COLORS_SUBSCRIPTIONS" + Me.COLORS_SUBSCRIPTIONS.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.COLORS_SUBSCRIPTIONS.Size = New System.Drawing.Size(574, 25) + Me.COLORS_SUBSCRIPTIONS.TabIndex = 4 + Me.COLORS_SUBSCRIPTIONS.TooltipText = "Subscriptions color" + ' + 'COLORS_SUBSCRIPTIONS_USERS + ' + Me.COLORS_SUBSCRIPTIONS_USERS.ButtonsMargin = New System.Windows.Forms.Padding(1, 2, 1, 2) + Me.COLORS_SUBSCRIPTIONS_USERS.CaptionText = "Subscriptions users" + Me.COLORS_SUBSCRIPTIONS_USERS.Dock = System.Windows.Forms.DockStyle.Fill + Me.COLORS_SUBSCRIPTIONS_USERS.Location = New System.Drawing.Point(1, 140) + Me.COLORS_SUBSCRIPTIONS_USERS.Margin = New System.Windows.Forms.Padding(0) + Me.COLORS_SUBSCRIPTIONS_USERS.Name = "COLORS_SUBSCRIPTIONS_USERS" + Me.COLORS_SUBSCRIPTIONS_USERS.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.COLORS_SUBSCRIPTIONS_USERS.Size = New System.Drawing.Size(574, 25) + Me.COLORS_SUBSCRIPTIONS_USERS.TabIndex = 5 + Me.COLORS_SUBSCRIPTIONS_USERS.TooltipText = "Color of users added as subscriptions (not search queries)" + ' 'TAB_MAIN ' Me.TAB_MAIN.Controls.Add(TAB_BASIS) + Me.TAB_MAIN.Controls.Add(TAB_DESIGN) Me.TAB_MAIN.Controls.Add(Me.TAB_ENVIR) Me.TAB_MAIN.Controls.Add(TAB_BEHAVIOR) Me.TAB_MAIN.Controls.Add(TAB_NOTIFY) @@ -2036,7 +2096,7 @@ Namespace Editors Me.TAB_MAIN.Location = New System.Drawing.Point(0, 0) Me.TAB_MAIN.Name = "TAB_MAIN" Me.TAB_MAIN.SelectedIndex = 0 - Me.TAB_MAIN.Size = New System.Drawing.Size(584, 477) + Me.TAB_MAIN.Size = New System.Drawing.Size(584, 398) Me.TAB_MAIN.TabIndex = 1 ' 'TAB_ENVIR @@ -2044,7 +2104,7 @@ Namespace Editors Me.TAB_ENVIR.Controls.Add(TP_ENVIR) Me.TAB_ENVIR.Location = New System.Drawing.Point(4, 22) Me.TAB_ENVIR.Name = "TAB_ENVIR" - Me.TAB_ENVIR.Size = New System.Drawing.Size(576, 451) + Me.TAB_ENVIR.Size = New System.Drawing.Size(576, 372) Me.TAB_ENVIR.TabIndex = 9 Me.TAB_ENVIR.Text = "Environment" ' @@ -2054,40 +2114,29 @@ Namespace Editors 'CONTAINER_MAIN.ContentPanel ' Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TAB_MAIN) - Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 477) + Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 398) Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0) Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN" Me.CONTAINER_MAIN.RightToolStripPanelVisible = False - Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 477) + Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 398) Me.CONTAINER_MAIN.TabIndex = 0 Me.CONTAINER_MAIN.TopToolStripPanelVisible = False ' - 'CH_FEED_SHOW_FRIENDLY - ' - Me.CH_FEED_SHOW_FRIENDLY.AutoSize = True - Me.CH_FEED_SHOW_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_FEED_SHOW_FRIENDLY.Location = New System.Drawing.Point(4, 218) - Me.CH_FEED_SHOW_FRIENDLY.Name = "CH_FEED_SHOW_FRIENDLY" - Me.CH_FEED_SHOW_FRIENDLY.Size = New System.Drawing.Size(568, 19) - Me.CH_FEED_SHOW_FRIENDLY.TabIndex = 8 - Me.CH_FEED_SHOW_FRIENDLY.Text = "Show friendly names instead of usernames" - Me.CH_FEED_SHOW_FRIENDLY.UseVisualStyleBackColor = True - ' 'GlobalSettingsForm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(584, 477) + Me.ClientSize = New System.Drawing.Size(584, 398) Me.Controls.Add(Me.CONTAINER_MAIN) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = Global.SCrawler.My.Resources.Resources.SettingsIcon_48 Me.KeyPreview = True Me.MaximizeBox = False - Me.MaximumSize = New System.Drawing.Size(600, 516) + Me.MaximumSize = New System.Drawing.Size(600, 437) Me.MinimizeBox = False - Me.MinimumSize = New System.Drawing.Size(600, 516) + Me.MinimumSize = New System.Drawing.Size(600, 437) Me.Name = "GlobalSettingsForm" Me.ShowInTaskbar = False Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide @@ -2103,9 +2152,6 @@ Namespace Editors CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_IMGUR_CLIENT_ID, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_USER_AGENT, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TXT_USER_LIST_IMAGE, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TXT_PRG_TITLE, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TXT_PRG_DESCR, System.ComponentModel.ISupportInitialize).EndInit() TP_FILE_NAME.ResumeLayout(False) TP_FILE_NAME.PerformLayout() TP_FILE_PATTERNS.ResumeLayout(False) @@ -2158,6 +2204,11 @@ Namespace Editors TP_STD.PerformLayout() CType(Me.TXT_STD_MAX_JOBS_COUNT, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.CMB_STD_OPEN_DBL, System.ComponentModel.ISupportInitialize).EndInit() + TAB_DESIGN.ResumeLayout(False) + TP_DESIGN.ResumeLayout(False) + CType(Me.TXT_PRG_TITLE, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_PRG_DESCR, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_USER_LIST_IMAGE, System.ComponentModel.ISupportInitialize).EndInit() Me.TAB_MAIN.ResumeLayout(False) Me.TAB_ENVIR.ResumeLayout(False) Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False) @@ -2258,5 +2309,6 @@ Namespace Editors Private WithEvents TXT_PRG_TITLE As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents TXT_PRG_DESCR As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents CH_FEED_SHOW_FRIENDLY As CheckBox + Private WithEvents COLORS_SUBSCRIPTIONS_USERS As ColorPicker End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Editors/GlobalSettingsForm.resx b/SCrawler/Editors/GlobalSettingsForm.resx index 847ff0a..d2a52f5 100644 --- a/SCrawler/Editors/GlobalSettingsForm.resx +++ b/SCrawler/Editors/GlobalSettingsForm.resx @@ -219,41 +219,6 @@ xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP - WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP - aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ - 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 - vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB - cMaRN0UdBBkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go - tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX - AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go - tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX - AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go - tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX - AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC @@ -304,7 +269,7 @@ You can find more detailed information about the missing posts in the form that False - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go @@ -312,7 +277,7 @@ You can find more detailed information about the missing posts in the form that AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go @@ -332,7 +297,7 @@ You can find more detailed information about the missing posts in the form that False - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP @@ -343,7 +308,7 @@ You can find more detailed information about the missing posts in the form that cMaRN0UdBBkAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go @@ -372,6 +337,44 @@ You can find more detailed information about the missing posts in the form that False + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -411,44 +414,6 @@ You can find more detailed information about the missing posts in the form that - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP - WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP - aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ - 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 - vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB - cMaRN0UdBBkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go - tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX - AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP - WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP - aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ - 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 - vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB - cMaRN0UdBBkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go - tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX - AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6 JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE @@ -464,7 +429,7 @@ You can find more detailed information about the missing posts in the form that VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go @@ -478,7 +443,7 @@ You can find more detailed information about the missing posts in the form that False - + iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAE65JREFUeF7t 3X2sJWddB/DdLi2lQG2hdOHuvfM887J7Cxca4ELTQMDWKigIFpBAEAgi9g+CJpJo9Q8NJhgBiYZIYspL @@ -566,6 +531,47 @@ You can find more detailed information about the missing posts in the form that AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6LEtW/4flgYiLD1qeX0A AAAASUVORK5CYII= + + + + False + + + False + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC \ No newline at end of file diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb index d49e5e4..137956b 100644 --- a/SCrawler/Editors/GlobalSettingsForm.vb +++ b/SCrawler/Editors/GlobalSettingsForm.vb @@ -33,16 +33,19 @@ Namespace Editors TXT_MAX_JOBS_USERS.Value = .MaxUsersJobsCount.Value TXT_MAX_JOBS_CHANNELS.Value = .ChannelsMaxJobsCount.Value CH_CHECK_VER_START.Checked = .CheckUpdatesAtStart - TXT_PRG_TITLE.Text = .ProgramText - TXT_PRG_DESCR.Text = .ProgramDescription TXT_USER_AGENT.Text = .UserAgent TXT_IMGUR_CLIENT_ID.Text = .ImgurClientID + CH_SHOW_GROUPS.Checked = .ShowGroups + CH_USERS_GROUPING.Checked = .UseGrouping + 'Design + TXT_PRG_TITLE.Text = .ProgramText + TXT_PRG_DESCR.Text = .ProgramDescription TXT_USER_LIST_IMAGE.Text = .UserListImage.Value COLORS_USERLIST.ColorsSet(.UserListBackColor, .UserListForeColor, SystemColors.Window, SystemColors.WindowText) COLORS_SUBSCRIPTIONS.ColorsSet(.MainFrameUsersSubscriptionsColorBack, .MainFrameUsersSubscriptionsColorFore, SystemColors.Window, SystemColors.WindowText) - CH_SHOW_GROUPS.Checked = .ShowGroups - CH_USERS_GROUPING.Checked = .UseGrouping + COLORS_SUBSCRIPTIONS_USERS.ColorsSet(.MainFrameUsersSubscriptionsColorBack_USERS, .MainFrameUsersSubscriptionsColorFore_USERS, + SystemColors.Window, SystemColors.WindowText) 'Environment TXT_FFMPEG.Text = .FfmpegFile.File TXT_CURL.Text = .CurlFile.File @@ -201,16 +204,18 @@ Namespace Editors .MaxUsersJobsCount.Value = CInt(TXT_MAX_JOBS_USERS.Value) .ChannelsMaxJobsCount.Value = TXT_MAX_JOBS_CHANNELS.Value .CheckUpdatesAtStart.Value = CH_CHECK_VER_START.Checked - .ProgramText.Value = TXT_PRG_TITLE.Text - .ProgramDescription.Value = TXT_PRG_DESCR.Text .UserAgent.Value = TXT_USER_AGENT.Text DefaultUserAgent = TXT_USER_AGENT.Text .ImgurClientID.Value = TXT_IMGUR_CLIENT_ID.Text + .ShowGroups.Value = CH_SHOW_GROUPS.Checked + .UseGrouping.Value = CH_USERS_GROUPING.Checked + 'Design + .ProgramText.Value = TXT_PRG_TITLE.Text + .ProgramDescription.Value = TXT_PRG_DESCR.Text .UserListImage.Value = TXT_USER_LIST_IMAGE.Text COLORS_USERLIST.ColorsGet(.UserListBackColor, .UserListForeColor) COLORS_SUBSCRIPTIONS.ColorsGet(.MainFrameUsersSubscriptionsColorBack, .MainFrameUsersSubscriptionsColorFore) - .ShowGroups.Value = CH_SHOW_GROUPS.Checked - .UseGrouping.Value = CH_USERS_GROUPING.Checked + COLORS_SUBSCRIPTIONS_USERS.ColorsGet(.MainFrameUsersSubscriptionsColorBack_USERS, .MainFrameUsersSubscriptionsColorFore_USERS) 'Environment .FfmpegFile.File = TXT_FFMPEG.Text .CurlFile.File = TXT_CURL.Text diff --git a/SCrawler/ListImagesLoader.vb b/SCrawler/ListImagesLoader.vb index 2b82ac8..debb380 100644 --- a/SCrawler/ListImagesLoader.vb +++ b/SCrawler/ListImagesLoader.vb @@ -223,8 +223,8 @@ Friend Class ListImagesLoader .BackColor = Color.LightSkyBlue .ForeColor = Color.MidnightBlue ElseIf User.IsSubscription Then - .BackColor = If(User.BackColor, Settings.MainFrameUsersSubscriptionsColorBack.Value) - .ForeColor = If(User.ForeColor, Settings.MainFrameUsersSubscriptionsColorFore.Value) + .BackColor = GetSubscriptionColor(User, True) + .ForeColor = GetSubscriptionColor(User, False) Else .BackColor = If(User.BackColor, Settings.UserListBackColorF) .ForeColor = If(User.ForeColor, Settings.UserListForeColorF) @@ -232,6 +232,23 @@ Friend Class ListImagesLoader End With Return LVI End Function + Private Shared Function GetSubscriptionColor(ByVal User As IUserData, ByVal GetBackColor As Boolean) As Color + Dim uc As Color? = If(GetBackColor, User.BackColor, User.ForeColor) + If Not uc.HasValue Then + Dim sc As Color = If(GetBackColor, Settings.MainFrameUsersSubscriptionsColorBack.Value, Settings.MainFrameUsersSubscriptionsColorFore.Value) + Dim scu As Color? = Nothing + If User.IsUser Then + If GetBackColor Then + If Settings.MainFrameUsersSubscriptionsColorBack_USERS.Exists Then scu = Settings.MainFrameUsersSubscriptionsColorBack_USERS.Value + Else + If Settings.MainFrameUsersSubscriptionsColorFore_USERS.Exists Then scu = Settings.MainFrameUsersSubscriptionsColorFore_USERS.Value + End If + End If + Return If(scu, sc) + Else + Return uc.Value + End If + End Function Private Shared Function CheckUserCollection(ByVal User As IUserData) As Boolean If User.IsCollection Then With DirectCast(User, UserDataBind) diff --git a/SCrawler/MainFrame.Designer.vb b/SCrawler/MainFrame.Designer.vb index 4c946df..541fdfc 100644 --- a/SCrawler/MainFrame.Designer.vb +++ b/SCrawler/MainFrame.Designer.vb @@ -522,7 +522,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form Me.BTT_DOWN_SPEC.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16 Me.BTT_DOWN_SPEC.Name = "BTT_DOWN_SPEC" Me.BTT_DOWN_SPEC.Size = New System.Drawing.Size(221, 22) - Me.BTT_DOWN_SPEC.Text = "Download (special)" + Me.BTT_DOWN_SPEC.Text = "Download (advanced)" Me.BTT_DOWN_SPEC.ToolTipText = "Filter the users you want to download and download them." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Shift+Click to download" & ", including non-existent users." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Ctrl+Shift+Click to download, excluding from th" & "e feed, including non-existent users." @@ -710,9 +710,11 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form ' 'BTT_SHOW_FILTER_ADV ' + Me.BTT_SHOW_FILTER_ADV.AutoToolTip = True Me.BTT_SHOW_FILTER_ADV.Name = "BTT_SHOW_FILTER_ADV" Me.BTT_SHOW_FILTER_ADV.Size = New System.Drawing.Size(231, 22) Me.BTT_SHOW_FILTER_ADV.Text = "Advanced filter" + Me.BTT_SHOW_FILTER_ADV.ToolTipText = "Advanced filter of users you want to display" ' 'BTT_SHOW_LIMIT_DATES_NOT ' diff --git a/SCrawler/MainFrame.vb b/SCrawler/MainFrame.vb index 0d609ec..8bd9be7 100644 --- a/SCrawler/MainFrame.vb +++ b/SCrawler/MainFrame.vb @@ -68,12 +68,15 @@ Public Class MainFrame .ResetProgressOnMaximumChanges = False, .Visible = False} Downloader = New TDownloader InfoForm = New DownloadedInfoForm + DownloadQueue = New UserDownloadQueueForm MyProgressForm = New ActiveDownloadingProgress Downloader.ReconfPool() AddHandler Downloader.JobsChange, AddressOf Downloader_UpdateJobsCount AddHandler Downloader.Downloading, AddressOf Downloader_Downloading AddHandler Downloader.DownloadCountChange, AddressOf InfoForm.Downloader_DownloadCountChange AddHandler Downloader.SendNotification, AddressOf MainFrameObj.ShowNotification + AddHandler Downloader.UserDownloadStateChanged, AddressOf DownloadQueue.Downloader_UserDownloadStateChanged + AddHandler Downloader.Downloading, AddressOf DownloadQueue.Downloader_Downloading AddHandler InfoForm.UserFind, AddressOf FocusUser Settings.LoadUsers() MyView = New FormView(Me) @@ -419,7 +422,7 @@ CloseResume: InfoForm.FormShow() End Sub Private Sub MENU_INFO_SHOW_QUEUE_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_QUEUE.Click - DownloadQueue.FormShow(EDP.LogMessageValue) + DownloadQueue.FormShow() End Sub Private Sub MENU_INFO_SHOW_MISSING_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_MISSING.Click If MyMissingPosts Is Nothing Then MyMissingPosts = New MissingPostsForm diff --git a/SCrawler/MainMod.vb b/SCrawler/MainMod.vb index 7105206..23bfaf0 100644 --- a/SCrawler/MainMod.vb +++ b/SCrawler/MainMod.vb @@ -90,6 +90,13 @@ Friend Module MainMod Friend ReadOnly UserExistsNonSubscriptionsPredicate As New FPredicate(Of IUserData)(Function(u) u.Exists And Not u.IsSubscription) Friend ReadOnly LogConnector As New LogHost Friend DefaultUserAgent As String = String.Empty +#Region "NonExistingUsersLog" + Friend ReadOnly NonExistingUsersLog As New TextSaver($"LOGs\NonExistingUsers.txt") With {.LogMode = True, .AutoSave = True} + Friend Sub AddNonExistingUserToLog(ByVal Message As String) + MyMainLOG = Message + NonExistingUsersLog.AppendLine(Message) + End Sub +#End Region #Region "File name operations" Friend FileDateAppenderProvider As IFormatProvider ''' File, Date diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb index 3fc544a..dcb6375 100644 --- a/SCrawler/My Project/AssemblyInfo.vb +++ b/SCrawler/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler/SettingsCLS.vb b/SCrawler/SettingsCLS.vb index f34fff8..a6798ce 100644 --- a/SCrawler/SettingsCLS.vb +++ b/SCrawler/SettingsCLS.vb @@ -203,8 +203,14 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable MainFrameUsersShowDefaults = New XMLValue(Of Boolean)("UsersShowDefaults", True, MyXML) MainFrameUsersShowSubscriptions = New XMLValue(Of Boolean)("UsersShowSubscriptions", True, MyXML) + MainFrameUsersSubscriptionsColorBack = New XMLValue(Of Color)("UsersSubscriptionsColorBack", MyColor.OkBack, MyXML) MainFrameUsersSubscriptionsColorFore = New XMLValue(Of Color)("UsersSubscriptionsColorFore", MyColor.OkFore, MyXML) + MainFrameUsersSubscriptionsColorBack_USERS = New XMLValue(Of Color) + MainFrameUsersSubscriptionsColorBack_USERS.SetExtended("UsersSubscriptionsColorBack_USERS",, MyXML) + MainFrameUsersSubscriptionsColorFore_USERS = New XMLValue(Of Color) + MainFrameUsersSubscriptionsColorFore_USERS.SetExtended("UsersSubscriptionsColorFore_USERS",, MyXML) + FastProfilesLoading = New XMLValue(Of Boolean)("FastProfilesLoading", True, MyXML) MaxLargeImageHeight = New XMLValue(Of Integer)("MaxLargeImageHeight", 150, MyXML) MaxSmallImageHeight = New XMLValue(Of Integer)("MaxSmallImageHeight", 15, MyXML) @@ -808,6 +814,8 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable Friend ReadOnly Property MainFrameUsersShowSubscriptions As XMLValue(Of Boolean) Friend ReadOnly Property MainFrameUsersSubscriptionsColorBack As XMLValue(Of Color) Friend ReadOnly Property MainFrameUsersSubscriptionsColorFore As XMLValue(Of Color) + Friend ReadOnly Property MainFrameUsersSubscriptionsColorBack_USERS As XMLValue(Of Color) + Friend ReadOnly Property MainFrameUsersSubscriptionsColorFore_USERS As XMLValue(Of Color) Friend ReadOnly Property FastProfilesLoading As XMLValue(Of Boolean) Friend ReadOnly Property MaxLargeImageHeight As XMLValue(Of Integer) Friend ReadOnly Property MaxSmallImageHeight As XMLValue(Of Integer)