favorites, add field added date, last check and last updated

This commit is contained in:
dazedcat19 2020-04-26 16:22:03 +08:00
parent 856ab58814
commit 4aa1bea248
18 changed files with 254 additions and 109 deletions

View File

@ -19,11 +19,14 @@ type
public
constructor Create(const AFilename: String);
procedure InternalUpdate(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo: String); inline;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo: String;
const ADateLastChecked,ADateLastUpdated: TDateTime); inline;
procedure InternalAdd(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo: String); inline;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo: String;
const ADateAdded: TDateTime); inline;
function Add(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String):Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String;
const ADateAdded: TDateTime):Boolean;
procedure Delete(const AWebsite, ALink: String);
procedure Commit; override;
procedure Close; override;
@ -40,6 +43,9 @@ const
f_currentchapter = 6;
f_downloadedchapterlist = 7;
f_saveto = 8;
f_dateadded = 9;
f_datelastchecked = 10;
f_datelastupdated = 11;
implementation
@ -68,13 +74,18 @@ begin
'"title" TEXT,' +
'"currentchapter" TEXT,' +
'"downloadedchapterlist" TEXT,' +
'"saveto" TEXT';
FieldsParams := '"websitelink","order","enabled","website","link","title","currentchapter","downloadedchapterlist","saveto"';
'"saveto" TEXT,' +
'"dateadded" DATETIME,' +
'"datelastchecked" DATETIME,' +
'"datelastupdated" DATETIME';
FieldsParams := '"websitelink","order","enabled","website","link","title","currentchapter","downloadedchapterlist","saveto","dateadded","datelastchecked","datelastupdated"';
SelectParams := 'SELECT * FROM ' + QuotedStrD(TableName) + ' ORDER BY "order"';
end;
procedure TFavoritesDB.InternalUpdate(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String);
procedure TFavoritesDB.InternalUpdate(const AOrder: Integer;
const AEnabled: Boolean; const AWebsite, ALink, ATitle, ACurrentChapter,
ADownloadedChapterList, ASaveTo: String; const ADateLastChecked,
ADateLastUpdated: TDateTime);
begin
Connection.ExecuteDirect('UPDATE "favorites" SET ' +
'"order"='+QuotedStr(AOrder)+', '+
@ -82,12 +93,15 @@ begin
'"title"='+QuotedStr(ATitle)+', '+
'"currentchapter"='+QuotedStr(ACurrentChapter)+', '+
'"downloadedchapterlist"='+QuotedStr(ADownloadedChapterList)+', '+
'"saveto"='+QuotedStr(ASaveTo)+
'"saveto"='+QuotedStr(ASaveTo)+', '+
'"datelastchecked"='+QuotedStr(Adatelastchecked)+', '+
'"datelastupdated"='+QuotedStr(Adatelastupdated)+
' WHERE "websitelink"='+QuotedStr(LowerCase(AWebsite+ALink)));
end;
procedure TFavoritesDB.InternalAdd(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String);
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String;
const ADateAdded: TDateTime);
begin
Connection.ExecuteDirect('INSERT OR REPLACE INTO "favorites" (' +
FieldsParams +
@ -100,17 +114,21 @@ begin
QuotedStr(ATitle) + ', ' +
QuotedStr(ACurrentChapter) + ', ' +
QuotedStr(ADownloadedChapterList) + ', ' +
QuotedStr(ASaveTo) + ')');
QuotedStr(ASaveTo) + ',' +
QuotedStr(ADateAdded) + ',' +
QuotedStr(ADateAdded) + ',' +
QuotedStr(ADateAdded) + ')');
end;
function TFavoritesDB.Add(const AOrder:Integer;const AEnabled:Boolean;
const AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo:String):Boolean;
function TFavoritesDB.Add(const AOrder: Integer; const AEnabled: Boolean;
const AWebsite, ALink, ATitle, ACurrentChapter, ADownloadedChapterList,
ASaveTo: String; const ADateAdded: TDateTime): Boolean;
begin
Result := False;
if (AWebsite = '') or (ALink = '') then Exit;
if not Connection.Connected then Exit;
try
InternalAdd(AOrder,AEnabled,AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo);
InternalAdd(AOrder,AEnabled,AWebsite,ALink,ATitle,ACurrentChapter,ADownloadedChapterList,ASaveTo,ADateAdded);
Result := True;
Inc(FCommitCount);
if FCommitCount >= FAutoCommitCount then

