Lazarus 1.8 fixes branch

From Free Pascal wiki
Jump to: navigation, search

This page contains the revisions to be merged from trunk to the Lazarus 1.8 fixes branch.

This are only fixes made after the branch was created. For other fixes made since the previous release (1.6) see SVN and Lazarus 1.6 fixes branch

Release notes can be found here

Fixes for 1.8 RC2

Merge requests

Submitted by developer / committer and waiting for testing (do not commit yet)

  • r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. Issue #0021816
  • r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. Issue #0031900
  • r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way. Regression from r55062. Should be merged only if 55062 is merged

Submitted by developer / committer

  • r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of Issue #0031868.
  • r55114 TUpDown: Handle MouseWheel of Associate. Issue #0031868.
  • r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. Issue #30661

Submitted by others

Merged revisions for 1.8 RC2

  • r55104 TAChart: Use SameValue() in floating point comparisons.
  • r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.
  • r54895 lcl: grids: fix default TGridColumn width. Issue #31806
  • r54897 sqldb: fixed compile under darwin
  • r54898 lcl: forms: scale TFrame the same as TForm. Issue #31807
  • r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).
  • r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.
  • r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)
  • r54903 lcl: grids: always store valid column width. Issue #31806
  • r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, Issue #31778
  • r54905 IdeIntf: OI: High-DPI: value button. Issue #31784
  • r54911 sqldb: fixed win64 compile with fpc 3.0.2
  • r54913 lcl: colorbox: high-dpi: ColorRectWidth. Issue #31768
  • r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.
  • r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, Issue #31774
  • r54916 ide: project options dialog: anchor top/bottom build modes button. Issue #31770
  • r54917 IdeIntf: OI: High-DPI: ValueComboBox.
  • r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. Issue #31771
  • r54922 ide: compiler_other_options frame: fix high-DPI. Issue #31779
  • r54923 Opkman: Fix high-DPI. Issue #31782
  • r54924 ide: about dialog: high-DPI. Issue #31776
  • r54925 ide editorfilemanager dialog: high-DPI. Issue #31775
  • r54926 lcl: groupededit: fix TabStop mechanism. Issue #31811
  • r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes Issue #31772
  • r54928 ideintf: objectinspector: fix high-dpi in custom property grids. Issue #31769
  • r54929 lazcontrols: lvlgraphctrl: high-DPI. Issue #31781
  • r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). Issue #31811, Issue #31229
  • r54932 ide, designer: high-DPI: scale non-visual components. Issue #31812
  • r54934 ide: images: new high-dpi designed icons by FTurtle, Issue #31815
  • r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk
  • r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.
  • r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).
  • r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...
  • r54952 codetools: fixed compile with fpc 2.6.4
  • r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for Issue #31832
  • r54968 updatemakefiles: check if fpcmake supports new version
  • r54972 cody: fixed typo
  • r54984 lcl: TMenu: raise exception if something else is freeing the FItems
  • r54986 projectgroups: set menuitems to nil on destroy
  • r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu
  • r54990 projectgroups: fixed memleak
  • r54992 doceditor: fixed permissions
  • r54994 docs: removed sourceforge commercial footer, privacy breach
  • r54996 debian: fixed manpage-not-compressed-with-max-compression error
  • r54999 debian: fixed permissions
  • r55000 debian: fix group writable permissions
  • r55002 debian: disable debian/rules, not used by our deb
  • r55004 debian: fixed permissions and description
  • r55006 debian: fixed lintian warning about changelog
  • r55008 debian: lazarus deb now builds without lintian errors
  • r55010 debian: fpc-src no lintian errors
  • r55012 deb: fpc: no lintian errors
  • r54697 Gtk2: fixed triggering selection change in TCheckListBox. Issue #0031697
  • r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images
  • r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. Issue #0031791
  • r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. Issue #0031816
  • r55017 ide: images: update debug icons (by FTurtle). Issue #31830
  • r55027 IDE: High-DPI: Search Result Window
  • r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.
  • r55033 IDE: High-DPI: TabOrderDialog
  • r55034 IDE: High-DPI: MenuEditor Images. Issue #0031877
  • r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware
  • r54953 IdeIntf: OI: always write values to objects if explicitely wanted.
  • r54954 IdeIntf: propedits: always write property values to objects. The property setter method has to decide about the need of update, not the propedit code.
  • r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.
  • r54981 ideintf: fix regression in image scaling code.
  • r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.
  • r55038 ExternHelp: fix uses clause after r55035
  • r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.
  • r55016 win32: menus: fix menu height calculation. Issue #31875
  • r55018 win32: menus: fix FPC 3.0.0 compilation. Issue #31875
  • r55019 win32: menus: fix menu height calculation. Issue #31875
  • r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.
  • r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.
  • r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText
  • r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.
  • r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)
  • r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)
  • r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti
  • r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. Issue #31766
  • r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. Issue #31829
  • r55022 LCL: rename TControl.ScaleCoord* methods
  • r55026 LCL: TListView: Fixed access violation switching OwnerData. Issue #0031880
  • r55044 IDE: improved i18n in messages window, fixed some typos
  • r55056 IDE: regenerated translations and updated Russian translation
  • r54935 IDE: clean up
  • r55021 IDE: change DataModulePPI to FPC 3.0.3 check. Issue #31813
  • r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. Issue #0031740
  • r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. Issue #0031832
  • r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. Issue #31893.
  • r55059 TodoList: Don't try to update the list too early. Regression caused by Issue #31006.
  • r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. Issue #31780.
  • r55064 MenuEditor: High-DPI: ShadowMenu. Issue #31877
  • r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.
  • r55075 MenuEditor: High-DPI: Arrow and Cleanup. Issue #31877
  • r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.
  • r55071 IDEIntf: Fix a stupid copy/paste error in r55015.
  • r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. Issue #31890.
  • r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. Issue #31834
  • r55084 Translations: French translation update by Gilles Vasseur, Issue #31905
  • r55093 codetools: fixed EnableCodeCompleteTemplates
  • r55096 IDE: package editor: publish: disable if units/includes outside pkg dir
  • r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. Issue #31923

