Please enable JavaScript to view this site.


Navigation: Release Notes

Q++Studio Release Notes 2019

Scroll Prev Up Next More

This topic contains the release notes that document the new features, improvements and bug fixes that were included in the various releases of Q++Studio in 2019.


See also: release notes of the current year and release notes of other years.


December 31, 2019  (build 21235)




The Script Explorer's menu group that lists the data used by selected script(s) now allows for the selection of multiple scripts.

A new font report shows the detail of each font as it is used by each of the QuarkXPress documents used in each of your scripts.

Q++Studio is compatible with QuarkXPress version 2019.1.2, released in early December 2019. However, according to Quark technical support, this update is primarily concerned with problems exporting to PDF on the Macintosh, and there are no new features of bug fixes that pertain to the Windows version.

The XML representation of scripts is now complete and is now undergoing thorough testing.

Added new options to display only the top or bottom or both parts of the 23/30 and 24/31 fractions used in minicalendars, depending if a date is the current day or in the current week.




The character/font selection dialog has been redone from scratch, using the new advanced font list which will soon replace the existing font list combobox.



November 30, 2019  (build 21145)




Quark support for QuarkXPress 2016 and QuarkXPress 2017 ended on November 30, 2019. As usual, Q++Studio will aim to keep supporting older versions of QuarkXPress for many years (we are currently supporting all QuarkXPress versions, from 8 to 2019).

Q++Studio is compatible with QuarkXPress version 2019.1.1, released at the end of November 2019.

The Q++Studio TeamViewer support module is now based on TeamViewer 15.

The new search bar, located at the bottom left of the preferences dialog, lets you search for the name of, or part of the name of, any of the preferences settings, jumping to, and highlighting, the setting you select.

Added a new scriptline property to display the database ID of GridTemplates.

Q++Studio is compatible with QuarkXPress version 2018.3.4, released in mid-November 2019.

Q++Studio is compatible with QuarkXPress version 2019.1, released in early November 2019.




The justify horizontally button, of the minicalendars special tabulations dialog, can now be used for the case when all months are the same, to display the tabs justification dialog, and automatically set the tab spacing required to justify the first and last days of any MiniCalendar.

The find file dialog is now re-sizable.

Added some code to the application updater and the worldwide public holidays updater, to gracefully handle overly aggressive anti-viruses that block the saving of files in rapid succession.




The name of the specific font of the individual missing font messages, in the execution messages dialog, would disappear when grouping messages by type, and would not appear in the exported list of messages in Excel (24-nov-2019).

The frame style control of the macro resulting actions would not keep its set value (10-nov-2019).

The frame point size control of the macro resulting actions and of the box background dialog would not allow the use of decimals (10-nov-2019).

The alignment checkbox of the paragraph attributes dialog, used for macros and saras, would not allow the corresponding option to be changed (9-nov-2019).



October 31, 2019  (build 21069)




Fixed an inaccuracy in this documentation's listing of the calculation times modifiers of astronomical tokens.

Updated the help topic for step 9 of the holidays synchronization, to present a newer and easier method of adapting any new text coming from holidays synchronization, new holidays as well as new holiday names variations.

The database server now issues a message if a spurious Q:\ drive is detected on the server at start-up, and automatically shuts down.

The convert main output file to pdf menu item now lets you select a PDF Output Style, if no PDF output style has been selected for the current script.

Updated the page containing the list of QuarkXPress versions to include the recent announcement of the end-of-life dates for all QuarkXPress versions up to, and including, QuarkXPress 2019.




Under some circumstances, it was possible to click on one of the section scriptlines, whereby the displayed list of properties would be incorrect (31-oct-2019).

The QuarkXPress xtension Notes.xnt could.cause QuarkXPress to crash during complex and lengthy diary generations. Q++Studio now preemptively disables this xtension (Blueline, 26-oct-2019).

Fixed a bug in the undocumented function that allowed for the deletion of all the script lines of either the Front Pages or the Back Pages block of a Script (Letts, 17-oct-2019).

Fixed a randomly occurring error, which would display dates as blank, when using macros to override the conversion and formatting of the dates, weekdays and week numbers of a minicalendar (Letts, 16-oct-2019).

