From 7548f46b4f349d4b8401ffbf9efebdb9d20803a0 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sun, 17 Dec 2023 23:18:28 +0000 Subject: [PATCH] tvplanit: Alternate solution for issue #39061 git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9090 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/tvplanit/languages/vpsr.de.po | 68 +++++++-- components/tvplanit/languages/vpsr.en.po | 69 +++++++-- components/tvplanit/languages/vpsr.fi.po | 53 ++++++- components/tvplanit/languages/vpsr.fr.po | 63 +++++++- components/tvplanit/languages/vpsr.nl.po | 52 ++++++- components/tvplanit/languages/vpsr.pl.po | 53 ++++++- components/tvplanit/languages/vpsr.pot | 48 ++++++ components/tvplanit/languages/vpsr.ru.po | 53 ++++++- components/tvplanit/source/include/vpsr.inc | 13 ++ components/tvplanit/source/vpical.pas | 45 ++++-- .../source/vpimportpreview_icalevent.lfm | 71 +++++++++ .../source/vpimportpreview_icalevent.lrj | 7 +- .../source/vpimportpreview_icalevent.pas | 137 +++++++++++++++++- 13 files changed, 674 insertions(+), 58 deletions(-) diff --git a/components/tvplanit/languages/vpsr.de.po b/components/tvplanit/languages/vpsr.de.po index 91ac85493..974026f2f 100644 --- a/components/tvplanit/languages/vpsr.de.po +++ b/components/tvplanit/languages/vpsr.de.po @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2\n" +"X-Generator: Poedit 3.4.1\n" #: vpsr.rs1day msgid "1 day" @@ -27,6 +27,18 @@ msgstr "1 Minute" msgid "1 week" msgstr "1 Woche" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "2 Std" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "30 min" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "4 Std" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "Es sind noch keine Ressourcen definiert. Möchten Sie jetzt eine hinzufügen?" @@ -442,6 +454,10 @@ msgstr "Fällig am:" msgid "Error: Duplicate resource." msgstr "Fehler: Doppelte Ressource." +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "Der Kalender enthält Termine mit offenem Ende. Bitte geben Sie an, welche Dauer für diese Termine angesetzt werden soll." + #: vpsr.rseditbtn msgid "Edit" msgstr "Bearbeiten" @@ -471,16 +487,13 @@ msgid "Edit shape" msgstr "Form bearbeiten" #: vpsr.rselementalreadyexists -#, fuzzy, object-pascal-format -#| msgid "" -#| "An element named %s already exists.\n" -#| "Please use a different name.\n" +#, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" "Ein Element mit Namen %s existiert bereits.\n" -"Bitte einen anderen Namen verwenden.\n" +"Bitte einen anderen Namen verwenden." #: vpsr.rselements msgid "Elements:" @@ -572,6 +585,10 @@ msgstr "Vorlage:" msgid "Templates:" msgstr "Vorlagen:" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "Vier Stunden" + #: vpsr.rsfriday msgid "Friday" msgstr "Freitag" @@ -580,6 +597,10 @@ msgstr "Freitag" msgid "from your schedule?" msgstr "Von Ihrem Zeitplan?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "Eine halbe Stunde" + #: vpsr.rsheight msgid "Height" msgstr "Höhe" @@ -614,6 +635,10 @@ msgstr "iCalendar Dateien ('*.ical;*.ics)|*.ical;*.ics" msgid "Import checked items" msgstr "Markierte Einträge importieren" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "iCalendar-Termine importieren" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "ICalendar-Termin importieren" @@ -847,6 +872,10 @@ msgstr "Einheit für das Zeitintervall nicht angegeben." msgid "End of recurrence not specified." msgstr "Ende der Wiederholungen nicht angegeben." +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "Keine Termin-Dauer ausgewählt." + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -927,6 +956,18 @@ msgstr "nicht unterstützt" msgid "OK" msgstr "OK" +#: vpsr.rsonehour +msgid "One hour" +msgstr "Eine Stunde" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "Termine mit offenem Ende" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "Dauer der Termine mit offenem Ende" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "Eintrag ö&ffnen" @@ -1131,16 +1172,13 @@ msgid "&Print" msgstr "&Drucken" #: vpsr.rsprintformatalreadyexists -#, fuzzy, object-pascal-format -#| msgid "" -#| "A print template named %s already exists.\n" -#| "Please use a different name.\n" +#, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" "Eine Druckvorlage mit Namen %s existiert bereits.\n" -"Bitte einen anderen Namen verwenden.\n" +"Bitte einen anderen Namen verwenden." #: vpsr.rsprintformatdesigner msgid "Print template designer" @@ -1436,6 +1474,10 @@ msgstr "W" msgid "Tuesday" msgstr "Dienstag" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "Zwei Stunden" + #: vpsr.rsunabletoopen #, object-pascal-format msgid "Error: Unable to open %s" diff --git a/components/tvplanit/languages/vpsr.en.po b/components/tvplanit/languages/vpsr.en.po index df2e529a2..36d3dd525 100644 --- a/components/tvplanit/languages/vpsr.en.po +++ b/components/tvplanit/languages/vpsr.en.po @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.2\n" +"X-Generator: Poedit 3.4.1\n" #: vpsr.rs1day msgid "1 day" @@ -28,6 +28,18 @@ msgstr "1 minute" msgid "1 week" msgstr "1 week" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "No resources have been defined. Would you like to add one now?" @@ -437,6 +449,10 @@ msgstr "Due date:" msgid "Error: Duplicate resource." msgstr "Error: Duplicate resource." +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." + #: vpsr.rseditbtn msgid "Edit" msgstr "Edit" @@ -466,16 +482,13 @@ msgid "Edit shape" msgstr "Edit shape" #: vpsr.rselementalreadyexists -#, fuzzy, object-pascal-format -#| msgid "" -#| "An element named %s already exists.\n" -#| "Please use a different name.\n" +#, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." #: vpsr.rselements msgid "Elements:" @@ -567,6 +580,10 @@ msgstr "Template:" msgid "Templates:" msgstr "Templates:" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "Four hours" + #: vpsr.rsfriday msgid "Friday" msgstr "Friday" @@ -575,6 +592,10 @@ msgstr "Friday" msgid "from your schedule?" msgstr "from your schedule?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "Half an hour" + #: vpsr.rsheight msgid "Height" msgstr "Height" @@ -609,6 +630,10 @@ msgstr "iCalendar files (*.ical;*.ics)|*.ical;*.ics" msgid "Import checked items" msgstr "Import checked items" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "Import iCalendar Events" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "Import ICalendar Event" @@ -840,6 +865,10 @@ msgstr "Day increment unit not specified." msgid "End of recurrence not specified." msgstr "End of recurrence not specified." +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "No event duration selected." + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -920,6 +949,18 @@ msgstr "not supported" msgid "OK" msgstr "OK" +#: vpsr.rsonehour +msgid "One hour" +msgstr "One hour" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "Open-end Events" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "Duration of \"open-end\" events" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "&Open Item" @@ -1118,16 +1159,13 @@ msgid "&Print" msgstr "&Print" #: vpsr.rsprintformatalreadyexists -#, fuzzy, object-pascal-format -#| msgid "" -#| "A print template named %s already exists.\n" -#| "Please use a different name.\n" +#, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." #: vpsr.rsprintformatdesigner msgid "Print template designer" @@ -1419,6 +1457,10 @@ msgstr "T" msgid "Tuesday" msgstr "Tuesday" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen #, object-pascal-format msgid "Error: Unable to open %s" @@ -1844,3 +1886,4 @@ msgstr "Unknown axis specifier: %s" #: vpsr.sxmldecnotatbeg msgid "The XML declaration must appear before the first element" msgstr "The XML declaration must appear before the first element" + diff --git a/components/tvplanit/languages/vpsr.fi.po b/components/tvplanit/languages/vpsr.fi.po index 7715ec401..64006ce26 100644 --- a/components/tvplanit/languages/vpsr.fi.po +++ b/components/tvplanit/languages/vpsr.fi.po @@ -17,6 +17,18 @@ msgstr "1 minuutti" msgid "1 week" msgstr "1 viikko" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "" @@ -432,6 +444,10 @@ msgstr "" msgid "Error: Duplicate resource." msgstr "" +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "" @@ -464,7 +480,7 @@ msgstr "" #, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rselements @@ -557,6 +573,10 @@ msgstr "" msgid "Templates:" msgstr "" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "Perjantai" @@ -565,6 +585,10 @@ msgstr "Perjantai" msgid "from your schedule?" msgstr "" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "" @@ -599,6 +623,10 @@ msgstr "" msgid "Import checked items" msgstr "" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "" @@ -832,6 +860,10 @@ msgstr "" msgid "End of recurrence not specified." msgstr "" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -912,6 +944,18 @@ msgstr "" msgid "OK" msgstr "" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "" @@ -1119,7 +1163,7 @@ msgstr "" #, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rsprintformatdesigner @@ -1408,6 +1452,7 @@ msgid "top line" msgstr "" #: vpsr.rstrue +msgctxt "vpsr.rstrue" msgid "T" msgstr "T" @@ -1415,6 +1460,10 @@ msgstr "T" msgid "Tuesday" msgstr "Tiistai" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen #, object-pascal-format msgid "Error: Unable to open %s" diff --git a/components/tvplanit/languages/vpsr.fr.po b/components/tvplanit/languages/vpsr.fr.po index 4052366fc..8cfd36523 100644 --- a/components/tvplanit/languages/vpsr.fr.po +++ b/components/tvplanit/languages/vpsr.fr.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-03 23:23+0200\n" +"PO-Revision-Date: 2023-12-18 00:09+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr_FR\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.4.1\n" #: vpsr.rs1day msgid "1 day" @@ -33,6 +33,18 @@ msgstr "1 minute" msgid "1 week" msgstr "1 semaine" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "Aucune ressource à été defini. Voulez-vous ajouter une maintenant?" @@ -448,6 +460,10 @@ msgstr "Date d'échéance:" msgid "Error: Duplicate resource." msgstr "Erreur: ressource en doublon" +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "" @@ -480,7 +496,7 @@ msgstr "" #, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rselements @@ -573,6 +589,10 @@ msgstr "" msgid "Templates:" msgstr "" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "Vendredi" @@ -581,6 +601,10 @@ msgstr "Vendredi" msgid "from your schedule?" msgstr "de votre agenda?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "" @@ -615,6 +639,10 @@ msgstr "" msgid "Import checked items" msgstr "" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "" @@ -848,6 +876,10 @@ msgstr "" msgid "End of recurrence not specified." msgstr "" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -928,6 +960,18 @@ msgstr "non supporté" msgid "OK" msgstr "OK" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "&Item ouvert" @@ -1135,7 +1179,7 @@ msgstr "&Imprimer" #, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rsprintformatdesigner @@ -1432,9 +1476,14 @@ msgstr "A" msgid "Tuesday" msgstr "Mardi" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen +#, object-pascal-format msgid "Error: Unable to open %s" -msgstr "Erreur: Incapable d'ouvrir" +msgstr "Erreur: Incapable d'ouvrir %s" #: vpsr.rsuntitled msgid "Untitled" @@ -1741,8 +1790,9 @@ msgid "Invalid XML Character found" msgstr "Caractère XML non valide trouvé" #: vpsr.sinvalidxmlversion +#, object-pascal-format msgid "XMLPartner does not support XML specification greater than %s" -msgstr "XMLPartner ne supporte pas la spécification XML supérieure à" +msgstr "XMLPartner ne supporte pas la spécification XML supérieure à %s" #: vpsr.sinvattrchar msgid "Invalid character in attribute value: " @@ -1849,6 +1899,7 @@ msgid "End of input while looking for delimiter: " msgstr "Fin de l'entrée tout en recherchant delimiter:" #: vpsr.sunknownaxis +#, object-pascal-format msgid "Unknown axis specifier: %s" msgstr "Spécificateur d'axe inconnu: %s" diff --git a/components/tvplanit/languages/vpsr.nl.po b/components/tvplanit/languages/vpsr.nl.po index adb59aa56..d49402ced 100644 --- a/components/tvplanit/languages/vpsr.nl.po +++ b/components/tvplanit/languages/vpsr.nl.po @@ -27,6 +27,18 @@ msgstr "1 minuut" msgid "1 week" msgstr "1 week" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "Er is nog geen hulpmiddel gedefinieerd. Wilt u er nu een toevoegen?" @@ -444,6 +456,10 @@ msgstr "Vervaldatum:" msgid "Error: Duplicate resource." msgstr "Fout: Duplicaat Hulpmiddel." +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "" @@ -478,7 +494,7 @@ msgstr "" #, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rselements @@ -571,6 +587,10 @@ msgstr "" msgid "Templates:" msgstr "" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "Vrijdag" @@ -579,6 +599,10 @@ msgstr "Vrijdag" msgid "from your schedule?" msgstr "van uw tijdschema?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "" @@ -613,6 +637,10 @@ msgstr "" msgid "Import checked items" msgstr "" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "" @@ -846,6 +874,10 @@ msgstr "" msgid "End of recurrence not specified." msgstr "" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -926,6 +958,18 @@ msgstr "niet ondersteund" msgid "OK" msgstr "OK" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "&Open Item" @@ -1133,7 +1177,7 @@ msgstr "&Printen" #, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rsprintformatdesigner @@ -1432,6 +1476,10 @@ msgstr "W" msgid "Tuesday" msgstr "Dinsdag" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen #, object-pascal-format, fuzzy, badformat #| msgid "Error: Unable to open " diff --git a/components/tvplanit/languages/vpsr.pl.po b/components/tvplanit/languages/vpsr.pl.po index edcfbdc21..93fb6427b 100644 --- a/components/tvplanit/languages/vpsr.pl.po +++ b/components/tvplanit/languages/vpsr.pl.po @@ -27,6 +27,18 @@ msgstr "1 minuta" msgid "1 week" msgstr "1 tydzień" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "Brak zdefiniowanych zasobów. Chcesz je dodać teraz?" @@ -133,7 +145,6 @@ msgid "bottom line" msgstr "dolna linia" #: vpsr.rsbrowsererror -#| msgid "Unable to start web browser. Make sure you have it properly setup on your system." msgid "Unable to start web browser. Make sure that it is propertly set up on your system." msgstr "Nie udało się uruchomić przeglądarki WWW." @@ -443,6 +454,10 @@ msgstr "Data wykonania:" msgid "Error: Duplicate resource." msgstr "Błąd: Zduplikowane zasoby." +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "Edytuj" @@ -568,6 +583,10 @@ msgstr "Format:" msgid "Templates:" msgstr "Formaty:" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "Piątek" @@ -576,6 +595,10 @@ msgstr "Piątek" msgid "from your schedule?" msgstr "Z twojego harmonogramu?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "Wysokość" @@ -610,6 +633,10 @@ msgstr "Pliki iCalendar (*.ical;*.ics)|*.ical;*.ics" msgid "Import checked items" msgstr "Importuj zaznaczenie" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "Importuj zdarzenie z ICalendar" @@ -843,6 +870,10 @@ msgstr "Nie określono interwału dnia." msgid "End of recurrence not specified." msgstr "Brak końca rekurencji" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -923,6 +954,18 @@ msgstr "nie wspierane" msgid "OK" msgstr "OK" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "Otwórz pozycję" @@ -1126,7 +1169,7 @@ msgid "&Print" msgstr "&Drukuj" #: vpsr.rsprintformatalreadyexists -#, object-pascal-format +#, object-pascal-format, fuzzy, badformat msgid "" "A print template named %s already exists.\n" "Please use a different name." @@ -1251,6 +1294,7 @@ msgid "Save print template to file?" msgstr "Zapisać dane do pliku?" #: vpsr.rssaveformatchangestofilename +#, object-pascal-format msgid "Save print template to \"%s\"?" msgstr "Zapisać format do \"%s\"?" @@ -1425,7 +1469,12 @@ msgstr "W" msgid "Tuesday" msgstr "Wtorek" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen +#, object-pascal-format msgid "Error: Unable to open %s" msgstr "Błąd: Nie mogę otworzyć %s" diff --git a/components/tvplanit/languages/vpsr.pot b/components/tvplanit/languages/vpsr.pot index a1d548960..dc649ae8a 100644 --- a/components/tvplanit/languages/vpsr.pot +++ b/components/tvplanit/languages/vpsr.pot @@ -17,6 +17,18 @@ msgstr "" msgid "1 week" msgstr "" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "" @@ -426,6 +438,10 @@ msgstr "" msgid "Error: Duplicate resource." msgstr "" +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "" @@ -551,6 +567,10 @@ msgstr "" msgid "Templates:" msgstr "" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "" @@ -559,6 +579,10 @@ msgstr "" msgid "from your schedule?" msgstr "" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "" @@ -593,6 +617,10 @@ msgstr "" msgid "Import checked items" msgstr "" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "" @@ -824,6 +852,10 @@ msgstr "" msgid "End of recurrence not specified." msgstr "" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -904,6 +936,18 @@ msgstr "" msgid "OK" msgstr "" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "" @@ -1398,6 +1442,10 @@ msgstr "" msgid "Tuesday" msgstr "" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen #, object-pascal-format msgid "Error: Unable to open %s" diff --git a/components/tvplanit/languages/vpsr.ru.po b/components/tvplanit/languages/vpsr.ru.po index 9bb44525c..fc1facc71 100644 --- a/components/tvplanit/languages/vpsr.ru.po +++ b/components/tvplanit/languages/vpsr.ru.po @@ -27,6 +27,18 @@ msgstr "1 минута" msgid "1 week" msgstr "1 неделя" +#: vpsr.rs2hours +msgid "2 hours" +msgstr "" + +#: vpsr.rs30minutes +msgid "30 mins" +msgstr "" + +#: vpsr.rs4hours +msgid "4 hours" +msgstr "" + #: vpsr.rsaddnewresource msgid "No resources have been defined. Would you like to add one now?" msgstr "Не определены ресурсы. Вы хотите добавить ресурс сейчас?" @@ -442,6 +454,10 @@ msgstr "Срок:" msgid "Error: Duplicate resource." msgstr "Ошибка: Дубликат ресурсов." +#: vpsr.rsdurationforopenendevents +msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events." +msgstr "" + #: vpsr.rseditbtn msgid "Edit" msgstr "Изменить" @@ -474,7 +490,7 @@ msgstr "" #, object-pascal-format msgid "" "An element named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rselements @@ -567,6 +583,10 @@ msgstr "" msgid "Templates:" msgstr "Форматы:" +#: vpsr.rsfourhours +msgid "Four hours" +msgstr "" + #: vpsr.rsfriday msgid "Friday" msgstr "Пятница" @@ -575,6 +595,10 @@ msgstr "Пятница" msgid "from your schedule?" msgstr "из вашего расписания?" +#: vpsr.rshalfanhour +msgid "Half an hour" +msgstr "" + #: vpsr.rsheight msgid "Height" msgstr "Высота" @@ -609,6 +633,10 @@ msgstr "" msgid "Import checked items" msgstr "" +#: vpsr.rsimporticalendarevents +msgid "Import iCalendar Events" +msgstr "" + #: vpsr.rsimporticalevent msgid "Import ICalendar Event" msgstr "" @@ -842,6 +870,10 @@ msgstr "" msgid "End of recurrence not specified." msgstr "" +#: vpsr.rsnoeventdurationselected +msgid "No event duration selected." +msgstr "" + #: vpsr.rsnoeventitemsfoundinical #, object-pascal-format msgid "No event items found in \"%s\"." @@ -922,6 +954,18 @@ msgstr "не поддерживается" msgid "OK" msgstr "" +#: vpsr.rsonehour +msgid "One hour" +msgstr "" + +#: vpsr.rsopenendevents +msgid "Open-end Events" +msgstr "" + +#: vpsr.rsopenendeventsdurationlbl +msgid "Duration of \"open-end\" events" +msgstr "" + #: vpsr.rsopenitembtn msgid "&Open Item" msgstr "Открыть эелемент" @@ -1129,7 +1173,7 @@ msgstr "Печать" #, object-pascal-format msgid "" "A print template named %s already exists.\n" -"Please use a different name.\n" +"Please use a different name." msgstr "" #: vpsr.rsprintformatdesigner @@ -1426,7 +1470,12 @@ msgstr "" msgid "Tuesday" msgstr "Вторник" +#: vpsr.rstwohours +msgid "Two hours" +msgstr "" + #: vpsr.rsunabletoopen +#, object-pascal-format msgid "Error: Unable to open %s" msgstr "Ошибка открытия %s" diff --git a/components/tvplanit/source/include/vpsr.inc b/components/tvplanit/source/include/vpsr.inc index 7ab30b730..7c9de49ee 100644 --- a/components/tvplanit/source/include/vpsr.inc +++ b/components/tvplanit/source/include/vpsr.inc @@ -202,6 +202,16 @@ resourcestring RSAssignedCategory = 'Assigned category'; RSEventItems = 'Event items'; RSImportCheckedItems = 'Import checked items'; + RSOpenEndEventsDurationLbl= 'Duration of "open-end" events'; + RSDurationForOpenEndEvents= 'The calendar contains events without an end time and without a duration. '+ + 'Please define which duration will be assumed for these events.'; + RSNoEventDurationSelected = 'No event duration selected.'; + RSImportICalendarEvents = 'Import iCalendar Events'; + RSOpenEndEvents = 'Open-end Events'; + RSHalfAnHour = 'Half an hour'; + RSOneHour = 'One hour'; + RSTwoHours = 'Two hours'; + RSFourHours = 'Four hours'; {Task Specific} RSConfirmDeleteTask = 'Delete this task from your list?'; @@ -339,7 +349,10 @@ resourcestring RSOpenItemBtn = '&Open Item'; RS1Minute = '1 minute'; RSXMinutes = '%d minutes'; + RS30Minutes = '30 mins'; RS1Hour = '1 hour'; + RS2Hours = '2 hours'; + RS4Hours = '4 hours'; RSXHours = '%d hours'; RS1Day = '1 day'; RSXDays = '%d days'; diff --git a/components/tvplanit/source/vpical.pas b/components/tvplanit/source/vpical.pas index c9d0cf018..acbab54d8 100644 --- a/components/tvplanit/source/vpical.pas +++ b/components/tvplanit/source/vpical.pas @@ -74,6 +74,7 @@ type FAlarm: TVpICalAlarm; FCategories: TStrings; FPickedCategory: Integer; + FOpenEnd: Boolean; function GetCategory(AIndex: Integer): String; function GetCategoryCount: Integer; function GetEndTime(UTC: Boolean): TDateTime; @@ -103,6 +104,7 @@ type property RecurrenceByXXX: String read FRecurrenceByXXX write FRecurrenceByXXX; property PickedCategory: Integer read FPickedCategory write FPickedCategory; property UID: String read FUID write FUID; + property OpenEnd: Boolean read FOpenEnd; end; TVpICalToDo = class(TVpICalEntry) @@ -175,6 +177,8 @@ type destructor Destroy; override; procedure Add(AEntry: TVpICalEntry); procedure Clear; + function ContainsOpenEndEvents: Boolean; + procedure FixOpenEndEvents(ADuration: TDateTime); procedure LoadFromFile(const AFileName: String); procedure LoadFromStream(const AStream: TStream); procedure SaveToFile(const AFileName: String); @@ -190,7 +194,7 @@ type implementation uses - VpConst, VpBase; + VpConst, VpMisc, VpBase; const DATE_FORMAT = 'yyyymmdd'; @@ -490,15 +494,9 @@ begin end; end; end; - { - if (FEndTime = NO_DATE) and (FStartTime <> NO_DATE) then - begin - if FDuration = 0 then - FEndTime := FStartTime + 1.0/24 // 1 hour default - else - FEndTime := FStartTime + FDuration; - end; - } + + if (FEndTime = NO_DATE) and ((FDuration = 0) or (FDuration = NO_DATE)) then + FOpenEnd := true; end; function TVpICalEvent.Categories: TStrings; @@ -918,6 +916,33 @@ begin SetLength(FEntries, 0); end; +function TVpICalendar.ContainsOpenEndEvents: Boolean; +var + i: Integer; +begin + for i := 0 to High(FEntries) do + if (FEntries[i] is TVpICalEvent) and TVpICalEvent(FEntries[i]).OpenEnd then + exit(true); + Result := false; +end; + +procedure TVpICalendar.FixOpenEndEvents(ADuration: TDateTime); +var + i: Integer; + ev: TVpICalEvent; + startTime: TDateTime; +begin + for i := 0 to High(FEntries) do + if (FEntries[i] is TVpICalEvent) then + begin + ev := TVpICalEvent(FEntries[i]); + if ev.OpenEnd then begin + startTime := ev.StartTime[true]; + ev.EndTime[true] := startTime + ADuration; + end; + end; +end; + function TVpICalendar.GetCount: Integer; begin Result := Length(FEntries); diff --git a/components/tvplanit/source/vpimportpreview_icalevent.lfm b/components/tvplanit/source/vpimportpreview_icalevent.lfm index 0262845c9..443826be0 100644 --- a/components/tvplanit/source/vpimportpreview_icalevent.lfm +++ b/components/tvplanit/source/vpimportpreview_icalevent.lfm @@ -4,17 +4,88 @@ inherited VpImportPreviewICalEventForm: TVpImportPreviewICalEventForm Caption = '' ClientHeight = 400 ClientWidth = 667 + OnActivate = FormActivate inherited ButtonPanel: TPanel Top = 369 Width = 655 ClientWidth = 655 inherited btnExecute: TButton Left = 446 + BorderSpacing.Left = 8 + OnClick = btnExecuteClick end inherited btnCancel: TButton Left = 593 Width = 62 AutoSize = True end + object lblOpenEndDuration: TLabel[2] + AnchorSideLeft.Control = ButtonPanel + AnchorSideTop.Control = ButtonPanel + AnchorSideTop.Side = asrCenter + Left = 6 + Height = 15 + Top = 5 + Width = 163 + BorderSpacing.Left = 6 + BorderSpacing.Right = 8 + Caption = 'Duration of "open end" events:' + Visible = False + end + object rbOpenEndDuration30mins: TRadioButton[3] + AnchorSideLeft.Control = lblOpenEndDuration + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ButtonPanel + AnchorSideTop.Side = asrCenter + Left = 177 + Height = 19 + Top = 3 + Width = 54 + BorderSpacing.Right = 9 + Caption = '30 min' + TabOrder = 2 + Visible = False + end + object rbOpenEndDuration1Hr: TRadioButton[4] + AnchorSideLeft.Control = rbOpenEndDuration30mins + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ButtonPanel + AnchorSideTop.Side = asrCenter + Left = 240 + Height = 19 + Top = 3 + Width = 52 + BorderSpacing.Right = 8 + Caption = '1 hour' + TabOrder = 3 + Visible = False + end + object rbOpenEndDuration2Hrs: TRadioButton[5] + AnchorSideLeft.Control = rbOpenEndDuration1Hr + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ButtonPanel + AnchorSideTop.Side = asrCenter + Left = 300 + Height = 19 + Top = 3 + Width = 57 + BorderSpacing.Right = 8 + Caption = '2 hours' + TabOrder = 4 + Visible = False + end + object rbOpenEndDuration4Hrs: TRadioButton[6] + AnchorSideLeft.Control = rbOpenEndDuration2Hrs + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ButtonPanel + AnchorSideTop.Side = asrCenter + Left = 365 + Height = 19 + Top = 3 + Width = 57 + Caption = '4 hours' + TabOrder = 5 + Visible = False + end end end diff --git a/components/tvplanit/source/vpimportpreview_icalevent.lrj b/components/tvplanit/source/vpimportpreview_icalevent.lrj index 8b7714334..ef1d3e42d 100644 --- a/components/tvplanit/source/vpimportpreview_icalevent.lrj +++ b/components/tvplanit/source/vpimportpreview_icalevent.lrj @@ -1,3 +1,8 @@ {"version":1,"strings":[ -{"hash":4294967295,"name":"tvpimportpreviewicaleventform.caption","sourcebytes":[],"value":""} +{"hash":4294967295,"name":"tvpimportpreviewicaleventform.caption","sourcebytes":[],"value":""}, +{"hash":75933738,"name":"tvpimportpreviewicaleventform.lblopenendduration.caption","sourcebytes":[68,117,114,97,116,105,111,110,32,111,102,32,34,111,112,101,110,32,101,110,100,34,32,101,118,101,110,116,115,58],"value":"Duration of \"open end\" events:"}, +{"hash":56783870,"name":"tvpimportpreviewicaleventform.rbopenendduration30mins.caption","sourcebytes":[51,48,32,109,105,110],"value":"30 min"}, +{"hash":53933762,"name":"tvpimportpreviewicaleventform.rbopenendduration1hr.caption","sourcebytes":[49,32,104,111,117,114],"value":"1 hour"}, +{"hash":74411171,"name":"tvpimportpreviewicaleventform.rbopenendduration2hrs.caption","sourcebytes":[50,32,104,111,117,114,115],"value":"2 hours"}, +{"hash":107965603,"name":"tvpimportpreviewicaleventform.rbopenendduration4hrs.caption","sourcebytes":[52,32,104,111,117,114,115],"value":"4 hours"} ]} diff --git a/components/tvplanit/source/vpimportpreview_icalevent.pas b/components/tvplanit/source/vpimportpreview_icalevent.pas index 772664e81..d805dea63 100644 --- a/components/tvplanit/source/vpimportpreview_icalevent.pas +++ b/components/tvplanit/source/vpimportpreview_icalevent.pas @@ -4,27 +4,43 @@ unit VpImportPreview_ICalEvent; interface -uses lazlogger, - Classes, SysUtils, Forms, Controls, Graphics, Dialogs, - VpData, VpBaseDS, VpImportPreview, VpICal, Grids; +uses + LCLVersion, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, + VpData, VpBaseDS, VpImportPreview, VpICal, Grids, StdCtrls, Spin; type { TVpImportPreviewICalEventForm } TVpImportPreviewICalEventForm = class(TVpImportPreviewForm) - procedure GridGetEditText(Sender: TObject; {%H-}ACol, {%H-}ARow: Integer; + lblOpenEndDuration: TLabel; + rbOpenEndDuration30mins: TRadioButton; + rbOpenEndDuration1Hr: TRadioButton; + rbOpenEndDuration2Hrs: TRadioButton; + rbOpenEndDuration4Hrs: TRadioButton; + procedure btnExecuteClick(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure GridGetEditText(Sender: TObject; {%H-}ACol, {%H-}ARow: Integer; var Value: string); procedure GridSetEditText(Sender: TObject; {%H-}ACol, {%H-}ARow: Integer; const Value: string); private + FActivated: Boolean; FCalendar: TVpICalendar; FDefaultCategory: String; FTimeFormat: String; function GetEventText(AEvent: TVpICalEvent): String; - procedure SetCalendar(const AValue: TVpICalendar); + {$IF LCL_FullVersion >= 3000000} + private + FCanCloseTaskDialog: Boolean; + procedure OpenEndEventsDialog; + procedure OpenendEventsDialogButtonClicked(Sender: TObject; + AModalResult: TModalResult; var ACanClose: Boolean); + procedure OpenEndEventsDialogRadioButtonClicked(Sender: TObject); + {$ENDIF} + protected function GetCellText(ACol, ARow: Integer): String; override; procedure PrepareItems; override; @@ -55,6 +71,12 @@ begin Grid.OnSetEditText := @GridSetEditText; Caption := RSImportICalEvent; + lblOpenEndDuration.Caption := RSOpenEndEventsDurationLbl; + rbOpenEndDuration30mins.Caption := RS30Minutes; + rbOpenEndDuration1Hr.Caption := RS1Hour; + rbOpenEndDuration2Hrs.Caption := RS2Hours; + rbOpenEndDuration4Hrs.Caption := RS4Hours; + FTimeFormat := 'c'; // short date + long time format end; @@ -196,6 +218,49 @@ begin Value := Grid.Columns[2].PickList[event.PickedCategory]; end; +procedure TVpImportPreviewICalEventForm.btnExecuteClick(Sender: TObject); +begin + if FCalendar.ContainsOpenEndEvents then + begin + {$IF LCL_FullVersion >= 3000000} + OpenEndEventsDialog; + {$ELSE} + if not (rbOpenEndDuration30mins.Checked or rbOpenEndDuration1Hr.Checked or + rbOpenEndDuration2Hrs.Checked or rbOpenEndDuration4Hrs.Checked) then + begin + MessageDlg(RSDurationForOpenEndEvents, mtInformation, [mbOK], 0); + ModalResult := mrNone; + exit; + end; + if rbOpenEndDuration30mins.Checked then + FCalendar.FixOpenEndEvents(0.5/24) + else if rbOpenEndDuration1Hr.Checked then + FCalendar.FixOpenEndEvents(1.0/24) + else if rbOpenEndDuration2Hrs.Checked then + FCalendar.FixOpenEndEvents(2.0/24) + else if rbOpenEndDuration4Hrs.Checked then + FCalendar.FixOpenEndEvents(4.0/24); + {$IFEND} + end; +end; + +procedure TVpImportPreviewICalEventForm.FormActivate(Sender: TObject); +var + x1: Integer = 0; + x2: Integer; +begin + if not FActivated then + begin + FActivated := true; + {$IF LCL_FullVersion < 3000000} // This part is only seen without Taskdialog + x1 := rbOpenEndDuration4Hrs.Left + rbOpenEndDuration4Hrs.Width; + {$IFEND} + x2 := ClientWidth - btnExecute.Left + btnExecute.BorderSpacing.Left; + Constraints.MinWidth := x1 + x2; + if Width < Constraints.MinWidth then Width := 0; + end; +end; + procedure TVpImportPreviewICalEventForm.GridSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string); var @@ -217,7 +282,55 @@ begin if (item <> nil) then Result := item.Checked; end; - + +{$IF LCL_FullVersion >= 3000000} +procedure TVpImportPreviewICalEventForm.OpenendEventsDialog; +const + DURATIONS: array[0..3] of Double = (0.5/24, 1.0/24, 2.0/24, 4.0/24); +var + dlg: TTaskDialog; +begin + dlg := TTaskDialog.Create(nil); + try + dlg.Caption := RSImportICalendarEvents; + dlg.Title := RSOpenEndEvents; + dlg.Text := RSDurationForOpenEndEvents; + dlg.RadioButtons.Add.Caption := RSHalfAnHour; + dlg.RadioButtons.Add.Caption := RSOneHour; + dlg.RadioButtons.Add.Caption := RSTwoHours; + dlg.RadioButtons.Add.Caption := RSFourHours; + dlg.OnButtonClicked := @OpenEndEventsDialogButtonClicked; + dlg.OnRadioButtonClicked := @OpenEndEventsDialogRadioButtonClicked; + dlg.Flags := dlg.Flags + [tfNoDefaultRadioButton]; + dlg.Execute; + if dlg.ModalResult = mrOK then + FCalendar.FixOpenEndEvents(DURATIONS[dlg.RadioButton.Index]); + finally + dlg.Free; + end; +end; + +procedure TVpImportPreviewICalEventForm.OpenendEventsDialogButtonClicked( + Sender: TObject; AModalResult: TModalResult; var ACanClose: Boolean); +var + i: Integer; +begin + if AModalResult = mrCancel then + exit; + + with TTaskDialog(Sender) do + ACanClose := FCanCloseTaskDialog; + + if not ACanClose then + MessageDlg(RSNoEventDurationSelected, mtError, [mbOK], 0); +end; + +procedure TVpImportPreviewICalEventForm.OpenEndEventsDialogRadioButtonClicked(Sender: TObject); +begin + FCanCloseTaskDialog := true; +end; +{$ENDIF} + procedure TVpImportPreviewICalEventForm.PrepareItems; var i: Integer; @@ -240,6 +353,7 @@ begin FItems.Clear; if (FCalendar <> nil) and (Datastore <> nil) then + begin for i := 0 to FCalendar.Count-1 do if (FCalendar.Entry[i] is TVpICalEvent) then begin @@ -254,7 +368,16 @@ begin else event.PickedCategory := 0; end; - + + {$IF LCL_FullVersion < 3000000} + lblOpenEndDuration.Visible := FCalendar.ContainsOpenEndEvents; + rbOpenEndDuration30mins.Visible := lblOpenEndDuration.Visible; + rbOpenEndDuration1Hr.Visible := lblOpenEndDuration.Visible; + rbOpenEndDuration2Hrs.Visible := lblOpenEndDuration.Visible; + rbOpenEndDuration4Hrs.Visible := lblOpenEndDuration.Visible; + {$IFEND} + end; + inherited; end;