Fixes for 1.8 RC1 (merged)

  • r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.
  • r54586 Qt: simplified code.
  • r54588 examples: fixed testall.lpi
  • r54589 Qt,Qt5: do not eat cpu with gtk theme. Issue #31191
  • r54593 Qt,Qt5: do not disable DT_WORDBREAK if we are using DT_CALCRECT, otherwise we'll have wrong calculation in combination with DT_NOCLIP.
  • r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. Issue #31632.
  • r54596 translations: German: updates from Swen Heinig
  • r54597 LazControls: Apply filter also at start in TreeFilterEdit. Issue #31632.
  • r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.
  • r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. Issue #31635.
  • r54618 Lazreport: fix column number Issue #31544.
  • r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov Issue #31659
  • r54624 LCL: TGroupBox: Win32: Fix for doubled caption. Issue #31670.
  • r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. Issue #27862
  • r54631 IDE: useunit dialog: fixed adding unit to program uses section
  • r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js
  • r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. Issue #31674.
  • r54638 codetools: delphi predefined identifiers: nativeint, bools
  • r54639 codetools: referenceto: fixed endpos
  • r54641 codetools: keywordfunclists: use fast property Count
  • r54643 codetools: ctnReferencTo for typeinfo, code hints and type check
  • r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, Issue #31625
  • r54650 codetools: fixed resolving function result, simplified code
  • r54651 DateTimePicker - OnChange fires twice Issue #0031679
  • r54654 Qt, Qt5: fixed av because parent can be nil. Issue #31684
  • r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. Issue #31677
  • r54660 codetools: added nativeint, nativeuint for pas2js
  • r54666 codetools: added unique ids for bug reports
  • r54667 codetools: fixed recognizing str
  • r54670 codetools: fixed code completion for v in constset
  • r54672 codetools: debug gather unit names
  • r54675 codetools: fixed error msg
  • r54677 IDE: do not check package source directory of a manual package
  • r54680 fpcunit: consolerunner: use lazutils instead of lcl
  • r54683 codetools: linkscanner: unique ids for errors
  • r54685 codetools: sourcechangecache and directiveparser: unique ids for errors
  • r54687 codetools: fixed id on unknown exception
  • r54689 codetools: define template directory: fixed skipping empty directory
  • r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error
  • r54693 codetools: code completion: add proc for procvar: fixed reference-to
  • r54694 Qt, Qt5: fixed selection with TListView. Issue #0031595
  • r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. Issue #0031697
  • r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility
  • r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of Issue #0031697
  • r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. Issue #0031574
  • r54713 codetools: fixed modeswitch name blocks to cblocks
  • r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL
  • r54718 IDE: fixed compilation, bug 31711
  • r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045
  • r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. Issue #31248, patch by Michl
  • r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer
  • r54727 codetools: fixed compilation with fpc 2.6.4
  • r54730 codetools: fixed parsing array
  • r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". Issue #31518.
  • r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. Issue #31518.
  • r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces
  • r54741 codetools: identifier completion: list each namespace only once
  • r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage
  • r54746 codetools: search units with namespaces
  • r54748 IDE: sourceeditor completion box: namespaces
  • r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring
  • r54752 IDE: parse namespaces from custom compiler options
  • r54757 lazutils: added MergeWithDelimiter
  • r54761 IDE: identifier completion: global property types, patch from Anton, bug ...
  • r54764 codetools: fixed compilation with fpc<3.1.1
  • r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. Issue #31138.
  • r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. Issue #0029739
  • r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource
  • r54770 codetools: use namespaces only for pas2js and fpc>30101
  • r54771 IDE: regenerated translations and updated Russian translation
  • r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731
  • r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.
  • r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.
  • r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.
  • r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. Issue #0019278
  • r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739
  • r54799 ide: images: anchor editor. Designed by FTurtle, Issue #31730
  • r54802 Qt,Qt5: fixed regression from r54696. Issue #31697
  • r54808 lazutils: fixed lazunicode compile under Delphi
  • r54809 MenuDesigner: Fixed adding a line separator at last position. Issue #0031744
  • r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of Issue #31715
  • r54813 lcl: support for DebugDisableAutoSizing compiler define
  • r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of Issue #31715
  • r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of Issue #31715
  • r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of Issue #31715
  • r54822 codetools: fixed guesstype of copy()
  • r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U
  • r54830 rtticontrols: updated example lpi
  • r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing
  • r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.
  • r54835 codetools: identifier completion: Delphi directives
  • r54837 codetools: parsing modeswitch on,off
  • r54839 codetools: set defines when setting modeswitches
  • r54840 lcl: grids: fix scrolling after r54816, Issue #31715
  • r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to Issue #31766
  • r54842 lcl: dbgrids: adapt after r54816. Issue #31765 and Issue #31715
  • r54843 ide: packager: adapt after r54816. Issue #31762 and Issue #31715
  • r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. Issue #31762 and Issue #31715
  • r54845 LazUtf8: fix compilation for WinCE. Issue #0031788.
  • r54848 ide: new icons designed by FTurtle, Issue #31789
  • r54848 ide: new icons designed by FTurtle, Issue #31789
  • r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...
  • r54852 IDE: menu designer: remove items via normal means
  • r54854 Example easter: Fix ownerdrawn listbox not painting its background, center listbox items (http://forum.lazarus.freepascal.org/index.php/topic,36825.msg245809.html#msg245809)
  • r54856 IDE: fixed switching build mode in options dialog, bug 31787
  • r54858 IDE: menu designer: free shadowmenu via releasecomponent
  • r54860 codetools: added predefined fpc identifier get_frame
  • r54862 IDE: increased Max_Frame_Dump to 32
  • r54864 IDE: menu designer: do not call ProcessMessages
  • r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783
  • r54872 lhelp: Fix lhelp to show popup hints. Issue #31732.
  • r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. Issue #31791.
  • r54875 gridexamples: in title_image_demo show images at start, adapt height of header row to image layout) (http://forum.lazarus.freepascal.org/index.php/topic,36841.0.html)
  • r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)
  • r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)
  • r54878 Examples: Improved usability of demo "openurltest".
  • r54880 examples: removed obsolete openbrowser
  • r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).
  • r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). Issue #31715
  • r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent
  • r54892 examples: fixed pascalstream with FPC 3.0+