A bug-fix from July 2019, in the evaluation of zap and conditional tokens where the condition included a token with a specific DayValue, had introduced a bug in the calculation of tokens that use 0 (zero) as DayValue (Blueline, 12-oct-2019).

The backup set selection dialog has been re-engineered as some users were getting an unresponsive dialog when trying to us the restore from backup function.



September 30, 2019  (build 21033)




Q++Studio is compatible with QuarkXPress version 2019.02, released in late September 2019.

The templates explorer now displays the full list of fonts, images and style sheets used by each scanned template.

Added scriptline properties to display the internal database ID of QuarkFiles and PdfFiles.

Q++Studio is compatible with QuarkXPress version 2019.01, released in early September 2019.




New version 2.08 of the astronomical library containing: an update for current Delta T and the use of the latest IAU standard for the AU constant.

Increased the size of the text replacement buffer from 64K to 128K on QuarkXPress 2016 and above.

Adjusted the behavior of the BOXFIT token, when using QuarkXPress 2016 or above, so that the automatic pre-shrinking of the textbox, introduced last April, only occurs for step sizes of 2 points or less (to allow for the use of leading-size steps, in particular when increasing a textbox vertically to just fit the right number of lines of text).




A change of October 2018, to remove trailing tabs at the end of the month when using single-line minicalendar tabs and the :tab modifier, would miss some tabs if outside days options were turned on (Brunnen, 24-sept-2019).

The script opening error messages 110104 and 110105 would not be displayed if some, or all, of the script's scriptlines were missing (Zettler, 11-sep-2019).

If warning 110023 was ignored when manually re-inspecting a plain Quark File and a file of a different name from the one used before, was selected, and the current scriptline had either been copied from another script, or the current script came from a save as of another script, then the change of the underlying plain Quark File would also affect the original scriptline in the other script (Diarpell, 9-sept-2019).

Since the addition of layer deletion and page deletion, the option to use the nResult value of a macro to change its text color would be ignored during diary generation (Burde, 5-sep-2019).



August 31, 2019  (build 20994)




The script importation now gracefully handles missing data sets referred to in scriptline properties and identifies the script and the scriptline which will need to be looked at after the importation (Blueline, 18-aug-2019).

Added a message warning you if a file you are trying to scan in either read-only or located in a protected location.




When clicking on the Find button of the macros options property editor, to access the find macro dialog, an error message would occur if no macro was previously selected (Blueline, 26-aug-2019).

The messages 182825 and 182830, indicating that QuarkXPress has not yet fully closed, prior to scanning a template or generating a diary, would sometimes appear spuriously (5-aug-2019).



July 31, 2019  (build 20960)




Q++Studio is compatible with the new QuarkXPress 2019, officially released on July 9, 2019.

Q++Studio is compatible with QuarkXPress version 2018.32.




Expanded the help topic on DayValues inside the conditions of zap or conditional tokens.

New versions of the worldwide public holidays apps for Android or iPhone and iPad. These 2 apps have been re-written from scratch, using the native development tools for each of the Android and iOS platforms, making for lightweight and lightning fast applications.




Updated the script importation to take into account the merging of saints and saints exceptions scriptline properties, as well as the possible importation of multilevel folder sets in holidays sets, macros sets, slogans sets and script folders (Blueline, 24-july-2019).

Fixed a bug in the evaluation of zap and conditional tokens where the condition included a token with a specific DayValue (Blueline, 8-july-2019).



June 30, 2019  (build 20911)




Chris Hickey, the new Quark CEO, has announced that QuarkXPress 2019 would be released on July 9, 2019. As usual, Q++Studio will support this new version of QuarkXPress on the first day of its release (in fact, Q++Studio has been compatible, for weeks, with all the beta versions of QuarkXPress 2019).

A new scanning/inspection warning has been added for any QuarkXPress file used in a script and which uses fonts that are not currently installed on your computer.

All the advanced data grids now include new Excel-styled filter dialogs, in which the list of presets filter values can itself be filtered, and where a second tab contains a set of filters specific to the type of data of the current column.

The browser-based online version of the documentation now uses a responsive skin making it adapt to all types of screens, including mobile phones. In addition, the online documentation's full-text search now uses server-based PHP, making for faster and more flexible searching.




