version: #1 (current)  |  last edited by: Mike Ho  |  on: monday, july 18, 2011, 8:11 am pdt (about 7 years ago)

Qcodo Changelog (Archive)
Managed by Quasidea Development, LLC

This wiki archive contains changelog items prior to v0.4.10.  For current, the up-to-date changelog, please View the Current Changelog

Qcodo v0.4.10

Released 2009-12-23

  • Fix for issue #39, typo in exception message
  • Packaging for 0.4.10 stable release

Qcodo v0.4.9

Released 2009-12-07

  • Corrected RTF Mime Type in QMimeType (Fernando Lord)
  • Fix in QFileAssetBase for uploading after deleting an uploaded file (mikeangelo)
  • Added Google Chrome compatibility in QDialogBoxBase
  • Fixed controlModifications javascript for better Prototype (and other JS Framework) support
  • Added Virtual Directory support to QFileAssetDialog
  • Removed unused code branches in QDateTime
  • Minor HTML fixes in qcodo utility pages
  • Added public setter/getter properties to QQLimitInfo
  • Fixed invalid HTML generation for stylized list items
  • Cleaned up DirectoriesToExclude implementation in QCodeGenBase (Marcos)

Qcodo v0.4.8

Released 2009-11-24

  • Fix to content-length header item in QEmailServer (Marcos Sanchez)
  • Marked codebase as stable

Qcodo v0.4.7

Released 2009-11-22

  • Typos and fixes in profile.php and QString class as reported in comments from github
  • Added some additional PHP 5.3 keywords as reserved words in codegen (Marcos Sanchez)
  • Cleaned up ignore javascript capability
  • Fixed qcodo error handler to obey PHP error reporting settings
  • Fixed a js packer issue
  • added additional browser detection and constants (Chrome, IE 8, Firefox 3 and 3.5, Safari 4)
    (Note that this simply adds browser detection -- Google Chrome is not yet officially supported)

Qcodo v0.4.6

Released 2009-11-19

  • Fixed a QDataGrid bug to have correct, unique DOM IDs for each TH cell
  • Refactored form registration javascript code to add a bit more flexibility for future functionality
  • Refactored JS Ajax handlers for better reusability
  • Small CSS fixes to RenderWithName
  • Fix for issue #30, adding SetCustomAttribute() capability to QFormBase
  • Fix for Issue #25, cleanup of QQAssoviationNode constructor
  • Added additional browser detection and constnats

Qcodo v0.4.5