Roadmap to 1.8.0

The release process will consist of the following steps.

  • Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)

This is the start of the stabilization process before a new Lazarus release.

  • Release of 1.8.0 RC 1 (Done 17 May 2017)

This will be the first Release Candidate. We would like to urge all users to test this version. The testing period is scheduled to last 2 weeks.

  • Release of 1.8.0 RC 2 (ToDo)

The testing period is scheduled to last 2 weeks.

  • Release of 1.8.0 RC 3 (maybe)

The testing period is scheduled to last 2 weeks.

  • Release of Lazarus 1.8 (ToDo)

Users can download the new stable version.

Tests

  • Menu item exists
  • Clear pcp directory and start IDE, a new project application with a form should be visible
  • Double click on form - a FormCreate event should be created
  • Check View / IDE internals / What needs building - no package should need building, only the project
  • Restart the IDE - there should be no warning about upgrading
  • Install the package cody, after restart the component palette should show the component TCodyTreeView

Tagging release

  • Set version in fixes_1_8 branch
    • open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.8.0.1 for RC1, 1.8.0.2 for RC2, 1.8.0.3 for RC3, 1.8.0.4 for final
    • lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)
    • lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final
    • lclbase.lpk
    • lcl.lpk
    • lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final
    • lazarus/lazarus.app/Contents/Info.plist
      • CFBundleShortVersionString "1.8.0"
      • CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release
    • tools/install/linux/environmentoptions.xml same as version.inc
    • tools/install/win/environmentoptions.xml same as version.inc
    • tools/install/macos/environmentoptions.xml same as version.inc
    • check if lpl files needs updating by running ./tools/lplupdate -c
    • run ./tools/updatemakefiles
  • Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_8 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_8_0_RC1 -m 'tagged 1.8.0RC1 as tags/lazarus_1_8_0_RC1'
  • Set version to next version in svn

How to merge

See Lazarus_1.0_fixes_branch#How_to_merge

Other branches