The help topic previews, which appear in the scanning/inspecting and diary generation messages dialogs, have been improved with the subsections headers appearing in bold.

The Windows Help and browser-based versions of the Q++Studio documentation formats have been improved with many new features, including the addition of convenient header, scroll/content and hamburger menus.

The updater now installs versions of the qpp xtension that work with both the original version of QuarkXPress 2018, and with the the later versions, beginning with the October 2018 Update 14.1.2 which used different ICU libraries, breaking any previous installations of QuarkXPress 2018. This should make the occurrence of message 182120 a thing of the past, regardless of the minor version of QuarkXPress 2018 that you are using.




The scanning/inspections warnings for missing pictures or modified pictures would not be displayed for PlainQuark Pages (21-june-2019).

Using a single-line diary generation would nonetheless include any PlaceHolder and PDF Pages script lines of the diary script being generated (JMata, 17-jun-2019).



May 31, 2019  (build 20757)




Q++Studio is compatible with the current beta version of the recently-announced QuarkXPress 2019. As usual, we expect to release a version of Q++Studio that is fully compatible with this new version of QuarkXPress, on the day it is officially released.




The dates (variable) property of insert scriptlines now also includes one-time-dates and the list of all dates dialog also displays one-time-dates.

Added a message to interrupt informatively the scanning or inspection of a Quark file, if the selected version of QuarkXPress is improperly setup, and the relevant error messages, such as messages 175665 or 175670 or 182120, for example, have not been addressed.




The remove text stroke setting was not being applied to output files (JMata, 17-may-2019).

Some SQL reserved words were not syntactically highlighted in the SQL Query Editor (14-may-2019).

Modifying saints exceptions individually would not apply any change (Blueline, 13-may-2019).

The holidays synchronization would not remove obsolete name variations from synchronized holidays (11-may-2019).

The dates generated by the dates (variable) property of insert scriptlines would be based on the range of dates of the script's main grid, and not that of the parent scriptline of the insert (Brepols, 10-may-2019).



April 30, 2019  (build 20694)




Added special cases conditions to let you specify a special case that occurs on the 1st, 2nd, 3rd, ..., of every 3 weeks, every 4 weeks or every 6 weeks, to have a color or shade pattern repeat every 3, 4, or 6 weeks, for example.

The new token, ALLOW_TEXT_BLEED, can be used to specify that the current textbox will be replaced by an image, using any one of the image tokens, and therefore that the scanning warning 179745 should be suppressed.

When importing a PDF file, using image tokens, the PDF is now imported using its MediaBox as PDF box. In addition, in the case of the use of slogans, macros and saras to change a textbox into a picture box, you can specify the use of any of the other 3 types of PDF boxes.

All the PDF-related menu items are now accessible from a new top-level PDF menu.

A new type of script line has been added, PDF Pages script lines. These work in a manner very similar to Quark Pages, and allow you to have PDF pages inserted, instead of QuarkXPress pages.




Any box containing a BOXFIT token, and which does not have text overflow initially, will now be automatically reduced in size to 3 points, to ensure text overflow, before the actual BOXFIT processing begins. This will make your layouts that use BOXFIT more legible and avoid the error message 179375 (requires QuarkXPress 2016 or above).

The bullet glyph used for bullet points in the webhelp online documentation are now larger and more visible.

The generated output files are now saved, closed and re-opened, before performing the check for text overflow, to ensure that the generated file has been fully internally updated by QuarkXPress, and that no spurious text overflow messages appear.

The p-Code Viewing Dialog now also shows the details of non-DiaryGridLines script lines, such as Place Holders, PDF Pages, and Quark Pages.

The individual pages of the script preview now display the label of Place Holders, and the file name of PDF Pages and Quark Pages, centered and wrapped on multiple lines (instead of a single, potentially truncated, line as was the case before).




Removed the spurious occurrence of message 181870 in cases where the Sara was operating on a standalone, non-linked textbox (JMata, 22-apr-2019).

An exception would be raised if the selected PDF file in the PDF selection dialog contained more than 255 pages (Blueline, 22-apr-2019).

Fixed the spurious occurrence of message 179730 which would occur if some formatting was to be applied to all tokens, regardless of their type, such as in setting some formatting for outside days in the monthly outside days section of Grid Options, but when the token is one of the image tokens whose text will be ignored as the textbox is changed to a picture box (JMata, 20-apr-2019) .

