Please enable JavaScript to view this site.


Navigation: » No topics above this level «

What's New in Q++Studio ?

This file is based on the XV4 64-bit Build 20846 of 21-jun-2019.

Scroll Prev Top Next More


June 21, 2019 (build 20846)




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 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 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 Quark 2018 that you are using.




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

Using a single-line diary generation would nonetheless include any PlaceHolder and PDFpages ScriptLines 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 bounding 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 bounding boxes.

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

A new type of ScriptLine has been added, PDFpages ScriptLines. These work in a manner very similar to QuarkPages, 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 Quark 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 ScriptLines, such as PlaceHolders, PDFpages, and QuarkPages.

The individual pages of the script preview now display the label of PlaceHolders, and the file name of PDFpages and QuarkPages, 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 PDFpages 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 Saras Sets 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 Quark 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 QuarkPages (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).



See also: previous release notes.