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 2002.
December 2, 2002 (build 9680)
| • | Reorganized the order of the menu items in the Script Editor's popup menu to place the most often used commands first. |
| • | The Holidays Rule Wizard has been improved in 2 ways. First, the new date editors allow you to modify only parts of the date without the need to open up the drop-down calendar. Secondly, Q++ now remebers the year of any recurrence rule imported from Excel and will propose this unique date, pre-selected, when you open the holidays rule wizard. |
| • | The concept of Holiday Duration has been extended to all the types of holidays. This is useful for Chinese, Muslim and Hindu holidays that often last for more than one day. |
| • | Holidays Generation now automatically starts after 10 seconds (the countdown is stopped if you change any of the controls' values). This is convenient as many users (myself included) have a tendency to click YES when asked if holidays should be re-generated, but then turn to something else and notice later that the holidays generation dialog is still waiting for him/her to click on the Generate button. |
| • | Improved the messages generated if Q++ finds mismatched braces in a QuarkXPress file that it is scanning. Also, these messages do not prevent you from generating a diary anymore. This means that you can find the mismatched braces more easily by looking at the output file. |
| • | Fixed a glitch in the user interface whereby a message that X pages were undefined was erroneously diaplayed (but the diary previewed and generated fine). |
| • | Fixed a glitch in the displaying of Sample Dates for arbitrary and range recurring holidays; the sample dates were not being updated immediately when a change was made, it was only updated when you saved the modified holiday. |
November 20, 2002 (build 9655)
| • | Added a new minicalendar option : always use week number of following Monday. This option is useful for minicalendars whose week starts on Saturdays or Sundays, to determine which week number to display when the last day of the month is a Saturday or Sunday. |
| • | The dialogs to copy recurring holidays and one-time-dates into a holidays set have been improved : the selection is more intuitive and now, even if you are displaying holidays from different sets, each with a different Display Font, each holiday is still displayed in the proper font. |
| • | You can now search for Holidays Sets and Holidays Rules within the Holidays Manager. |
| • | New version of the macros compiler now uses shortcut boolean evaluation. This allows the macros interpreter to only partially evaluate a boolean expression as soon as it notices that the condition would be true or false regardless of the rest of the expression. In complex macros this is quite a time-saver. |
| • | Fixed a bug in the macros compiler that would, in extremely rare cases, generate incomplete code if an integer condition was used inside a while loopand the condition was split over more than one line of source code and the first line only contained a reference to a variable or litteral. |
| • | Fixed a bug in the macro implementation of the in operator that would not properly compare strings if one of these strings contained invisible characters. |
| • | Fixed a problem when copying text, via the clipboard, from MS-Word to the either the Holidays Manager or the Slogans Manager. Some of the original text's attributes would remain (particularly the font name) in the holiday name. |
October 28, 2002 (build 9581)
| • | If you are calling the Holidays Rules Wizard when a fixed date holiday is selected, then the Wizard's actual dates will automatically be filled with these dates for years ranging from Y-4 to Y+1. You can then clear the dates that do not apply. This is useful if you have imported holidays from excel and need to set rules for these holidays. |
| • | Added code to clearly identify bogus (non-existent) dates of the Hindu lunar calendar, such as Asvina 2 in 2004). |
| • | A new field, comments, has been added to Holidays Sets. This allow you to record any specifics for the holidays of a country or set in general. This field can be edited in the Holidays Set Properties dialog and also in the Holidays Manager. This field is also displayed when exporting to Excel. |
| • | Fixed a glitch in the user interface whereby the holiday name would be squashed by the use of the Guess Holiday Rule feature, if the holiday had not been saved yet. |
| • | Fixed a glitch in the Holidays Manager's user interface, whereby holidays that had specific Validity rules would display spurious sample dates. Also, sometimes the sample dates for new holidays would refer to the previous rule, until you has made at least one change in the new holiday rule. |
| • | Fixed a bug whereby the action resulting from clicking on some of the buttons of the execution status dialog would be reversed (only if the script was using Sections). |
October 14, 2002 (build 9538)
| • | There is a new Recurring Holidays option : Exceptions to Rule. This is used for cases where the recurrence rule is known, but where there are some exceptions that are either not predictable, or too hard to put into rule. An example would be : first Monday in January, except in 2005 when it happens on January 20th. |
| • | The length of the MonthHeader tokens replacement text is no longer limited. This is the first step towards allowing for formatting (bold, italic, ...) of that replacement text, which should be ready in late November. |
| • | The Q++ Updater now warns you if you try to use an updater that contains an older version of Q++ than the one currently installed (this is only a warning). |
| • | Added code to warn you if you are attempting to calculate a bogus Jewish date, such as Kishlev 30 in 2004. |
| • | When using the Guess Holiday Rule wizard, some of the less common options would be set to non-default settings; in particular, the conflict holiday ID would be set to a non-zero value. This did not have any adverse effect on the rule, since the conflict was set to "do nothing", but it did look weird. This has now been fixed. |
| • | Fixed a glitch in the user interface whereby the design-time messages "No Template Selected" would appear in the reverse order of the appearance of the DiaryGridLines in the Script Editor. This did not have any adverse effect, but was slightly confusing. |
September 30, 2002 (build 9511)
| • | When using the Find feature of the Scripts Explorer or Templates Explorer, you can now launch the search by pressing the enter/return key (previously, the only way to launch the search was to click on the button). The Find Again function can now be launched using the standard Windows shortcut : F3. |
| • | The Macros Options property editor has been improved. The listbox that displays the macro tokens for each index, and the listbox that displays the macros contained in each Macros Set now display a popup hint if the text under your mouse cursor is too wide for the listbox's width. |
| • | Added the possibility of specifying, in the Preferences, whether names that Q++ propose for a new script should contain a reference to the languagesused. This is useful to avoid overly lengthy script names and output filenames. |
| • | The open and save dialogs for QuarkXPress files have been improved : the file system is now dsplayed in a treeview on the left, and the files are now listed with details such as date last modified and file size. |
| • | The Output FileName property has been moved to the BookFormat ScriptLine. This seemed a more logical and convenient place to have it. |
| • | Added an EAN token that lets you include year references to an EAN bar-code. Q++ then automatically calculates the last control digit. |
| • | Added a new token [m#] to display the number of days in the current token's month. |
| • | Fixed a bug whereby using the plain button in the editor of a Holiday Name would not remove the persistent color and font name/size attributes (it worked fine in the RTF editor though). |
September 16, 2002 (build 9484)
| • | You can now display and sort holidays abbreviations when exporting holidays to Excel. Also, when exporting holidays for a range of years, Q++ automatically proposes a range of years that corresponds to the range of years for which holidays were last generated. |
| • | You can now specify that only a certain number of Saints should be displayed. This allows you to make diaries that contain different subsets of saints, yet that all use the same Saints Set. |
| • | In the Technical Support dialog, you can now add files that you select at the same time that you are asking Q++ to automatically select which files and data tables to send. Also, the current script name is automatically entered into the email message title by default. |
| • | The popup menu in the Scripts Editor now only appears for ScriptLine that have options that can be accessed from the popup menu. |
| • | Fixed an error in the script verification that sometimes triggered message 172790, even though no holidays were used anywhere in the script. |
| • | Reduced by a factor of 2 the time that Q++ waits for another user to finish launching, before asking you if you want to abort or keep on waiting. |
| • | Fixed some minor glitches in the recurring holidays tab of the Holidays Manager user interface : the full RTF editor button remained disabled if you were in a holidays set that contained no holidays, even after you had added one or more holidays, and when you created a new holiday, by default the conflict holiday of the currently selected holiday was proposed to you. |
| • | Fixed a bug whereby the min/max sizes of a script were not immediately updated after deleting a scriptline that had a size component. |
September 2, 2002 (build 9458)
| • | There are now many new options on how to display Holidays Abbreviations and Holidays Symbols. In particular, a new Filter option lets you generate many different diaries, displaying for each diary a different set of abbreviations or symbols, in the order you wish ... and all that from one master holidays set, without the need to fiddle with the holidays' priorities. |
| • | The Holidays Concatenator also has many more concatenation options, in particular for Holiday Names and Holidays Symbols. |
| • | The Export Holidays to Excel has been improved. Columns for the Priority and Abbreviation have been added to the Excel sheet, whenever appropriate. Also, the order of the columns in the resulting Excel file has been modified to make it easier to use as a proof-reading aid. |
| • | The property Strip Style Sheets, now allows you to generate a diary whose output file contains no reference to Style Sheets. This is useful when generating diaries that contain more than one GridTemplate or QxdFile, having conflicting Style Sheets definitions. |
August 22, 2002 (build 9413)
| • | Added a series of Capitalization Options to the properties of Languages. In particular, you can now use Capitalization Tables to specify how capitalization occurs. This is useful for fonts that do not correctly map lowercase and uppercase letters (many East European fonts on the market) or to apply special effects to fonts (see the example in the above link). Also, now when you create a new language, the new language now automatically uses its parent's Capitalization Options. |
| • | Q++ now warns you if you are using a Holidays Set containing arbitrary dates recurrence rules which has no dates specified for some of the years covered by the DiaryGridLines of the current script. |
| • | You can now use holidays tokens (such as [fâ]) in the left/right text surrounding holiday of the Holidays (Multiple) display property. |
| • | The QxdPages ScriptLine has a new property : Times Repeated. This property is useful, for example, if you wish to insert 10 notes pages at the back of a diary. Rather than creating a 10-page QuarkXPress file, you can just create a 2-page file and use the present property with a value of 5 to obtain the 10 necessary pages. |
| • | A new option Feast lasts X days has been added to Muslim Holidays Rules. This is useful as many Muslim countries celebrate the Eids over 2, 3 or even 4 days. |
| • | The Templates table now contains an additional field User Comments which lets you place comments on any tricks or techniques you used to code the corresponding GridTemplate. |
August 12, 2002 (build 9392)
| • | New powerful type of token : Conditional Tokens. Conditional tokens let you test a condition, and replace the token by different text (even a token) depending on whether the condition is true or false. This is a more general case of zap tokens, that allow you to act on both true and false cases. |
| • | Added the possibility, in Holidays Display Options, of specifying a separator to use between holidays abbreviations, and whether these should be sorted alphabetically. |
| • | A right-click on the Scripts Editor now selects the corresponding ScriptLine and displays the popup menu at the same time. Previously you had to left-click on a ScriptLine to select it, and then right-click on it to display the popup menu. |
| • | The Q++ Main Widow is now resizeable. This is useful for users whose screen resolution is set at 1280 by 1024, when working with long scripts. |
| • | Increased the maximum text that can be entered in the MonthHeader options, from 40 characters to 75 characters. The editor is also more convenient to work with. |
| • | Added code to prevent tokens being recursively replaced by themselves, causing an infinite loop that would make a workstation look like it froze. This was already made very rare by a series of run-time checks, but now it should protect you from yourself in almost any case. |
| • | Fixed a glitch in the Saras editor's interface, which did not update the font used in the search or replace text, even if you selected the "use above" option. |
| • | Fixed a series of spurious messages that sometimes occurred when converting conditional holidays tokens, if one of the holidays contained formatting (such as bold, italic, ...). The output was always correct but all these spurious messages made it hard to see the other, more relevant, messages. |
July 15, 2002 (build 9331)
| • | A lot of work has been done (again!) to try to resolve the more complex insertion cases. The following cases should now work correctly in all cases : inserting an odd number of pages before the very first page of a grid, inserting an odd number of pages with the options Insert Before and Ignore Sides, particularly with splittable grids (such as all dailies and 2w/2p). |
| • | You can now generate single ScriptLines. This is a convenient way to only test one of the DiaryGridLines or to only re-generate pages of one of the GridTemplates, if all other pages have already been proofread. |
| • | Added more minicalendar modifiers to test for 28, 29 or 30 day months. This modifier is usually used in one-line minicalendars, to have the start and finish of every month aligned to the left and right edges of a textbox. |
| • | Improved the Holidays and Slogans Data Pump. You can now copy entire sets including their attributes (display font, default symbols, ...). |
| • | Added a Preferences option to disable the automatic updating of QuarkXPress Preferences every time a diary was generated. This is useful if you are having problems with conflicting style sheets in diaries that contain more than 1 GridTemplate. |
| • | The Data Pump now remembers the last folders used for import and export. |
| • | Added a warning if you change the year of a script and keep an output file name that refers to another year. This is useful to prevent you from overwriting last year's output with this year's. |
| • | Fixed a bug whereby inserts would not appear in the Script preview the second time you previewed a script, without verifying, executing or saving that script first. This bug did not affect the diary generated. |
| • | Fixed a bug which caused the pages that follow an insert to be of the wrong sidedness. This only occurred if the number of pages inserted was odd and if the grid contained an even number of weeks. |
July 1, 2002 (build 9276)
| • | Added a new feature to the Grid Options property; the Month Headers property lets you specify in each script what should happen to the month headers if there is a change of month and/or year across the page or the 2 pages of a grid. This feature also works with non-Gregorian calendars such as Chinese, Muslim and Jewish. |
| • | The interface to the Holidays Manager and Slogans Manager has been greatly improved with the addition of keyboard shortcuts that allow you to add, delete, modify and save holidays, one-time-dates and slogans without the need to move the mouse around. Place your mouse over these buttons to find out what the corresponding keyboard shortcut is. |
| • | The interface of both the Moon Phases Manager and the Muslim Calendars Manager has been redone from scratch. Their interface had been bothering me for a long time and I finally had time to revamp them. Note that you can now also create a new Moon Set from within the Moon Phases Manager. |
| • | The display of aeiou-Holidays in the Properties Inspector has been improved. Previously, the inspector only displayed the Holidays Set numerical ID. Now, the full name of the Holidays set is displayed, and if more than one is selected, then they appear each on a separate line in the hint window that pops up when your mouse cursor is placed over that property. |
| • | Added a new macro system variable : nResult. This allows you to specify different numerical values used in resulting actions based on the execution of a macro. For example, inside a macro, you could calculate that nResult is either 15 or 30, and then use that value as the percentage to use to shade the textbox accordingly. For the moment no specific actions are available, but we will be adding them as the need arises. |
June 17, 2002 (build 9246)
| • | You can now immediately select the most recently scanned GridTemplate after scanning a new Template. |
| • | Improved the interface of the Moon Phases Manager, in particular the listing of phases on the right side. |
| • | The preview in the Minicalendar property editor now reflects your selection the the "all minicals" option immediately (previously you had to save your changes and reopen the editor). |
| • | Improved the speed at which you can change from one folder to another in the Scripts Explorer. |
| • | Added a column containing the type of grid (daily, weekly, ...) of the main grid of each script in the Scripts Explorer, and the Open Script dialogs. |
| • | The Macros Editor now correctly determines if a macro has been modified, and only asks you if changes should be saved when there are actual changes to be saved. |
| • | Fixed a minor bug in the Holidays Manager, whereby fixed holidays would sometimes appear in the wrong place in the list of Holidays Rules (but the calculated date was correct always ;-). |
| • | Fixed a display bug in the Macros Editor, whereby syntax highlighting would not function for any 2 elements separated by a "+" (plus sign) with no spaces in between. |
| • | Fixed many minor glitches in the interface, particularly when using the new technical support module. |
June 3, 2002 (build 9223)
| • | Fixed a bug whereby dates of the following month would not be formatted as requested using the all dates of spread minicalendar option, in the case of a daily diary with the left page referring to a given month, and the right page to the following month. |
| • | Added the possibility of copying and moving ScriptLines using drag and drop inside the Script Editor. Very cool ! Check it out. |
| • | For those of you that cannot have access to a mirroring site overnight, you can now trigger the mirroring part of the backup manually, from the Admin menu. |
| • | Improved the technical support module. The data now being sent to technical support contains all the templates and data your script is using, so technical support can reopen your script, just the way it is on your PC, immediately. |
| • | Fixed a bug in the displaying of the [chm] and [chmm] tokens (Chinese months) when the month is a leap month. |
May 13, 2002 (build 9196)
| • | Holidays Generation has been optimized and now takes about 50% of the time it previously required. |
| • | Improved the accuracy of the occurrences of inserts, in particular when inserts contain 2 pages. If the above is not enough, a new property Ignore Sidedness allows you to place insertsexactly as you wish, without regards for the insert starting on the left page or right page. This is useful for complex grids with multiple inserts where you want to control yourself how inserts are placed. |
| • | Q++ is now aware of QuarkXPress crashes and offers immediate options to respond to these crashes. |
| • | Fixed a bug in the previewing of one-line minicalendars that started on the week that contains the first of the month (not the most common case). |
| • | Fixed a bug in the appearance of the first grid in the case on monthly grids over 2 pages, whose GridTemplate start on the right side. |
| • | Fixed a bug in the importation of formatted holidays or Slogans. |
April 24, 2002
This update is all about colors.
| • | After a lot of devious hacking, we managed to get around the QuarkXPress bug which sometimes prevents it from recognizing an existing color. The message cannot add new color should now be a thing of the past, as long as you use one of the GridTemplates' Template Colors. |
| • | Also found a workaround the strange phenomenon which sometimes occurred whereby a color used would display and print correctly in QuarkXPress, but if you selected the object, QuarkXPress would tell you its color was "none". |
| • | Also, if you define copy colors (ie. duplicates of cyan-magenta-yellow-black) Q++ will now select the duplicate color, nad not the base color as was the case before. |
April 16, 2002
| • | Added a new Date Offset Marker for Minicalendars : current week offset. This lets you shift the minicalendar by a given number of weeks with respect to the current week (for example, to center the current week). |
| • | Added a new style to the Rich-Text editor : superior. The editor now supports all the styles available in QuarkXPress (except for superscript and subscript which do not seem to be used by any of you). |
| • | You can now set font sizes in increments of 0.1 points in the rich-text editor. |
| • | Improved the range of available solutions for the message that appears when a GridTemplate refers to an aeiouHolidays list, but that list contains no reference to any Holidays Sets. |
| • | Fixed a bug in the Rich-Text editor, where the attributes of the last character of some fomatted text would be ignored if only the last character had this formatting. |
April 8, 2002
| • | I noted that many of you often ignore design-time warnings, probably because there are too many (I know I also do it). So, I spent Easter weekend overhauling the classification of design-time messages into the 3 categories : error, warning and hint. The result is that many messages which were previously warnings are now only hints. This should make it easier to address the warnings that are potentially essential. |
| • | You can now have range of dates holidays rules that last only 1 day (previously, the end date had to occur later than the start date). |
| • | Started a new chapter called Getting Started which guides you through the basics of diary generation with Q++. This is not meant to replace the on-site training, but rather to serve as a refresher on occasions when you need some recall of the basics (like after coming back from holidays ;-). Currently it only covers the very basics, but my goal is to make it a rather large chapter covering all the basic and intermediate topics, the remainder of the documentation remaining for reference. |
| • | Fixed a bug in the rich-text formatting of holidays, one-time-dates and slogans, whereby any attribute that followed a carriage return (soft or hard) was ignored. |
| • | Fixed a bug in the macro compiler whereby a series of subtractions would be evaluated improperly (only the first 2 operands would be taken into account). |
| • | Fixed a display glitch in the Scripts Preview where the bottom displayed date of "1 month on 2 pages" diaries would display the previous month date, if there were no [d] tokens on the page, and you only used one [1*] DayValue Marker token for the entire right page. |
| • | Fixed a bug in the Concatenator's user interface which caused an error when trying to display a holidays which involved a non-default color. |
March 29, 2002
| • | Improved the interface of the Holidays Generation dialog. The default button when the dialog opens is the Generate button (so you can just press the Enter key). There is also an option to close the dialog automatically when generation is finished. |
| • | Added a new minicalendar modifier : Number of Weeks in Month. This allows you to display minicalendars with different leading to compensate for the fact that minicalendar months can have 4, 5 or 6 partial weeks. |
March 22, 2002
| • | Added batch conversion of Saints and Namedays, allowing you to make an entire list of Saints or Namedays all uppercase or all lowercase. |
| • | Added a new way of dealing with 5 week minicalendars : wrap to top. This places the 30 or 31 that occur on the 6th week back to the line containing the first week. This option also works with vertical and right-to-left date flow. |
| • | Added the possibility of defining the Flow Direction of a diary. Using the Back-to-Front setting allows you to produce diaries which read from the last page to the first for the Arabic and Hebrew languages. |
| • | Fixed a rare bug in the page sequence generation which occurred with GridTemplates, starting on the left page and containing an odd number of pages (for example a 12 months on 3 pages). |
| • | Fixed a rare bug where the insertion of a single page grid into a 2 days on 2 pages grid after the date, caused that date to be skipped, if the insertion occurred on the right side. |
| • | Fixed a rare bug whereby the weeknumber displayed in a minicalendar would refer to the Sunday, in a minicalendar where the weekstarts on Sundays and the current month ends on a Tuesday, and the setting use following Monday week number is used. |
March 4, 2002
| • | You can now specify how some weekdays are formatted in single-line minicalendars. For example, Sundays can be displayed in a different font size. |
| • | Improved the minical preview by drawing attention to elements of the minical which could not be previewed accurately and displaying the full list of attributes that are used. |
| • | A new GridOption setting lets you specify, for each DiaryGridLine, how many characters to use for day abbreviations. This means that grids which only use the first or first 2 characters of the [ddd] token's result are now much easier to code. |
| • | The interface of the Saras Manager now validates the values entered as you type, and not only when you try to save a Sara. |
February 25, 2002
| • | You can now import Saints and |