Log messages of Saras which used a regular expression which only changed the text format would show the regular expression as the changed string instead of stating that only the text format had changed (JMata, 16-apr-2019).

If some of the Quark files used in a script had disabled layers, created PDF Pages could accidentally be created on those layers and therefore be deleted at the end of diary generation (JMata, 16-apr-2019).

Any very large single Xtags instruction (over 4096 bytes) could cause QuarkXPress to abort diary generation (Brunnen, 11-apr-2019).

The conversion of the week number tokens, using the option to move the position of the week number based on other events, could get confused if the events string contained specific holidays sets modifiers, such as u2,thinking that this meant that the corresponding weekday, Tuesdays in this example, should be skipped. (Zettler, 10-apr-2019).

The error message displayed in the macro interruption dialog would, under certain circumstances, be stripped of its most important information, leaving a generic error message (Brepols, 5-apr-2019).

If the result string of a holidays response token contained one or more tokens, which themselves contained a colon, such as specific holidays sets modifiers, then that colon would be mistaken as the beginning of a duration suffix (Zettler, 4-apr-2019).



March 31, 2019  (build 20545)




Added 2 new tokens [pIns+] and [pIns-] which can be used, in the context of insertions, to determine where a page stands with respect to an insertion block.

Added a find macro button to the selected macro tab of the macros options, to search for, and select, a macro anywhere in the database, based on the macro's name and/or any text in the source code.

Added a button in the templates explorer to list all the scripts that use a given template.

The new database query module allows you to perform SQL queries against all the data tables of the current database, and it comes with a visual query builder to create SQL scripts visually.

Over the past 4 months, all the chapters and topics of the help and documentation have been fully revised, with updated and expanded text, and all new screenshots, based on the latest version of Q++Studio running under Windows 10 (over 2200 topics and 1300 images).




Added code to slow down the importation of large plain Quark files (files of over 20 pages), to allow any anti-virus to catch-up with the importation process, and the creation and deletion of temporary files (although this should not be necessary, if your anti-virus and firewall are setup as specified here).

Page deletion, using zap tokens, conditional tokens, macros and saras, is now done in memory in Q++Studio, rather than using QuarkXPress, avoiding some of the issues with objects bleeding off the page, when QuarkXPress would re-flow the pages, and mistake some bleeding objects as belonging to the wrong page. Of course, the keep deleted pages generation option remains available for testing.

A dialog with the statistics of the current data purge now appears, at the end, when purging unused data.

Added a clone of the data reports sub-menu to the admin menu.

Added a clone of the data used by the current script sub-menu to the script menu and to the admin menu.

The find and change fields of the saras definition window now use a fixed font to make these 2 strings easier to read, in particular when using regular expressions.

Added a space after bullets point bullets in the help preview of the diary generation messages dialog.

Added code to prevent trying to scan or generate if some files are missing from your QuarkXPress installation.

Improved the layout of the log generated by the worldwide public holidays updater.




Fixed a bug that would neglect the number of days per template in the calculation of the start and end date, when inserting a daily grid (Blueline, 27-mar-2019).

The holiday copied back from the holiday rule wizard would not have the ID of the incoming holiday rule, leading to an assertion error when trying to save that holiday (20-mar-2019).

The updater now pro-actively replaces missing DLL files in the QuarkXPress 2018 installation folder due to a problem in the 2018.21 upgrader (19-mar-2019).

Added code to gracefully handle failed connections to the FTP server (19-mar-2019).

Removed a stray check, that the application server was running on the database server, for WAN users connecting via the internet (Brunnen, 18-mar-2019).

Fixed a bug in the saving of the backup purging settings of the server settings, whereby the weekdays, and first/last of the month, settings would not be saved, and would always revert to their defaults (Lecas, 12-mar-2019).

The box keep and box delete variants of minicalendar text framing and shading would not apply to more than one spread of a diary which repeated the minicalendar spread more than once (Burde, 4-mar-2019).

Fixed a bug which would affect the not the first variants of the include/exclude matches setting of Saras.  (1-mar-2019).



February 28, 2019  (build 20339)




Optimized the compilation and linking of the main executable, reducing its size by over 55%.