View File

@ -363,6 +363,9 @@ type
Numbering,
DownloadedChapterList,
CurrentChapter: String;
DateAdded,
DateLastChecked,
DateLastUpdated: TDateTime;
end;
TCardinalList = specialize TFPGList<Cardinal>;

View File

@ -98,7 +98,6 @@ type
function GetEnabledFavoritesCount: Integer; inline;
function GetDisabledFavoritesCount: Integer; inline;
function GetFavorite(const Index: Integer): TFavoriteContainer;
function ConvertToDB: Boolean;
public
Items: TFavoriteContainers;
TaskThread: TFavoriteTask;
@ -125,8 +124,6 @@ type
// Merge manga information with a title that already exist in favorites
procedure AddMerge(const ATitle, ACurrentChapter, ADownloadedChapterList, AWebsite,
ASaveTo, ALink: String);
// Merge a favorites.ini with another favorites.ini
procedure MergeWith(const APath: String);
// Free then delete favorite without any check, use with caution
procedure FreeAndDelete(const Pos: Integer); overload;
procedure FreeAndDelete(const T: TFavoriteContainer); overload;
@ -173,7 +170,7 @@ resourcestring
implementation
uses
frmMain, frmNewChapter, FMDVars;
frmMain, frmNewChapter, FMDVars, DateUtils;
{ TFavoriteContainer }
@ -231,7 +228,8 @@ begin
Title,
CurrentChapter,
DownloadedChapterList,
SaveTo
SaveTo,
DateAdded
);
end;
@ -286,6 +284,13 @@ begin
end;
end;
if not Terminated then
begin
Container.FavoriteInfo.DateLastChecked := Now;
if (NewMangaInfoChaptersPos.Count <> 0) or (NewMangaInfo.status = MangaInfo_StatusCompleted) then
Container.FavoriteInfo.DateLastUpdated := Now;
end;
// free unneeded objects
if (NewMangaInfoChaptersPos.Count = 0) and
(NewMangaInfo.status <> MangaInfo_StatusCompleted) then
@ -653,42 +658,6 @@ begin
Result := Items[Index];
end;
function TFavoriteManager.ConvertToDB: Boolean;
var
i: Integer;
s: String;
begin
Result := False;
if not FileExistsUTF8(FAVORITES_FILE) then Exit;
with TIniFile.Create(FAVORITES_FILE) do
try
i := ReadInteger('general', 'NumberOfFavorites', 0);
if i > 0 then
begin
for i := 0 to i - 1 do
begin
s := IntToStr(i);
FFavoritesDB.Add(
i,
True,
ReadString(s, 'Website', ''),
RemoveHostFromURL(ReadString(s, 'Link', '')),
ReadString(s, 'Title', ''),
ReadString(s, 'CurrentChapter', ''),
GetParams(ReadString(s, 'DownloadedChapterList', '')),
ReadString(s, 'SaveTo', '')
);
end;
FFavoritesDB.Commit;
end;
Result := True;
finally
Free;
end;
if Result then
Result := DeleteFileUTF8(FAVORITES_FILE);
end;
constructor TFavoriteManager.Create;
begin
inherited Create;
@ -698,7 +667,6 @@ begin
Items := TFavoriteContainers.Create;;
FFavoritesDB := TFavoritesDB.Create(FAVORITESDB_FILE);
FFavoritesDB.Open;
ConvertToDB;
end;
destructor TFavoriteManager.Destroy;
@ -919,6 +887,7 @@ begin
DownloadInfo.Title := FavoriteInfo.Title;
DownloadInfo.SaveTo := FavoriteInfo.SaveTo;
DownloadInfo.DateAdded := Now;
DownloadInfo.DateLastDownload := Now;
for j := 0 to NewMangaInfoChaptersPos.Count - 1 do
begin
@ -1044,6 +1013,9 @@ begin
SaveTo := ASaveTo;
Link := ALink;
DownloadedChapterList := ADownloadedChapterList;
DateAdded := Now;
DateLastChecked := Now;
DateLastUpdated := Now;
end;
Status := STATUS_IDLE;
SaveToDB(newfv);
@ -1079,50 +1051,6 @@ begin
end;
end;
procedure TFavoriteManager.MergeWith(const APath: String);
var
mergeFile: TIniFile;
fstream: TFileStreamUTF8;
l, i: Cardinal;
infos: array of TFavoriteInfo;
begin
if isRunning then
Exit;
if not FileExistsUTF8(APath) then
Exit;
isRunning := True;
fstream := TFileStreamUTF8.Create(APath, fmOpenRead);
mergeFile := TIniFile.Create(fstream);
try
with mergeFile do begin
l := mergeFile.ReadInteger('general', 'NumberOfFavorites', 0);
if l > 0 then
begin
SetLength(infos, l);
for i := 0 to l - 1 do
with infos[i] do begin
Title := ReadString(IntToStr(i), 'Title', '');
currentChapter := ReadString(IntToStr(i), 'CurrentChapter', '0');
downloadedChapterList := ReadString(IntToStr(i), 'DownloadedChapterList', '');
Website := ReadString(IntToStr(i), 'Website', '');
SaveTo := ReadString(IntToStr(i), 'SaveTo', '');
Link := ReadString(IntToStr(i), 'Link', '');
AddMerge(Title, currentChapter, downloadedChapterList, Website, SaveTo, Link);
end;
end;
end;
Sort(SortColumn);
Backup;
finally
fStream.Free;
mergeFile.Free;
end;
SetLength(infos, 0);
isRunning := False;
end;
procedure TFavoriteManager.FreeAndDelete(const Pos: Integer);
begin
with Items[Pos].FavoriteInfo do
@ -1193,6 +1121,9 @@ begin
FavoriteInfo.CurrentChapter := Fields[f_currentchapter].AsString;
FavoriteInfo.DownloadedChapterList := Fields[f_downloadedchapterlist].AsString;
FavoriteInfo.SaveTo := Fields[f_saveto].AsString;
FavoriteInfo.DateAdded := Fields[f_dateadded].AsDateTime;
FavoriteInfo.DateLastChecked := Fields[f_datelastchecked].AsDateTime;
FavoriteInfo.DateLastUpdated := Fields[f_datelastupdated].AsDateTime;
end;
FFavoritesDB.Table.Next;
end;
@ -1214,7 +1145,17 @@ begin
EnterCriticalsection(CS_Favorites);
for i := 0 to Items.Count - 1 do
with Items[i], FavoriteInfo do
FFavoritesDB.InternalUpdate(i,FEnabled,Website,Link,Title,CurrentChapter,DownloadedChapterList,SaveTo);
FFavoritesDB.InternalUpdate(
i,
FEnabled,
Website,
Link,
Title,
CurrentChapter,
DownloadedChapterList,
SaveTo,
DateLastChecked,
DateLastUpdated);
FFavoritesDB.Commit;
finally
LeaveCriticalsection(CS_Favorites);
@ -1256,11 +1197,33 @@ function CompareFavoriteContainer(const Item1, Item2: TFavoriteContainer): Integ
end;
end;
function GetDateTime(ARow: TFavoriteContainer): TDateTime;
begin
with ARow.FavoriteInfo do
case ARow.Manager.SortColumn of
5: Result := DateAdded;
6: Result := DateLastChecked;
7: Result := DateLastUpdated;
else
Result := Now;
end;
end;
begin
if Item1.Manager.SortDirection then
Result := NaturalCompareStr(GetStr(Item2), GetStr(Item1))
if (Item1.Manager.SortColumn >= 5) and (Item1.Manager.SortColumn <= 7) then
begin
if Item1.Manager.SortDirection then
Result := CompareDateTime(GetDateTime(Item2), GetDateTime(Item1))
else
Result := CompareDateTime(GetDateTime(Item1), GetDateTime(Item2));
end
else
Result := NaturalCompareStr(GetStr(Item1), GetStr(Item2));
begin
if Item1.Manager.SortDirection then
Result := NaturalCompareStr(GetStr(Item2), GetStr(Item1))
else
Result := NaturalCompareStr(GetStr(Item1), GetStr(Item2));
end;
end;
procedure TFavoriteManager.Sort(const AColumn: Integer);

