diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb index 64244d4..879157d 100644 --- a/SCrawler/API/Base/UserDataBase.vb +++ b/SCrawler/API/Base/UserDataBase.vb @@ -2199,18 +2199,20 @@ BlockNullPicture: End Sub #End Region #Region "IComparable Support" - Friend Overridable Function CompareTo(ByVal Other As UserDataBase) As Integer Implements IComparable(Of UserDataBase).CompareTo - If IsCollection Then + Friend Overridable Overloads Function CompareTo(ByVal Other As UserDataBase) As Integer Implements IComparable(Of UserDataBase).CompareTo + If TypeOf Other Is UserDataBind Then + Return 1 + ElseIf IsCollection Then Return Name.CompareTo(Other.Name) Else Return FriendlyName.IfNullOrEmpty(Name).StringTrim.CompareTo(Other.FriendlyName.IfNullOrEmpty(Other.Name).StringTrim) End If End Function - Friend Overridable Function CompareTo(ByVal Obj As Object) As Integer Implements IComparable.CompareTo + Friend Overridable Overloads Function CompareTo(ByVal Obj As Object) As Integer Implements IComparable.CompareTo If Not Obj Is Nothing AndAlso TypeOf Obj Is UserDataBase Then Return CompareTo(DirectCast(Obj, UserDataBase)) Else - Return False + Return 0 End If End Function #End Region @@ -2218,7 +2220,7 @@ BlockNullPicture: Friend Overridable Overloads Function Equals(ByVal Other As UserDataBase) As Boolean Implements IEquatable(Of UserDataBase).Equals Return LVIKey = Other.LVIKey And IsSavedPosts = Other.IsSavedPosts End Function - Public Overrides Function Equals(ByVal Obj As Object) As Boolean + Public Overloads Overrides Function Equals(ByVal Obj As Object) As Boolean If Not Obj Is Nothing AndAlso TypeOf Obj Is UserDataBase Then Return Equals(DirectCast(Obj, UserDataBase)) Else diff --git a/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb b/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb index c2f9d93..b7fb234 100644 --- a/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb +++ b/SCrawler/Download/Feed/DownloadFeedForm.Designer.vb @@ -155,6 +155,7 @@ Namespace DownloadObjects ' 'MENU_LOAD_SESSION ' + Me.MENU_LOAD_SESSION.AutoToolTip = False Me.MENU_LOAD_SESSION.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image Me.MENU_LOAD_SESSION.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_LOAD_SESSION_CURRENT, Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE, MENU_LOAD_SEP_1, Me.BTT_LOAD_FAV, Me.BTT_LOAD_SPEC, MENU_LOAD_SEP_2, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_REMOVE_FAV, MENU_LOAD_SEP_3, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_SPEC, MENU_LOAD_SEP_4, Me.BTT_FEED_CLEAR_FAV, Me.BTT_FEED_CLEAR_SPEC, Me.BTT_FEED_DELETE_SPEC, Me.BTT_FEED_DELETE_DAILY_LIST, Me.BTT_FEED_DELETE_DAILY_DATE, MENU_LOAD_SEP_5, Me.BTT_MERGE_SESSIONS, Me.BTT_CLEAR_DAILY, MENU_LOAD_SEP_6, Me.BTT_MERGE_FEEDS, MENU_LOAD_SEP_7, Me.BTT_CHECK_ALL, Me.BTT_CHECK_NONE}) Me.MENU_LOAD_SESSION.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24 @@ -286,12 +287,13 @@ Namespace DownloadObjects ' 'BTT_CLEAR_DAILY ' + Me.BTT_CLEAR_DAILY.AutoToolTip = True Me.BTT_CLEAR_DAILY.Image = Global.SCrawler.My.Resources.Resources.DeletePic_24 Me.BTT_CLEAR_DAILY.ImageTransparentColor = System.Drawing.Color.Magenta Me.BTT_CLEAR_DAILY.Name = "BTT_CLEAR_DAILY" Me.BTT_CLEAR_DAILY.Size = New System.Drawing.Size(352, 22) Me.BTT_CLEAR_DAILY.Text = "Clear session" - Me.BTT_CLEAR_DAILY.ToolTipText = "Clear data list (session)" + Me.BTT_CLEAR_DAILY.ToolTipText = "Clear current session" ' 'BTT_MERGE_FEEDS ' diff --git a/SCrawler/Download/Feed/DownloadFeedForm.vb b/SCrawler/Download/Feed/DownloadFeedForm.vb index 4c65d2b..203e503 100644 --- a/SCrawler/Download/Feed/DownloadFeedForm.vb +++ b/SCrawler/Download/Feed/DownloadFeedForm.vb @@ -41,6 +41,7 @@ Namespace DownloadObjects #Region "Feeds options" Private Enum FeedModes : Current : Saved : Special : End Enum Private FeedMode As FeedModes = FeedModes.Current + Private LoadedSessionName As String = String.Empty Private ReadOnly Property IsSession As Boolean Get Return FeedMode = FeedModes.Current Or FeedMode = FeedModes.Saved @@ -54,7 +55,7 @@ Namespace DownloadObjects Try : ControlInvokeFast(Me, Sub() Select Case FeedMode Case FeedModes.Current : Text = $"{FeedTitleDefault}: current session" - Case FeedModes.Saved : Text = $"{FeedTitleDefault}: saved session(s)" + Case FeedModes.Saved : Text = $"{FeedTitleDefault}: saved session {LoadedSessionName.IfNullOrEmpty("(multiple)")}" Case FeedModes.Special : Text = $"{FeedTitleDefault}: {IIf(LoadedFeedNames.Count > 1, "multiple special feeds", LoadedFeedNames.FirstOrDefault.IfNullOrEmpty("?"))}" Case Else : Text = FeedTitleDefault End Select @@ -318,11 +319,6 @@ Namespace DownloadObjects ForeColor = SystemColors.WindowText End If - Dim fsd As Boolean = .FeedStoreSessionsData - ControlInvoke(ToolbarTOP, MENU_LOAD_SESSION, Sub() - MENU_LOAD_SESSION.Visible = fsd - SEP_0.Visible = fsd - End Sub) If rangeChanged Then ClearTable() ControlInvoke(TP_DATA, Sub() @@ -408,6 +404,7 @@ Namespace DownloadObjects Optional ByRef ResultFilesList As List(Of SFile) = Nothing, Optional ByVal SelectedMode As FeedModes = -1) Try + LoadedSessionName = String.Empty Downloader.ClearSessions() Dim f As SFile = TDownloader.SessionsPath.CSFileP Dim fList As List(Of SFile) = Nothing @@ -442,7 +439,10 @@ Namespace DownloadObjects ResultFilesList.AddRange(fList) Else DataList.Clear() - If SelectedMode >= 0 Then FeedChangeMode(SelectedMode) + If SelectedMode >= 0 Then + If SelectedMode = FeedModes.Saved And fList.Count = 1 Then LoadedSessionName = fList(0).Name + FeedChangeMode(SelectedMode) + End If For Each f In fList x = New XmlFile(f,, False) With {.AllowSameNames = True, .XmlReadOnly = True} x.LoadData() @@ -470,7 +470,10 @@ Namespace DownloadObjects f = Downloader.FilesSessionActual(False) End If If f.Exists Then - If SelectedMode >= 0 Then FeedChangeMode(SelectedMode) + If SelectedMode >= 0 Then + If SelectedMode = FeedModes.Saved Then LoadedSessionName = f.Name + FeedChangeMode(SelectedMode) + End If DataList.Clear() x = New XmlFile(f,, False) With {.AllowSameNames = True, .XmlReadOnly = True} x.LoadData() diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb index adec4cd..943afe9 100644 --- a/SCrawler/Editors/GlobalSettingsForm.vb +++ b/SCrawler/Editors/GlobalSettingsForm.vb @@ -317,9 +317,8 @@ Namespace Editors .FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked .FeedShowSpecialFeedsMediaItem.Value = CH_FEED_SHOW_SPEC_MEDIAITEM.Checked FeedParametersChanged = .FeedDataRows.ChangesDetected Or .FeedDataColumns.ChangesDetected Or - .FeedEndless.ChangesDetected Or .FeedStoreSessionsData.ChangesDetected Or - .FeedBackColor.ChangesDetected Or .FeedForeColor.ChangesDetected Or - .FeedCenterImage.ChangesDetected + .FeedEndless.ChangesDetected Or .FeedBackColor.ChangesDetected Or + .FeedForeColor.ChangesDetected Or .FeedCenterImage.ChangesDetected .EndUpdate() End With