Messages from the LogMessage macro function were being displayed as errors in the diary generation messages dialog.

Fixed a few UI glitches of text controls not being aligned with each other, in particular in the holidays recurrence rules.




Tokens using DayValues of 0 would be mistaken for tokens of weekly grids inserted in a monthly grid (28-feb-2019).

The tooltip variable evaluation of the macro debugger would not find the correct variable under the mouse cursor, for long lines, and if you changed the size and font used to display macros (27-feb-2019).

Block indenting in the macros editor would add a spurious tab character at the front of the last line (27-feb-2019).

If a holiday used in a conflict rule was subsequently ignored, then the warning message 173490 would be properly triggered, but the interface of the holidays manager would not identify the conflict rule as being broken (26-feb-2019).

The secondary indices of multiple index macro tokens, used in the text on left or text on right fields of multiple holidays options or moon phases display options, would not be identified and listed in the macros property editor (Lecas, 25-feb-2019)

Some of the color listboxes would not display a hint with the name of the missing/unknown color (19-feb-2019).

Calling the macro functions Assert and RaiseError with the parameter bAbortScript set to true would not abort the script; it would just keep logging the errors until the end of the script (12-feb-2019).

When re-opening the breakpoint editor of the macros debugger, the previously-selected variable would no longer be selected (9-feb-2019).

Fixed a couple of UI glitches in the macros editor. When pressing F3 in the macros editor, an unfiltered list of functions would be displayed, instead of one limited to function of the right type, and the parameter list of void functions would be truncated (9-feb-2019).

Fixed a rare bug which would occur when using the tab character insertion minicalendar modifier, with a split minicalendar whose first half did not have trailing empty positions (JMata, 7-feb-2019).

Fixed a bug in the SaraSets Manager which would prevent the loading of a Saras Set if that set had initially been saved and closed without any Saras in it (Alpha Edition, 6-feb-2019).

Fixed a bug in the find saints and namedays dialog which would raise an error if some orphan saints were in the list of found results (6-feb-2019).

Fixed a bug in the find slogan dialog whereby the specific slogan selected in the list of results would not be selected in the slogans manager if the type of slogan set was month and day (6-feb-2019).



January 31, 2019  (build 20151)




Q++Studio is compatible with the January 2019 Update 14.2.1 of QuarkXPress 2018.

In the holidays manager, you can now go back or forward in the history of your selection of holidays sets, as you would, for example in a web browser.




Improved the usability of the specific dates property editor (drag and drop to add or remove a date and double-click on a date to add it to the list of fixed dates).

The popup hints displaying the details of a change in the holidays changes logs have been redesigned to better show the from and to changes on separate lines.

The user interface of the slogan rules property editor has been fully re-designed.

The diary generation status dialog now displays the progress of page deletion due either to zap tokens, conditional tokens, macros or saras. This avoids, for scripts that use page deletion, the delay between the end of text overflow checking and the shutting down of QuarkXPress.

In the holidays manager, the sample dates for the current year and the year after are now better highlighted.




Added code to force QuarkXPress to always insert pages of non-facing pages output files on a new spread (Grieg, 30-jan-2019).

The vertical guides of the Quark files used in a script were being applied incorrectly in the output file when the incoming template pages were facing each other or had odd layouts, such as 2 facing pages to the right of the spine and nothing on the left of the spine (Zettler, 28-jan-2019).

Added code to gracefully recover when encountering a corrupted bitmap or PNG preview of a Template or set of Quark Pages (Blueline, 15-jan-2019).

Some dialogs would straddle 2 screens on dual-monitor systems (10-jan-2019).

Fixed a dates array whose memory was nor being fully re-initialized each time a GridTemplate was being re-scanned, causing ghost dates to be used in insertion rules, in some extremely rare cases of removing dayvalue marker tokens from a template into which another template was being inserted, and which contained no tokens on any page other then the first (Nippecraft, 8-jan-2019).

Fixed a small memory leak that would occur when changing the list of the exceptions of a recurring holiday (5-jan-2019).

Fixed an extremely rare exception that could occur after re-scanning a template, due to a partially initialized array (4-jan-2019).


Other Years


See also: release notes of the current year and release notes of other years.



Topic 182635, last updated on 09-Sep-2023