View File

@ -2344,6 +2344,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Speichern unter"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2385,6 +2385,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Αποθήκευση σε"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2306,7 +2306,6 @@ msgid "Save to"
msgstr "Save to"
#: tmainform.vtdownload.header.columns[6].text
#| msgid "Added"
msgctxt "TMAINFORM.VTDOWNLOAD.HEADER.COLUMNS[6].TEXT"
msgid "Date added"
msgstr "Date added"
@ -2338,6 +2337,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Save to"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr "Date added"
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr "Last checked date"
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr "Last updated date"
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2341,6 +2341,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Guardar en"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2418,6 +2418,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Répertoire d'enregistrement"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -1309,7 +1309,7 @@ msgstr "Shounen Ai"
#: tmainform.ckfiltershounenai.hint
msgid "Often synonymous with yaoi, this can be thought of as somewhat less extreme. \"Boy''s Love\", so to speak"
msgstr "Identik dengan yaoi, hanya agak kurang ekstrim. Bisa dikatakan \"Percintaan Antara Laki-laki\"."
msgstr "Identik dengan yaoi, hanya agak kurang ekstrim. Bisa dikatakan \"Percintaan Antara Laki-laki\""
#: tmainform.ckfiltersliceoflife.caption
msgid "Slice of Life"
@ -2342,6 +2342,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Lokasi penyimpanan"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr "Waktu ditambahkan"
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr "Waktu terakhir diperiksa"
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr "Waktu terakhir diperbarui"
#: tnewchapter.btcancel.caption
msgctxt "tnewchapter.btcancel.caption"
msgid "&Cancel"
@ -2554,7 +2567,7 @@ msgstr "Ditemukan %d bab baru"
#: ufavoritesmanager.rs_favoritehasnewchapter
#, object-pascal-format
msgid "%s <%s> has %d new chapter(s)."
msgstr "%s <%s> memiliki %d bab baru"
msgstr "%s <%s> memiliki %d bab baru."
#: ufavoritesmanager.rs_lblmangawillberemoved
msgid "Completed manga will be removed:"

