2024.2.21.0

API.UserDataBase: incorrect comparison when 'Other' is 'UserDataBind'
DownloadFeedForm: add saved session name to feed title; remove menu hiding when session saving is disabled; remove menu tooltip
GlobalSettingsForm: update 'FeedParametersChanged'
This commit is contained in:
Andy
2024-02-21 09:19:40 +03:00
parent 0ea2156ada
commit b9100bd3c1
4 changed files with 23 additions and 17 deletions

View File

@@ -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

View File

@@ -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
'

View File

@@ -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()

View File

@@ -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