Released 2009-11-14

  • Fixed a bug for apache mod_rewrite compatibility
  • Fixed an issue with over-aggressive control refreshing by qformbase
  • Added i18n support to qtreenav (Issue #29)
  • HTML cleanup on error dump page (Issue #23)
  • HTML cleanup on db profile page (Issue #21)
  • Removed deprecated split() calls for PHP 5.3 compatibility (Issue #20)

Qcodo v0.4.4

Released 2009-11-03

  • Fixed proper htmlentities use in QImageRollover (Issue #24)
  • Improved external framework compatibility with autoload implementation (Issue #27)
  • Removed QPM dependency on fileinode for better Windows compatibility (Issue #22)
  • Shortened multipart boundary marker for better email MTA compatibility
  • Fix to QCalendar in javascript positioning when used within a relatively-positioned parent div or dialog

Qcodo v0.4.3

Released 2009-10-25

  • Added README to manifest directory
  • Updates to QPM client tools for better realtime reporting of status
  • Fixed QApplicationBase to allow for standard CLI capability (e.g. ability to run scripts outside of the Qcodo CLI Runner Wrapper)
  • Fixed QSoapService and E_STRICT compatibility
  • Fixed QDateTime for PHP 5.3 compatibility
  • Updated QDataGrid for unique ID-ing of all rows and cells
  • Updated QDataGrid consolidating/refactoring ItemOffset

Qcodo v0.4.2

Released 2009-10-20

  • Improved FK parsing and handling in DBCodeGen class
  • Reorganized error handling, adding new QErrorHandler class and removing error_page.php
  • Cleaned up error-related constants and documentation in and -dist to more clearly explain how to set up error logging and how to display a “friendly” error page instead of the development Qcodo Error Dump screen
  • Cleaned up php assets _core directory, removing any and all files that are not truly needing to be web accessible -- those files were moved to a new assets directory in qcodo _core
  • Implemented new QErrorLogViewer class
  • Repacked the js-related code into a 0.4.2 version of the _qc_packed.js file

Qcodo v0.4.1

Released 2009-10-19

  • Fix to QPM download manager to create missing folders before attempting to save
  • Fix to QUpdateUtility with correct path to manifest.xml file
  • Added correct list of IgnoreFile items on QPM upload manager

Qcodo v0.4.0

Released 2009-10-19

  • Migrated from CVS to the Qcodo GIT repository at
  • Implemented Qcodo Package Manager (QPM) client tools; qpm-upload and qpm-download
  • Re-organized file/folder hierarchy
  • Implemented new CLI architecture, including CLI Runner Wrapper tools qcodo (for POSIX-compatible systems) and qcodo.bat (for Windows-based systems)
  • Implemented new QCliParameterProcessor to aid CLI command processing/parsing
  • Removed Examples and web-based DevTools, these will be eventually moved to their own QPM packages
  • Updated documentation with regards to updated folder structure and CLI approach
  • Rearchitected to minimize user changes in that file, and moved most code to a new QApplication.class.php which is now intended to be customized
  • Added friendly error messages when qcodo is not installed properly
  • Changed codegen CLI to default to cli/settings/codegen.xml as the path for its codegen settings XML file
  • Implemented auto_includes, called by QApplication::Initialize() to automatically call/include any user-defined files
  • Refactored QApplicationBase so that most methods are now < 20 lines and each can be easily overridden
  • Fix to QDialogBox for proper handling when dbox's parent is hidden
  • Fixed QControl::EndScript() to properly render children JS calls when child controls are rendered in HtmlAfter
  • Added “LastPage” construct to QPaginatedControl
  • Fix to QImageControl to NOT process the image when the image is hidden or not visible, improving performance
  • Added Url “Hash” processing capability to QForm and processing on both Ajax- and Server- calls
  • Updated MIME type handling to include OOXML, Office 2008+ formats
  • Added JS functionality for page title updating
  • Added proper HTML escaping to QControl for tooltips
  • Fixed QCalendar to not allow multiple calendars to popup at the same time
  • Added “smart” strpos and strrpos-type of functionality to QString that supports optional regexp
  • Fix QDialogBox errors on resize in js
  • Added Email address obfuscator to QString
  • Added better Timezone support and Timezone output options in QDateTime
  • Fix to QFileAsset to allow for re-uploading of file after deleting without needing to refresh the page
  • Fixed QEmailServer with proper CRLF.CRLF escaping and handling

Qcodo v0.3.43 (Beta 3)

Released 2008-02-24

  • Added ERROR_LOG_FLAG, which is now to be used to specify whether or not to log errors to the filesystem
  • Fixed QApplication::Redirect on Ajax-based responses if called outside of a qform class
  • Fixed qcodo.js and post.js to allow for ajax calls after downloading an attachment
  • Fixed control_dialog.js to allow for multiple register() calls
  • Added MYSQLI_TYPE_NEWDECIMAL to QMySqliDatabase (Atrium Dweller)
  • Fixed qcodo.js to use CssAssets path for LoadStyleSheet (vakopian)
  • Fixed calendar.js to correctly position calendar (dhtml) within a table
  • Added initial support (structural) for AnimatedGif in QImageBase
  • Improved error handling in QPaginatedControl
  • Improved AJAX detection in QApplicationBase

Qcodo v0.3.42 (Beta 3)

Released 2007-11-05

  • Small fix to QQuery in reusing conditional joins across multiple query calls
  • Small fix to QQuery to not auto expand association tables
  • Added AddJoinCustomItem and AddJoinCustomSqlItem to QQuery (VexedPanda)
  • Fixed PostgreSql database adapter to better support Big INT (krusty)
  • Fixed QDateTime required translation (saganxis)

Qcodo v0.3.41 (Beta 3)

Released 2007-11-04

  • Added QPaginatedControl passing to the DataBinder
  • Fixed QQuery, now properly adds join conditions on hierarchical joins
  • Fixed QQuery, now properly expands a full hierarchical join structure
  • Fixed Codegen templates incorrect casing of filenames
  • Fixed QDateTimePicker to translate “Invalid Date”
  • Fixed codegen templates InstantiateDbRow on null strcolumnalias (brynjar)

Qcodo v0.3.40 (Beta 3)

Released 2007-10-29

  • Fix to SubSql call in QQuery (Shannon Pekary)
  • Fix to PersistPrepare() in QQcontrol (Shannon Pekary)

Qcodo v0.3.39 (Beta 3)

Released 2007-10-29

  • Fixed bug in QControlBase to allow changes to wrapper styles when Visibility is off
  • Created QBlurControlAction
  • Original QCalendar control (with popup) renamed to QCalendarPopup
  • Created new QCalendar control which links with QDateTimeTextBox and utilizes DHTML
  • Created QShowCalendarAction and QHideCalendarAction, for use with the new QCalendar control
  • Created a new DateTime QControls Examples Site page to explain it all
  • Created a new QSampleControl to aid developers wanting to create their own custom QControls
  • Created a new QSampleControl Examples Site page to discuss this a bit more
  • Fixed QControlBase to have a PersistPrepare() method to be called during the Persist interaction (Shannon Pekary)
  • Added a PersistPrepare override in QDataGridBase (Shannon Pekary)
  • Fixed bug to correctly pass parent query nodes in QQ::SubSql (Shannon Pekary)
  • Fixed bug in QPaginatedControl when no paginator is used (Shannon Pekary, VexedPanda)
  • Updated QCheckBox, QCheckBoxList, QDateTimePicker and QFileControl “required” messages to support I18n (GiBSwiss)
  • Added MySqlFetchField() for direct fetch_field call to the MySQL connector in the MySQL DB Adapters
  • Added localization support (via setlocale()) to QDateTimePicker (Igor Puchkov)
  • Fixed invalid “Invalid Date” warning on unselected datetimepickers for php < 5.2.0
  • Added QLexer and QRegex classes from Mike Hostetler for lexing and regex support (Mike Hostetler)

Qcodo v0.3.38 (Beta 3)
* path to QImageRollover fixed
* QImageRollover update to not call JavaScript when no hover image defined
* Fixed QDateTime to reconstruct using default datetimezone parameter
* Fixed QFileFormStateHandler to not error with an empty FileNamePrefix (Alex94040)
* Fixed QRadioButton and QRadioButtonList to translate 'required' validation message (GiBSwiss, VexedPanda)
* README txt updates on include_path and Windows permissions (davidc)
* Templates cleaned up to always use semicolons on single-command render calls (fimbulvetr)
* Fixed error message in MultiQuery() call in QMySqli5 db adapter (Robert Muchnick)
* Fixed documentation mistakes on I18n examples page (Stijn Vermeeren)
* Updated notes/instructions on include/exclude tables in codegen_settings.xml (Christophe Damour, VexedPanda)
* Form and Panel draft Templates updated with Translation calls
* Fixed QPaginator and QDataGrid XHTML compliance issues, switched UL/LI back to SPAN in the CSS (Sannon Pekary)
* Fixed XHTML compliance issue
* Fixed QDataGridColumn to use style-based alignment instead of legacy attributes (alex94040)
* Fixed QMySqli db adapter to account for HEAP storage engine (Vex)
* Corrected QControlProxy's error message on Render()
* Fixed QQuery to not us row_count or count_table (rvenky20001)
* Converted QQuery-generated statements to used Shortened Aliases (Vass Arpad, VexedPanda)
* Added SubQuery support to QQuery (Shannon Pekary)
* Added Persistent Controls support to QControl (Shannon Pekary)
* Added Conditional Joins functionality to QQuery (Shannon Pekary)
* Added extended column support on TYPE tables on CodeGen (Alex94040)
* Updated templates to split MetaControls and Meta DataGrids into Subclass / Gen Class
* Added SQL_CALC_FOUND_ROWS option to QMySqli Database Adapter, when using the usefoundrows directive (Atrium Dweller)
* Modified AutoLoader to support case-insensitive class names
* Added a return true/false to AutoLoader
* Added @property phpdoc tags to generated code (VexedPanda)
* Added “Friendly” error page and error ajax message handling (see for more)
* Added Error Logging functionality (see for more)

Qcodo v0.3.37 (Beta 3)
* Added Label create helpers in MetaControls
* Added Reload() functionality to DB Orm Gen class files
* Added Refresh() and Refresh w/ Reload functionality to MetaControl
* Added MetaControl and Meta DataGrid examples pages
* Slightly restructured the Drafts section of the Examples site
* Fixed small QCheckBox bug with “checked” (Christophe Damour)
* Fixed typo in early_bind examples site page (Vexed Panda)

Qcodo v0.3.36 (Beta 3)
* _qpanel_edit.tpl fixed to correctly use ::Create on MetaController (gibran, animekun)
* QQuery GetDataGridHtml updated to account for Null objects and PHP < 5.2 cast from object issue (comet7)

Qcodo v0.3.35 (Beta 3)
* Fixed MetaDataGrid and Drafts to support null DB TYPE columns (animekun)
* Fixed MetaDataGrid and sorting on Unique reverse references
* Slight restructuring of MetaControl constructors and static create methods
* Added functionality for all Qcodo Query calls in ORM objects:
 Now takes in EITHER array of QQClause objects OR just a single QQClause object
* Added AddCssClass() and RemoveCssClass() to QControlBase
* Added __Restored public property getter on all ClassGen ORMs
* Fixed control naming and casting in MetaControl templates
* Added Format option to QTextBox control
* Fixed $_FORM availability in Panel template rendering

Qcodo v0.3.34 (Beta 3)
* Added javascript select() type of capability to QTextBox (similar to focus())
* Updated examples site to show select() functionality
* Created a new QDateTimeTextBox control
* Added functionality to perform CausesValidation overrides on specific events for a given control
* Fixed errant warning message on qcodo updater
* Fixed to match

Qcodo v0.3.33 (Beta 3)
* Fixed QDateTimePicker to not parse post data when not rendered (brynjar)
* Fixed QEmailServer issues with “=" in body and attachments. (Chris Peterson)
* Fixed JS Blink() to revert to original background color after completing color fade
* Improvements on Serialization hashing in QImageBase
* Rearchitected Code Generator templates file and directory structure
 (see readme in the qcodo/codegen/templates folder for more info)
* Implemented MetaControls template for ORM objects
* Implemented Meta DataGrid template for ORM objects
* Rearchitected Form and Panel drafts to use MetaControls and Meta DataGrids
* Removed original FormBase and PanelBase ORM Templates
* Rearchitected for a more streamline / useful default CSS organization / structure in styles.css
* Updated the following controls to use the new CSS structure:
 - QDateTimePicker
 - QPaginator
 - QDataGrid
 - QFileAsset
 - QListBox  
* Implemented THEAD, TFOOT and TBODY into QDataGrid
* Removed needless default styling in QDataGrid (per new CSS organization / structure)
* Updated QFormBase to switch any remaining “private” methods/variables to “protected” (Kristof)
* Updated QFormBase's error message on invalid HtmlTemplatePath (Nicolas Immelman)
* Updated post.js to better support all GECKO-based browsers on PostAjax (Francesco Abbattista and Skaffen)
* QPaginator minimum indexcount lowered to 7 (alex94040)
* Fixed typo spelling error in QFileAssetDialog (krusty)
* Fixed CheckForRemoteAdmin to account for requests via proxy (Matthew L)
* New QImageRollover control

Qcodo v0.3.32 (Beta 3)
* No changes made to code.  Release upgraded to stable.

Qcodo v0.3.32 (Beta 3)
* Fixed QImageBase.class.php to not explicitly pass null paramters to GD (VexedPanda)
* Added support for the MEMORY Engine in the MySQLi Database Adapter
* Typo in comments for Form Draft templates (Nicolas)

Qcodo v0.3.31 (Beta 3)
* Fixed JS include error for dynamically created control during initial page load in QFormBase

Qcodo v0.3.30 (Beta 3)
* Fixed Regression bug with QServerAction (“qc not defined” error)
* Fixed “disappearing data” issue with RadioButtonList and CheckBoxList when rendered in a not-visible panel
* Optimized ControlModifications rendering code in post.js and control.js
* Updated ControlProxy examples page to no longer use RenderAsHref
* Updated error handler to ignore via “@" directive (pokorpa)
* Added ImageMagick support to QImageBase class

Qcodo v0.3.29 (Beta 3)
* Added support in QControlBase for StyleSheetFiles
* Improved support for dynamic, AJAX-based loading of both StyleSheets and JavaScript files in QFormBase
* _form.js (compressed/compiled javascript) is now deprecated.  _qc_packed.js has taken its place
* Deprecated SingleJavaScriptFile functionality in QFormBase
* Added IgnoreJavaScriptFileArray and IgnoreStyleSheetFileArray functionality in QFormBase
* Added SetTime(), SetDate(), Now() and FromTimestamp() methods to QDateTime LEGACY class for better forward compatability
* Removed PHP Version-specific handling in QDateTimePicker and QCalendar
* Added QQSum class to Qcodo Query (fimbulvetr)
* Made GetErrorControls and GetErrorMessages public in QFormBase

Qcodo v0.3.28 (Beta 3)
* QDialogBox fixes for long forms on Firefox for Mac
* QDialogBox fixes for hiding cursors on Firefox for Mac and Windows

Qcodo v0.3.27 (Beta 3)
* QQConditionIn and QQConditionNotIn updated to return false and true, respectively, on null IN parameters (VexedPanda)
* Fix on check for plain “true” to determine if WHERE clause should be rendered (VexedPanda)
* Fixed regression in QFormBase.class.php to have controls updated on client-side updates

Qcodo v0.3.26 (Beta 3)
* Fixed regression bug of registerClickPosition in control.js (Alec)
* Added Chris Peterson's QQuery Updates with NotIn, Between, NotBetween, NotLike, etc. (Chris)
* Added a variant of Chris's EmailAttachments support in QEmailServer and QEmailMessage (Chris)
* Created a new QMimeType core framework class with MIME-related utilities

Qcodo v0.3.25 (Beta 3)
* Removed consistency checking from QType::Cast() to string as its not needed
* Fixed post.js to allow for errant % characters in postajax calls
* QFormBase updated to take in any qcontrol to validate
* QFormBase fixed so that causesvalidation can properly take in an array of qcontrols (vakopian)
* Updated default timezone to be an acceptable/standard value (Ben)
* QSqlServerDatabase port designation fixed on Windows PHP Servers (Ken)
* QEmailServer updated to use CharEncoding on plaintext emails (Edward Kay)
* Added Iceweasel (firefox variant) support
* index_load_array_manytomany documentation fix (VexedPanda)
* new _b() function to print text as a HTML text block
* new QImageBase class which will (eventually) be the base class for any/all image-related controls
* QFileAsset control - fix to work with Virtual Directories (Krusty)
* QFileAsset added “Document” type
* Fixed Multiple Database class/subclass include bug with mysqli/mysql/mysqli5 adapters
* Updated MySql database adapter's FetchField to allow for custom columns (VexedPanda)
* Fixed post.js to correctly handle checkbox values on ajax calls (VexedPanda)
* QQConditionNone and QQConditionAll fixed to use 1=0 and 1=1 instead of “true” and “false” (VexedPanda)
* QDateTimeSpan GetYears() fixed and GetTimearray() cleaned up a bit (danielrc)
* QQuery fix for distinct count queries (VexedPanda)
* QDatabaseCodeGen will warn when generating against two databases with tables of the same name
* Support for mod_rewrite (see for more info) (Mike Hostetler)
* QPostgresSqlDatabase adapter SqlVariable() updated to match QDatabaseBase version
* DB Profiler fix for debug backtrace methods with objects (Hunter)
* Fixed control.js to account for scroll position in registerClickPosition (Alec)
* Added query visibility support for qdatabindexceptions (VexedPanda)
* Added translation support for requred QCalendar controls (GiBSwiss)
* Updated QMySql (legacy) adapter to use set names on encoding (VexedPanda)
* Updated QSqlServer adapter to avoid truncation on long strings (VexedPanda)

Qcodo v0.3.24 (Beta 3)
* Fixed “Indirect modification of overloaded property” issue on Codegenning non-indexed FK relationships (GiBSwiss)
* Fixed qimagecontrolbase::run with non-specified file paths
* Fixed QMySqlDatabase (legacy) adapter for default value support (VexedPanda)
* Fixed QFileAssetBase to not truncate last character of uploaded file basename (RugbyFan)
* Updated QColumn to support null-defaults for date and datetime columns (VexedPanda)
* Added customizable SetupIconFilePathArray to setup icon filepaths in QFileAssetBase

Qcodo v0.3.23 (Beta 3)
* Added GetAllColumns to QDataGridBase
* Added PageCount to QPaginatedControl
* Small fix for 200- messages in QEmailServer (Edward Kay)
* QImageControl Examples Page typo on properties (VexedPanda)
* QImageControl imagegif fix (VexedPanda)
* MySQL (legacy) fix for default values (VexedPanda)

Qcodo v0.3.22 (Beta 3)
* New QImageControl control and example page
* New QFileAsset control and example page
* MySql Database Adapter cleaned up to have GetRows and GetNextRows correctly inherit
* PHP_SAPI now used to detect CliMode in QApplicationBase (twallace)
* QFileControl fixed to correctly reset internal properties on repost
* CodeGen template fixes for 5.2.1 arrays (for virtual FKs against non indexed columns)
* Alerts in QApplication's RenderJavaScript no longer calls HtmlEntities
* SqlServer adapter maxlength fix for BLOB/TEXT fields (Christophe Damour)
* QAjaxAction fix on page exiting during an ajax process - no longer reports an error
* Improved QAjax actions with QSessionFormStateHandler to take up less space on ajax-to-ajax actions
* Error handler no longer requires QApplication to be already loaded
* Fixed re-bind inefficiency in QPaginatedControl (Matthew Lieder)
* Added missing ID attribute in QDataGridBase
* Added MultiQuery method to MySqli5 adapter (Mike Hostetler)
* Added HtmlIncludeFilePath property to QFormBase
* Added Database Connect-on-Demand functionality
* Added 'Encoding' DB Config option for MySqli-related databases
* Cleaned up passing/storing of DB CONFIG variables
* Updated all core database adapters to reflect this change
* Removed $ConnectionStringArray from QApplicationBase
* Updated QEmailServer to allow for one-off Encoding types
* Fixed QEmailServer in connecting to SMTP Servers with large welcome messages (Kristof)
* Fixed Large Command javascript error on AjaxActions (Matthew Lieder)
* Added GetHeaderSortedHtml to QDataGridBase to allow for easier customization of sorted column headings
* ValidateControlAndChildren and TriggerActions now made to be protected in QFormBase
* Added CssClass to QFormBase
* Added an ORM-Only version of that can be loaded from
* Modified Top-Line template metadata to account for empty names of directories within the docroot.
 Now, for example, specifying null for _FORM_DRAFTS_ will tell CodeGen to NOT generate Form Drafts.
* Fixes for “Cannot set on a Null Date/Time” errors in QDateTimePicker and QCalendar with PHP > 5.2.0
* Fixes for QDateTime in the set hour and time-getters to not modify 24-hour to 12-hour value (Shannon Pekary)
* Fixes to QDateTime to correctly set Timestamp value
* Cleaned up QDateTimeSpan to use Consts instead of private member variables
* Fixes to QDateTimeSpan to year calculations and code consistency
* Added AddDays, AddMinutes, etc. methods to QDateTime
* Modified all modifier methods, including the Add* and Modify methods, to allow for stringing of datetime values (Fernando)
 Just remember that Add* and Modify methods will mutate the DateTime object being calculated upon
* QListControl now has setters for SelectedName, SelectedValue, SelectedNames and SelectedValues
* QListControl SelectedIndex fixed to now accept -1 or null to “deselect all”
* QFormBase TriggerActions fixed to more-correctly validate in multi-panel forms
* Added DefaultValue support in QColumn and in final ORM Codegen templates

Qcodo v0.3.21 (Beta 3)
* Release 0.3.21 upgraded to be a STABLE release
* No other changes made

Qcodo v0.3.21 (Beta 3)
* Small fix in Checkbox Validation Error message
* Updated all JS files to be slightly more compliant (to support JS compressing)
* Re-introduced _form.js as a single, compressed JS file for all Qcodo Core JS files
* Added more granularity to CausesValidation functionality (by “vakopian”)
* Added KeyPressCloses support to QControlDialog
* Added Blink() mechanism on any QControlBase
* Better error reporting on QUpdateUtility (by “disaster”)
* Fixed bug for dynamic JS includes in QFormBase
* Added “Null Setting” capability in QControlBase and _actions.  Setting Custom actions, attributes or styles to NULL will remove the style/action/attribute declaration
* Fixed event.js for firefox qcodo.client values
* Fixed focus() in IE in control.js
* Fixed terminateEvent() IE6 strict JS compliance
* Added ability to null-out a template in QBlockControl
* Small QEmailServerFix (by Chad Koski)
* Small QDialogBox fix for showing/hiding non-rendered dialog boxes
* Added RGB Calculation functions in qcodo.js

Qcodo v0.3.20 (Beta 3)
* Cleaned up JS Event Handling for Firefox Browsers
* Added Browser Check capability in JS and Qcodo QApplication code for browser version numbers
* Fixed move handle problem where buttons were clickable in a MH before MH was used
* Fixed QueryCount in db_orm_class.tpl to allow for counting of grouped results (Fernando)
* Fixed QSoapService to allow for SSL hosting (jcinacio)
* Added SVN ignoring in QUpdateUtility (Alec)
* Updated CheckBox, Radio Button, and the list versions of these controls to support HtmlEntities
* Added ItemGrouping capability to ListItem and ListBox (may break ListItemStyle functionality... ListItem constructor was reordered)
* Fixed RadioButton ParsePostData() on ServerCalls (Gadianton)

Qcodo v0.3.19 (Beta 3)
* Fixed bug on QFormBase for QFileControl and any other controls that access FormAttributes
* Fixed bug in QDialogBox -- now centering correctly, added onscroll events, and background matte fills entire client space

Qcodo v0.3.18 (Beta 3)
* Added new QDialogBox support
* Fixed ability to have dynamic .js include files and form attribute changes during AJAX calls
* Added new actions to support showing/hiding QDialogBox controls
* Added new examples to demonstrate QDialogBox

Qcodo v0.3.17 (Beta 3)
* Fixed QDateTimePicker for 5.2.0 time values
* Added updateStyle('text') capability for labels/panels in the javascript library
* Fixed previously rendered-now not-rendered validation issue for child controls
* Fixed misnaming issue for reversereferences on tables with compsite PKs
* Fixed client-side __FormUpdates with null values

Qcodo v0.3.16 (Beta 3)
* Better error reporting on Database CodeGen for tables with no Primary Key
* Added QDateTime::FromTimestamp() factory/constructor for QDateTime (Standard)
* Removed legacy prototype definition from QDataGridRowStyle->GetAttributes() (Hunter)
* Fixed double XML Escaping in QFormBase JS handler (Mike Hostetler)
* Fixed http”s” parsing in QWriteBox

Qcodo v0.3.15 (Beta 3)
* Many fixes for QDateTime (standard) and QDateTimePicker for backward compatability
* Added CssClass-ing of the checkbox, itself, in QCheckBox when no ->Text is defined.

Qcodo v0.3.14 (Beta 3)
* Updated QQ Condition example to better explain and/or logic branching
* Added Examples to illustrate JavaScript and Alert-based actions, as well as other clientside actions, and to explain QControlProxy
* Added the new QDateTimeSpan class (Martin Kronstad)
* Completely rewrote QDateTime for PHP 5.2.0+, which now extends from PHP DateTime.  Should be fully backward compatible.
* Added the new QDateTime.legacy class for backward (PHP < 5.2.0) compatability
* Added new DateTimeSpan functionality and Age functionality for QDateTime (Standard) (Martin Kronstad)
* Added a new QControlProxy control
* Fixed CodeGenning QQN class on multi-database codegens
* Added the new QListItemStyle (Hunter Jensen)
* Added new QActions for clientside-only updates of CSS Styles (e.g. for mouseover/hover highlighting)
* Added new MaxLength support on generated data classes and on textboxes in generated forms/panels
* Fixed DataGridBase->ParseColumnHtml to be protected instead of private
* Added ValidateTrimmed property for TextBox validation
* Added new Focus() method on all QControls
* Fixed QAlertAction and QConfirmAction to accept any characters, including \r\n for mid-message line feeds.

Qcodo v0.3.13 (Beta 3)
* Fixed Validation error in QTextBox for max/min lengths.

Qcodo v0.3.12 (Beta 3)
* Updated CodeGen classes to fix broken GenerateAggregate inheritence on some PHP installs
* Added $DefaultFormat functionality to QDateTime (used by __toString() and NowToString())
* Added MaxLength validation to QTextBoxBase
* Fixed QControlBase to refresh itself on AJAX calls on simple property updates
* Added a few missing read-properties in QBlockControl for ResizeHandles
* Added ItemWidth property to QTreeNav

Qcodo v0.3.11 (Beta 3)
* Official Beta 3 Release!
* Fixes for QApplication::ExecuteJavaScript during an AJAX call for PHP 5.2
* Recreated/Rearchitected QTreeNav and QTreeNavItem, performance is MUCH improved.
* Added a internally-used $ProcessOutput static flag on QApplicationBase
* Cosmetic fix on DataBaseCodeGen reporting (krusty)

Qcodo v0.3.10 (Beta 3 Pre-Release)
* Modified QType library to support new PHP 5.2 typing constructs
* Fixes to QSoapService to fix bugs in PHP 5.2 SOAP array of objects support
* Updated error code in QUpdateUtility

Qcodo v0.3.9 (Beta 3 Pre-Release)
* Removed strongly typed object parameters from edit panel base templates
* Removed strongly typed object parameters from paginated control and formbase
* Updated multiform intro to more accurately create buttons in the datagrid
* Cache file creation fix in Soap Service

Qcodo v0.3.8 (Beta 3 Pre-Release)
* Fix so that reverse relationships can have reverse relationships when using QQ
* Added EXPERIMENTAL support for Panel Drafts -- see blog post on 0.3.8 and panel drafts for more information
* QQNode class inclusion fix

Qcodo v0.3.7 (Beta 3 Pre-Release)
* Added reverse relationships (unique and non-unique) support to qq
* QQ relationships support is now considered “feature complete”
* Fix for MultiPK objects that act as an Association Table
* Fixes to DataGrid, adding SetDataBinder capability
* Small fix to checkbox
* Samll fix to calendar
* Small fix to MySQL database adapater
* Added example for Reverse Relationships
* Updated examples with the new datagrid SetDataBinder capability
* Added Sorting to the datagrid in the Multiple Qform example

Qcodo v0.3.6 (Beta 3 Pre-Release)
* Small DatabaseCodeGen and db_orm_class changes to provide proper support for duplicate keys

Qcodo v0.3.5 (Beta 3 Pre-Release)
* Added back Beta 2-style manual query support
* Fixed QDateTimePicker for null dates and required=true

Qcodo v0.3.4 (Beta 3 Pre-Release)
* Multiple PK support is back in to the framework and in Qcodo Query
* Timestamp (Optimistic Locking) will now update on saved objects
* Graph support is fixed in Qcodo Query
* CodeGen now has excludeTables and includeTables support (Mike Hostetler)
* QQ __get property fix for PHP v5.0.* (Fernando)
* QListControl fix on null arrays
* javascript fixes on logger and for drop targets on FireFox
* a few typos fixed on the examples site
* Original MySQL database adapter now supports comma-ed column lengths (for Decimal)
* UpdateUtility fixes -- will no longer traverse the entire docroot
* QApplicatioN::Redirect now successfully escapes (Fernando)
* Small SoapService fix

Qcodo v0.3.3 (Beta 3 Pre-Release)
* Pretty gross typo in the Code Gen templates that prevented Association Load arrays from working

Qcodo v0.3.2 (Beta 3 Pre-Release)
* Small fixes to SQL Server library
* Added SQL Server script and instructions to Examples site
* Eliminated most of the “final” object protection in most class methods
* QAction::RenderScript is now public
* UTF-8 is now the encoding type that qcodo “ships” with (easily overridable in
* Command Line Devtools has better error reporting if paths are misconfigured

Qcodo v0.3.1 (Beta 3 Pre-Release)
* Added new global Change Log (e.g. this file ;) to the build/release process
* New Release Management System via the QUpdateService
* Rearchitected the entire filesystem and directory structure
* No more dependency on .inc include files -- all include files now end in .php (either .class.php, .inc.php, or .tpl.php)
* has been completely changed to support the new filesystem/driectory structure
* Updated entire QForm and QControl library to support all versions XHTML (1.0 Trans, 1.0 Strict and 1.1) standards compliance
* All examples rewritten/updated for (and validated against) W3C XHTML 1.1 compliance
* New querying functionality via the Qcodo Query API
* All ORM templates updated to use Qcodo Query API
* Deprecated QQueryExpansion class and related code, as it is now replaced by Qcodo Query
* Rearchitected Code Gen to be completley modularized
* Centralized htmlentities() to QApplication::HtmlEntities()
* “Locked Down” most standard “output HTML” commands to first perform QApplication::HtmlEntities() on content before outputting
 -- this is done in _p(), QLabel and QDataGrid.  This is overridable (if you are explicitly wanting to output HTML tags).
* “Locked Down” codegen.php and the form_drafts so that by default only localhost can execute them (configurable in
* Updated QForm validation code to only validate visible controls on the screen (fixed bugs for nonrendered child controls)
* Buttons no longer validate by default -- CausesValidation by default is set to false.
* Add Form_Validate() functionality
* Added QCausesValidation::SiblingsOnly and SiblingsAndChildren functionality
* Added examples to illustrate all of the above new functionality
* Added new Multiple QForms via Custom QPanels example

Qcodo v0.2.15 (Beta 2, Final Beta 2 Release)
* Encompasses most of the reported bug fixes for the Beta 2 tree
* New Resizable Panels functionality

Note: for a detailed transcript of all the Beta 2 point releases, refer to the
Qcodo Development Blog at

Qcodo v0.2.1 (Beta 2 Pre-Release)
* Adds support for AJAX
* New Events/Actions handlers
* Updating Class Naming structure

Qcodo v0.1.1 (Beta 1.1, Final Beta 1 Release)
* Encompasses all reported bug fixes for the Beta 1 tree

Qcodo v0.1.0 (Beta 1, Initial Release)
* Initial Release

Copyright © 2005 - 2019, Quasidea Development, LLC
This open-source framework for PHP is released under the terms of The MIT License.