View File

@ -2402,6 +2402,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Zapisz do"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2190,6 +2190,7 @@ msgid "Save to"
msgstr ""
#: tmainform.vtdownload.header.columns[6].text
msgctxt "tmainform.vtdownload.header.columns[6].text"
msgid "Date added"
msgstr ""
@ -2220,6 +2221,19 @@ msgctxt "tmainform.vtfavorites.header.columns[4].text"
msgid "Save to"
msgstr ""
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "tnewchapter.btcancel.caption"
msgid "&Cancel"

View File

@ -2340,6 +2340,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Salvar em"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2340,6 +2340,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Сохранить в"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -2341,6 +2341,19 @@ msgctxt "TMAINFORM.VTFAVORITES.HEADER.COLUMNS[4].TEXT"
msgid "Save to"
msgstr "Şuraya kaydet"
#: tmainform.vtfavorites.header.columns[5].text
msgctxt "tmainform.vtfavorites.header.columns[5].text"
msgid "Date added"
msgstr ""
#: tmainform.vtfavorites.header.columns[6].text
msgid "Last checked date"
msgstr ""
#: tmainform.vtfavorites.header.columns[7].text
msgid "Last updated date"
msgstr ""
#: tnewchapter.btcancel.caption
msgctxt "TNEWCHAPTER.BTCANCEL.CAPTION"
msgid "&Cancel"

View File

@ -145,7 +145,7 @@ end;
procedure TImportFavorites.FMDHandle;
begin
FavoriteManager.MergeWith(CleanAndExpandDirectory(edPath.Text) + 'works/favorites.ini');
// todo: legacy import
MessageDlg('', RS_ImportCompleted,
mtConfirmation, [mbYes], 0)

View File

@ -2316,13 +2316,13 @@ object MainForm: TMainForm
object tsFavorites: TTabSheet
Caption = 'Favorites'
ChildSizing.TopBottomSpacing = 4
ClientHeight = 568
ClientHeight = 598
ClientWidth = 845
object vtFavorites: TVirtualStringTree
AnchorSideTop.Control = edFavoritesSearch
AnchorSideTop.Side = asrBottom
Left = 0
Height = 534
Height = 564
Top = 30
Width = 845
Align = alBottom
@ -2360,6 +2360,18 @@ object MainForm: TMainForm
Position = 4
Text = 'Save to'
Width = 200
end
item
Position = 5
Text = 'Date added'
end
item
Position = 6
Text = 'Last checked date'
end
item
Position = 7
Text = 'Last updated date'
end>
Header.DefaultHeight = 24
Header.Height = 23

View File

@ -138,6 +138,9 @@
{"hash":6579810,"name":"tmainform.vtfavorites.header.columns[2].text","sourcebytes":[67,117,114,114,101,110,116,32,99,104,97,112,116,101,114],"value":"Current chapter"},
{"hash":230269173,"name":"tmainform.vtfavorites.header.columns[3].text","sourcebytes":[87,101,98,115,105,116,101],"value":"Website"},
{"hash":160200703,"name":"tmainform.vtfavorites.header.columns[4].text","sourcebytes":[83,97,118,101,32,116,111],"value":"Save to"},
{"hash":123929108,"name":"tmainform.vtfavorites.header.columns[5].text","sourcebytes":[68,97,116,101,32,97,100,100,101,100],"value":"Date added"},
{"hash":229285077,"name":"tmainform.vtfavorites.header.columns[6].text","sourcebytes":[76,97,115,116,32,99,104,101,99,107,101,100,32,100,97,116,101],"value":"Last checked date"},
{"hash":217221733,"name":"tmainform.vtfavorites.header.columns[7].text","sourcebytes":[76,97,115,116,32,117,112,100,97,116,101,100,32,100,97,116,101],"value":"Last updated date"},
{"hash":154630084,"name":"tmainform.btfavoritesimport.caption","sourcebytes":[73,109,112,111,114,116,32,108,105,115,116],"value":"Import list"},
{"hash":165778738,"name":"tmainform.btfavoriteschecknewchapter.caption","sourcebytes":[67,104,101,99,107,32,102,111,114,32,110,101,119,32,99,104,97,112,116,101,114],"value":"Check for new chapter"},
{"hash":266084494,"name":"tmainform.edfavoritessearch.texthint","sourcebytes":[83,101,97,114,99,104,32,102,97,118,111,114,105,116,101,115,46,46,46],"value":"Search favorites..."},

View File

@ -4353,6 +4353,9 @@ begin
2: CellText:=currentChapter;
3: CellText:=website;
4: CellText:=saveTo;
5: CellText:=DateTimeToStr(DateAdded);
6: CellText:=DateTimeToStr(DateLastChecked);
7: CellText:=DateTimeToStr(DateLastUpdated);
end;
end;