https://wiki.freepascal.org/api.php?action=feedcontributions&user=Valdir.marcos&feedformat=atomLazarus wiki - User contributions [en]2024-03-29T07:52:53ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=Pascal_and_Lazarus_Books_and_Magazines&diff=125217Pascal and Lazarus Books and Magazines2019-06-24T08:00:33Z<p>Valdir.marcos: /* Books about Pascal (or SQL) that are helpful, though not dealing specifically with Free Pascal or Lazarus */</p>
<hr />
<div>== Books about Free Pascal ==<br />
<br />
*[[Michaël van Canneyt: Free Pascal 2 (book)|Michaël van Canneyt: Free Pascal 2]], CUL 2012, Paperback, ISBN 9783936546729 - The official Free Pascal book in German.<br />
*[http://code.sd/startprog/ Start Programming using Object Pascal Language] - Free book in English by forum member motaz. Covers both Free Pascal and Lazarus<br />
* Modern Object Pascal Introduction for Programmers - as [http://castle-engine.io/modern_pascal_introduction.pdf PDF] or [http://castle-engine.io/modern_pascal_introduction.html HTML].<br />
<br />
==Books about Lazarus==<br />
<br />
*[http://www.blaisepascal.eu/index.php?actie=./lazarus/lazarusreview Lazarus - The Complete Guide] by M. van Canneyt, M. Gärtner, S. Heinig, F. Monteiro de Cavalho, I. Ouedraogo: Blaise Pascal Magazine 2011, Paperback, ISBN 9789490968021- The official Lazarus Book in English.<br />
*[http://www.cul.de/lazarus2.html Lazarus - Klassenbibliothek und IDE] by M. van Canneyt, M. Gärtner, S. Heinig, F. Monteiro de Cavalho, I. Ouedraogo: , CUL 2011, Paperback, ISBN 9783936546637 - The official Lazarus Book in German.<br />
*[http://www.agbook.com.br/book/46758--Desenvolvendo_Aplicativos_com_Lazarus Desenvolvendo Aplicativos com Lazarus] - In Portuguese<br />
*[http://www.amazon.co.uk/Iniciar-Lazarus-Free-Pascal-intermedi%C3%A1rio/dp/0993272320/ref=sr_1_1?ie=UTF8&qid=1430903668&sr=8-1&keywords=Iniciar+com+Lazarus+e+Free+Pascal Iniciar com Lazarus e Free Pascal] - In Portuguese May 2015<br />
*[http://www.amazon.co.uk/Iniciar-con-Lazarus-Free-Pascal/dp/0993272312/ref=sr_1_fkmr0_1?ie=UTF8&qid=1430903668&sr=8-1-fkmr0&keywords=Iniciar+com+Lazarus+e+Free+Pascal Iniciar con Lazarus y Free Pascal] - In Spanish May 2015<br />
*[http://www.agbook.com.br/book/44784--Programando_com_o_Lazarus Programando com o Lazarus] - In Portuguese<br />
*[https://editions.liberlog.org/boutique/lazarus-et-le-developpement-rapide/ Lazarus Free Pascal - Développement rapide] - In French - 2011 and June 2018<br />
*[http://code.sd/startprog/ Start Programming using Object Pascal Language] - A free book in English by forum member ''motaz''. Covers both Free Pascal and Lazarus.<br />
*[http://openlibrary.org/works/OL16799439W Learn to Program using Lazarus] by Howard Page-Clark, published by Stichting Programmeertaal Pascal / Pro Pascal Foundation. [http://www.blaisepascal.eu/index.php?actie=./subscribers/UK_Book_Department_LearnToProgramUsingLazarus Publisher's info] - A tutorial approach, written in English. Available as print and PDF.<br />
*[http://www.packtpub.com/getting-started-with-the-lazarus-integrated-development-environment/book Getting Started with Lazarus IDE] by Roderick Person<br />
*[http://www.amazon.co.uk/Getting-Started-Lazarus-Free-Pascal/dp/1507632525/ref=sr_1_1?ie=UTF8&qid=1422276867&sr=8-1&keywords=getting+started+with+lazarus+and+free+pascal Getting Started with Lazarus and Free Pascal] by Menkaura Abiola-Ellison, Paperback and ebook 2015, Includes chapters on Web Dev, DB using SQL, 2D & 3D Graphics, Debugging and more...<br />
*[https://www.amazon.de/Professionelles-Programmieren-von-Anfang-Entwicklungsumgebung/dp/394589901X/ref=sr_1_2 Professionelles Programmieren von Anfang an: Mit Free Pascal und der freien Entwicklungsumgebung Lazarus] by Wilfried Koch, July 2016, in German<br />
*[http://www.copperwood.com/pub/FreePascalFromSquareOne.pdf FreePascal from SquareOne] by Jeff Duntemann<br />
<br />
==Books about Pascal (or SQL) that are helpful, though not dealing specifically with Free Pascal or Lazarus==<br />
These books do not cover Lazarus or FreePascal specifically but can still be very useful.<br />
*[http://www.marcocantu.com/epascal/ Essential Pascal] - Introduction to Pascal. Written originally in English but now translated into many languages.<br />
*[http://www.marcocantu.com/objectpascalhandbook/ Object Pascal Handbook] - A new book by Marco Cantù, to be published Early 2015.<br />
*[http://www.econ.kuleuven.ac.be/tew/academic/infosys/MEMBERS/VTHIENEN/PASCAL/CURSUS/EssentialDelphi_103.pdf Essential Delphi] - Delphi and Lazarus share many concepts and this book can help you understand Lazarus as well (file no longer available from original site www.marcocantu.com).<br />
*[http://www.marcocantu.com/edelphi/EssentialSQL_md6.pdf Essential SQL] - Useful if you use a SQL-based RDBMS such as Firebird, Interbase, PostgreSQL with FPC/Lazarus<br />
*[https://www.blaisepascalmagazine.eu/product/books-computer-graphics-math-games-download-pdf/ Computer Math and Games in Pascal] by David Dirkse.<br />
*[https://www.amazon.co.uk/Getting-Started-Firebird-Learning-Doing/dp/0993272371/ref=sr_1_fkmrnull_3?crid=3KHQFVJ5WCYMZ&keywords=getting+started+with+firebird&qid=1553700308&s=gateway&sprefix=getting+started+with+fir%2Caps%2C163&sr=8-3-fkmrnull Getting Started with Firebird SQL Database] by Menkaura Abiola-Ellison (2019)<br />
<br />
==Periodicals which publish content about Free Pascal and Lazarus==<br />
*[http://www.blaisepascal.eu/ Blaise Pascal Magazine] - A bi-monthly magazine dedicated to all types of Pascal programming, including [[Lazarus]]/[[Free Pascal]], [[Delphi]]. Offers English, Dutch and Russian editions.<br />
*[http://www.clubedelphi.net/ Clube Delphi] - From Brazil in Portuguese. Mostly dedicated to Delphi, but also publishes Free Pascal/Lazarus material regularly.<br />
*[http://www.pascalgamer.com/ Pascal Gamer Magazine] - a free, online, downloadable (PDF) publication devoted to game development in Pascal<br />
*[http://www.delphigamer.com/ Delphi Gamer Magazine] - an English language publication about making games with Object Pascal<br />
<br />
==Periodic Magazines which publish content about other Pascal variants==<br />
*[http://entwickler.de/magazin/aktuell Entwickler Magazin] A German magzine on software development that occasionally includes article on Delphi.<br />
<br />
==Scientific journals, which publish articles on Pascal, Free Pascal or Lazarus ==<br />
<br />
*[http://www.mii.lt/olympiads_in_informatics/ Olympiads in Informatics]. A refereed scholarly journal that is focused on research and practice of professionals who work in the field of teaching and learning informatics. ISSN 1822-7732<br />
<br />
==External Links==<br />
* [http://openlibrary.org/subjects/free_pascal Open Library's Free Pascal catalog]<br />
<br />
==See also==<br />
* [[Academic citation]]<br />
* [[Lazarus Documentation]]<br />
<br />
[[Category:Publications]]<br />
[[Category:FPC]]<br />
[[Category:Lazarus]]<br />
[[Category:Books]]<br />
[[Category:Journals]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=MasterDetail&diff=121496MasterDetail2018-12-06T03:26:57Z<p>Valdir.marcos: /* One more example */</p>
<hr />
<div>==Overview==<br />
In relational databases the master-detail concept is also called one-to-many or 1:N. It means that one record in a table/dataset can be related to many records in another table/dataset. It is a model that uses data from one dataset to filter data in another dataset. The dataset that is used to filter the data is called Master and the filtered dataset is called Detail. <br />
<br />
For example, countries have many cities. If you select a country and want to see all its cities, that is a good job for Master/Detail. The countries table could be master, and cities table could be detail.<br />
<br />
The filtering works because the detail table contains an identifier from the master table, usually the master table's primary key. So this key exists in both the master and detail table. In the detail table it is called a foreign key.<br />
<br />
Classical examples of master/detail relations are: <br />
* customers with orders<br />
* orders with ordered articles<br />
<br />
In our example below we'll work with a customer table and an order table.<br />
<br />
== SQLDB implementation ==<br />
You can use the '''datasource''' property in the detail dataset to link to the master dataset.<br />
<br />
The approach below applies to both Lazarus and FPC code that uses the built in [[SQLdb Package]] database layer. It may also apply to other database layers (e.g. Zeos); please check with their documentation.<br />
<br />
Example from the EMPLOYEE database (as used in [[SQLdb Tutorial0]] and other tutorials): <br />
* a CUSTOMER table with an integer primary key CUST_NO and other fields<br />
* a SALES table with a CUST_NO integer field that is a foreign key linking to the CUST_NO field in the CUSTOMER table<br />
<br />
On the form:<br />
* use one connection, 1 transaction, but 2 queries, 2 data sources<br />
* a master query called qryCustomers selects from the CUSTOMER table<br />
* a detail query called qrySales that selects from the SALES table<br />
<br />
In the detail query qrySales:<br />
* set the database property as usual<br />
* set the datasource property to point to the master datasource<br />
* in the query SQL, use a WHERE query to limit the select; use the detail fieldname and limit it to a parameter with the name of the field in the master table<br />
<syntaxhighlight lang="SQL">SELECT * from SALES WHERE SALES.CUST_NO=:CUST_NO</syntaxhighlight><br />
In this case we use the SALES.CUST_NO field that happens to have the same field name as the master field CUST_NO, but that need not be the case.<br />
As the master datasource keeps track of the current record for the master query qryCustomers, FPC can see the CUST_NO parameter as a reference to the current value of the CUST_NO field in the master/qryCustomers query.<br />
<br />
If you want to use additional parameters in your query that should ''not'' be linked to the master query, make sure their <code>Bound</code> property is true before opening the master dataset. See [[doc:fcl/db/tparam.bound.html]]<br />
<br />
Make sure that the master query is open before the detail query so it can look up fields.<br />
<br />
=== Adding detail records with the right foreign key ===<br />
Although detail records scroll with master records, additional code is needed.<br />
<br />
When adding new detail records, the SALES.CUST_NO field is still NULL unless we fill it. So we need to set up an AfterInsert event handler for qrySales:<br />
<syntaxhighlight><br />
procedure TForm1.qrySalesAfterInsert(DataSet: TDataSet);<br />
begin<br />
DataSet.FieldByName('CUST_NO').AsInteger := qryCustomers.FieldByName('CUST_NO').AsInteger;<br />
end;<br />
</syntaxhighlight><br />
<br />
=== Using detail parameters that do not filter using master data ===<br />
By default, the values of all parameters in the detail dataset will be provided by the master dataset. Suppose you have another parameter in the detail dataset that you want to filter on independently:<br />
<br />
Master Query:<br />
Same as above<br />
<br />
Detail query:<br />
<syntaxhighlight lang="SQL"><br />
SELECT * FROM SALES WHERE SALES.CUST_NO=:CUST_NO AND OVERDUE=:CREDITOVERDUE<br />
</syntaxhighlight><br />
<br />
The solution is to tell SQLDB that the CREDITOVERDUE parameter should be "bound", using one of these methods:<br />
# Set a value for the parameter in the object inspector.<br />
# Mark the parameter as bound (to a value) before opening the master dataset: <code>qryDetail.Params.ParamByName('CREDITOVERDUE').Bound:=True;</code> See [[doc:fcl/db/tparam.bound.html|Bound property documentation]]<br />
# Set the parameter value before opening the master dataset:<br />
<code>qryDetail.Params.ParamByName('CREDITOVERDUE').AsBoolean:=true;</code><br />
<br />
=== Detail bookmarks ===<br />
Note: in TBufDataset and bufdataset descendents (such as SQLQuery), detail datasets are reloaded whenever the master dataset active record moves; therefore existing detail bookmarks, even if valid, will no longer point to the same detail record after moving.<br />
<br />
<br />
----<br />
<br />
== '''Countries and cities example''' ==<br />
<br />
This tutorial was made using SQLite but the principles are the same for other databases also.<br />
<br />
In case you have no admin program for SQLite, I suggest SQLite Studio. http://sqlitestudio.pl<br />
<br />
*First create a new SQLite database and save it as database.db3.<br />
<br />
(If you use another database system, just create your tables as you are used to and use the appropriate components for the example).<br />
<br />
<br />
'''Now lets make two tables.'''<br />
<br />
The "countries" table:<br />
<br />
<syntaxhighlight lang="SQL"><br />
COUNTRY_ID (Primary key, integer, autoincrement)<br />
COUNTRY_NAME (VARCHAR(50), not null)<br />
</syntaxhighlight><br />
<br />
'''Add two countries to the table:'''<br />
*Sweden<br />
*Norway<br />
<br />
Because COUNTRY_ID is autoincrement, each country is<br />
assigned an ID automatically.<br />
<br />
'''Then make the "cities" table:'''<br />
<syntaxhighlight lang="SQL"><br />
CITY_ID (Primary key, integer, autoincrement)<br />
CITY_NAME (VARCHAR(50), not null)<br />
COUNTRY_ID (integer, not null) (foreign key)<br />
</syntaxhighlight><br />
<br />
'''Add three cities to this table:'''<br />
*Stockholm with COUNTRY_ID 1<br />
*Gothenburg with COUNTRY_ID 1<br />
*Oslo with COUNTRY_ID 2<br />
<br />
Since Sweden was added first in the empty table, it will have COUNTRY_ID 1 and Norway will have with COUNTRY_ID 2. For every city you add, you must supply its COUNTRY_ID because thats what links the tables together and make the master/detail concept possible.<br />
<br />
<br />
*Create a new project in Lazarus and save it as MasterDetail<br />
*Drop a TSQLite3Connection on the form. (SQLdb tab)<br />
*In the DatabaseName property for TSQLite3Connection enter full path and filename for the SQLite Database file you just made.<br />
*Drop a TSQLTransaction on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Return to TSQLite3Connection and set its Transaction property to SQLTransaction1<br />
*Set TSQLite3Connection.Connected to true<br />
<br />
'''You should now have a connection to the database and can proceed to the next step.'''<br />
<br />
*Drop a TSQLQuery on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Set its Transaction property to: SQLTransaction1<br />
*In the SQL statement, enter: <br />
<syntaxhighlight lang="SQL"><br />
select * from countries <br />
</syntaxhighlight><br />
*Drop a TDataSource on the form. (Data Access tab)<br />
*Set its DataSet to: SQLQuery1<br />
<br />
*Drop a TDBGrid on the form (Data Controls tab)<br />
*Set its DataSource property to: DataSource1<br />
<br />
*Go to SQLQuery1 and set Active to true. <br />
<br />
'''The content of the countries table (master) should now be visible in DBGrid1.'''<br />
<br />
*Now proceed with the cities table (detail)<br />
*Drop a second TSQLQuery on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Set its Transaction property to: SQLTransaction1<br />
*In the SQL statement, enter: <br />
<syntaxhighlight><br />
select *<br />
from cities<br />
where cities.COUNTRY_ID = :COUNTRY_ID<br />
</syntaxhighlight><br />
The colon sign for :COUNTRY_ID just means that this is a variable parameter and that the value comes from somewhere else. It takes the value from the Master DataSource. So in our example the :COUNTRY_ID value is supplied by DataSource1, which is our Master DataSource. (The parameter name is not arbitrary: it is the relevant field name in the Master Table)<br />
<br />
*Set its Datasource property to Datasource1.<br />
<br />
This does not yet allow us to add cities; to do this:<br />
* Please use the information under #Adding detail records with the right foreign key above.<br />
<br />
<br />
'''Continue with the Detail view:'''<br />
<br />
*Drop a second TDataSource on the form.<br />
*Set its DataSet property to Query2 (detail query)<br />
*Drop a second DBGrid on the form (Detail grid)<br />
*Set its DataSource to DataSource2 (Detail DataSource)<br />
<br />
<br />
'''Now get the data flowing into the grids. Set all these to active/connected:'''<br />
<br />
*DBConnection<br />
*Transaction<br />
*Query1<br />
*Query2<br />
<br />
<br />
Now there should be detail data in the DBGrid2<br />
<br />
<br />
A thing to remember is that (as above) the Detail Query's DataSource must be set to the Master DataSource. (DataSource1 in our example)<br />
<br />
<br />
<br />
'''If you still didn't understand, look at this wiring scheme:'''<br />
<br />
Master Query.DataSource := None<br />
<br />
Master DataSource.Dataset := Master Query<br />
<br />
Master DBGrid.DataSource := Master DataSource<br />
<br />
Detail Query.DataSource := Master DataSource<br />
<br />
Detail DataSource.Dataset := Detail Query<br />
<br />
Detail DBGrid.DataSource := Detail DataSource<br />
<br />
== Delete all Detail records if Master record is deleted ==<br />
<br />
This is easy to do with Cascading Deletes. Once again, this is for SQLite, but other systems work similarly.<br />
<br />
* First turn on foreign keys for SQLite because it's off by default. Do this by adding FOREIGN_KEYS=ON to the Params property of TSQLite3Connection.<br />
<br />
* Then make sure the detail table is created so the foreign key (country_id) references the master table. In this case it is the cities table:<br />
<syntaxhighlight><br />
try<br />
{ Master table }<br />
Conn.ExecuteDirect('CREATE TABLE IF NOT EXISTS countries (' +<br />
' country_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ' +<br />
' country_name VARCHAR(30) ' +<br />
')');<br />
{ Detail table }<br />
Conn.ExecuteDirect('CREATE TABLE IF NOT EXISTS cities (' +<br />
' city_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ' +<br />
' city_name VARCHAR(30), ' +<br />
' country_id INTEGER REFERENCES countries ON DELETE CASCADE' +<br />
')');<br />
{ Sample data }<br />
Conn.ExecuteDirect('INSERT INTO countries(country_name) VALUES(''Sweden'')');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Stockholm'', 1)');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Malmo'', 1)');<br />
<br />
Conn.ExecuteDirect('INSERT INTO countries(country_name) VALUES(''Norway'')');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Oslo'', 2)');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Bergen'', 2)');<br />
<br />
Conn.Transaction.Commit;<br />
Conn.Close;<br />
except<br />
on E:Exception do<br />
begin<br />
TX.Rollback;<br />
ShowMessage( E.Message );<br />
end;<br />
end;<br />
</syntaxhighlight><br />
<br />
Thats it. From now on, all detail records are deleted automatically whenever the master record is deleted.<br />
<br />
<br />
Note: DON'T try to turn on foreign keys this way:<br />
<syntaxhighlight><br />
Conn.ExecuteDirect('PRAGMA foreign_keys = ON');<br />
</syntaxhighlight><br />
<br />
TSQLite3Connection starts a transaction before the first query is sent to the database, even in case of a ExecuteDirect. It is not possible to enable or disable foreign key constraints in the middle of a multi-statement transaction (when SQLite is not in autocommit mode). Attempting to do so does not return an error; it simply has no effect. Source: Ludob/SQLite documentation.<br />
<br />
== One more example ==<br />
There is a complete running example with source code on this forum topic:<br />
<br />
How to Append a new line and save it in DBGrid?<br />
<br />
http://forum.lazarus.freepascal.org/index.php/topic,42088.msg293305.html#msg293305<br />
<br />
== See also ==<br />
* http://www.freepascal.org/docs-html/fcl/sqldb/usingparams.html Documentation on using parameters, including implementation for master/detail<br />
* http://docwiki.embarcadero.com/RADStudio/XE3/en/Establishing_Master-detail_Relationships_Using_Parameters The documentation for the equivalent Delphi feature<br />
* http://forum.codecall.net/topic/62683-master-detail-datasets/<br />
* [[Lazarus Tdbf Tutorial#Master table relations]] Example of using master/detail with the TDBF components<br />
* [[SQLdb Tutorial0]] - Set up instructions for sample data for the subsequent database tutorials. Has master/detail tables<br />
<br />
[[Category:Databases]]<br />
[[Category:Lazarus]]<br />
[[Category:FPC]]<br />
[[Category:Tutorials]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=MasterDetail&diff=121495MasterDetail2018-12-06T03:26:03Z<p>Valdir.marcos: </p>
<hr />
<div>==Overview==<br />
In relational databases the master-detail concept is also called one-to-many or 1:N. It means that one record in a table/dataset can be related to many records in another table/dataset. It is a model that uses data from one dataset to filter data in another dataset. The dataset that is used to filter the data is called Master and the filtered dataset is called Detail. <br />
<br />
For example, countries have many cities. If you select a country and want to see all its cities, that is a good job for Master/Detail. The countries table could be master, and cities table could be detail.<br />
<br />
The filtering works because the detail table contains an identifier from the master table, usually the master table's primary key. So this key exists in both the master and detail table. In the detail table it is called a foreign key.<br />
<br />
Classical examples of master/detail relations are: <br />
* customers with orders<br />
* orders with ordered articles<br />
<br />
In our example below we'll work with a customer table and an order table.<br />
<br />
== SQLDB implementation ==<br />
You can use the '''datasource''' property in the detail dataset to link to the master dataset.<br />
<br />
The approach below applies to both Lazarus and FPC code that uses the built in [[SQLdb Package]] database layer. It may also apply to other database layers (e.g. Zeos); please check with their documentation.<br />
<br />
Example from the EMPLOYEE database (as used in [[SQLdb Tutorial0]] and other tutorials): <br />
* a CUSTOMER table with an integer primary key CUST_NO and other fields<br />
* a SALES table with a CUST_NO integer field that is a foreign key linking to the CUST_NO field in the CUSTOMER table<br />
<br />
On the form:<br />
* use one connection, 1 transaction, but 2 queries, 2 data sources<br />
* a master query called qryCustomers selects from the CUSTOMER table<br />
* a detail query called qrySales that selects from the SALES table<br />
<br />
In the detail query qrySales:<br />
* set the database property as usual<br />
* set the datasource property to point to the master datasource<br />
* in the query SQL, use a WHERE query to limit the select; use the detail fieldname and limit it to a parameter with the name of the field in the master table<br />
<syntaxhighlight lang="SQL">SELECT * from SALES WHERE SALES.CUST_NO=:CUST_NO</syntaxhighlight><br />
In this case we use the SALES.CUST_NO field that happens to have the same field name as the master field CUST_NO, but that need not be the case.<br />
As the master datasource keeps track of the current record for the master query qryCustomers, FPC can see the CUST_NO parameter as a reference to the current value of the CUST_NO field in the master/qryCustomers query.<br />
<br />
If you want to use additional parameters in your query that should ''not'' be linked to the master query, make sure their <code>Bound</code> property is true before opening the master dataset. See [[doc:fcl/db/tparam.bound.html]]<br />
<br />
Make sure that the master query is open before the detail query so it can look up fields.<br />
<br />
=== Adding detail records with the right foreign key ===<br />
Although detail records scroll with master records, additional code is needed.<br />
<br />
When adding new detail records, the SALES.CUST_NO field is still NULL unless we fill it. So we need to set up an AfterInsert event handler for qrySales:<br />
<syntaxhighlight><br />
procedure TForm1.qrySalesAfterInsert(DataSet: TDataSet);<br />
begin<br />
DataSet.FieldByName('CUST_NO').AsInteger := qryCustomers.FieldByName('CUST_NO').AsInteger;<br />
end;<br />
</syntaxhighlight><br />
<br />
=== Using detail parameters that do not filter using master data ===<br />
By default, the values of all parameters in the detail dataset will be provided by the master dataset. Suppose you have another parameter in the detail dataset that you want to filter on independently:<br />
<br />
Master Query:<br />
Same as above<br />
<br />
Detail query:<br />
<syntaxhighlight lang="SQL"><br />
SELECT * FROM SALES WHERE SALES.CUST_NO=:CUST_NO AND OVERDUE=:CREDITOVERDUE<br />
</syntaxhighlight><br />
<br />
The solution is to tell SQLDB that the CREDITOVERDUE parameter should be "bound", using one of these methods:<br />
# Set a value for the parameter in the object inspector.<br />
# Mark the parameter as bound (to a value) before opening the master dataset: <code>qryDetail.Params.ParamByName('CREDITOVERDUE').Bound:=True;</code> See [[doc:fcl/db/tparam.bound.html|Bound property documentation]]<br />
# Set the parameter value before opening the master dataset:<br />
<code>qryDetail.Params.ParamByName('CREDITOVERDUE').AsBoolean:=true;</code><br />
<br />
=== Detail bookmarks ===<br />
Note: in TBufDataset and bufdataset descendents (such as SQLQuery), detail datasets are reloaded whenever the master dataset active record moves; therefore existing detail bookmarks, even if valid, will no longer point to the same detail record after moving.<br />
<br />
<br />
----<br />
<br />
== '''Countries and cities example''' ==<br />
<br />
This tutorial was made using SQLite but the principles are the same for other databases also.<br />
<br />
In case you have no admin program for SQLite, I suggest SQLite Studio. http://sqlitestudio.pl<br />
<br />
*First create a new SQLite database and save it as database.db3.<br />
<br />
(If you use another database system, just create your tables as you are used to and use the appropriate components for the example).<br />
<br />
<br />
'''Now lets make two tables.'''<br />
<br />
The "countries" table:<br />
<br />
<syntaxhighlight lang="SQL"><br />
COUNTRY_ID (Primary key, integer, autoincrement)<br />
COUNTRY_NAME (VARCHAR(50), not null)<br />
</syntaxhighlight><br />
<br />
'''Add two countries to the table:'''<br />
*Sweden<br />
*Norway<br />
<br />
Because COUNTRY_ID is autoincrement, each country is<br />
assigned an ID automatically.<br />
<br />
'''Then make the "cities" table:'''<br />
<syntaxhighlight lang="SQL"><br />
CITY_ID (Primary key, integer, autoincrement)<br />
CITY_NAME (VARCHAR(50), not null)<br />
COUNTRY_ID (integer, not null) (foreign key)<br />
</syntaxhighlight><br />
<br />
'''Add three cities to this table:'''<br />
*Stockholm with COUNTRY_ID 1<br />
*Gothenburg with COUNTRY_ID 1<br />
*Oslo with COUNTRY_ID 2<br />
<br />
Since Sweden was added first in the empty table, it will have COUNTRY_ID 1 and Norway will have with COUNTRY_ID 2. For every city you add, you must supply its COUNTRY_ID because thats what links the tables together and make the master/detail concept possible.<br />
<br />
<br />
*Create a new project in Lazarus and save it as MasterDetail<br />
*Drop a TSQLite3Connection on the form. (SQLdb tab)<br />
*In the DatabaseName property for TSQLite3Connection enter full path and filename for the SQLite Database file you just made.<br />
*Drop a TSQLTransaction on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Return to TSQLite3Connection and set its Transaction property to SQLTransaction1<br />
*Set TSQLite3Connection.Connected to true<br />
<br />
'''You should now have a connection to the database and can proceed to the next step.'''<br />
<br />
*Drop a TSQLQuery on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Set its Transaction property to: SQLTransaction1<br />
*In the SQL statement, enter: <br />
<syntaxhighlight lang="SQL"><br />
select * from countries <br />
</syntaxhighlight><br />
*Drop a TDataSource on the form. (Data Access tab)<br />
*Set its DataSet to: SQLQuery1<br />
<br />
*Drop a TDBGrid on the form (Data Controls tab)<br />
*Set its DataSource property to: DataSource1<br />
<br />
*Go to SQLQuery1 and set Active to true. <br />
<br />
'''The content of the countries table (master) should now be visible in DBGrid1.'''<br />
<br />
*Now proceed with the cities table (detail)<br />
*Drop a second TSQLQuery on the form. (SQLdb tab)<br />
*Set its Database property to: SQLite3Connection1<br />
*Set its Transaction property to: SQLTransaction1<br />
*In the SQL statement, enter: <br />
<syntaxhighlight><br />
select *<br />
from cities<br />
where cities.COUNTRY_ID = :COUNTRY_ID<br />
</syntaxhighlight><br />
The colon sign for :COUNTRY_ID just means that this is a variable parameter and that the value comes from somewhere else. It takes the value from the Master DataSource. So in our example the :COUNTRY_ID value is supplied by DataSource1, which is our Master DataSource. (The parameter name is not arbitrary: it is the relevant field name in the Master Table)<br />
<br />
*Set its Datasource property to Datasource1.<br />
<br />
This does not yet allow us to add cities; to do this:<br />
* Please use the information under #Adding detail records with the right foreign key above.<br />
<br />
<br />
'''Continue with the Detail view:'''<br />
<br />
*Drop a second TDataSource on the form.<br />
*Set its DataSet property to Query2 (detail query)<br />
*Drop a second DBGrid on the form (Detail grid)<br />
*Set its DataSource to DataSource2 (Detail DataSource)<br />
<br />
<br />
'''Now get the data flowing into the grids. Set all these to active/connected:'''<br />
<br />
*DBConnection<br />
*Transaction<br />
*Query1<br />
*Query2<br />
<br />
<br />
Now there should be detail data in the DBGrid2<br />
<br />
<br />
A thing to remember is that (as above) the Detail Query's DataSource must be set to the Master DataSource. (DataSource1 in our example)<br />
<br />
<br />
<br />
'''If you still didn't understand, look at this wiring scheme:'''<br />
<br />
Master Query.DataSource := None<br />
<br />
Master DataSource.Dataset := Master Query<br />
<br />
Master DBGrid.DataSource := Master DataSource<br />
<br />
Detail Query.DataSource := Master DataSource<br />
<br />
Detail DataSource.Dataset := Detail Query<br />
<br />
Detail DBGrid.DataSource := Detail DataSource<br />
<br />
== Delete all Detail records if Master record is deleted ==<br />
<br />
This is easy to do with Cascading Deletes. Once again, this is for SQLite, but other systems work similarly.<br />
<br />
* First turn on foreign keys for SQLite because it's off by default. Do this by adding FOREIGN_KEYS=ON to the Params property of TSQLite3Connection.<br />
<br />
* Then make sure the detail table is created so the foreign key (country_id) references the master table. In this case it is the cities table:<br />
<syntaxhighlight><br />
try<br />
{ Master table }<br />
Conn.ExecuteDirect('CREATE TABLE IF NOT EXISTS countries (' +<br />
' country_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ' +<br />
' country_name VARCHAR(30) ' +<br />
')');<br />
{ Detail table }<br />
Conn.ExecuteDirect('CREATE TABLE IF NOT EXISTS cities (' +<br />
' city_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ' +<br />
' city_name VARCHAR(30), ' +<br />
' country_id INTEGER REFERENCES countries ON DELETE CASCADE' +<br />
')');<br />
{ Sample data }<br />
Conn.ExecuteDirect('INSERT INTO countries(country_name) VALUES(''Sweden'')');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Stockholm'', 1)');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Malmo'', 1)');<br />
<br />
Conn.ExecuteDirect('INSERT INTO countries(country_name) VALUES(''Norway'')');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Oslo'', 2)');<br />
Conn.ExecuteDirect('INSERT INTO cities(city_name, country_id) VALUES(''Bergen'', 2)');<br />
<br />
Conn.Transaction.Commit;<br />
Conn.Close;<br />
except<br />
on E:Exception do<br />
begin<br />
TX.Rollback;<br />
ShowMessage( E.Message );<br />
end;<br />
end;<br />
</syntaxhighlight><br />
<br />
Thats it. From now on, all detail records are deleted automatically whenever the master record is deleted.<br />
<br />
<br />
Note: DON'T try to turn on foreign keys this way:<br />
<syntaxhighlight><br />
Conn.ExecuteDirect('PRAGMA foreign_keys = ON');<br />
</syntaxhighlight><br />
<br />
TSQLite3Connection starts a transaction before the first query is sent to the database, even in case of a ExecuteDirect. It is not possible to enable or disable foreign key constraints in the middle of a multi-statement transaction (when SQLite is not in autocommit mode). Attempting to do so does not return an error; it simply has no effect. Source: Ludob/SQLite documentation.<br />
<br />
== One more example ==<br />
There is a complete running example on this forum topic:<br />
<br />
How to Append a new line and save it in DBGrid?<br />
<br />
http://forum.lazarus.freepascal.org/index.php/topic,42088.msg293305.html#msg293305<br />
<br />
<br />
== See also ==<br />
* http://www.freepascal.org/docs-html/fcl/sqldb/usingparams.html Documentation on using parameters, including implementation for master/detail<br />
* http://docwiki.embarcadero.com/RADStudio/XE3/en/Establishing_Master-detail_Relationships_Using_Parameters The documentation for the equivalent Delphi feature<br />
* http://forum.codecall.net/topic/62683-master-detail-datasets/<br />
* [[Lazarus Tdbf Tutorial#Master table relations]] Example of using master/detail with the TDBF components<br />
* [[SQLdb Tutorial0]] - Set up instructions for sample data for the subsequent database tutorials. Has master/detail tables<br />
<br />
[[Category:Databases]]<br />
[[Category:Lazarus]]<br />
[[Category:FPC]]<br />
[[Category:Tutorials]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_2.0_fixes_branch&diff=120721Lazarus 2.0 fixes branch2018-10-29T03:14:47Z<p>Valdir.marcos: /* Roadmap to 2.0.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_2_0/ Lazarus 2.0 fixes] branch.<br />
<br />
These are only fixes made after the branch was created. For other fixes made since the previous release (1.8) see SVN and [[Lazarus_1.8_fixes_branch|Lazarus 1.8 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 2.0.0 release notes|here]]<br />
<br />
== Fixes for 2.0.0RC3 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
* r59374 IDE: Update unit path for all build modes also when creating a new unit. {{MantisLink|34413}}<br />
* r59378 IDE: Add high-dpi icons for images and images/codeexplorer (provided by Roland Hahn)<br />
* r59376 debugger: fix pseudo terminal, only memo needs monospace. {{MantisLink|0034192}}<br />
<br />
=== Merged revisions for 2.0.0RC3 ===<br />
<br />
== Fixes for 2.0.0RC2 (merged) ==<br />
<br />
*r59016 LCL-GTK2: Do not truncate Groupbox caption. {{MantisLink|32621}}<br />
*r59018 LCL-GTK2: Fix TStaticText Width with Autosize. {{MantisLink|21877}}<br />
*r59030 TValueListEditor: fix DeleteRow {{MantisLink|0034208}}.<br />
*r59031 TFindDialog: fix setting Top/Left. {{MantisLink|0033528}}.<br />
*r59032 TCommondialog: do not publish Widht/Height properties. {{MantisLink|0033480}}. Patch by AlexeyT.<br />
*r59048 TFindDialog: slight improvement on r59031.<br />
*r59049 TFindDialog: use Position := poMainFormCenter in CalcPosition instead of trying to calculate that by ourselves. Patch by Serge Anvarov.<br />
*r59050 TFindDialog: save FFindForm position upon close.<br />
*r59064 Opkman: Bug fix: remove package compiling restriction.<br />
*r59066 IDE: clean up<br />
*r59077 IDE: fixed abstract method<br />
*r59079 IDE: less hints<br />
*r59041 IDE: Use safe typecast for TProjectCompilationToolOptions when building project.<br />
*r59042 Revert r59006 "IdeIntf: Add API for ExecuteCommand in CompOptsIntf." Must be done better.<br />
*r59043 IdeIntf: A new interface class TLazCompilationToolOptions with a Command and CompileReasons. {{MantisLink|34283}}.<br />
*r59044 IdeIntf: Improve the CompilationTool stuff. Remove and clean code. {{MantisLink|34283}}.<br />
*r59046 LCL-GTK2: Do not truncate Groupbox caption (fix for previous). {{MantisLink|32621}}.<br />
*r59047 LCL-GTK2: Fix TListView column widths. {{MantisLink|34044}}.<br />
*r59081 IDE: Add package name to hints for component palette icons.<br />
*r59083 TFindDialog/TReplaceDialog: show dialog poScreenCenter in IDE; fix erratic behaviour of TReplaceDialog in IDE (wrong parent). {{MantisLink|34297}}.<br />
*r59085 LCL: Improved layout of TFindDialog and TReplaceDialog, fix TabOrder.<br />
*r59094 LCL: Fix TCustomListbox not releasing Canvas handle in DestroyWnd {{MantisLink|34249}}.<br />
*r59095 Translations: Turkish translation update by Hakan KIZILHAN, {{MantisLink|34296}}<br />
*r59096 Translations: Spanish translation update by Alonso Cárdenas Márquez, {{MantisLink|34304}}<br />
*r59110 Opkman: Fix memory leak.<br />
*r59141 lazutils: removed duplicate code, {{MantisLink|34320}}<br />
*r59089 IDE: Bug fix: Deleting newly added CoolBar leads to error. {{MantisLink|34302}}.<br />
*r59091 IDE: Check package name validity correctly.<br />
*r59147 IDE: Improve logic for updating Application.Title statement. Now it gets removed, too. {{MantisLink|34318}}.<br />
*r59156 IDE: Add new Application.Title and .Scale statements after Application.Create line. {{MantisLink|34318}}.<br />
*r59170 IDE: Support 3 icons with different resolutions in "New Component" dialog. Improve the GUI.<br />
*r59172 IDE: cleaned up unused resource string<br />
*r59173 IDE: regenerated translations and updated Russian translation<br />
*r59176 IDE: In "New Component" dialog resize the buttons based on icon image size. Improve initial dir for selecting icon.<br />
*r59092 MainInspector: Fix a typo.<br />
*r59111 LCL-GTK2: Prevent flickering in TOpenGLControl. Turn DoubleBuffered off. {{MantisLink|33864}}<br />
*r59190 LCL-GTK3: Add typecasts for Color types. The code may still be wrong but can be tested with Range checks on.<br />
*r59191 LCL-GTK3: Fix menu radio group. {{MantisLink|34350}}.<br />
*r59118 Docs: Fix short description for function StringToColor.<br />
*r59125 LazUtf8: leftpad escaped characters in Utf8EscapeControlChars if EscapeMode = emPascal. Prevents ambiguity when reading the result.<br />
*r59169 LazUtils: Move ExtractFileNameWithoutExt to LazFileUtils. Rhymes with ExtractFileNameOnly.<br />
*r59175 Delete old deprecated methods.<br />
*r59177 LazUtils: Move more functions from FileUtils to LazFileUtilities, deprecate the old ones.<br />
*r59149 LCL: Add support for custom font of TSpeedButton (see https://forum.lazarus.freepascal.org/index.php/topic,42635.msg297800.html#msg297800, patch by Ondrej)<br />
*r59167 LCL: Fix incorrect checked state after deleting an item of a TCheckGroup. {{MantisLink|34327}}.<br />
*r59168 Split command line parameters also when "Run without Debugging".<br />
*r59197 TAChart: deprecate all reticule-related methods and properties (was incomplete). Less hints and warnings.<br />
*r59208 debuggerintf: less hints<br />
*r59210 fpdebug: less hints<br />
*r59212 ideintf: less hints<br />
*r59214 lazdebuggers: less hints<br />
*r59216 lazutils: less hints<br />
*r59218 turbopower_ipro: less hints<br />
*r59220 lcl: gtk2: less hints<br />
*r59222 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 34367<br />
*r59223 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 34368<br />
*r59225 LazControls: Improve and optimize the filter controls. {{MantisLink|34057}}<br />
*r59226 LazControls: Call DoFilterItem instead of DoDefaultFilterItem in TTreeFilterBranch.SortAndFilter.<br />
*r59227 IdeIntf: Delete old deprecated methods and properties.<br />
*r59268 IdeIntf: Improve timestamp updates of TLazCompilationToolOptions + inherited classes. {{MantisLink|34283}}<br />
*r59228 AnchorDocking: Prevent crash on drag-and-dock tab page. {{MantisLink|34371}}<br />
*r59229 LazReport: Delete old deprecated UTF8 functions.<br />
*r59230 TAChart: Remove old deprecated code.<br />
*r59239 TAChart: Check and fix all demos and tutorial projects (mostly layout issues)<br />
*r59241 TAChart: Fix TChartImageList demo.<br />
*r59243 TAChart: Extend dragdrop demo to show horizontal dragging of bars.<br />
*r59240 Packager: Allow overwriting existing unit files in New Component dialog. Error was shown AFTER a file was overwritten. {{MantisLink|26928}}<br />
*r59244 IDE: Always create project's main icon file when saving it. Keeps its size down. {{MantisLink|27287}}<br />
*r59245 IDE: Add initial directory for loading project icon in App options. Use IconImage.Picture.Icon everywhere.<br />
*r59246 IDE: Remove resource generation from DoBuildProject. They have been generated earlier. {{MantisLink|15915}}<br />
*r59248 IDE: Support running external tool with parsers, needed when used through IDE interface.<br />
*r59263 IDE: Reduce DebugLn() calls in Publish Module code. It seems to work.<br />
*r59266 IDE: New High-DPI images in folders images/items and images/packages. Kindly provided by Roland Hahn.<br />
*r59267 IDE: Use scaled images in trees of "Install/Uninstall packages" form.<br />
*r59272 IDE: Center icon and text vertically for each item in ViewUnit dialog. {{MantisLink|34402}}<br />
*r59254 LCL-Gtk2: Don't mix resizing a column with drag-and-drop. {{MantisLink|34393}}<br />
*r59262 LCL-GTK3: Fix TRadioGroup. It did not work at all. {{MantisLink|34396}}<br />
*r59270 LCL: Fix TBitBtn ignoring the Margin property on Windows. {{MantisLink|34379}}<br />
*r59259 TurboPower_iPro: Implement css function rgb().<br />
*r59271 TurboPower_iPro: Implement css function hsl().<br />
*r59275 Translations: Hungarian translation update by Péter Gábor, bug 34397<br />
*r59276 Translations: French translation update by Gilles Vasseur, bug 34403<br />
*r59287 LCL: Avoid SegFault of freshly created TCustomListview with owner-data (issue #34407, patch by Charles Grunwald).<br />
*r59289 chmhelp: Fix memory leak in TLHelpConnector (see forum https://forum.lazarus.freepascal.org/index.php/topic,42832.msg299208.html).<br />
*r59290 ideintf: Add high-DPI icons (provided by Roland Hahn)<br />
*r59291 IDE: Add missing high-dpi icons to folder images/menu (kindly provided by Roland Hahn)<br />
*r59292 IDE: Minor revisions of existing high-DPI icons (by Roland Hahn)<br />
*r59295 IDE: Add new (debugger) and revised High-DPI icons by Roland Hahn<br />
*r59296 IDE: Add forgotten icons from previous commits<br />
*r59301 IDE: Better alignment of Run icon to dropdown btn on toolbar (by Roland Hahn)<br />
*r59302 IDE: New High-DPI icons for Delphi-to-Lazarus conversion (by Roland Hahn).<br />
*r59297 SynEdit: Pas HL, fix folding/markup for code containing "case", if "case" is not enabled for fold/markup. Part 1 of {{MantisLink|0034410}}<br />
*r59298 SynEdit: Pas HL, fix markup if "procedure" is outlined, but top level "begin" is not. Part 2 of {{MantisLink|0034410}}<br />
*r59299 SynEdit: Pas HL, fixes for outline, if only some elements are outlined<br />
*r59300 SynEdit: Pas HL, fixes for fold, detecting "else" in "case", when previous if is nested in other commands<br />
*r59253,59285,59286,59293: Qt, Qt5: fixed OpenGL issues. {{MantisLink|32498}} and {{MantisLink|34401}} <br />
*r59288 Qt5: must return to lcl event loop for X11 targets. {{MantisLink|34369}}<br />
*r59307 IDE: Add mssing High-DPI icons to images/actions (by Roland Hahn)<br />
*r59308 IDE: Replace icon "actions/preferences" (by Roland Hahn)<br />
*r59309 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 34426<br />
*r59310 Translations: French translation update by Gilles Vasseur, bug 34428<br />
*r59314 IDE/LCL: Modify some high-DPI icons for more consistent style (Roland Hahn)<br />
*r59319 IDE: Add high-DPI images for propertygrid and widgetset issues (by Roland Hahn).<br />
*r59321 IDE: Improve visibility of high-dpi issue_carbon icons on dark background (by Roland Hahn).<br />
*r59322 IDE/Restriction Browser: Fix visibility of icon on customdrawn button.<br />
*r59323 IDE/ObjectInspector: Fix size of widgetset icons on high-dpi screens.<br />
*r59328 IDE: Add high-dpi icons to images/lazdoc (by Roland Hahn)<br />
*r59318 lhelp: some formatting changes<br />
*r59320 TAChart: Fix numlib issue of returning 0 for exp() function (https://forum.lazarus.freepascal.org/index.php/topic,42913.msg299793)<br />
*r59324 Finnish translation.<br />
*r59342 IDE: regenerated/fixed Finnish translation<br />
*r59325 LCL-GTK2: Fix icon scaling in menuitems.<br />
*r59327 LCL: Do not store anchoring properties of TLabeledEdit.editLabel. It is controlled by property LabelPosition. {{MantisLink|34431}}<br />
*r59332 TFloatSpinEditEx: fix setting DecimalPlaces {{MantisLink|0034370}}<br />
*r59334,r59335,r59336 LCL-WinCE: Fix maximize, minimize and help buttons showing in window title bar<br />
*r59337 LCL-WinCE: Fix form centering for Position=poScreenCenter, poDesktopCenter<br />
*r59339,r59341 LCL-GTK3: Fix Splitter and its related code. {{MantisLink|34106}}<br />
*r59340 IDE: Don't let FindReplace dialog outside the monitor area. {{MantisLink|34436}}<br />
*r59350 Debugger: Fix DebugInspector stopped working after window was open with empty input. {{MantisLink|0034452}}<br />
*r59351 Debugger (gdb): Fix Debug-Inspector for dwarf3. Match fieldnames case insensitive. Depending on gdb, try to find the MixedCase version of any name. {{MantisLink|0034453}}<br />
*r59352 lazutils: fixed ExpandFileNameUTF8 for \\?\<br />
*r59353 debian: renamed debian package name from fpc to fpc-laz to avoid nameclash with ubuntu repos<br />
*r59357 IDE: Add unit/include file's path correctly to search path of a single build mode, too. {{MantisLink|34462}}<br />
*r59359 IDE: Show only the supported .ico format when opening project icon. {{MantisLink|34464}}<br />
<br />
== Roadmap to 2.0.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 2.0 fixes branch. (Done 15 Sep 2018)<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 2.0.0 RC 1 (Done 16 Sep 2018)<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 2.0.0 RC 2 (Done 29 Oct 2018)<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 2.0.0 RC 3 (ToDo)<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 2.0 (ToDo)<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
*Run Unit-Tests from menu "Tools"--> "Example Projects". Choose project "runtestsgui.lpi" and run it. It will do about 390 unittests.<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_2_0 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 2.0.0.1 for RC1, 2.0.0.2 for RC2, 2.0.0.3 for RC3, 2.0.0.4 for final<br />
** lazarus/ide/version.inc 2.0.0RC1 for RC1, no spaces! (2.0.0 for final release)<br />
** lazarus/components/lazutils/lazversion.pas 2.0.0.1 for RC1, 2.0.0.2 for RC2, ... 2.0.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 2.0.0-1 for RC1, 2.0.0-2 for RC2, ... 2.0.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "2.0.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check lpl files by running "./tools/lplupdate -c" and do the svn mv commands<br />
** Update makefiles: Make sure '''Additions and Overrides''' are empty and run <br />
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles<br />
* svn commit<br />
* Tag fixes_2.0 branch to tags/release_2_0_0_RC1 (or tags/lazarus_2_0_0 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_2_0 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_2_0_0_RC1 -m 'tagged 2.0.0RC1 as tags/lazarus_2_0_0_RC1'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Make_your_own_compiler,_interpreter,_parser,_or_expression_analyzer&diff=119644Make your own compiler, interpreter, parser, or expression analyzer2018-09-22T22:26:54Z<p>Valdir.marcos: /* See also */</p>
<hr />
<div>= FCL Passrc =<br />
<br />
FPC comes with a pascal parser in library form in the [[fcl-passrc]] package. This is not the main compiler parser, but it is the one used for [[fpdoc]] and [[pas2js]].<br />
<br />
= Other FPC parser packages =<br />
<br />
[[fcl-xml]] is a FPC package that contains SAX XML and html parsers. <br />
<br />
FPC also contains two expression parsers [[symbolic]] and [http://wiki.freepascal.org/How_To_Use_TFPExpressionParser TFPExpressionParser].<br />
<br />
= Lex and Yacc =<br />
Two of the oldest unix tools. [https://en.wikipedia.org/wiki/Lex_(software) Lex] is a lexical analyser (token parser), and [https://en.wikipedia.org/wiki/Yacc Yacc] is a [https://en.wikipedia.org/wiki/LALR_parser LALR] parser generator. [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation is used as a formal way to express context free grammars. Code and grammar are mixed, so grammar is tied to implementation language.<br />
<br />
== Plex and Pyacc ==<br />
[[Plex and Pyacc]] are pascal implementations of Lex and Yacc and they are part of your FreePascal distribution.<br />
<br />
== Lazarus Lex and Yacc ==<br />
You can find unfortunately abandoned Lazarus Lex and Yacc [https://bitbucket.org/avra/lazlexyacc/src/master/ here].<br />
<br />
= Gold =<br />
[[Gold]] is a free parsing system that you can use to develop your own programming languages, scripting languages and interpreters. It uses [https://en.wikipedia.org/wiki/LALR_parser LALR] parsing, and a mix of [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation, character sets and regular expressions for terminals to define language grammars. Code and grammar are separated, so grammar is not tied to implementation language. This means that the same grammar can be loaded into engines made in different programming languages.<br />
<br />
Gold Parser Builder can be used to create, modify and test languages in Windows IDE which can also run on Wine. Command line tools are also available.<br />
<br />
Gold Parser Builder can also be used as a parser code generator using internal templates (FreePascal included), but there are also 3rd party engines to process compiled grammars.<br />
<br />
Gold Parser Builder has grammar editor with syntax highlighting, grammar generating wizard, test window to step through parsing of a sample source, templating system that can generate lexers/parsers or skeleton programs for various languages (including Delphi and FreePascal), import/export YACC/Bison, XML and HTML export, and interactive inspection of the compiled DFA and LALR tables.<br />
<br />
There is a subjective [http://goldparser.org/about/comparison-parsers.htm feature comparison table] of several parsers on Gold site, with special attention to [http://goldparser.org/about/comparison-yacc.htm Gold vs Yacc] comparison.<br />
<br />
= SynFacilSyn =<br />
[https://github.com/t-edson/SynFacilSyn SynFacilSyn] is Lazarus cross-platform library that includes a SynEdit highlighter that also can work as a lexer because of its flexible syntax definition file. It's well documented and has been used in several projects like highlighter and lexer.<br />
<br />
SynFacilSyn includes an adapter to be used in [https://github.com/Alexey-T/ATSynEdit ATSynEdit].<br />
<br />
The main advantage of using SynFacilSyn as lexer is that you can really see the tokens colored in SynEdit editor, without doing anything else. So if you define a lexer, you are defining a source highlighter too.<br />
<br />
To define the syntax you can use an XML file, where the tokens are defined using tags and some RegEx constructions. There you can specify the token colors too, if you need it.<br />
<br />
Syntax definition can be done programmatically too, so it's possible to change some syntax elements in runtime.<br />
<br />
The highlighter of SynFacilSyn is light, fast and includes some useful methods to access the text content after the scan. Moreover includes some features to define recursive blocks ans sections so it can be used as a parser too.<br />
<br />
SynFacilSyn is the base library for other tools that in group can be used to create powerful compilers/interpreters/IDE:<br />
<br />
* [https://github.com/t-edson/SynFacilCompletion SynFacilCompletion] - Scriptable Highlighter with code-completion for the SynEdit Component of Lazarus <br />
* [https://github.com/t-edson/SynFacilUtils SynFacilUtils] Library with utilities to create editors using SynFacilSyn and SynFacilCompletion.<br />
* [https://github.com/t-edson/t-Xpres t-Xpres] Framework to create compilers/interpreters based on SynFacilSyn. Includes lexer, parser, syntaxTree, expression evaluator and support to implement code generators or virtual machines.<br />
<br />
The next programs have been created using this tools:<br />
<br />
* [https://github.com/t-edson/PicPas Microchip PIC compiler]<br />
* [https://github.com/t-edson/P65Pas 6502 CPU compiler]<br />
* [https://github.com/t-edson/Tito-s-Terminal Terminal with interpreter]<br />
<br />
= AntLR =<br />
TBD<br />
<br />
= Coco-R =<br />
Coco/R is a compiler generator based on L- attributed grammars which generates a scanner and a parser.<br />
<br />
For more information:<br />
<br />
http://www.ssw.uni-linz.ac.at/Coco/<br />
<br />
<br />
Two chapters of this book give an introduction about Coco/R and show some sample studies.<br />
<br />
Compilers and Compiler Generators - an introduction with C++<br />
<br />
P.D. Terry, Rhodes University, 1996 <br />
<br />
http://www.cs.ru.ac.za/compilers/index.html<br />
<br />
<br />
http://www.cs.ru.ac.za/compilers/pdfvers.pdf<br />
<br />
http://www.cs.ru.ac.za/compilers/cocorp.zip<br />
<br />
= Anatomy of a compiler =<br />
Here is graphical representation of a typical compiler anatomy:<br />
<br />
[[File:Anatomy of a compiler.gif|Anatomy of a compiler]]<br />
<br />
= Useful BNF and EBNF tools =<br />
* [http://www.garshol.priv.no/download/text/bnf.html BNF and EBNF metasyntax formal notations for writing grammars]<br />
* [http://bottlecaps.de/rr/ui EBNF to Syntax Diagram online convertor]<br />
* [https://sourceforge.net/projects/ebnfvisualizer/ EBNF Visualizer]<br />
* [https://www.ctan.org/tex-archive/support/syngen Syngen - tool for generating syntax diagrams from BNF in LaTeX format]<br />
<br />
= See also =<br />
* [https://www.inf.ethz.ch/personal/wirth/CompilerConstruction/ Compiler construction], by Niklaus Wirth.<br />
* ''Let's build a compiler'', by Jack Crenshaw; [https://compilers.iecc.com/crenshaw/ original site], [http://web.archive.org/web/20180107011717/http://www.stack.nl:80/~marcov/compiler.pdf PDF version], or [http://www.pp4s.co.uk/main/tu-trans-comp-jc-intro.html updated version].<br />
* [http://www.cs.man.ac.uk/~pjj/farrell/compmain.html Compiler Basics] (August 1995), by James Alan Farrell<br />
* [https://norasandler.com/2017/11/29/Write-a-Compiler.html Writing a C Compiler, Part 1] (Nov 29, 2017), by Nora Sandler<br />
* [http://memphis.compilertools.net/interpreter.html Writing an interpreter]<br />
* [http://www.cs.man.ac.uk/~pjj/bnf/bnf.html Notations for context-free grammars]<br />
* [https://dickgrune.com/Books/PTAPG_1st_Edition/ Parsing Techniques - A Practical Guide] (1st ed., 1990), by Dick Grune and Ceriel J.H. Jacobs<br />
<br />
[[Category:Code]]<br />
[[Category:Compiler design]]<br />
[[Category:Utilities]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Make_your_own_compiler,_interpreter,_parser,_or_expression_analyzer&diff=119643Make your own compiler, interpreter, parser, or expression analyzer2018-09-22T22:22:55Z<p>Valdir.marcos: /* Coco-R */</p>
<hr />
<div>= FCL Passrc =<br />
<br />
FPC comes with a pascal parser in library form in the [[fcl-passrc]] package. This is not the main compiler parser, but it is the one used for [[fpdoc]] and [[pas2js]].<br />
<br />
= Other FPC parser packages =<br />
<br />
[[fcl-xml]] is a FPC package that contains SAX XML and html parsers. <br />
<br />
FPC also contains two expression parsers [[symbolic]] and [http://wiki.freepascal.org/How_To_Use_TFPExpressionParser TFPExpressionParser].<br />
<br />
= Lex and Yacc =<br />
Two of the oldest unix tools. [https://en.wikipedia.org/wiki/Lex_(software) Lex] is a lexical analyser (token parser), and [https://en.wikipedia.org/wiki/Yacc Yacc] is a [https://en.wikipedia.org/wiki/LALR_parser LALR] parser generator. [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation is used as a formal way to express context free grammars. Code and grammar are mixed, so grammar is tied to implementation language.<br />
<br />
== Plex and Pyacc ==<br />
[[Plex and Pyacc]] are pascal implementations of Lex and Yacc and they are part of your FreePascal distribution.<br />
<br />
== Lazarus Lex and Yacc ==<br />
You can find unfortunately abandoned Lazarus Lex and Yacc [https://bitbucket.org/avra/lazlexyacc/src/master/ here].<br />
<br />
= Gold =<br />
[[Gold]] is a free parsing system that you can use to develop your own programming languages, scripting languages and interpreters. It uses [https://en.wikipedia.org/wiki/LALR_parser LALR] parsing, and a mix of [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation, character sets and regular expressions for terminals to define language grammars. Code and grammar are separated, so grammar is not tied to implementation language. This means that the same grammar can be loaded into engines made in different programming languages.<br />
<br />
Gold Parser Builder can be used to create, modify and test languages in Windows IDE which can also run on Wine. Command line tools are also available.<br />
<br />
Gold Parser Builder can also be used as a parser code generator using internal templates (FreePascal included), but there are also 3rd party engines to process compiled grammars.<br />
<br />
Gold Parser Builder has grammar editor with syntax highlighting, grammar generating wizard, test window to step through parsing of a sample source, templating system that can generate lexers/parsers or skeleton programs for various languages (including Delphi and FreePascal), import/export YACC/Bison, XML and HTML export, and interactive inspection of the compiled DFA and LALR tables.<br />
<br />
There is a subjective [http://goldparser.org/about/comparison-parsers.htm feature comparison table] of several parsers on Gold site, with special attention to [http://goldparser.org/about/comparison-yacc.htm Gold vs Yacc] comparison.<br />
<br />
= SynFacilSyn =<br />
[https://github.com/t-edson/SynFacilSyn SynFacilSyn] is Lazarus cross-platform library that includes a SynEdit highlighter that also can work as a lexer because of its flexible syntax definition file. It's well documented and has been used in several projects like highlighter and lexer.<br />
<br />
SynFacilSyn includes an adapter to be used in [https://github.com/Alexey-T/ATSynEdit ATSynEdit].<br />
<br />
The main advantage of using SynFacilSyn as lexer is that you can really see the tokens colored in SynEdit editor, without doing anything else. So if you define a lexer, you are defining a source highlighter too.<br />
<br />
To define the syntax you can use an XML file, where the tokens are defined using tags and some RegEx constructions. There you can specify the token colors too, if you need it.<br />
<br />
Syntax definition can be done programmatically too, so it's possible to change some syntax elements in runtime.<br />
<br />
The highlighter of SynFacilSyn is light, fast and includes some useful methods to access the text content after the scan. Moreover includes some features to define recursive blocks ans sections so it can be used as a parser too.<br />
<br />
SynFacilSyn is the base library for other tools that in group can be used to create powerful compilers/interpreters/IDE:<br />
<br />
* [https://github.com/t-edson/SynFacilCompletion SynFacilCompletion] - Scriptable Highlighter with code-completion for the SynEdit Component of Lazarus <br />
* [https://github.com/t-edson/SynFacilUtils SynFacilUtils] Library with utilities to create editors using SynFacilSyn and SynFacilCompletion.<br />
* [https://github.com/t-edson/t-Xpres t-Xpres] Framework to create compilers/interpreters based on SynFacilSyn. Includes lexer, parser, syntaxTree, expression evaluator and support to implement code generators or virtual machines.<br />
<br />
The next programs have been created using this tools:<br />
<br />
* [https://github.com/t-edson/PicPas Microchip PIC compiler]<br />
* [https://github.com/t-edson/P65Pas 6502 CPU compiler]<br />
* [https://github.com/t-edson/Tito-s-Terminal Terminal with interpreter]<br />
<br />
= AntLR =<br />
TBD<br />
<br />
= Coco-R =<br />
Coco/R is a compiler generator based on L- attributed grammars which generates a scanner and a parser.<br />
<br />
For more information:<br />
<br />
http://www.ssw.uni-linz.ac.at/Coco/<br />
<br />
<br />
Two chapters of this book give an introduction about Coco/R and show some sample studies.<br />
<br />
Compilers and Compiler Generators - an introduction with C++<br />
<br />
P.D. Terry, Rhodes University, 1996 <br />
<br />
http://www.cs.ru.ac.za/compilers/index.html<br />
<br />
<br />
http://www.cs.ru.ac.za/compilers/pdfvers.pdf<br />
<br />
http://www.cs.ru.ac.za/compilers/cocorp.zip<br />
<br />
= Anatomy of a compiler =<br />
Here is graphical representation of a typical compiler anatomy:<br />
<br />
[[File:Anatomy of a compiler.gif|Anatomy of a compiler]]<br />
<br />
= Useful BNF and EBNF tools =<br />
* [http://www.garshol.priv.no/download/text/bnf.html BNF and EBNF metasyntax formal notations for writing grammars]<br />
* [http://bottlecaps.de/rr/ui EBNF to Syntax Diagram online convertor]<br />
* [https://sourceforge.net/projects/ebnfvisualizer/ EBNF Visualizer]<br />
* [https://www.ctan.org/tex-archive/support/syngen Syngen - tool for generating syntax diagrams from BNF in LaTeX format]<br />
<br />
= See also =<br />
* [https://www.inf.ethz.ch/personal/wirth/CompilerConstruction/ Compiler construction], by Niklaus Wirth.<br />
* ''Let's build a compiler'', by Jack Crenshaw; [https://compilers.iecc.com/crenshaw/ original site], [http://web.archive.org/web/20180107011717/http://www.stack.nl:80/~marcov/compiler.pdf PDF version], or [http://www.pp4s.co.uk/main/tu-trans-comp-jc-intro.html updated version].<br />
* [http://www.cs.man.ac.uk/~pjj/farrell/compmain.html Compiler Basics] (August 1995), by James Alan Farrell<br />
* [http://memphis.compilertools.net/interpreter.html Writing an interpreter]<br />
* [http://www.cs.man.ac.uk/~pjj/bnf/bnf.html Notations for context-free grammars]<br />
* [https://dickgrune.com/Books/PTAPG_1st_Edition/ Parsing Techniques - A Practical Guide] (1st ed., 1990), by Dick Grune and Ceriel J.H. Jacobs<br />
<br />
[[Category:Code]]<br />
[[Category:Compiler design]]<br />
[[Category:Utilities]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Make_your_own_compiler,_interpreter,_parser,_or_expression_analyzer&diff=119642Make your own compiler, interpreter, parser, or expression analyzer2018-09-22T22:20:32Z<p>Valdir.marcos: /* Coco-R */</p>
<hr />
<div>= FCL Passrc =<br />
<br />
FPC comes with a pascal parser in library form in the [[fcl-passrc]] package. This is not the main compiler parser, but it is the one used for [[fpdoc]] and [[pas2js]].<br />
<br />
= Other FPC parser packages =<br />
<br />
[[fcl-xml]] is a FPC package that contains SAX XML and html parsers. <br />
<br />
FPC also contains two expression parsers [[symbolic]] and [http://wiki.freepascal.org/How_To_Use_TFPExpressionParser TFPExpressionParser].<br />
<br />
= Lex and Yacc =<br />
Two of the oldest unix tools. [https://en.wikipedia.org/wiki/Lex_(software) Lex] is a lexical analyser (token parser), and [https://en.wikipedia.org/wiki/Yacc Yacc] is a [https://en.wikipedia.org/wiki/LALR_parser LALR] parser generator. [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation is used as a formal way to express context free grammars. Code and grammar are mixed, so grammar is tied to implementation language.<br />
<br />
== Plex and Pyacc ==<br />
[[Plex and Pyacc]] are pascal implementations of Lex and Yacc and they are part of your FreePascal distribution.<br />
<br />
== Lazarus Lex and Yacc ==<br />
You can find unfortunately abandoned Lazarus Lex and Yacc [https://bitbucket.org/avra/lazlexyacc/src/master/ here].<br />
<br />
= Gold =<br />
[[Gold]] is a free parsing system that you can use to develop your own programming languages, scripting languages and interpreters. It uses [https://en.wikipedia.org/wiki/LALR_parser LALR] parsing, and a mix of [https://en.wikipedia.org/wiki/Backus–Naur_form BNF] notation, character sets and regular expressions for terminals to define language grammars. Code and grammar are separated, so grammar is not tied to implementation language. This means that the same grammar can be loaded into engines made in different programming languages.<br />
<br />
Gold Parser Builder can be used to create, modify and test languages in Windows IDE which can also run on Wine. Command line tools are also available.<br />
<br />
Gold Parser Builder can also be used as a parser code generator using internal templates (FreePascal included), but there are also 3rd party engines to process compiled grammars.<br />
<br />
Gold Parser Builder has grammar editor with syntax highlighting, grammar generating wizard, test window to step through parsing of a sample source, templating system that can generate lexers/parsers or skeleton programs for various languages (including Delphi and FreePascal), import/export YACC/Bison, XML and HTML export, and interactive inspection of the compiled DFA and LALR tables.<br />
<br />
There is a subjective [http://goldparser.org/about/comparison-parsers.htm feature comparison table] of several parsers on Gold site, with special attention to [http://goldparser.org/about/comparison-yacc.htm Gold vs Yacc] comparison.<br />
<br />
= SynFacilSyn =<br />
[https://github.com/t-edson/SynFacilSyn SynFacilSyn] is Lazarus cross-platform library that includes a SynEdit highlighter that also can work as a lexer because of its flexible syntax definition file. It's well documented and has been used in several projects like highlighter and lexer.<br />
<br />
SynFacilSyn includes an adapter to be used in [https://github.com/Alexey-T/ATSynEdit ATSynEdit].<br />
<br />
The main advantage of using SynFacilSyn as lexer is that you can really see the tokens colored in SynEdit editor, without doing anything else. So if you define a lexer, you are defining a source highlighter too.<br />
<br />
To define the syntax you can use an XML file, where the tokens are defined using tags and some RegEx constructions. There you can specify the token colors too, if you need it.<br />
<br />
Syntax definition can be done programmatically too, so it's possible to change some syntax elements in runtime.<br />
<br />
The highlighter of SynFacilSyn is light, fast and includes some useful methods to access the text content after the scan. Moreover includes some features to define recursive blocks ans sections so it can be used as a parser too.<br />
<br />
SynFacilSyn is the base library for other tools that in group can be used to create powerful compilers/interpreters/IDE:<br />
<br />
* [https://github.com/t-edson/SynFacilCompletion SynFacilCompletion] - Scriptable Highlighter with code-completion for the SynEdit Component of Lazarus <br />
* [https://github.com/t-edson/SynFacilUtils SynFacilUtils] Library with utilities to create editors using SynFacilSyn and SynFacilCompletion.<br />
* [https://github.com/t-edson/t-Xpres t-Xpres] Framework to create compilers/interpreters based on SynFacilSyn. Includes lexer, parser, syntaxTree, expression evaluator and support to implement code generators or virtual machines.<br />
<br />
The next programs have been created using this tools:<br />
<br />
* [https://github.com/t-edson/PicPas Microchip PIC compiler]<br />
* [https://github.com/t-edson/P65Pas 6502 CPU compiler]<br />
* [https://github.com/t-edson/Tito-s-Terminal Terminal with interpreter]<br />
<br />
= AntLR =<br />
TBD<br />
<br />
= Coco-R =<br />
Coco/R is a compiler generator based on L- attributed grammars which generates a scanner and a parser.<br />
For more information:<br />
http://www.ssw.uni-linz.ac.at/Coco/<br />
<br />
Two chapters of this book give an introduction about Coco/R and show some sample studies.<br />
Compilers and Compiler Generators - an introduction with C++<br />
P.D. Terry, Rhodes University, 1996 <br />
http://www.cs.ru.ac.za/compilers/index.html<br />
<br />
http://www.cs.ru.ac.za/compilers/pdfvers.pdf<br />
http://www.cs.ru.ac.za/compilers/cocorp.zip<br />
<br />
= Anatomy of a compiler =<br />
Here is graphical representation of a typical compiler anatomy:<br />
<br />
[[File:Anatomy of a compiler.gif|Anatomy of a compiler]]<br />
<br />
= Useful BNF and EBNF tools =<br />
* [http://www.garshol.priv.no/download/text/bnf.html BNF and EBNF metasyntax formal notations for writing grammars]<br />
* [http://bottlecaps.de/rr/ui EBNF to Syntax Diagram online convertor]<br />
* [https://sourceforge.net/projects/ebnfvisualizer/ EBNF Visualizer]<br />
* [https://www.ctan.org/tex-archive/support/syngen Syngen - tool for generating syntax diagrams from BNF in LaTeX format]<br />
<br />
= See also =<br />
* [https://www.inf.ethz.ch/personal/wirth/CompilerConstruction/ Compiler construction], by Niklaus Wirth.<br />
* ''Let's build a compiler'', by Jack Crenshaw; [https://compilers.iecc.com/crenshaw/ original site], [http://web.archive.org/web/20180107011717/http://www.stack.nl:80/~marcov/compiler.pdf PDF version], or [http://www.pp4s.co.uk/main/tu-trans-comp-jc-intro.html updated version].<br />
* [http://www.cs.man.ac.uk/~pjj/farrell/compmain.html Compiler Basics] (August 1995), by James Alan Farrell<br />
* [http://memphis.compilertools.net/interpreter.html Writing an interpreter]<br />
* [http://www.cs.man.ac.uk/~pjj/bnf/bnf.html Notations for context-free grammars]<br />
* [https://dickgrune.com/Books/PTAPG_1st_Edition/ Parsing Techniques - A Practical Guide] (1st ed., 1990), by Dick Grune and Ceriel J.H. Jacobs<br />
<br />
[[Category:Code]]<br />
[[Category:Compiler design]]<br />
[[Category:Utilities]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_2.0_fixes_branch&diff=119544Lazarus 2.0 fixes branch2018-09-21T01:37:29Z<p>Valdir.marcos: /* Roadmap to 2.0.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_2_0/ Lazarus 2.0 fixes] branch.<br />
<br />
These are only fixes made after the branch was created. For other fixes made since the previous release (1.8) see SVN and [[Lazarus_1.8_fixes_branch|Lazarus 1.8 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 2.0.0 release notes|here]]<br />
<br />
== Fixes for 2.0.0RC2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r59089 IDE: Bug fix: Deleting newly added CoolBar leads to error, issue #34302<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
<br />
=== Merged revisions for 2.0.0RC2 ===<br />
<br />
*r59016 LCL-GTK2: Do not truncate Groupbox caption. {{MantisLink|32621}}<br />
*r59018 LCL-GTK2: Fix TStaticText Width with Autosize. {{MantisLink|21877}}<br />
*r59030 TValueListEditor: fix DeleteRow {{MantisLink|0034208}}.<br />
*r59031 TFindDialog: fix setting Top/Left. {{MantisLink|0033528}}.<br />
*r59032 TCommondialog: do not publish Widht/Height properties. {{MantisLink|0033480}}. Patch by AlexeyT.<br />
*r59048 TFindDialog: slight improvement on r59031.<br />
*r59049 TFindDialog: use Position := poMainFormCenter in CalcPosition instead of trying to calculate that by ourselves. Patch by Serge Anvarov.<br />
*r59050 TFindDialog: save FFindForm position upon close.<br />
*r59064 Opkman: Bug fix: remove package compiling restriction.<br />
*r59066 IDE: clean up<br />
*r59077 IDE: fixed abstract method<br />
*r59079 IDE: less hints<br />
*r59041 IDE: Use safe typecast for TProjectCompilationToolOptions when building project.<br />
*r59042 Revert r59006 "IdeIntf: Add API for ExecuteCommand in CompOptsIntf." Must be done better.<br />
*r59043 IdeIntf: A new interface class TLazCompilationToolOptions with a Command and CompileReasons. {{MantisLink|34283}}.<br />
*r59044 IdeIntf: Improve the CompilationTool stuff. Remove and clean code. {{MantisLink|34283}}.<br />
*r59046 LCL-GTK2: Do not truncate Groupbox caption (fix for previous). {{MantisLink|32621}}.<br />
*r59047 LCL-GTK2: Fix TListView column widths. {{MantisLink|34044}}.<br />
*r59081 IDE: Add package name to hints for component palette icons.<br />
*r59083 TFindDialog/TReplaceDialog: show dialog poScreenCenter in IDE; fix erratic behaviour of TReplaceDialog in IDE (wrong parent). {{MantisLink|0034297}}.<br />
*r59085 LCL: Improved layout of TFindDialog and TReplaceDialog, fix TabOrder.<br />
*r59094 LCL: Fix TCustomListbox not releasing Canvas handle in DestroyWnd (issue #34249).<br />
*r59095 Translations: Turkish translation update by Hakan KIZILHAN, bug 34296<br />
*r59096 Translations: Spanish translation update by Alonso Cárdenas Márquez, bug 34304<br />
<br />
== Roadmap to 2.0.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 2.0 fixes branch. (Done 15 Sep 2018)<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 2.0.0 RC 1 (Done 16 Sep 2018)<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 2.0.0 RC 2 (ToDo)<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 2.0 (ToDo)<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_2_0 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 2.0.0.1 for RC1, 2.0.0.2 for RC2, 2.0.0.3 for RC3, 2.0.0.4 for final<br />
** lazarus/ide/version.inc 2.0.0RC1 for RC1, no spaces! (2.0.0 for final release)<br />
** lazarus/lcl/lclversion.pas 2.0.0.1 for RC1, 2.0.0.2 for RC2, ... 2.0.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 2.0.0-1 for RC1, 2.0.0-2 for RC2, ... 2.0.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "2.0.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check lpl files by running "./tools/lplupdate -c" and do the svn mv commands<br />
** Update makefiles: Make sure '''Additions and Overrides''' are empty and run <br />
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles<br />
* svn commit<br />
* Tag fixes_2.0 branch to tags/release_2_0_0_RC1 (or tags/lazarus_2_0_0 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_2_0 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_2_0_0_RC1 -m 'tagged 2.0.0RC1 as tags/lazarus_2_0_0_RC1'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_Tdbf_Tutorial&diff=118436Lazarus Tdbf Tutorial2018-07-05T22:19:38Z<p>Valdir.marcos: /* Alternatives and known problems */</p>
<hr />
<div>{{Lazarus Tdbf Tutorial}}<br />
<br />
{{Infobox databases}}<br />
<br />
== Overview ==<br />
This tutorial is about basic database development using the [http://tdbf.sf.net TDbf] component (by Micha Nelissen) with Lazarus.<br />
<br />
In Lazarus, the DbfLaz component makes use of the FPC TDbf code.<br />
<br />
=== Documentation ===<br />
For official TDbf documentation PDF go to the [https://sourceforge.net/project/showfiles.php?group_id=34085&package_id=26371 SourceForge] site. It may be useful to keep that pdf alongside this document while reading.<br />
<br />
This wiki article serves as additional documentation for new features since the original documentation.<br />
<br />
=== Alternatives and known problems ===<br />
Alternatives for embedded database use include Firebird embedded (advantage: easily scalable to client/server), SQLite (advantage: easy deployment), or ZMSQL (using CSV files; advantage: only Pascal code required).<br />
<br />
Known problems: <br />
The TDBF code lacked a maintainer for a long while. Currently (October 2013), both the Sourceforge upstream project (focused on Delphi) and FPC database developers are looking into fixing TDBF bugs again. The fixes in FPC trunk will need to be merged with the SourceForge version, and the other way around.<br />
<br />
Current issues: please see the bugs in the bug tracker, especially <br />
http://bugs.freepascal.org/view.php?id=22177<br />
<br />
<br />
New issue (07 July 2018): SIGSEGV error because expression in index.<br />
<br />
This issue was taken from the post at the forum:<br />
http://forum.lazarus.freepascal.org/index.php/topic,41786.msg290653<br />
<br />
"I get a SIGSEGV error when I try to compile this very small program with a TDbf...<br />
It took me days before I found what caused the SIGSEGV error.<br />
...<br />
Today I found that the problem was in the indexing of the DBF file.<br />
It was indexed on UPPER(LASTNAME+FIRSTNAME). After changing the expression to UPPER(LASTNAME)+UPPER(FIRSTNAME), the SIGSEGV error disappeared.<br />
I searched the web long and hard, but I didn't find any documentation on this strange behavior. Maybe this is a good candidate for adding to the long list of possible causes for SIGSEGV errors with Lazarus."<br />
<br />
<br />
==== Limitations ====<br />
* TDBF sets database encoding based on OS language settings (you can choose your own by setting LanguageID; see documentation). Moving a DB to another computer that does not support the encoding may lead to a read-only database. ''Note: investigate whether this applies to Tablelevel 7 (Visual DBase) and 25/30 (Foxpro/Visual Foxpro)''<br />
* None of the DBF formats used support Unicode encoding (whether UTF-8, UTF-16 or UTF-32). There may be a workaround using binary fields, but then you lose sorting abilities etc.<br />
* Indexing a DBase file with [ixCaseInsensitive] currently does not work.<br />
* No support yet for referential integrity in file formats that support it (DBase VII, Visual FoxPro).<br />
* No support (now or ever) for internally encrypted .dbf files: the DbaseIV encryption mechanism is quite weak anyway. Please use one of the encryption methods mentioned below.<br />
<br />
FPC 2.6.x and lower:<br />
* On ARM processors, the TDBF code is known not to work due to bus alignment issues. This is being addressed in the FPC development/trunk version.<br />
* Choosing the FoxPro tablelevel (25) will produce files that cannot be read by Visual Foxpro drivers. This has been fixed in the FPC development/trunk version.<br />
<br />
=== No need for installation ===<br />
The DbfLaz package is installed by default in both FPC and Lazarus. The DBFLaz package uses the TDbf and associated units in the Free Pascal Free Component Library. In other words, no need to install anything if you have a fairly recent version of Lazarus.<br />
<br />
=== What the TDbf package provides ===<br />
The TDbf package provides access to dBase and FoxPro database tables for Lazarus (and others). It allows for reading, writing and creation of dBase III+, dBase IV, Visual dBase VII and FoxPro tables. It does all of this without the need for additional libraries or database engines. Simply drop the TDbf on your form and you have instant access to a cross-platform database environment. The TDbf works in both Windows and Linux using Lazarus.<br />
<br />
=== What to put in your uses section ===<br />
If you use the visual DBF components in Lazarus, Lazarus will put Dbf in your uses clauses. If you use FPC (console mode) only, you can put it there yourself.<br />
Handy other units are db for DataSet support and Dbf_Common for things such as field type definitions.<br />
<br />
So you'd get:<br />
<syntaxhighlight><br />
uses Dbf, db, Dbf_Common; <br />
</syntaxhighlight><br />
<br />
== How to create a new database table ==<br />
There is a "Database Desktop" application for Lazarus (open the project in your Lazarus directory/tools/LazDataDesktop). You could create a new data dictionary, then create code to set up DBF files based on the dictionary. As of now (July 2011), this process is still a bit convoluted.<br />
<br />
Another option is to use OpenOffice or LibreOffice Calc and save your spreadsheet as a .dbf file.<br />
<br />
You may also (on windows - works with wine too) try this application: http://www.dirfile.com/cdbf_explorer.htm<br />
<br />
In any event, we shall illustrate creating a new database in code below.<br />
<br />
=== Setting the path ===<br />
It's a good idea to give your application's database its own directory. This simplifies making backups of the data. <br />
<br />
There are two ways to set the path:<br />
* you can set the full path using the FilePathFull property<br />
* you can set a path relative to the current application path with FilePath. <br />
<br />
For instance, setting "FilePath" at runtime to "data/" would use a data subdirectory just below the executable file. Setting the "FilePathFull" property to "/var/data/" would place all dbfs, index files etc in that exact folder, whatever the application location is.<br />
<br />
An example:<br />
<syntaxhighlight>MyDbf.FilePathFull := '/location/to/my/data'; //Directory where all .dbf files will be stored<br />
MyDbf.TableName := 'customers.dbf'; // note: is the .dbf really required?<br />
</syntaxhighlight><br />
<br />
=== Choosing a TableLevel ===<br />
By default, the TDbf components will create dBase IV tables. While this is very compatible, there are features you may wish to use that are not supported. E.g. to support auto-incrementing fields, you must use something newer. The table types are:<br />
{| border="1" cellpadding="2" class="wikitable sortable"<br />
|-<br />
| '''Table level'''<br />
| '''*Base product compatibility'''<br />
| '''Auto-increment field support'''<br />
| '''Field length limit'''<br />
| '''Remarks'''<br />
|-<br />
| Level 3||dBase III+||no||10 characters [http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT]||Quite obsolete but very simple format. Handy for in-memory usage.<br />
|-<br />
| Level 4||dBase IV||no||10 characters [http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT]||Used to be very popular. Basis for GIS shape files (.shp)<br />
|-<br />
| Level 7||Visual dBase VII||yes||32 characters [http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm]||<br />
|-<br />
| Level 25||FoxPro||yes||10 characters [http://www.dynamic.com/v7/what-are-limitations-foxpro-full-isam-file]<br />
[http://www.foxite.com/archives/foxpro-field-names-0000066805.htm]<br />
|FoxPro; compatible with FoxPro for DOS and Visual FoxPro. Note: implementation in FPC 2.6.2 produces files that cannot be read by Visual FoxPro drivers!<br />
|-<br />
| Level 30||Visual FoxPro||yes||Normally 10 characters [http://www.dynamic.com/v7/what-are-limitations-foxpro-full-isam-file]<br />
[http://www.foxite.com/archives/foxpro-field-names-0000066805.htm]<br />
Not supported in FPC: when using a DBC (Database container) file: 27 characters<br />
||Not yet in FPC 2.6.2; only in current development FPC version<br />
|-<br />
| <br />
|}<br />
See bug [http://bugs.freepascal.org/view.php?id=20134] for more details on field length limitations.<br />
<br />
You choose a table type by setting the TableLevel property appropriately:<br />
<syntaxhighlight><br />
MyDbf.TableLevel := 7; //Visual dBase 7<br />
</syntaxhighlight><br />
<br />
=== Adding fields ===<br />
Creating fields for your new table at runtime pretty much follows the old Delphi standard. An example:<br />
<br />
<syntaxhighlight><br />
With MyDbf.FieldDefs do begin<br />
Add('Id', ftAutoInc, 0, True); //Autoincrement field called Id<br />
Add('Name', ftString, 80, True); //80 character string field called Name<br />
End;</syntaxhighlight><br />
<br />
List of field types - bold types are currently supported by the DBF code. See [[Database_field_type]] for a explanation of field types:<br />
* ftUnknown<br />
* '''ftString'''<br />
* '''ftSmallInt'''<br />
* '''ftInteger'''<br />
* '''ftWord'''<br />
* '''ftBoolean'''<br />
* '''ftFloat'''<br />
* '''ftCurrency''' (only supported in TableLevel 25)<br />
* '''ftBCD''' (only supported in TableLevel 25)<br />
* '''ftDate'''<br />
* ftTime<br />
* '''ftDateTime''': probably the recommended one for storing ftDate or ftDateTime values. At least on FoxPro, seems to store milliseconds as well.<br />
* '''ftBytes''' (only supported in TableLevel 25)<br />
* ftVarBytes<br />
* '''ftAutoInc''' (only supported in TableLevel 7 or 30)<br />
* '''ftBlob'''<br />
* '''ftMemo'''<br />
* ftGraphic<br />
* ftFmtMemo<br />
* ftParadoxOle<br />
* '''ftDBaseOle'''<br />
* ftTypedBinary<br />
* ftCursor<br />
* '''ftFixedChar'''<br />
* '''ftWideString'''<br />
* '''ftLargeInt'''<br />
* ftADT<br />
* ftArray<br />
* ftReference<br />
* ftDataSet<br />
* ftOraBlob<br />
* ftOraClob<br />
* ftVariant<br />
* ftInterface<br />
* ftIDispatch<br />
* ftGuid<br />
* ftTimeStamp<br />
* ftFMTBcd<br />
<br />
=== Adding fields at designtime ===<br />
Use property <tt>FieldDefs</tt> to create fields at designtime - this replaces above call to <tt>FieldDefs.Add</tt>. However, it is important to note that the property <tt>StoreDefs</tt> must be set to true in order to store the definitions in the lfm file and to have them available when the table is created later at runtime. <br />
<br />
=== Creating the table ===<br />
Once you have defined the fields you wish to use in your new table, you can go ahead and create it with:<br />
<br />
<syntaxhighlight>MyDbf.CreateTable;</syntaxhighlight><br />
<br />
== How to add indexes to a table ==<br />
If your database is larger than a few records, chances are you will want to have indexes defined to make searching faster. To change the index structure of a table, we need to have exclusive access to the table - which we would have while creating it anyway.<br />
<br />
<syntaxhighlight>MyDbf.Exclusive := True;<br />
MyDbf.Open;</syntaxhighlight><br />
<br />
Now, we just have to add the index - or two, as in this example:<br />
<br />
<syntaxhighlight><br />
MyDbf.AddIndex('custid', 'Id', [ixPrimary, ixUnique]);<br />
MyDbf.AddIndex('custname','Name', [ixCaseInsensitive]);<br />
MyDbf.Close;<br />
</syntaxhighlight><br />
<br />
== Expressions ==<br />
Both indexes and filters can use expressions according to the [http://sourceforge.net/projects/tdbf/files/TDbf%20documentation/TDbf%20documentation%201.1/ TDbf documentation].<br />
<br />
For more details on filters, see [[#Filters|below]].<br />
<br />
=== Index/filter on strings ===<br />
Strings needs to be surrounded/delimited by double quotes (") or single quotes (').<br />
<br />
{{Note|In FPC versions lower than 3.0, using the delimited quotes in your filter string does not work (see the example below). See FPC 3.0 New Features page: [[FPC_New_Features_3.0#TDBF.2C_bufdataset_.28and_descendents_such_as_TSQLQuery.29_allow_escaped_delimiters_in_string_expression_filter]].}}<br />
<br/><br />
<br />
<syntaxhighlight><br />
// We have a field called CUSTOMER<br />
// let's delimit with double quotes<br />
// (of course, double up single ' in string to make FPC happy)<br />
MyDBF.Filter:='CUSTOMER = "Felipe''s Bank" ';<br />
// another tricky one, let's delimit with single quotes. Of course,<br />
// we'll need to double these up for FPC to interpret these correctly<br />
MyDBF.Filter:='CUSTOMER = ''Jim "Mighty" McLanahan'' ';<br />
<br />
// If we have both a ' and a " in our string, we're in trouble.<br />
// the example below only works on FPC 2.7.1+<br />
MyDBF.Filter:='CUSTOMER = "Felipe''s ""Mighty"" Bank" ';<br />
<br />
MyDBF.Filtered:=true;<br />
</syntaxhighlight><br />
<br />
=== Index 100 character string limit ===<br />
Index expressions that return a string may be maximum 100 characters long; use SUBSTR to cut off extra characters, e.g.:<br />
<syntaxhighlight><br />
MyDbf.AddIndex('SOMEFANCYINDEX', <br />
'DTOS(DATEFIELD)+SUBSTR(LONGFIELD,1,10)+SUBSTR(LONGFIELD2,1,20)', []);<br />
</syntaxhighlight><br />
<br />
=== Index/filter on TDateTimes ===<br />
To set an index on a date/time field, use an expression index and the DTOS function:<br />
<syntaxhighlight><br />
MyDbf.AddIndex('PUBLISHDATEIDX', 'DTOS(PUBLISHDATE)', []);<br />
</syntaxhighlight><br />
<br />
Filtering is similar - note: apparently you need to surround the string value you are comparing against with double quotes. See below for details on the DTOS function; basically you need to format the date as YYYYMMDD:<br />
<syntaxhighlight><br />
// we have a field named MODIFIED here:<br />
MyDBF.Filter:='DTOS(MODIFIED) > "20051231"';<br />
<br />
// if you want to compare datetime, that can be done:<br />
// everything later than 2 January 2006, 4:34PM<br />
MyDBF.Filter:='DTOS(MODIFIED) > "20060102 163400"';<br />
<br />
MyDBF.Filtered:=true;<br />
</syntaxhighlight><br />
<br />
For example, if you want to filter a tdbf on a date field using a value selected from a DBlookupComboBox<br />
<syntaxhighlight><br />
var <br />
mydate: String;<br />
begin<br />
mydate := formatdatetime('yyyymmdd', strtodate(DBLookupComboBox.Text));<br />
Filter := 'DTOS(DATE) = ' + AnsiQuotedSTR(mydate,'"'); <br />
end;<br />
</syntaxhighlight><br />
<br />
=== Index/filter operators/functions ===<br />
Supported operators (from the documentation mentioned above):<br />
{| {{table}}<br />
| '''Operator/function'''<br />
| '''Description'''<br />
|-<br />
| +||Concatenate two strings, or add two numbers<br />
|-<br />
|-||Subtract two numbers, or (FPC 2.7.1+) take the negative of a number/constant<br />
|-<br />
|*||Multiply two numbers<br />
|-<br />
|/||Divide two numbers<br />
|-<br />
|=||Compare two strings, numbers or booleans for equality<br />
|-<br />
|<>||Compare two strings, numbers or booleans for inequality<br />
|-<br />
|<||True if the first argument is smaller than second argument<br />
|-<br />
|<=||True if the first argument is smaller than or equal to the second argument<br />
|-<br />
|>||True if the first argument is greater than the second argument<br />
|-<br />
|>=||True if the first argument is greater than or equal to the second argument<br />
|-<br />
|NOT||Negate the boolean argument to the right<br />
|-<br />
|AND||Returns true if both the first and second boolean argument are true<br />
|-<br />
|OR||Returs true if the first or second boolean argument is true<br />
|-<br />
|STR(num[,size,precision])||Converts a number num to a string with optional size and precision<br />
num: number to convert to string<br />
size: the total number of characters to output<br />
precision: the number of digits to the right of the decimal point<br />
|-<br />
|DTOS(date)||Converts date to a string with representation YYYYMMDD<br />
|-<br />
|SUBSTR(str,index,count)||Extracts a substring from string str from position index and length count<br />
|-<br />
|UPPER(str)||Returns the uppercase equivalent of string str<br />
|-<br />
|LOWER(str)||Returns the lowercase equivalent of string str<br />
|-<br />
| <br />
|}<br />
<br />
== Code example: creating a table/DBF file ==<br />
The following sample creates a new table "customers" in code. This of course only needs done once, and after that you just open the table, instad of creating it. ;-)<br />
<br />
<syntaxhighlight><br />
{$MODE OBJFPC}{$H+}<br />
Program DatabaseTest;<br />
{ We need the following units be in the USES clause: }<br />
uses Dbf, db, Dbf_Common, SysUtils; <br />
<br />
{ The Dbf is put there e.g. when you drop a TDbf component on a form... }<br />
{ but you will need db for the DataSet object and Dbf_Common }<br />
{ for things such as the field type definitions }<br />
{ Finally, use SysUtils for ForceDirectories. }<br />
var<br />
MyDbf: TDbf;<br />
begin<br />
MyDbf := TDbf.Create(nil);<br />
try<br />
{ make sure the data directory exists - otherwise this may fail (e.g. on Windows XP): }<br />
ForceDirectories('data');<br />
{ use relative path to "data" directory }<br />
MyDbf.FilePath := 'data' + DirectorySeparator; <br />
{ we want to use Visual dBase VII compatible tables }<br />
MyDbf.TableLevel := 7;<br />
MyDbf.Exclusive := True;<br />
MyDbf.TableName := 'customers.dbf';<br />
With MyDbf.FieldDefs do begin<br />
Add('Id', ftAutoInc, 0, True);<br />
Add('Name', ftString, 80, True);<br />
End;<br />
MyDbf.CreateTable;<br />
MyDbf.Open;<br />
MyDbf.AddIndex('custid', 'Id', [ixPrimary, ixUnique]);<br />
{ add a secondary index }<br />
MyDbf.AddIndex('custname','Name', [ixCaseInsensitive]);<br />
MyDbf.Close;<br />
finally<br />
MyDbf.Free;<br />
end;<br />
end.<br />
</syntaxhighlight><br />
<br />
== External Index Files ==<br />
The TDbf component also supports storing secondary indexes in a separate file. This might be helpful if the database is expected to be very large. Secondary index files are created almost identically to normal indexes, but with the addition of the '.ndx' file extension:<br />
<br />
<syntaxhighlight>MyDbf.AddIndex('custname.ndx','Name', [ixCaseInsensitive]);</syntaxhighlight><br />
<br />
<br />
Each time the TDbf is opened, the index file must be loaded:<br />
<br />
<syntaxhighlight>MyDbf.OpenIndexFile('custname.ndx');</syntaxhighlight><br />
<br />
<br />
And indexes must be referenced including the extension:<br />
<br />
<syntaxhighlight>MyDbf.IndexName := 'custname.ndx';</syntaxhighlight><br />
<br />
<br />
Index files can be packed (i.e. entries pointing to deleted data rows are removed) separately using:<br />
<br />
<syntaxhighlight>MyDbf.CompactIndexFile('custname.ndx');</syntaxhighlight><br />
<br />
== How to link the TDbf component to data-aware components ==<br />
The above examples show how to create a new database table in code. Using that table is even more simple.<br />
<br />
Data aware components in Lazarus (such as the TDbEdit control) link to a TDataSource component using their "DataSource" and "DataField" properties. The TDataSource component handles communication between the database engine and the data aware components. A TDataSource then links to the TDbf component using it's "DataSet" property. The connection looks like this:<br />
<br />
TDbEdit-------<br />
|<br />
TDbEdit------|-->TDataSource-->TDbf<br />
|<br />
TDbNavigator--<br />
<br />
<br />
Be sure to set the FilePath (or FilePathFulll), TableLevel, and TableName properties of your TDbf component before calling<br />
<br />
<syntaxhighlight>TDbf.Active := True;</syntaxhighlight><br />
<br />
<br />
== Master table relations ==<br />
Real power in database programming begins when you have multiple tables that reference each other. While TDbf does not yet support full referential integrity (''so what is missing?''), it does support a master / detail relationship between TDbf's.<br />
<br />
When there are two tables related, for instance:<br />
<br />
[customers]<br />
Id <----|<br />
Name |<br />
Phone |<br />
Address |<br />
| The CustID in invoices references a customer primary field<br />
[invoices] |<br />
Id |<br />
Amount |<br />
CustID -----| * This field indexed as "idxcustid"<br />
<br />
<br />
If you wanted to display all invoices for a given customer, the detail table (invoices) can stay in sync with the master table (customers) automatically.<br />
<br />
On the invoices TDbf component set the following:<br />
<br />
<syntaxhighlight><br />
InvDbf.IndexName := 'idxcustid'; // our field that will match the customers table ID<br />
InvDbf.MasterSource := dsCustomers; // datasource that is linked to the customers TDbf<br />
InvDbf.MasterFields := 'Id'; // field on the customers table we are matching against our index<br />
</syntaxhighlight><br />
<br />
===Searching and Displaying a data set by using filters===<br />
[[user:svbfieldview.net|Simon Batty]]<br />
<br />
In this example I wanted to search a database of books for all the titles an author has listed<br />
and then display the list in a memo box<br />
<syntaxhighlight><br />
Dbf1.FilePathFull := '/home/somelocatio/database_location/'; // path to the database directory<br />
Dbf1.TableName := 'books.dbase'; // database file (including extension)<br />
DbF1.Open;<br />
memo1.Clear; // clear the memo box<br />
<br />
Dbf1.FilterOptions := [foCaseInsensitive]; // set FilterOptions before Filter !<br />
Dbf1.Filter := 'AUTHOR=' + QuotedStr('anauthor'); // AUTHOR is the field name containing the authors<br />
// Note that we need to surround the value with double quotes: "James Joyce"<br />
<br />
Dbf1.Filtered := true; // This selects the filtered set<br />
Dbf1.First; // moves the the first filtered data<br />
while not dbf1.EOF do // prints the titles that match the author to the memo box<br />
begin<br />
memo1.Append(Dbf1.FieldByName('TITLE').AsString); // TITLE is the field name for titles<br />
dbf1.next; // use .next here NOT .findnext!<br />
end;<br />
Dbf1.Close;<br />
</syntaxhighlight> <br />
<br />
Note that you can use Ddf1.FindFirst to get the first record in the filtered set, then use <br />
Dbf1.Next to move though the data. I found that using Dbf1.FindNext just causes the program to hang.<br />
<br />
== Filters ==<br />
There are two ways to use filters:<br />
* use filter expressions<br />
* write an event handler for OnFilterRecord; if you want to show the record, set Accept to true. <br />
<br />
In both cases, set the Filtered property to true to enable filtering.<br />
<br />
Example: imagine you have a database that identifies the products by a code, for example, B019, and you need to filter only those products that are of this code so that a report is generated with LazReport.<br />
Let's assume your DBF object is called TDBF1 and the field with product codes is called "product_no".<br />
<br />
=== Expression filters ===<br />
Implement filtering using a filter expression like this:<br />
<syntaxhighlight><br />
TDBF1.Filter := 'product_code = "B019"'; //string type field; string constants should be quoted by ' or "<br />
TDBF1.Filtered := true;<br />
</syntaxhighlight><br />
<br />
<syntaxhighlight><br />
TDBF1.Filter := 'product_code = "B*"'; //partial match filter; filters all products which code begins with B<br />
TDBF1.Filtered := true;<br />
</syntaxhighlight><br />
<br />
Filter on multiple fields:<br />
<syntaxhighlight><br />
// Needs to be tested. If it works, please remove this line.<br />
MyDBF.Filter:='LASTNAME;FIRSTNAME';<br />
</syntaxhighlight><br />
Adapted from: forum post [http://forum.lazarus.freepascal.org/index.php/topic,23090.msg137401.html#msg137401]<br />
<br />
Here is an example of using a DBLookupCombobox value in a filter statement (where NAME is the field from the DBf):<br />
<syntaxhighlight><br />
Filter := 'NAME=' + QuotedStr(DBLookupcomboBox1.Text);<br />
</syntaxhighlight><br />
<br />
Here are two examples of using two comboboxes in a compound (i.e. 2 fields) filter statement (where NAME and TYPE are field names from a DBf):<br />
<br />
In this example you are going to "and" the two values.<br />
<syntaxhighlight><br />
// unfortunately, this will fail whenever the user types a ' in TypeComboBox.Text...<br />
Filter := 'NAME=' + QuotedStr(DBLookupcomboBox1.Text) + ' and TYPE=' + QuotedStr(TypeComboBox.Text);<br />
Filter := Format('NAME="%s" and TYPE="%s"',[DBLookupcomboBox1.Text, TypeComboBox.Text]);<br />
</syntaxhighlight><br />
<br />
An example of using a combobox to provide the field name for the filter and comparing that to the value in lookup combobox:<br />
<syntaxhighlight><br />
Filter := FieldComboBox.Text + '=' + QuotedSTR(DBLookupcomboBox1.Text);<br />
</syntaxhighlight><br />
<br />
In this example, the FieldCombobox is programmatically populated with the names of the fields from the DBf:<br />
<syntaxhighlight><br />
// fill the combobox with Field Names<br />
for i:=0 to Dbf.FieldCount-1 do<br />
FieldComboBox.Items.Add(Dbf.Fields[i].FieldName); <br />
</syntaxhighlight><br />
<br />
Please see the section [[#Expressions]] above for the list of supported expressions as well as more examples.<br />
<br />
=== OnFilterRecords ===<br />
To use this method, you need to write a function.<br />
<br />
In your main code, write something like:<br />
<syntaxhighlight><br />
OnFilterRecord := @TestOnFilterProc; //instruct tdbf to lead all records past your OnFilterProductCode procedure<br />
Filtered := True; //actually enable filtering<br />
</syntaxhighlight><br />
<br />
Then write your event handler:<br />
<syntaxhighlight><br />
procedure TTestCursorDBBasics.TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean);<br />
begin<br />
// Filter out everything except product_no=B019<br />
Accept := Copy (Trim (Dataset.FieldByName ('product_no'). AsString),1,4) = 'B019';<br />
end;<br />
</syntaxhighlight><br />
All records that give a false value for Accept are filtered out i.e. are not displayed in the report.<br />
<br />
==== Filter on null values ====<br />
You can use this method to show only empty (null) values, something you cannot do with the <code>Filter</code> property.<br />
An example - assuming you have a field called orderdate:<br />
<syntaxhighlight><br />
procedure TTestCursorDBBasics.TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean);<br />
begin<br />
// Show only empty order dates<br />
Accept := Dataset.FieldByName('orderdate').IsNull;<br />
end;<br />
</syntaxhighlight><br />
<br />
== Packing and rebuilding the tables ==<br />
When a record is deleted, it's not truly removed from the physical table. Periodically you must "pack" a table to recover that lost space. This should be done with exclusive mode set. See above for remarks on packing external index files.<br />
<br />
<syntaxhighlight><br />
MyDbf.Exclusive := True;<br />
MyDbf.Open;<br />
MyDbf.PackTable;<br />
// let's also rebuild all the indexes<br />
MyDbf.RegenerateIndexes;<br />
MyDbf.Close;<br />
MyDbf.Exclusive := False;<br />
</syntaxhighlight><br />
<br />
<br />
== Encryption ==<br />
Apparently at least DBase IV and 5 support some kind of encryption (there is an encryption flag in the file structure), but it may well be that the password/encryption key is in the DBF itself (see [http://www.antionline.com/archive/index.php/t-236215.html]), making it insecure.<br />
<br />
There are other options if you want to encrypt your data. See here [http://www.lazarus.freepascal.org/index.php/topic,15422.msg83016.htm|forum discussion on DBase encryption]<br />
<br />
=== Operating system level encryption ===<br />
You can use an encrypted filesystem such as TrueCrypt (containers) to encrypt the directory where the database files get stored.<br />
<br />
=== Encrypt the DBF file ===<br />
You can use streams (e.g. the Blowfish encyprtion stream code supplied with Lazarus/FPC) to encrypt the data (all tables etc) by storing the unencrypted file e.g. in memory, then writing that to disk:<br />
# Open your file in a TFileStream.<br />
# Decrypt TFileStream to a new stream, YourDecryptedStream<br />
# Tdbf.UserStream:= YourDecryptedStream; //Note: this will not encrypt .dbt/memo files! Use '''UserMemoStream''' for this (in FPC development/trunk since May 2013 only)<br />
# Tdbf.Storage:=stoMemory;<br />
# Tdbf.Open;<br />
<br />
When finished<br />
# Tdbf.Close<br />
# Encrypt YourDecryptedStream to TFileStream<br />
# Free stream(s)<br />
Detailed code can be found in the forum thread mentioned above. People implementing this are welcome to adapt this article with working code.<br />
<br />
=== Encrypt field data ===<br />
You could also choose to encrypt field data by implementing the OnGetText and OnSetText events to encrypt/decrypt the field contents.<br />
<br />
== Third party software ==<br />
* [http://mydbfstudio.altervista.org/ MyDbf Studio] is an open source admin tool to manage your dbase table. It is entirely written in Lazarus IDE and based on TDbf.<br />
* [http://vlad-karpov.narod.ru/Components.html#VK%20DBF] are Delphi components for DBF files.<br />
** Vlad Karpov's open source VKDBF: [[http://sourceforge.net/projects/vkdbf/?source=directory]]<br />
<br />
== See also ==<br />
* [[TDbf]]<br />
* [[fpdbfexport]] Exports any kind of dataset to DBF files<br />
* See the dbftool example included in FPC 2.7.1+: creating, using DBF files and exporting data using db export (also downloadable via http://svn.freepascal.org/svn/fpc/trunk/packages/fcl-db/examples/)<br />
* [[Contacts Database]] Another example database<br />
* [[Example: TDbf (creating table and indexes, selecting of index)]]<br />
<br/></div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=114139Lazarus 1.8 fixes branch2017-12-06T23:20:31Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r55756 SynEdit: PAS highlighter: support NESTEDCOMMENTS mode switch. {{MantisLink|32356}}<br />
*r55865 IDE: set ToolStatus to itBuilder before compiling packages, bug 32421<br />
*r55861 LazReport: Implements flBandKeepChild, from Lutz Mändle, {{MantisLink|30466}}<br />
*r55920 LCL: GTK2: Fixed tab cannot go from combobox to combobox. {{MantisLink|32458}}<br />
*r55921 LCL: AnchorDocking: Fixed faulty load layout from config when used second time. {{MantisLink|31238}}. Patch by Andrey Zubarev<br />
*r55934 LCL: fixed incosistency in pen when using TLogPen and TExtLogPen. {{MantisLink|32465}}<br />
*r55979 LCL: TComboBox: GTK2: Fixed KeyUp and KeyDown react like tab key after revision 55920. {{MantisLink|32458}}<br />
*r56048 LCL: GTK2: Don't grab focus for TPanel on mouse messages. {{MantisLink|32515}}<br />
*r56148 LCL: GTK2: Fixed Cannot hide TBitBtn, TFloatSpinEdit, TListBox, TCheckListBox, TMemo, TListView from TForm.OnCreate after HandleNeeded. {{MantisLink|32527}}<br />
*r56325 IDE: Find/Replace: save options depending on selection availability. {{MantisLink|32619}}<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
<br />
=== Merged revisions for 1.8.2 ===<br />
*r56600, r56628 Translations: Brazilian Portuguese translation updates by Marcelo B Paula<br />
*r56605 Translations: Hungarian translation update by Péter Gábor, bug 32764<br />
*r56609 rpm: fixed showing fpc-src rpm path<br />
*r56611 rpm: fixed rpm path<br />
*r56614 rpm: fpc-src: disable debug check<br />
*r56616 deb: uninstall fpc even if some files are missing<br />
*r56619 rpm: append linker option --build-id<br />
*r56621 rpm: omit debug_package<br />
<br />
== Fixes for 1.8.0 (merged)==<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
*r55630 GTK2: an attempt to reduce the number of superfluous OnChanges of TFloatSpinEdit. {{MantisLink|0031618}}.<br />
*r55709 LCL-GTK2: Fix UnityTrayIcon crash on gdk_pixbuf_save. {{MantisLink|32258}}.<br />
*r56015 Codetools: Do not chomp a procedure name with empty brackets (). {{MantisLink|31960}}.<br />
*r56028 Codetools: Add dotted unit names to uses section correctly. Optimize. {{MantisLink|32247}}.<br />
*r56029 Fix TMask.InitMaskString for charsets when CaseSensitive is False. {{MantisLink|0032491}}. Patch by delfion.<br />
*r56031 LCL: Fixed TDateEdit/TTimeEdit controls break the tab order. {{MantisLink|32533}}<br />
*r56036 Codetools: updated Russian translation<br />
*r56041 codetools: fixed CompleteCode TryAssignment loop<br />
*r56044 codetools: fixed complete forward proc<br />
*r56046 IDE: High-DPI new icons. {{MantisLink|32508}}. Patch by FTurtle<br />
*r56054 CodeTools: Don't throw an error with "(" inside a comment in front of unit. {{MantisLink|32235}}.<br />
*r56061 IDE: High-DPI refactoring of some images. {{MantisLink|32529}}. Patch by FTurtle<br />
*r56063 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32544<br />
*r56071 codetools: fixed example<br />
*r56073 codetools: AddUnitWarnDirective: fixed startnode<br />
*r56077 codetools: fixed AddUnitWarnDirective insert position<br />
*r56083 IDE: open file at cursor: show error message on fail<br />
*r56058 Package editor: Fix moving dependencies up/down. Use the display name for searching. {{MantisLink|32546}}.<br />
*r56068,r56069,r56082 Improve Package Editor for dependent packages. {{MantisLink|32546}}.<br />
*r56085 Codetools: Fix code completion for methods with empty parentheses. {{MantisLink|31960}}.<br />
*r56086 LCL: Win32: Fixed TComboBox tab key isn't working with style csSimple. {{MantisLink|32559}}<br />
*r56087 IDE: regenerated translations and updated Russian translation<br />
*r56098 IDE: fixed layout<br />
*r56100 IDE: set watch property dialog to autosize, bug 32567<br />
*r56102 IDE: updated lazarus.lpi and fixed editor macro layout, bug 32568<br />
*r56106 IDE: unit info dlg: improved layout<br />
*r56108 projecttemplates: layout: anchors<br />
*r56110 leakview: fixed layout<br />
*r56119 lcl: lcltranslator: fixed translating only TTranslateString properties<br />
*r56120 lcl: lcltranslator: skip components without name<br />
*r56121 lcl: lcltranslator: fixed using property path, instead of subcomponent names, subcomponents names can be empty, same as IDE<br />
*r56124 lcl: lcltranslator: use typeinfo instead of type name<br />
*r55710 IDE: Improve CompilerOtherOptions frame layout. {{MantisLink|32272}}.<br />
*r56134 IDE: Update components_images.res (forgotten in r55966)<br />
*r56136 IDE: Improve the layout of Project Options -> FPDocEditor. {{MantisLink|32574}}.<br />
*r56144 IDE: High-DPI: Refreshed open icons. {{MantisLink|32595}}. Patch by FTurtle<br />
*r56035 IdeIntf, ComponentTree: Don't try to update Collection name. Affects TSQLQuery Params. {{MantisLink|31965}}.<br />
*r56146 IdeIntf: Fix TVariantPropertyEditor. {{MantisLink|19324}}.<br />
*r56130 LCL: GTK2: Using nboKeyboardTabSwitch in TabControl options and <Ctrl> + <Tab> now working.<br />
*r56131 LCL: GTK2: TTabControl: Cannot use keyboard to switch tab. {{MantisLink|31986}}<br />
*r56112,r56122 LCL-GTK2: Support 5 button mice. {{MantisLink|32562}}.<br />
*r56140 LCL: GTK2: Fixed set TPanel visible to false on non visual TabSheet doesn't work. {{MantisLink|32593}}<br />
*r56149 Translations: French translation update by Gilles Vasseur, bug 32587<br />
*r56150 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32590<br />
*r56155 IDE: Focus FilterEdit in options initially. ActiveControl was cleared again for some reason.<br />
*r56143,r56156 AnchorDocking: Use async call for SimplifyPendingLayouts always. {{MantisLink|32342}},{{MantisLink|32591}},{{MantisLink|31895}}.<br />
*r56193 lcl: gtk2: fixed error handling in GtkDragDataReceived, bug 32611, patch from C Western<br />
*r56197 codetools: fixed GetIdentStartEndAtPosition if pos behind source<br />
*r56232 codetools: fixed adding uses section to program<br />
*r56162 LCL: Fixed TSpinEditEx Focus on Tab Click doesn't work. {{MantisLink|32601}}<br />
*r56219 LazControls: New HiRes component palette icons (kindly provided by Roland Hahn).<br />
*r56180 win32: fix GetDpiForMonitor SIGSEGV if Shcore is not available (e.g. on MS Windows Server 2012 R2)<br />
*r56181 Fix firing an OnChange and setting Modified when setting Text inside OnChange and new Text = old Text. {{MantisLink|0032602}}.<br />
*r56185 lazutils: fixed ResolveDots: ./ -> .<br />
*r56187 LazFileUtils: rename a local variable to improve readability. No functional changes. (Merge request to avoid possible future merge conflicts)<br />
*r56234 SynEdit: fix mark gutter, calculating width of mark-image {{MantisLink|32622}}<br />
*r56223 examples/treeview: Use default font (instead of MS SansSerif)<br />
*r56225 examples/ResizeImageDemo: remove unit Windows from "uses".<br />
*r56226 examples/dbeditmask: Fix crash due to incorrect dateseparator in some countries. Use default font instead of MS SansSerif.<br />
*r56227 examples/componentstreaming: Prevent explaining labels reaching beyond form borders.<br />
*r56228 Examples/synedit1: Fix compilation.<br />
*r56235 LCL: Prevent a crash when getting editor for an empty Grid. {{MantisLink|32623}}.<br />
*r56242 LCL: Make procedure RunDialog public in TFileNameEdit, TDirectoryEdit and CalcEdit. Helps with shortcut keys.<br />
*r56244 AnchorDocking: Show also inactive tabed windows in Window-menu. {{MantisLink|32618}}.<br />
*r56248 Move package SemaphorGridLPK and its example project to Lazarus-CCR.<br />
*r56249 Delete example "SpeedTest". Image penguin.xpm is missing and it makes no sense.<br />
*r56250 Delete example "FpDocManager". Does not work.<br />
*r56251 IDE: HiRes icons for component palette "Misc" (by Roland Hahn)<br />
*r56252 Debugger: Ensure correct thread id in history entries<br />
*r56253 IDE: High-DPI new icons. Issue {{MantisLink|32628}}. Patch by FTurtle.<br />
*r56256 IDE: Remember the "Origin" setting in Search/Find dialog. {{MantisLink|32619}}.<br />
*r56261 codetools: cleaned up (removed program changeparamlist).<br />
*r56262 CodeTools example AddFpprofCalls: show help if no filename is given. Fix memory leak.<br />
*r56263 codetools: example addmethod with fpc sources<br />
*r56266 codetools: examples: fixed completeblock<br />
*r56268 codetools: examples: fixed fixfilenames<br />
*r56269 codetools: fixed FindMissingUnits<br />
*r56275 codetools: examples: fixed getexpandedoperand<br />
*r56276 codetools: formatted, fixed GetExpandedOperand<br />
*r56279 codetools: ReduceCompilerDirectives fixed crash<br />
*r56281 IDE: designer: fixed store selection bounds for mediator, patch from Anton<br />
*r56283 IDE: fixed memleak in example designnonlcl<br />
*r56285 sqldb: New HiDpi-icons by Roland Hahn<br />
*r56286 IDE: HiRes palette icons for default and unregistered component (by Roland Hahn)<br />
*r56291 IDE: File / Open : fixed browsing linked folders on Windows, bug 32642<br />
*r56293 codetools: parse specialize in param type<br />
*r56319 codetools: fixed copying proc param specialize<br />
*r56323 codetools: fixed class completion for method with specialize in mdoe delphi<br />
*r56310 plotfunction: Fix vertical alignment of y axis caption ({{MantisLink|26312}})<br />
*r56313 plotfunction: Fix memory leak.<br />
*r56314 plotfunction: Make axes and fonts better respond to changes in object inspector ({{MantisLink|26311}})<br />
*r56315 plotfunction: Fix scaling of plots.<br />
*r56350 LCL: revert r55892<br />
*r56344 LCL: revert r56162, r56031, r55890 (TabStop handling)<br />
*r56349 Anchordocking: Fix loading the same layout twice. {{MantisLink|32660}}<br />
*r56353 Revert r56181 (Fix firing an OnChange and setting Modified when setting Text inside OnChange and new Text = old Text. {{MantisLink|0032602}}.) It causes a regression.<br />
*r56373 lcl: Minor revision of HiRes images of lcl controls (by Roland Hahn)<br />
*r56379 IDE: Slightly improved versions of some component palette icons (by Roland Hahn)<br />
*r56357 SynEdit: Select UTF8 text correctly when Persistent Block is active. {{MantisLink|32667}}.<br />
*r56360 IDE: Show dotted unit names in Code Explorer. {{MantisLink|32663}}.<br />
*r56366 Codetools: Find declaration for a used unit also when caret is at its end. {{MantisLink|32606}}.<br />
*r56398 SynEdit: Enable operations for an identifier also when caret is at its end.<br />
*r56413 LCL,Gtk2: fix Dialog modal windows go behind regular windows and won't come on top. {{MantisLink|32635}}<br />
*r56428 IDE: Auto-columnwidths in charactermap {{MantisLink|32701}}.<br />
*r56429 LCL: Win32: Prevent AV at closing form.<br />
*r56431 LCL: Fix setting TTreeNode.DropTarget. {{MantisLink|28978}}.<br />
*r56432 Printers: New HiRes component palette icons of the printer dialogs (by Roland Hahn)<br />
*r56433 IDE: New HiRes icons for the Dialogs component palette (by Roland Hahn)<br />
*r56442 gdbmi debugger tests<br />
*r56443 TAChart: Fix empty TPolarSeries crashing if ShowPoints is true.<br />
*r56444 Opkman: Spanish translation update by Gastón, bug 32706<br />
*r56457 gdebugger, gdbmi: fix stepping over exceptions<br />
*r56466 lcl: gtk2: trayicon fixed missing nil parameter<br />
*r56473 LCL: Prevent rotated font from being detected as default font (patch by Michl)<br />
*r56475 TAChart: Introduce default value of property TOpenHighLowCloseSeries.Mode<br />
*r56480 TAChart: Fix incorrect extent calculation of TOpenHighLowCloseSeries.<br />
*r56484 Turbopower_ipro: New HiRes component palette icons by Roland Hahn<br />
*r56486 codetools: fixed parsing deprecated<br />
*r56490 TAChart: Fix RandomChartSource crashing if PointsNumber is 1.<br />
*r56499 IDE: New HiRes palette icons by Roland Hahn for database-related components<br />
*r56517 IDE: fixed parameter hint auto completion when closing bracket is missing, bug 32736<br />
*r56526 codetools: complete property: set defaults, complex type<br />
*r56533 LCL: InputQuery: High-DPI. By AlexeyT. Issue 32717<br />
*r56534 Translations: huge Chinese translation update by robsean, bug 32750<br />
*r56535 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 32754<br />
*r56539 Docs: added Olexandr Pylypchuk and Zheng Jian Ping aka "robsean" to contributors list<br />
*r56540 Lazlogger: Allow setting to nil. Issue 32548<br />
*r56541 lclbase: added missing include/comboex.inc<br />
*r56543 lcl: TCustomCheckCombo: changed TCheckComboItemState to class, added checks if Items.Objects is TCheckComboItemState, async raise error to avoid freezing X<br />
*r56545 IDE: updated lazarus.lpi<br />
*r56458 gdebugger, gdbmi: fix stepping over exceptions - TESTS<br />
*r56578 codetools: fixed clearing errormsg, issue 32761, from Pascal<br />
<br />
== Fixes for 1.8 RC5 (merged)==<br />
*r54902 IdeIntf: API function for uninstalling a package. From Balázs. (Needed for OPM)<br />
*r55635 gtk2: fix ScreenInfo.PixelsPerInch* values. {{MantisLink|31199}}, by Michl<br />
*r55646, r55763 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55653 LCL: task dialog: fix radio button result. {{MantisLink|32231}}, patch by Howard Page-Clark<br />
*r55658 Opkman: VST support for arm-linux. Patch from @Thaddy.<br />
*r55659 lcl: forms: don't change Font PPI if Application.Scaled=False. {{MantisLink|32260}}<br />
*r55660 LCL: font: IsEqual should ignore PixelsPerInch value - Assign ignores it as well.<br />
*r55662 IDE: High-DPI: scale open file drop down menu icons.<br />
*r55663 IDE: restore desktop with correct name after debugging<br />
*r55665 LCL: GTK2: Fixed font issues at high-DPI on Gtk2. {{MantisLink|32268}}.<br />
*r55666 IDE: Fixed initial mainbar height for Windows. {{MantisLink|32277}}<br />
*r55668 ideintf: Fix "new action" button dropdown arrow.<br />
*r55669 lcl: dbgrids: high dpi: scale indicator column width<br />
*r55670 LCL: High-DPI cursors. {{MantisLink|32280}}<br />
*r55672 IdeIntf: OI: center current row arrow vertically. {{MantisLink|32280}}<br />
*r55673 LazControls: In FilterEdits check everywhere if the associated control exists. {{MantisLink|32282}}.<br />
*r55674 IdeIntf: High-DPI: support scale factors above 200%. {{MantisLink|32280}}<br />
*r55675 synedit: high-DPI: implement DoAutoAdjustLayout. {{MantisLink|31753}}<br />
*r55676 IDE: scale sourceeditor. {{MantisLink|31753}}<br />
*r55677 synedit: high-DPI fixes. {{MantisLink|31753}}<br />
*r55681 codetools: fpc sources: packegs/rtl-extra add include path src/SrcOS and src/SrcOS2, bug 32263<br />
*r55699 IDE: quickfixes: auto open changed units, bug 32284<br />
*r55704 LCL: ComboBox: Win32: Don't loose ItemIndex with AutoComplete set. {{MantisLink|32301}}<br />
*r55716 lcl: edit: force show texthint in InitializeWnd. {{MantisLink|32053}}<br />
*r55717 ide: options dialog: filter edit: use parent font<br />
*r55718 qt: edit: force show texthint in ShowHide. {{MantisLink|32053}}<br />
*r55734 IDE: high-DPI: scale created components<br />
*r55754 IDE: Fix logic for switching windows from "Window" menu. {{MantisLink|32350}}<br />
*r55755 LCL: Missed assigning of default font value Style.<br />
*r55757 LCL: Fixed Canvas.TextExtend if system font is used for drawing. {{MantisLink|32319}}<br />
*r55758 LCL: Win32: Fixed themed drawing for system font usage. {{MantisLink|32319}}<br />
*r55761 LCL: Disable scaling for default fonts, as they are correctly sized taken from OS. {{MantisLink|32359}}<br />
*r55775 IDE: SourceEditor: IDESynGutterMarks High-DPI aware.<br />
*r55779 CodeTools: remove inline, private, public and published from keyword list - they can be used as identifiers as well. {{MantisLink|32336}}<br />
*r55780 TAChart: Add overloaded Clone method to set a new parent and owner {{MantisLink|32365}}<br />
*r55781 IDE: MessageWindow: Win32: Messages painting: Prevent flickering.<br />
*r55785 IDE: New HiDPI component icons, kindly provided by Roland Hahn.<br />
*r55786 IDE: Components_images.res forgotten in previous commit<br />
*r55787 IDE: Some more HiDPI icons by Roland Hahn<br />
*r55789 LCL-GTK2: Partly revert r53653, check for gtk_minor_version again. {{MantisLink|32196}}<br />
*r55795 LCL: GTK2: Fixed cursor size. {{MantisLink|32385}}<br />
*r55796 LCL: GTK2: High-DPI cursor crNo.<br />
*r55797 IDE: High-DPI BookMark icons. Patch by FTurtle. {{MantisLink|32374}}<br />
*r55798 IDE: Forgotten copyright info from revision 55797<br />
*r55820 LCL: In TCustomcalendar, always SetProps in InitializeWnd ({{MantisLink|0032379}}). Patch by soner.<br />
*r55842 lcl: fix docs about TControl.SetBounds<br />
*r55851 codetools: find declaration of dotted program name<br />
*r55827 IDE: More component palette icons by Roland Hahn completing the Standard palette.<br />
*r55829 IDE: Remove printer-related icons from folder images/components (they are in components/printers/images)<br />
*r55830 IDE: Update components_images_list.txt (adding of scale TFrame and TPanel icons forgotten in prev commits).<br />
*r55831 IdeIntf: Exit from TEnumPropertyEditor.SetValue when invalid value is given. Prevents an AV later. Reverts r185 from 2001-02-19.<br />
*r55840 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32396}}. Patch by FTurtle<br />
*r55860 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32416}}. Patch by FTurtle<br />
*r55862 IDE: New icons for palette "Additional" (provided by Roland Hahn).<br />
*r55863 IDE: Update components_images_list.txt and components_images.res missing in previous commit.<br />
*r55864 IDE: Add HighRes TScrollbox icons to resource<br />
*r55866 IDE: Refactoring resource image lists files. {{MantisLink|32420}}. Patch by FTurtle.<br />
*r55867 Contributors: Add Roland Hahn (component palette icons)<br />
*r55876 IDE: HiRes icons for the Common Controls palette (by Roland Hahn).<br />
*r55877 IDE, OI: Update the component ComboBox properly when it is visible. {{MantisLink|32427}}<br />
*r55878 IDE: High-DPI menu items. {{MantisLink|32431}}. Patch by FTurtle.<br />
*r55879 PackageTabs: Fixed icon after revision 55878.<br />
*r55880 IDE: Cleanup: Delete unused images.<br />
*r55868 LCL: treeview: fix tooltips. Patch by AlexeyT. {{MantisLink|32400}}<br />
*r55848 LCL, fix message dialogs hidding behind modal dialogs {{MantisLink|32249}}<br />
*r55875 DateTimeCtls: HiRes icons for TDateTimePicker by Roland Hahn. Switch icons to .res format.<br />
*r55884 LCL: Font: Revert revision 55761 as it breaks per monitor High-DPI scaling.<br />
*r55881 Qt,Qt5: fixed cpu eating by gtk+ theme.<br />
*r55890 LCL: TCustomEditButton: Fixed TDateEdit.SelectNext. {{MantisLink|32335}}<br />
*r55892 LCL: TTabControl: Fixed AV on creating control. {{MantisLink|32455}}<br />
*r55915 codetools: property completion: fixed check if store accessor with index specififer exists<br />
*r55917 codetools: property completion: fixed read/write accessor for param+index specifier<br />
*r55904 IDE: Update copyright.txt for component palette icons created by Roland Hahn.<br />
*r55906 IDE: Add HiRes palette icons for TDBDateTimePicker.<br />
*r55919 TAChart: Fix event TDbChartSource.OnGetItem not being alterable in designer. Add demo db-barseries.<br />
*r55944 codetools: fixed RemoveUnitFromAllUsesSections<br />
*r55946 codetools: fixed skipping sourcename, added TPascalParserTool.FindUsesNode<br />
*r55948 codetools: fixed continuing parsing after source name<br />
*r55951 codetools: added ctnSrcName, fixed find declaration dotted program name<br />
*r55926 IDE: Replace TStaticText palette icons with fully transparent ones.<br />
*r55932 IDE: High-DPI icons. {{MantisLink|32454}} Patch by FTurtle<br />
*r55941 SynEdit: Paint Caret in paint-event (except win32) / some very few gtk may have issues<br />
*r55953 DBExport examples: fix compilation and layout, improved usability<br />
*r55954 Debugger: In BreakpointPropertyDlg, add new conditions to top of list, remove duplicates and reject empty strings.<br />
*r55956 IDE: Add some HiRes icons for Run menu (drawn by Roland Hahn)<br />
*r55957 IDE: Update copyright.txt for icons added in previous commit<br />
*r55554 Qt, Qt5: fixed ItemShow - scroll to item. {{MantisLink|32078}}<br />
*r55555 Qt5: use QScreen_grabWindow() instead of QPixmap_grabWindow(). part of {{MantisLink|32141}}<br />
*r55737 Qt4: fixed build under mswindows<br />
*r55759 Qt5: implemented InitStockFont. part of {{MantisLink|32354}}<br />
*r55760 Qt,Qt5: fixed painting of TQtHintWindow. {{MantisLink|32354}}<br />
*r55774 Qt, Qt5: check if handle is valid inside various routines, fixes some sparta ide crashes.<br />
*r55782 Qt5: TQtGroupBox does not need offset as in Qt4, since Qt5 provides correct coordinates. {{MantisLink|32186}}<br />
*r55966 IDE: HiRes icons for System component palette (provided by Roland Hahn)<br />
*r55969 IDE: High-DPI icons. {{MantisLink|32493}} Patch by FTurtle<br />
*r55970 IDE: In ToolBarConfig ListView select correct item after adding a command. Refactoring etc.<br />
*r55971 components/wiki: Fix compilation of wikiget<br />
*r55975 LCL: Do not trigger Escape key for a disabled cancel button. {{MantisLink|32509}}<br />
*r55984 Translations: Hungarian translation update by Péter Gábor, bug 32503<br />
*r55986 IDE: Remove an extra IDEDialogLayoutList.ApplyLayout call from NewDialog constructor.<br />
*r55992,r55994,r55996,r55997,r56004 IDE: Less questions when opening a symlinked file. {{MantisLink|32292}}.<br />
*r55998 LCL-GTK2: Fix SelStart and SelLength in OnChange with some widgetset versions. {{MantisLink|24371}}.<br />
*r56001 IDE: designer: High-DPI: selection grabber. {{MantisLink|32397}}<br />
*r56003 IDE: designer: tune up r56001, {{MantisLink|32397}}<br />
<br />
== Fixes for 1.8 RC4 (merged)==<br />
*r55411 Debugger: Fix anchoring in WatchPropertyDlg.<br />
*r55412 Finnish translations for IDE and OI.<br />
*r55413 DBRadiogroup: Fix crash when clicking without assigned field ({{MantisLink|0032077}}).<br />
*r55415 LCL: Japanese translation update by Haruyuki Fujimaki, {{MantisLink|32081}}<br />
*r55462 IDE: fixed checking for file changes on non UTF-8 files<br />
*r55433 Sparta_DockedFormEditor: Fixed drawing of MainMenu after adding the first MenuItem. {{MantisLink|31206}}<br />
*r55442 Win32: TGroupBox: Fixed wrong background color for inactive groupbox.<br />
*r55453 QT, QT5: Initialize WideString Result in TQtTextEdit methods.<br />
*r55459 LCL-Win32: Process surrogate pairs correctly when virtual keyboard is used. {{MantisLink|32101}}.<br />
*r55460 IDE: Fix left/right arrow key behavior in identifier completion. {{MantisLink|32117}}<br />
*r55466 Translations: Japanese translation update by takahiro and Haruyuki Fujimaki, bugs 32099, 32100<br />
*r55467 IDE: Turkish translation update by lazarusturkiye, bug 32104<br />
*r55474, r55502 Translations: Lithuanian translation update by Valdas Jankūnas, bug 32126<br />
*r55479 lcl: fixed typos<br />
*r55482 anchordocking: fixed hiding docksite when last control gets Visible=false<br />
*r55485 codetools: parse generic function<br />
*r55489 Translations: French translation update by Gilles Vasseur, bug 32133<br />
*r55520 LCL: skip property TDataModule.PPI on FPC < 3.0.3<br />
*r55526 LCL: Dutch translation update by Bart, bug 32149<br />
*r55492 IDE: High-DPI: ObjectInspector: Fixed drawing of active row bitmap. {{MantisLink|32097}}<br />
*r55494 grids: Introduce constColRowBorderTolerance for colwidth/rowheight resizing.<br />
*r55495 grids: High-dpi scaling of constCellPadding, constRubberSpace and constColRowBorderTolerance<br />
*r55496 IDE: High-DPI: ObjectInspector: Size of filter edit glyphs. {{MantisLink|32097}}<br />
*r55498 IDE: High-DPI: Fixed image sizes of in IDE used TTreeFilterEdits and TListFilterEdits.<br />
*r55499 IDE: High-DPI: ComponentPagesPopup: Size of close button glyph. {{MantisLink|32097}}<br />
*r55500 IDE: High-DPI: ComponentPalette: Size of component pages speedbutton.<br />
*r55507 IDE: SearchResultWindow: Anchor of TreeFilterEdit to always show its button.<br />
*r55508 IDE: High-DPI: ObjectInspector: ComponentTreeView: Fixed image sizes.<br />
*r55509 IDE: High-DPI: ComponentPages: Fixed tree image sizes.<br />
*r55510 IDE: High-DPI: ActionsEditor: Fixed image sizes.<br />
*r55511 IDE: High-DPI: CodeExplorer: Fixed image sizes.<br />
*r55512 IDE: High-DPI: Better assigning of images to imagelists.<br />
*r55513 IDE: High-DPI: SourceEditor: Fixed source mark image sizes.<br />
*r55514 IDE: High-DPI: CodeBrowser: Fixed image sizes.<br />
*r55515 IDE: EditorDisplayOptions: Fixed wrong anchor of DisableAntialiasingCheckBox.<br />
*r55516 LCL: TTreeView: High-DPI: Make spaces between images DPI-aware.<br />
*r55530 LCL: form: force scale bounds in WM_DPICHANGED message handler. {{MantisLink|32162}}<br />
*r55531 LCL: TPromptDialog: high-DPI<br />
*r55533 LCL: TPromptDialog: support ChangeScale<br />
*r55534 lcl: groupededit: revert r53759 - buddy is scaled automatically. {{MantisLink|32154}}<br />
*r55537 lcl: control: high-DPI: correctly scale base bounds. {{MantisLink|31992}}<br />
*r55539 lcl: dbgrids: hide vertical scrollbar for ssNone and ssHorizontal style. {{MantisLink|32134}}<br />
*r55541 lazbuild: nicer error message on lpi file not found<br />
*r55548 startlazarus: start IDE on Mac via open, bug 32180, patch from Anthony Walter<br />
*r55558 TurboPower_iPro: Fix colored table background not being painted.<br />
*r55561 avglvltree: fix DisposeNode for nil Node. {{MantisLink|32189}}<br />
*r55568 IDEIntf: TOICustomPropertyGrid: handle wheel events on grid the same as on edit cell control, issue 32193, from Anthony Walter<br />
*r55583 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32184<br />
*r55318 DateTimePicker: Add RemoveHandlerOnChange, RemoveHandlerOnCheckBoxChange, override RemoveAllHandlersOfObjects<br />
*r55292 DateTimePiker: Built-in UpDown control appears flat with dtpoFlatButton option<br />
*r55279 Fix indentation<br />
*r55435 datetimepicker: update date also when handle is not yet allocated. {{MantisLink|32106}}<br />
*r55560 LazUtils: add Laz_AVL_Tree to the package<br />
*r55609, r55622 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55610 IDE: Polish translation update by Rafał Klekowski, bug 32217<br />
*r55589 docs: Improved font for source code in lhelp (at least on Windows)<br />
*r55591 TAChart: Fix incompletely displayed series marks for style smsLabelPercentTotal. {{MantisLink|32202}}<br />
*r55592 Turbopower_ipro: Underline links only at mouse-over.<br />
*r55600 IDE: ProcedureList: Fixed height of edit and combobox. Issue {{MantisLink|32212}}<br />
*r55598 LCL: combobox: sanity check for ItemIndex<br />
*r55604 SynEdit: assert correct method types<br />
*r55605 IDE options: change description and limit for "match whole word" of highlight equal terms. Issue {{MantisLink|032068}} Based on Patch by AlexeyT<br />
*r55606 SynEdit: fix range error. Issue {{MantisLink|0032067}} Patch by Pascal R.<br />
*r55613 SynEdit: fix crash in fold structure code TLazSynEditNestedFoldsList<br />
<br />
== Fixes for 1.8 RC3 (merged)==<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way.<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55133 DateTimeCtrls: TDateTimePicker: add Options property with dtpoDoChangeOnSetDateTime (not default). {{MantisLink|31679}}<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
*r55211 Fix uninitialized variables based on compiler warnings got with dfa (data flow analysis) enabled.<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55222 Fix more uninitialized variables and suppress compiler warnings. Merged manually.<br />
*r55233 QT, QT5: Initialize WideString Result in TQtLineEdit methods.<br />
*r55234 DateTimePicker - corrected misleading comment<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
*r55266 DateTimePicker - improve smart calling change when Date/Time is set from code<br />
*r55267 lcl: grids: fix endless loop in ScrollToCell for 0 Width/Height and non-SmoothScroll. {{MantisLink|31942}}<br />
*r55268 DateTimePicker - add input checking in SendExternalKey and add SendExternalKeyCode method<br />
*r55269 AnchorDockingDsgn: Loading for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55271 components: datetimepicker: TextForNullDate type TCaption - for translations<br />
*r55272 components: datetimepicker: change boolean properties EnableWhenUnchecked, AutoCheck, FlatButton to entries in Options.<br />
*r55277 ide: loading a docked desktop for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55279 Fix indentation<br />
*r55280 deb: lazarus: removed editoroptions.xml, the built-in defaults are better<br />
*r55295 rpm: fixed omitting editoroptions.xml<br />
*r55299 Translations: French translation update by Gilles Vasseur, bug 31978<br />
*r55300 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31980<br />
*r55302 IDE: Give default size for NewDialog layout at first start. Design-time size has no effect. Set constraints.<br />
*r55307 IDE: Support HTML lists, "ul" and "li" tags in TCodeHelpManager. {{MantisLink|31991}}.<br />
*r55321 MenuDesigner: High-DPI Icons.<br />
*r55324 IDE: High-DPI: some missing component icons.<br />
*r55331 codetools: guess type of default()<br />
*r55334 grids: Fix size of focus rectangle if gridlinewidth > 1. {{MantisLink|32002}}.<br />
*r55335 SpartaDockedFormEditor: Make resizer High-DPI aware.<br />
*r55337 SpartaDockedFormEditor: Less warnings and cleanup.<br />
*r55344 DBCtrls: Workaround for TDBRadioGroup being changable even if Dataset is readonly. {{MantisLink|31993}}.<br />
*r55345 Updated Contributors<br />
*r55346 codetools: updated debugging messages<br />
*r55348 SpartaDockedFormEditor: Scale resizer automatically per LCL.<br />
*r55351 IDE: Extending IDE context help search to lazutils.chm, issue 32022 from zbyna<br />
*r55357, r55358, r55359 Translations: Hungarian translation update by Péter Gábor, bug 32014<br />
*r55361 IDE: lazutils help: fixed freeing, bug 32022<br />
*r55374 lcl: win32: ClipboardFormatToMimeType: fixed not raising an exception<br />
*r55381 lcl: dbgrids: fix default col widths. {{MantisLink|32021}}<br />
*r55384 images: new high-dpi images designed by FTurle. {{MantisLink|32029}}, patch by FTurtle<br />
*r55390 MenuEditor: Better visibility of AddButtons, especially on GTK2.<br />
*r55391 MenuEditor: Show FakeButtons on correct place, when deleting a MenuItem. Fixed breaking revision 54863.<br />
*r55393 MenuEditor: Remove calculation of ShadowBox from wrong place.<br />
*r55394 MenuEditor: Fixed drawing of AddSubmenuFake on GTK2.<br />
*r55395 MenuEditor: Fixed drawing of AddSiblingFake on GTK2.<br />
*r55339 SynEdit: Pas HL, handle generics foo<T: class> does not fold / patch by Pascal<br />
*r55376 SynEdit: Pas-HL, test for ^ in PMyByte = type ^Byte;<br />
*r55377 SynEdit: fix pas HL, class function. more tests / some tests by Pascal R<br />
*r55396 Revert r54305 "LCL-GTK2: Prevent an occational freeze." Caused regressions.<br />
*r55398 lcl: application: fix exception causing handling enter keyup twice. {{MantisLink|32056}}<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done Wed, 17 May 2017 )<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done Tue, 6 Jun 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (Done Fri, 30 Jun 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 4 (Done Sun, 13 Aug 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 5 (Done Fri, 13 Oct 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (Done Wed, 06 Dec 2017)<br />
** The release of Lazarus 1.8 was delayed 09 months due to the delay in releasing FPC 3.0.4.<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check lpl files by running "./tools/lplupdate -c" and do the svn mv commands<br />
** run <br />
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=114138Lazarus 1.8 fixes branch2017-12-06T23:16:35Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r55756 SynEdit: PAS highlighter: support NESTEDCOMMENTS mode switch. {{MantisLink|32356}}<br />
*r55865 IDE: set ToolStatus to itBuilder before compiling packages, bug 32421<br />
*r55861 LazReport: Implements flBandKeepChild, from Lutz Mändle, {{MantisLink|30466}}<br />
*r55920 LCL: GTK2: Fixed tab cannot go from combobox to combobox. {{MantisLink|32458}}<br />
*r55921 LCL: AnchorDocking: Fixed faulty load layout from config when used second time. {{MantisLink|31238}}. Patch by Andrey Zubarev<br />
*r55934 LCL: fixed incosistency in pen when using TLogPen and TExtLogPen. {{MantisLink|32465}}<br />
*r55979 LCL: TComboBox: GTK2: Fixed KeyUp and KeyDown react like tab key after revision 55920. {{MantisLink|32458}}<br />
*r56048 LCL: GTK2: Don't grab focus for TPanel on mouse messages. {{MantisLink|32515}}<br />
*r56148 LCL: GTK2: Fixed Cannot hide TBitBtn, TFloatSpinEdit, TListBox, TCheckListBox, TMemo, TListView from TForm.OnCreate after HandleNeeded. {{MantisLink|32527}}<br />
*r56325 IDE: Find/Replace: save options depending on selection availability. {{MantisLink|32619}}<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
<br />
=== Merged revisions for 1.8.2 ===<br />
*r56600, r56628 Translations: Brazilian Portuguese translation updates by Marcelo B Paula<br />
*r56605 Translations: Hungarian translation update by Péter Gábor, bug 32764<br />
*r56609 rpm: fixed showing fpc-src rpm path<br />
*r56611 rpm: fixed rpm path<br />
*r56614 rpm: fpc-src: disable debug check<br />
*r56616 deb: uninstall fpc even if some files are missing<br />
*r56619 rpm: append linker option --build-id<br />
*r56621 rpm: omit debug_package<br />
<br />
== Fixes for 1.8.0 (merged)==<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
*r55630 GTK2: an attempt to reduce the number of superfluous OnChanges of TFloatSpinEdit. {{MantisLink|0031618}}.<br />
*r55709 LCL-GTK2: Fix UnityTrayIcon crash on gdk_pixbuf_save. {{MantisLink|32258}}.<br />
*r56015 Codetools: Do not chomp a procedure name with empty brackets (). {{MantisLink|31960}}.<br />
*r56028 Codetools: Add dotted unit names to uses section correctly. Optimize. {{MantisLink|32247}}.<br />
*r56029 Fix TMask.InitMaskString for charsets when CaseSensitive is False. {{MantisLink|0032491}}. Patch by delfion.<br />
*r56031 LCL: Fixed TDateEdit/TTimeEdit controls break the tab order. {{MantisLink|32533}}<br />
*r56036 Codetools: updated Russian translation<br />
*r56041 codetools: fixed CompleteCode TryAssignment loop<br />
*r56044 codetools: fixed complete forward proc<br />
*r56046 IDE: High-DPI new icons. {{MantisLink|32508}}. Patch by FTurtle<br />
*r56054 CodeTools: Don't throw an error with "(" inside a comment in front of unit. {{MantisLink|32235}}.<br />
*r56061 IDE: High-DPI refactoring of some images. {{MantisLink|32529}}. Patch by FTurtle<br />
*r56063 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32544<br />
*r56071 codetools: fixed example<br />
*r56073 codetools: AddUnitWarnDirective: fixed startnode<br />
*r56077 codetools: fixed AddUnitWarnDirective insert position<br />
*r56083 IDE: open file at cursor: show error message on fail<br />
*r56058 Package editor: Fix moving dependencies up/down. Use the display name for searching. {{MantisLink|32546}}.<br />
*r56068,r56069,r56082 Improve Package Editor for dependent packages. {{MantisLink|32546}}.<br />
*r56085 Codetools: Fix code completion for methods with empty parentheses. {{MantisLink|31960}}.<br />
*r56086 LCL: Win32: Fixed TComboBox tab key isn't working with style csSimple. {{MantisLink|32559}}<br />
*r56087 IDE: regenerated translations and updated Russian translation<br />
*r56098 IDE: fixed layout<br />
*r56100 IDE: set watch property dialog to autosize, bug 32567<br />
*r56102 IDE: updated lazarus.lpi and fixed editor macro layout, bug 32568<br />
*r56106 IDE: unit info dlg: improved layout<br />
*r56108 projecttemplates: layout: anchors<br />
*r56110 leakview: fixed layout<br />
*r56119 lcl: lcltranslator: fixed translating only TTranslateString properties<br />
*r56120 lcl: lcltranslator: skip components without name<br />
*r56121 lcl: lcltranslator: fixed using property path, instead of subcomponent names, subcomponents names can be empty, same as IDE<br />
*r56124 lcl: lcltranslator: use typeinfo instead of type name<br />
*r55710 IDE: Improve CompilerOtherOptions frame layout. {{MantisLink|32272}}.<br />
*r56134 IDE: Update components_images.res (forgotten in r55966)<br />
*r56136 IDE: Improve the layout of Project Options -> FPDocEditor. {{MantisLink|32574}}.<br />
*r56144 IDE: High-DPI: Refreshed open icons. {{MantisLink|32595}}. Patch by FTurtle<br />
*r56035 IdeIntf, ComponentTree: Don't try to update Collection name. Affects TSQLQuery Params. {{MantisLink|31965}}.<br />
*r56146 IdeIntf: Fix TVariantPropertyEditor. {{MantisLink|19324}}.<br />
*r56130 LCL: GTK2: Using nboKeyboardTabSwitch in TabControl options and <Ctrl> + <Tab> now working.<br />
*r56131 LCL: GTK2: TTabControl: Cannot use keyboard to switch tab. {{MantisLink|31986}}<br />
*r56112,r56122 LCL-GTK2: Support 5 button mice. {{MantisLink|32562}}.<br />
*r56140 LCL: GTK2: Fixed set TPanel visible to false on non visual TabSheet doesn't work. {{MantisLink|32593}}<br />
*r56149 Translations: French translation update by Gilles Vasseur, bug 32587<br />
*r56150 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32590<br />
*r56155 IDE: Focus FilterEdit in options initially. ActiveControl was cleared again for some reason.<br />
*r56143,r56156 AnchorDocking: Use async call for SimplifyPendingLayouts always. {{MantisLink|32342}},{{MantisLink|32591}},{{MantisLink|31895}}.<br />
*r56193 lcl: gtk2: fixed error handling in GtkDragDataReceived, bug 32611, patch from C Western<br />
*r56197 codetools: fixed GetIdentStartEndAtPosition if pos behind source<br />
*r56232 codetools: fixed adding uses section to program<br />
*r56162 LCL: Fixed TSpinEditEx Focus on Tab Click doesn't work. {{MantisLink|32601}}<br />
*r56219 LazControls: New HiRes component palette icons (kindly provided by Roland Hahn).<br />
*r56180 win32: fix GetDpiForMonitor SIGSEGV if Shcore is not available (e.g. on MS Windows Server 2012 R2)<br />
*r56181 Fix firing an OnChange and setting Modified when setting Text inside OnChange and new Text = old Text. {{MantisLink|0032602}}.<br />
*r56185 lazutils: fixed ResolveDots: ./ -> .<br />
*r56187 LazFileUtils: rename a local variable to improve readability. No functional changes. (Merge request to avoid possible future merge conflicts)<br />
*r56234 SynEdit: fix mark gutter, calculating width of mark-image {{MantisLink|32622}}<br />
*r56223 examples/treeview: Use default font (instead of MS SansSerif)<br />
*r56225 examples/ResizeImageDemo: remove unit Windows from "uses".<br />
*r56226 examples/dbeditmask: Fix crash due to incorrect dateseparator in some countries. Use default font instead of MS SansSerif.<br />
*r56227 examples/componentstreaming: Prevent explaining labels reaching beyond form borders.<br />
*r56228 Examples/synedit1: Fix compilation.<br />
*r56235 LCL: Prevent a crash when getting editor for an empty Grid. {{MantisLink|32623}}.<br />
*r56242 LCL: Make procedure RunDialog public in TFileNameEdit, TDirectoryEdit and CalcEdit. Helps with shortcut keys.<br />
*r56244 AnchorDocking: Show also inactive tabed windows in Window-menu. {{MantisLink|32618}}.<br />
*r56248 Move package SemaphorGridLPK and its example project to Lazarus-CCR.<br />
*r56249 Delete example "SpeedTest". Image penguin.xpm is missing and it makes no sense.<br />
*r56250 Delete example "FpDocManager". Does not work.<br />
*r56251 IDE: HiRes icons for component palette "Misc" (by Roland Hahn)<br />
*r56252 Debugger: Ensure correct thread id in history entries<br />
*r56253 IDE: High-DPI new icons. Issue {{MantisLink|32628}}. Patch by FTurtle.<br />
*r56256 IDE: Remember the "Origin" setting in Search/Find dialog. {{MantisLink|32619}}.<br />
*r56261 codetools: cleaned up (removed program changeparamlist).<br />
*r56262 CodeTools example AddFpprofCalls: show help if no filename is given. Fix memory leak.<br />
*r56263 codetools: example addmethod with fpc sources<br />
*r56266 codetools: examples: fixed completeblock<br />
*r56268 codetools: examples: fixed fixfilenames<br />
*r56269 codetools: fixed FindMissingUnits<br />
*r56275 codetools: examples: fixed getexpandedoperand<br />
*r56276 codetools: formatted, fixed GetExpandedOperand<br />
*r56279 codetools: ReduceCompilerDirectives fixed crash<br />
*r56281 IDE: designer: fixed store selection bounds for mediator, patch from Anton<br />
*r56283 IDE: fixed memleak in example designnonlcl<br />
*r56285 sqldb: New HiDpi-icons by Roland Hahn<br />
*r56286 IDE: HiRes palette icons for default and unregistered component (by Roland Hahn)<br />
*r56291 IDE: File / Open : fixed browsing linked folders on Windows, bug 32642<br />
*r56293 codetools: parse specialize in param type<br />
*r56319 codetools: fixed copying proc param specialize<br />
*r56323 codetools: fixed class completion for method with specialize in mdoe delphi<br />
*r56310 plotfunction: Fix vertical alignment of y axis caption ({{MantisLink|26312}})<br />
*r56313 plotfunction: Fix memory leak.<br />
*r56314 plotfunction: Make axes and fonts better respond to changes in object inspector ({{MantisLink|26311}})<br />
*r56315 plotfunction: Fix scaling of plots.<br />
*r56350 LCL: revert r55892<br />
*r56344 LCL: revert r56162, r56031, r55890 (TabStop handling)<br />
*r56349 Anchordocking: Fix loading the same layout twice. {{MantisLink|32660}}<br />
*r56353 Revert r56181 (Fix firing an OnChange and setting Modified when setting Text inside OnChange and new Text = old Text. {{MantisLink|0032602}}.) It causes a regression.<br />
*r56373 lcl: Minor revision of HiRes images of lcl controls (by Roland Hahn)<br />
*r56379 IDE: Slightly improved versions of some component palette icons (by Roland Hahn)<br />
*r56357 SynEdit: Select UTF8 text correctly when Persistent Block is active. {{MantisLink|32667}}.<br />
*r56360 IDE: Show dotted unit names in Code Explorer. {{MantisLink|32663}}.<br />
*r56366 Codetools: Find declaration for a used unit also when caret is at its end. {{MantisLink|32606}}.<br />
*r56398 SynEdit: Enable operations for an identifier also when caret is at its end.<br />
*r56413 LCL,Gtk2: fix Dialog modal windows go behind regular windows and won't come on top. {{MantisLink|32635}}<br />
*r56428 IDE: Auto-columnwidths in charactermap {{MantisLink|32701}}.<br />
*r56429 LCL: Win32: Prevent AV at closing form.<br />
*r56431 LCL: Fix setting TTreeNode.DropTarget. {{MantisLink|28978}}.<br />
*r56432 Printers: New HiRes component palette icons of the printer dialogs (by Roland Hahn)<br />
*r56433 IDE: New HiRes icons for the Dialogs component palette (by Roland Hahn)<br />
*r56442 gdbmi debugger tests<br />
*r56443 TAChart: Fix empty TPolarSeries crashing if ShowPoints is true.<br />
*r56444 Opkman: Spanish translation update by Gastón, bug 32706<br />
*r56457 gdebugger, gdbmi: fix stepping over exceptions<br />
*r56466 lcl: gtk2: trayicon fixed missing nil parameter<br />
*r56473 LCL: Prevent rotated font from being detected as default font (patch by Michl)<br />
*r56475 TAChart: Introduce default value of property TOpenHighLowCloseSeries.Mode<br />
*r56480 TAChart: Fix incorrect extent calculation of TOpenHighLowCloseSeries.<br />
*r56484 Turbopower_ipro: New HiRes component palette icons by Roland Hahn<br />
*r56486 codetools: fixed parsing deprecated<br />
*r56490 TAChart: Fix RandomChartSource crashing if PointsNumber is 1.<br />
*r56499 IDE: New HiRes palette icons by Roland Hahn for database-related components<br />
*r56517 IDE: fixed parameter hint auto completion when closing bracket is missing, bug 32736<br />
*r56526 codetools: complete property: set defaults, complex type<br />
*r56533 LCL: InputQuery: High-DPI. By AlexeyT. Issue 32717<br />
*r56534 Translations: huge Chinese translation update by robsean, bug 32750<br />
*r56535 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 32754<br />
*r56539 Docs: added Olexandr Pylypchuk and Zheng Jian Ping aka "robsean" to contributors list<br />
*r56540 Lazlogger: Allow setting to nil. Issue 32548<br />
*r56541 lclbase: added missing include/comboex.inc<br />
*r56543 lcl: TCustomCheckCombo: changed TCheckComboItemState to class, added checks if Items.Objects is TCheckComboItemState, async raise error to avoid freezing X<br />
*r56545 IDE: updated lazarus.lpi<br />
*r56458 gdebugger, gdbmi: fix stepping over exceptions - TESTS<br />
*r56578 codetools: fixed clearing errormsg, issue 32761, from Pascal<br />
<br />
== Fixes for 1.8 RC5 (merged)==<br />
*r54902 IdeIntf: API function for uninstalling a package. From Balázs. (Needed for OPM)<br />
*r55635 gtk2: fix ScreenInfo.PixelsPerInch* values. {{MantisLink|31199}}, by Michl<br />
*r55646, r55763 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55653 LCL: task dialog: fix radio button result. {{MantisLink|32231}}, patch by Howard Page-Clark<br />
*r55658 Opkman: VST support for arm-linux. Patch from @Thaddy.<br />
*r55659 lcl: forms: don't change Font PPI if Application.Scaled=False. {{MantisLink|32260}}<br />
*r55660 LCL: font: IsEqual should ignore PixelsPerInch value - Assign ignores it as well.<br />
*r55662 IDE: High-DPI: scale open file drop down menu icons.<br />
*r55663 IDE: restore desktop with correct name after debugging<br />
*r55665 LCL: GTK2: Fixed font issues at high-DPI on Gtk2. {{MantisLink|32268}}.<br />
*r55666 IDE: Fixed initial mainbar height for Windows. {{MantisLink|32277}}<br />
*r55668 ideintf: Fix "new action" button dropdown arrow.<br />
*r55669 lcl: dbgrids: high dpi: scale indicator column width<br />
*r55670 LCL: High-DPI cursors. {{MantisLink|32280}}<br />
*r55672 IdeIntf: OI: center current row arrow vertically. {{MantisLink|32280}}<br />
*r55673 LazControls: In FilterEdits check everywhere if the associated control exists. {{MantisLink|32282}}.<br />
*r55674 IdeIntf: High-DPI: support scale factors above 200%. {{MantisLink|32280}}<br />
*r55675 synedit: high-DPI: implement DoAutoAdjustLayout. {{MantisLink|31753}}<br />
*r55676 IDE: scale sourceeditor. {{MantisLink|31753}}<br />
*r55677 synedit: high-DPI fixes. {{MantisLink|31753}}<br />
*r55681 codetools: fpc sources: packegs/rtl-extra add include path src/SrcOS and src/SrcOS2, bug 32263<br />
*r55699 IDE: quickfixes: auto open changed units, bug 32284<br />
*r55704 LCL: ComboBox: Win32: Don't loose ItemIndex with AutoComplete set. {{MantisLink|32301}}<br />
*r55716 lcl: edit: force show texthint in InitializeWnd. {{MantisLink|32053}}<br />
*r55717 ide: options dialog: filter edit: use parent font<br />
*r55718 qt: edit: force show texthint in ShowHide. {{MantisLink|32053}}<br />
*r55734 IDE: high-DPI: scale created components<br />
*r55754 IDE: Fix logic for switching windows from "Window" menu. {{MantisLink|32350}}<br />
*r55755 LCL: Missed assigning of default font value Style.<br />
*r55757 LCL: Fixed Canvas.TextExtend if system font is used for drawing. {{MantisLink|32319}}<br />
*r55758 LCL: Win32: Fixed themed drawing for system font usage. {{MantisLink|32319}}<br />
*r55761 LCL: Disable scaling for default fonts, as they are correctly sized taken from OS. {{MantisLink|32359}}<br />
*r55775 IDE: SourceEditor: IDESynGutterMarks High-DPI aware.<br />
*r55779 CodeTools: remove inline, private, public and published from keyword list - they can be used as identifiers as well. {{MantisLink|32336}}<br />
*r55780 TAChart: Add overloaded Clone method to set a new parent and owner {{MantisLink|32365}}<br />
*r55781 IDE: MessageWindow: Win32: Messages painting: Prevent flickering.<br />
*r55785 IDE: New HiDPI component icons, kindly provided by Roland Hahn.<br />
*r55786 IDE: Components_images.res forgotten in previous commit<br />
*r55787 IDE: Some more HiDPI icons by Roland Hahn<br />
*r55789 LCL-GTK2: Partly revert r53653, check for gtk_minor_version again. {{MantisLink|32196}}<br />
*r55795 LCL: GTK2: Fixed cursor size. {{MantisLink|32385}}<br />
*r55796 LCL: GTK2: High-DPI cursor crNo.<br />
*r55797 IDE: High-DPI BookMark icons. Patch by FTurtle. {{MantisLink|32374}}<br />
*r55798 IDE: Forgotten copyright info from revision 55797<br />
*r55820 LCL: In TCustomcalendar, always SetProps in InitializeWnd ({{MantisLink|0032379}}). Patch by soner.<br />
*r55842 lcl: fix docs about TControl.SetBounds<br />
*r55851 codetools: find declaration of dotted program name<br />
*r55827 IDE: More component palette icons by Roland Hahn completing the Standard palette.<br />
*r55829 IDE: Remove printer-related icons from folder images/components (they are in components/printers/images)<br />
*r55830 IDE: Update components_images_list.txt (adding of scale TFrame and TPanel icons forgotten in prev commits).<br />
*r55831 IdeIntf: Exit from TEnumPropertyEditor.SetValue when invalid value is given. Prevents an AV later. Reverts r185 from 2001-02-19.<br />
*r55840 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32396}}. Patch by FTurtle<br />
*r55860 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32416}}. Patch by FTurtle<br />
*r55862 IDE: New icons for palette "Additional" (provided by Roland Hahn).<br />
*r55863 IDE: Update components_images_list.txt and components_images.res missing in previous commit.<br />
*r55864 IDE: Add HighRes TScrollbox icons to resource<br />
*r55866 IDE: Refactoring resource image lists files. {{MantisLink|32420}}. Patch by FTurtle.<br />
*r55867 Contributors: Add Roland Hahn (component palette icons)<br />
*r55876 IDE: HiRes icons for the Common Controls palette (by Roland Hahn).<br />
*r55877 IDE, OI: Update the component ComboBox properly when it is visible. {{MantisLink|32427}}<br />
*r55878 IDE: High-DPI menu items. {{MantisLink|32431}}. Patch by FTurtle.<br />
*r55879 PackageTabs: Fixed icon after revision 55878.<br />
*r55880 IDE: Cleanup: Delete unused images.<br />
*r55868 LCL: treeview: fix tooltips. Patch by AlexeyT. {{MantisLink|32400}}<br />
*r55848 LCL, fix message dialogs hidding behind modal dialogs {{MantisLink|32249}}<br />
*r55875 DateTimeCtls: HiRes icons for TDateTimePicker by Roland Hahn. Switch icons to .res format.<br />
*r55884 LCL: Font: Revert revision 55761 as it breaks per monitor High-DPI scaling.<br />
*r55881 Qt,Qt5: fixed cpu eating by gtk+ theme.<br />
*r55890 LCL: TCustomEditButton: Fixed TDateEdit.SelectNext. {{MantisLink|32335}}<br />
*r55892 LCL: TTabControl: Fixed AV on creating control. {{MantisLink|32455}}<br />
*r55915 codetools: property completion: fixed check if store accessor with index specififer exists<br />
*r55917 codetools: property completion: fixed read/write accessor for param+index specifier<br />
*r55904 IDE: Update copyright.txt for component palette icons created by Roland Hahn.<br />
*r55906 IDE: Add HiRes palette icons for TDBDateTimePicker.<br />
*r55919 TAChart: Fix event TDbChartSource.OnGetItem not being alterable in designer. Add demo db-barseries.<br />
*r55944 codetools: fixed RemoveUnitFromAllUsesSections<br />
*r55946 codetools: fixed skipping sourcename, added TPascalParserTool.FindUsesNode<br />
*r55948 codetools: fixed continuing parsing after source name<br />
*r55951 codetools: added ctnSrcName, fixed find declaration dotted program name<br />
*r55926 IDE: Replace TStaticText palette icons with fully transparent ones.<br />
*r55932 IDE: High-DPI icons. {{MantisLink|32454}} Patch by FTurtle<br />
*r55941 SynEdit: Paint Caret in paint-event (except win32) / some very few gtk may have issues<br />
*r55953 DBExport examples: fix compilation and layout, improved usability<br />
*r55954 Debugger: In BreakpointPropertyDlg, add new conditions to top of list, remove duplicates and reject empty strings.<br />
*r55956 IDE: Add some HiRes icons for Run menu (drawn by Roland Hahn)<br />
*r55957 IDE: Update copyright.txt for icons added in previous commit<br />
*r55554 Qt, Qt5: fixed ItemShow - scroll to item. {{MantisLink|32078}}<br />
*r55555 Qt5: use QScreen_grabWindow() instead of QPixmap_grabWindow(). part of {{MantisLink|32141}}<br />
*r55737 Qt4: fixed build under mswindows<br />
*r55759 Qt5: implemented InitStockFont. part of {{MantisLink|32354}}<br />
*r55760 Qt,Qt5: fixed painting of TQtHintWindow. {{MantisLink|32354}}<br />
*r55774 Qt, Qt5: check if handle is valid inside various routines, fixes some sparta ide crashes.<br />
*r55782 Qt5: TQtGroupBox does not need offset as in Qt4, since Qt5 provides correct coordinates. {{MantisLink|32186}}<br />
*r55966 IDE: HiRes icons for System component palette (provided by Roland Hahn)<br />
*r55969 IDE: High-DPI icons. {{MantisLink|32493}} Patch by FTurtle<br />
*r55970 IDE: In ToolBarConfig ListView select correct item after adding a command. Refactoring etc.<br />
*r55971 components/wiki: Fix compilation of wikiget<br />
*r55975 LCL: Do not trigger Escape key for a disabled cancel button. {{MantisLink|32509}}<br />
*r55984 Translations: Hungarian translation update by Péter Gábor, bug 32503<br />
*r55986 IDE: Remove an extra IDEDialogLayoutList.ApplyLayout call from NewDialog constructor.<br />
*r55992,r55994,r55996,r55997,r56004 IDE: Less questions when opening a symlinked file. {{MantisLink|32292}}.<br />
*r55998 LCL-GTK2: Fix SelStart and SelLength in OnChange with some widgetset versions. {{MantisLink|24371}}.<br />
*r56001 IDE: designer: High-DPI: selection grabber. {{MantisLink|32397}}<br />
*r56003 IDE: designer: tune up r56001, {{MantisLink|32397}}<br />
<br />
== Fixes for 1.8 RC4 (merged)==<br />
*r55411 Debugger: Fix anchoring in WatchPropertyDlg.<br />
*r55412 Finnish translations for IDE and OI.<br />
*r55413 DBRadiogroup: Fix crash when clicking without assigned field ({{MantisLink|0032077}}).<br />
*r55415 LCL: Japanese translation update by Haruyuki Fujimaki, {{MantisLink|32081}}<br />
*r55462 IDE: fixed checking for file changes on non UTF-8 files<br />
*r55433 Sparta_DockedFormEditor: Fixed drawing of MainMenu after adding the first MenuItem. {{MantisLink|31206}}<br />
*r55442 Win32: TGroupBox: Fixed wrong background color for inactive groupbox.<br />
*r55453 QT, QT5: Initialize WideString Result in TQtTextEdit methods.<br />
*r55459 LCL-Win32: Process surrogate pairs correctly when virtual keyboard is used. {{MantisLink|32101}}.<br />
*r55460 IDE: Fix left/right arrow key behavior in identifier completion. {{MantisLink|32117}}<br />
*r55466 Translations: Japanese translation update by takahiro and Haruyuki Fujimaki, bugs 32099, 32100<br />
*r55467 IDE: Turkish translation update by lazarusturkiye, bug 32104<br />
*r55474, r55502 Translations: Lithuanian translation update by Valdas Jankūnas, bug 32126<br />
*r55479 lcl: fixed typos<br />
*r55482 anchordocking: fixed hiding docksite when last control gets Visible=false<br />
*r55485 codetools: parse generic function<br />
*r55489 Translations: French translation update by Gilles Vasseur, bug 32133<br />
*r55520 LCL: skip property TDataModule.PPI on FPC < 3.0.3<br />
*r55526 LCL: Dutch translation update by Bart, bug 32149<br />
*r55492 IDE: High-DPI: ObjectInspector: Fixed drawing of active row bitmap. {{MantisLink|32097}}<br />
*r55494 grids: Introduce constColRowBorderTolerance for colwidth/rowheight resizing.<br />
*r55495 grids: High-dpi scaling of constCellPadding, constRubberSpace and constColRowBorderTolerance<br />
*r55496 IDE: High-DPI: ObjectInspector: Size of filter edit glyphs. {{MantisLink|32097}}<br />
*r55498 IDE: High-DPI: Fixed image sizes of in IDE used TTreeFilterEdits and TListFilterEdits.<br />
*r55499 IDE: High-DPI: ComponentPagesPopup: Size of close button glyph. {{MantisLink|32097}}<br />
*r55500 IDE: High-DPI: ComponentPalette: Size of component pages speedbutton.<br />
*r55507 IDE: SearchResultWindow: Anchor of TreeFilterEdit to always show its button.<br />
*r55508 IDE: High-DPI: ObjectInspector: ComponentTreeView: Fixed image sizes.<br />
*r55509 IDE: High-DPI: ComponentPages: Fixed tree image sizes.<br />
*r55510 IDE: High-DPI: ActionsEditor: Fixed image sizes.<br />
*r55511 IDE: High-DPI: CodeExplorer: Fixed image sizes.<br />
*r55512 IDE: High-DPI: Better assigning of images to imagelists.<br />
*r55513 IDE: High-DPI: SourceEditor: Fixed source mark image sizes.<br />
*r55514 IDE: High-DPI: CodeBrowser: Fixed image sizes.<br />
*r55515 IDE: EditorDisplayOptions: Fixed wrong anchor of DisableAntialiasingCheckBox.<br />
*r55516 LCL: TTreeView: High-DPI: Make spaces between images DPI-aware.<br />
*r55530 LCL: form: force scale bounds in WM_DPICHANGED message handler. {{MantisLink|32162}}<br />
*r55531 LCL: TPromptDialog: high-DPI<br />
*r55533 LCL: TPromptDialog: support ChangeScale<br />
*r55534 lcl: groupededit: revert r53759 - buddy is scaled automatically. {{MantisLink|32154}}<br />
*r55537 lcl: control: high-DPI: correctly scale base bounds. {{MantisLink|31992}}<br />
*r55539 lcl: dbgrids: hide vertical scrollbar for ssNone and ssHorizontal style. {{MantisLink|32134}}<br />
*r55541 lazbuild: nicer error message on lpi file not found<br />
*r55548 startlazarus: start IDE on Mac via open, bug 32180, patch from Anthony Walter<br />
*r55558 TurboPower_iPro: Fix colored table background not being painted.<br />
*r55561 avglvltree: fix DisposeNode for nil Node. {{MantisLink|32189}}<br />
*r55568 IDEIntf: TOICustomPropertyGrid: handle wheel events on grid the same as on edit cell control, issue 32193, from Anthony Walter<br />
*r55583 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32184<br />
*r55318 DateTimePicker: Add RemoveHandlerOnChange, RemoveHandlerOnCheckBoxChange, override RemoveAllHandlersOfObjects<br />
*r55292 DateTimePiker: Built-in UpDown control appears flat with dtpoFlatButton option<br />
*r55279 Fix indentation<br />
*r55435 datetimepicker: update date also when handle is not yet allocated. {{MantisLink|32106}}<br />
*r55560 LazUtils: add Laz_AVL_Tree to the package<br />
*r55609, r55622 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55610 IDE: Polish translation update by Rafał Klekowski, bug 32217<br />
*r55589 docs: Improved font for source code in lhelp (at least on Windows)<br />
*r55591 TAChart: Fix incompletely displayed series marks for style smsLabelPercentTotal. {{MantisLink|32202}}<br />
*r55592 Turbopower_ipro: Underline links only at mouse-over.<br />
*r55600 IDE: ProcedureList: Fixed height of edit and combobox. Issue {{MantisLink|32212}}<br />
*r55598 LCL: combobox: sanity check for ItemIndex<br />
*r55604 SynEdit: assert correct method types<br />
*r55605 IDE options: change description and limit for "match whole word" of highlight equal terms. Issue {{MantisLink|032068}} Based on Patch by AlexeyT<br />
*r55606 SynEdit: fix range error. Issue {{MantisLink|0032067}} Patch by Pascal R.<br />
*r55613 SynEdit: fix crash in fold structure code TLazSynEditNestedFoldsList<br />
<br />
== Fixes for 1.8 RC3 (merged)==<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way.<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55133 DateTimeCtrls: TDateTimePicker: add Options property with dtpoDoChangeOnSetDateTime (not default). {{MantisLink|31679}}<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
*r55211 Fix uninitialized variables based on compiler warnings got with dfa (data flow analysis) enabled.<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55222 Fix more uninitialized variables and suppress compiler warnings. Merged manually.<br />
*r55233 QT, QT5: Initialize WideString Result in TQtLineEdit methods.<br />
*r55234 DateTimePicker - corrected misleading comment<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
*r55266 DateTimePicker - improve smart calling change when Date/Time is set from code<br />
*r55267 lcl: grids: fix endless loop in ScrollToCell for 0 Width/Height and non-SmoothScroll. {{MantisLink|31942}}<br />
*r55268 DateTimePicker - add input checking in SendExternalKey and add SendExternalKeyCode method<br />
*r55269 AnchorDockingDsgn: Loading for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55271 components: datetimepicker: TextForNullDate type TCaption - for translations<br />
*r55272 components: datetimepicker: change boolean properties EnableWhenUnchecked, AutoCheck, FlatButton to entries in Options.<br />
*r55277 ide: loading a docked desktop for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55279 Fix indentation<br />
*r55280 deb: lazarus: removed editoroptions.xml, the built-in defaults are better<br />
*r55295 rpm: fixed omitting editoroptions.xml<br />
*r55299 Translations: French translation update by Gilles Vasseur, bug 31978<br />
*r55300 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31980<br />
*r55302 IDE: Give default size for NewDialog layout at first start. Design-time size has no effect. Set constraints.<br />
*r55307 IDE: Support HTML lists, "ul" and "li" tags in TCodeHelpManager. {{MantisLink|31991}}.<br />
*r55321 MenuDesigner: High-DPI Icons.<br />
*r55324 IDE: High-DPI: some missing component icons.<br />
*r55331 codetools: guess type of default()<br />
*r55334 grids: Fix size of focus rectangle if gridlinewidth > 1. {{MantisLink|32002}}.<br />
*r55335 SpartaDockedFormEditor: Make resizer High-DPI aware.<br />
*r55337 SpartaDockedFormEditor: Less warnings and cleanup.<br />
*r55344 DBCtrls: Workaround for TDBRadioGroup being changable even if Dataset is readonly. {{MantisLink|31993}}.<br />
*r55345 Updated Contributors<br />
*r55346 codetools: updated debugging messages<br />
*r55348 SpartaDockedFormEditor: Scale resizer automatically per LCL.<br />
*r55351 IDE: Extending IDE context help search to lazutils.chm, issue 32022 from zbyna<br />
*r55357, r55358, r55359 Translations: Hungarian translation update by Péter Gábor, bug 32014<br />
*r55361 IDE: lazutils help: fixed freeing, bug 32022<br />
*r55374 lcl: win32: ClipboardFormatToMimeType: fixed not raising an exception<br />
*r55381 lcl: dbgrids: fix default col widths. {{MantisLink|32021}}<br />
*r55384 images: new high-dpi images designed by FTurle. {{MantisLink|32029}}, patch by FTurtle<br />
*r55390 MenuEditor: Better visibility of AddButtons, especially on GTK2.<br />
*r55391 MenuEditor: Show FakeButtons on correct place, when deleting a MenuItem. Fixed breaking revision 54863.<br />
*r55393 MenuEditor: Remove calculation of ShadowBox from wrong place.<br />
*r55394 MenuEditor: Fixed drawing of AddSubmenuFake on GTK2.<br />
*r55395 MenuEditor: Fixed drawing of AddSiblingFake on GTK2.<br />
*r55339 SynEdit: Pas HL, handle generics foo<T: class> does not fold / patch by Pascal<br />
*r55376 SynEdit: Pas-HL, test for ^ in PMyByte = type ^Byte;<br />
*r55377 SynEdit: fix pas HL, class function. more tests / some tests by Pascal R<br />
*r55396 Revert r54305 "LCL-GTK2: Prevent an occational freeze." Caused regressions.<br />
*r55398 lcl: application: fix exception causing handling enter keyup twice. {{MantisLink|32056}}<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done Wed, 17 May 2017 )<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done Tue, 6 Jun 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (Done Fri, 30 Jun 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 4 (Done Sun, 13 Aug 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 5 (Done Fri, 13 Oct 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (Done Wed, 06 Dec 2017)<br />
** The release of Lazarus 1.8 was delayed 09 months because the delay in releasing FPC 3.0.4.<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check lpl files by running "./tools/lplupdate -c" and do the svn mv commands<br />
** run <br />
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=112626Lazarus 1.8 fixes branch2017-10-13T20:23:54Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8 RC6 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
*r55630 GTK2: an attempt to reduce the number of superfluous OnChanges of TFloatSpinEdit. {{MantisLink|0031618}}.<br />
*r55756 SynEdit: PAS highlighter: support NESTEDCOMMENTS mode switch. {{MantisLink|32356}}<br />
*r55865 IDE: set ToolStatus to itBuilder before compiling packages, bug 32421<br />
*r55861 LazReport: Implements flBandKeepChild, from Lutz Mändle, {{MantisLink|30466}}<br />
*r55920 LCL: GTK2: Fixed tab cannot go from combobox to combobox. {{MantisLink|32458}}<br />
*r55921 LCL: AnchorDocking: Fixed faulty load layout from config when used second time. {{MantisLink|31238}}. Patch by Andrey Zubarev<br />
*r55934 LCL: fixed incosistency in pen when using TLogPen and TExtLogPen. {{MantisLink|32465}}<br />
*r55979 LCL: TComboBox: GTK2: Fixed KeyUp and KeyDown react like tab key after revision 55920. {{MantisLink|32458}}<br />
*r56048 LCL: GTK2: Don't grab focus for TPanel on mouse messages. {{MantisLink|32515}}<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
*r56046 IDE: High-DPI new icons. {{MantisLink|32508}}. Patch by FTurtle<br />
<br />
=== Merged revisions for 1.8 RC6 ===<br />
*r56015 Codetools: Do not chomp a procedure name with empty brackets (). {{MantisLink|31960}}.<br />
*r56028 Codetools: Add dotted unit names to uses section correctly. Optimize. {{MantisLink|32247}}.<br />
*r56029 Fix TMask.InitMaskString for charsets when CaseSensitive is False. {{MantisLink|0032491}}. Patch by delfion.<br />
*r56031 LCL: Fixed TDateEdit/TTimeEdit controls break the tab order. {{MantisLink|32533}}<br />
*r56036 Codetools: updated Russian translation<br />
*r56041 codetools: fixed CompleteCode TryAssignment loop<br />
*r56044 codetools: fixed complete forward proc<br />
<br />
== Fixes for 1.8 RC5 (merged)==<br />
*r54902 IdeIntf: API function for uninstalling a package. From Balázs. (Needed for OPM)<br />
*r55635 gtk2: fix ScreenInfo.PixelsPerInch* values. {{MantisLink|31199}}, by Michl<br />
*r55646, r55763 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55653 LCL: task dialog: fix radio button result. {{MantisLink|32231}}, patch by Howard Page-Clark<br />
*r55658 Opkman: VST support for arm-linux. Patch from @Thaddy.<br />
*r55659 lcl: forms: don't change Font PPI if Application.Scaled=False. {{MantisLink|32260}}<br />
*r55660 LCL: font: IsEqual should ignore PixelsPerInch value - Assign ignores it as well.<br />
*r55662 IDE: High-DPI: scale open file drop down menu icons.<br />
*r55663 IDE: restore desktop with correct name after debugging<br />
*r55665 LCL: GTK2: Fixed font issues at high-DPI on Gtk2. {{MantisLink|32268}}.<br />
*r55666 IDE: Fixed initial mainbar height for Windows. {{MantisLink|32277}}<br />
*r55668 ideintf: Fix "new action" button dropdown arrow.<br />
*r55669 lcl: dbgrids: high dpi: scale indicator column width<br />
*r55670 LCL: High-DPI cursors. {{MantisLink|32280}}<br />
*r55672 IdeIntf: OI: center current row arrow vertically. {{MantisLink|32280}}<br />
*r55673 LazControls: In FilterEdits check everywhere if the associated control exists. {{MantisLink|32282}}.<br />
*r55674 IdeIntf: High-DPI: support scale factors above 200%. {{MantisLink|32280}}<br />
*r55675 synedit: high-DPI: implement DoAutoAdjustLayout. {{MantisLink|31753}}<br />
*r55676 IDE: scale sourceeditor. {{MantisLink|31753}}<br />
*r55677 synedit: high-DPI fixes. {{MantisLink|31753}}<br />
*r55681 codetools: fpc sources: packegs/rtl-extra add include path src/SrcOS and src/SrcOS2, bug 32263<br />
*r55699 IDE: quickfixes: auto open changed units, bug 32284<br />
*r55704 LCL: ComboBox: Win32: Don't loose ItemIndex with AutoComplete set. {{MantisLink|32301}}<br />
*r55716 lcl: edit: force show texthint in InitializeWnd. {{MantisLink|32053}}<br />
*r55717 ide: options dialog: filter edit: use parent font<br />
*r55718 qt: edit: force show texthint in ShowHide. {{MantisLink|32053}}<br />
*r55734 IDE: high-DPI: scale created components<br />
*r55754 IDE: Fix logic for switching windows from "Window" menu. {{MantisLink|32350}}<br />
*r55755 LCL: Missed assigning of default font value Style.<br />
*r55757 LCL: Fixed Canvas.TextExtend if system font is used for drawing. {{MantisLink|32319}}<br />
*r55758 LCL: Win32: Fixed themed drawing for system font usage. {{MantisLink|32319}}<br />
*r55761 LCL: Disable scaling for default fonts, as they are correctly sized taken from OS. {{MantisLink|32359}}<br />
*r55775 IDE: SourceEditor: IDESynGutterMarks High-DPI aware.<br />
*r55779 CodeTools: remove inline, private, public and published from keyword list - they can be used as identifiers as well. {{MantisLink|32336}}<br />
*r55780 TAChart: Add overloaded Clone method to set a new parent and owner {{MantisLink|32365}}<br />
*r55781 IDE: MessageWindow: Win32: Messages painting: Prevent flickering.<br />
*r55785 IDE: New HiDPI component icons, kindly provided by Roland Hahn.<br />
*r55786 IDE: Components_images.res forgotten in previous commit<br />
*r55787 IDE: Some more HiDPI icons by Roland Hahn<br />
*r55789 LCL-GTK2: Partly revert r53653, check for gtk_minor_version again. {{MantisLink|32196}}<br />
*r55795 LCL: GTK2: Fixed cursor size. {{MantisLink|32385}}<br />
*r55796 LCL: GTK2: High-DPI cursor crNo.<br />
*r55797 IDE: High-DPI BookMark icons. Patch by FTurtle. {{MantisLink|32374}}<br />
*r55798 IDE: Forgotten copyright info from revision 55797<br />
*r55820 LCL: In TCustomcalendar, always SetProps in InitializeWnd ({{MantisLink|0032379}}). Patch by soner.<br />
*r55842 lcl: fix docs about TControl.SetBounds<br />
*r55851 codetools: find declaration of dotted program name<br />
*r55827 IDE: More component palette icons by Roland Hahn completing the Standard palette.<br />
*r55829 IDE: Remove printer-related icons from folder images/components (they are in components/printers/images)<br />
*r55830 IDE: Update components_images_list.txt (adding of scale TFrame and TPanel icons forgotten in prev commits).<br />
*r55831 IdeIntf: Exit from TEnumPropertyEditor.SetValue when invalid value is given. Prevents an AV later. Reverts r185 from 2001-02-19.<br />
*r55840 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32396}}. Patch by FTurtle<br />
*r55860 IDE: SourceEditor: High-DPI menu bookmark icons. {{MantisLink|32416}}. Patch by FTurtle<br />
*r55862 IDE: New icons for palette "Additional" (provided by Roland Hahn).<br />
*r55863 IDE: Update components_images_list.txt and components_images.res missing in previous commit.<br />
*r55864 IDE: Add HighRes TScrollbox icons to resource<br />
*r55866 IDE: Refactoring resource image lists files. {{MantisLink|32420}}. Patch by FTurtle.<br />
*r55867 Contributors: Add Roland Hahn (component palette icons)<br />
*r55876 IDE: HiRes icons for the Common Controls palette (by Roland Hahn).<br />
*r55877 IDE, OI: Update the component ComboBox properly when it is visible. {{MantisLink|32427}}<br />
*r55878 IDE: High-DPI menu items. {{MantisLink|32431}}. Patch by FTurtle.<br />
*r55879 PackageTabs: Fixed icon after revision 55878.<br />
*r55880 IDE: Cleanup: Delete unused images.<br />
*r55868 LCL: treeview: fix tooltips. Patch by AlexeyT. {{MantisLink|32400}}<br />
*r55848 LCL, fix message dialogs hidding behind modal dialogs {{MantisLink|32249}}<br />
*r55875 DateTimeCtls: HiRes icons for TDateTimePicker by Roland Hahn. Switch icons to .res format.<br />
*r55884 LCL: Font: Revert revision 55761 as it breaks per monitor High-DPI scaling.<br />
*r55881 Qt,Qt5: fixed cpu eating by gtk+ theme.<br />
*r55890 LCL: TCustomEditButton: Fixed TDateEdit.SelectNext. {{MantisLink|32335}}<br />
*r55892 LCL: TTabControl: Fixed AV on creating control. {{MantisLink|32455}}<br />
*r55915 codetools: property completion: fixed check if store accessor with index specififer exists<br />
*r55917 codetools: property completion: fixed read/write accessor for param+index specifier<br />
*r55904 IDE: Update copyright.txt for component palette icons created by Roland Hahn.<br />
*r55906 IDE: Add HiRes palette icons for TDBDateTimePicker.<br />
*r55919 TAChart: Fix event TDbChartSource.OnGetItem not being alterable in designer. Add demo db-barseries.<br />
*r55944 codetools: fixed RemoveUnitFromAllUsesSections<br />
*r55946 codetools: fixed skipping sourcename, added TPascalParserTool.FindUsesNode<br />
*r55948 codetools: fixed continuing parsing after source name<br />
*r55951 codetools: added ctnSrcName, fixed find declaration dotted program name<br />
*r55926 IDE: Replace TStaticText palette icons with fully transparent ones.<br />
*r55932 IDE: High-DPI icons. {{MantisLink|32454}} Patch by FTurtle<br />
*r55941 SynEdit: Paint Caret in paint-event (except win32) / some very few gtk may have issues<br />
*r55953 DBExport examples: fix compilation and layout, improved usability<br />
*r55954 Debugger: In BreakpointPropertyDlg, add new conditions to top of list, remove duplicates and reject empty strings.<br />
*r55956 IDE: Add some HiRes icons for Run menu (drawn by Roland Hahn)<br />
*r55957 IDE: Update copyright.txt for icons added in previous commit<br />
*r55554 Qt, Qt5: fixed ItemShow - scroll to item. {{MantisLink|32078}}<br />
*r55555 Qt5: use QScreen_grabWindow() instead of QPixmap_grabWindow(). part of {{MantisLink|32141}}<br />
*r55737 Qt4: fixed build under mswindows<br />
*r55759 Qt5: implemented InitStockFont. part of {{MantisLink|32354}}<br />
*r55760 Qt,Qt5: fixed painting of TQtHintWindow. {{MantisLink|32354}}<br />
*r55774 Qt, Qt5: check if handle is valid inside various routines, fixes some sparta ide crashes.<br />
*r55782 Qt5: TQtGroupBox does not need offset as in Qt4, since Qt5 provides correct coordinates. {{MantisLink|32186}}<br />
*r55966 IDE: HiRes icons for System component palette (provided by Roland Hahn)<br />
*r55969 IDE: High-DPI icons. {{MantisLink|32493}} Patch by FTurtle<br />
*r55970 IDE: In ToolBarConfig ListView select correct item after adding a command. Refactoring etc.<br />
*r55971 components/wiki: Fix compilation of wikiget<br />
*r55975 LCL: Do not trigger Escape key for a disabled cancel button. {{MantisLink|32509}}<br />
*r55984 Translations: Hungarian translation update by Péter Gábor, bug 32503<br />
*r55986 IDE: Remove an extra IDEDialogLayoutList.ApplyLayout call from NewDialog constructor.<br />
*r55992,r55994,r55996,r55997,r56004 IDE: Less questions when opening a symlinked file. {{MantisLink|32292}}.<br />
*r55998 LCL-GTK2: Fix SelStart and SelLength in OnChange with some widgetset versions. {{MantisLink|24371}}.<br />
*r56001 IDE: designer: High-DPI: selection grabber. {{MantisLink|32397}}<br />
*r56003 IDE: designer: tune up r56001, {{MantisLink|32397}}<br />
<br />
== Fixes for 1.8 RC4 (merged)==<br />
*r55411 Debugger: Fix anchoring in WatchPropertyDlg.<br />
*r55412 Finnish translations for IDE and OI.<br />
*r55413 DBRadiogroup: Fix crash when clicking without assigned field ({{MantisLink|0032077}}).<br />
*r55415 LCL: Japanese translation update by Haruyuki Fujimaki, {{MantisLink|32081}}<br />
*r55462 IDE: fixed checking for file changes on non UTF-8 files<br />
*r55433 Sparta_DockedFormEditor: Fixed drawing of MainMenu after adding the first MenuItem. {{MantisLink|31206}}<br />
*r55442 Win32: TGroupBox: Fixed wrong background color for inactive groupbox.<br />
*r55453 QT, QT5: Initialize WideString Result in TQtTextEdit methods.<br />
*r55459 LCL-Win32: Process surrogate pairs correctly when virtual keyboard is used. {{MantisLink|32101}}.<br />
*r55460 IDE: Fix left/right arrow key behavior in identifier completion. {{MantisLink|32117}}<br />
*r55466 Translations: Japanese translation update by takahiro and Haruyuki Fujimaki, bugs 32099, 32100<br />
*r55467 IDE: Turkish translation update by lazarusturkiye, bug 32104<br />
*r55474, r55502 Translations: Lithuanian translation update by Valdas Jankūnas, bug 32126<br />
*r55479 lcl: fixed typos<br />
*r55482 anchordocking: fixed hiding docksite when last control gets Visible=false<br />
*r55485 codetools: parse generic function<br />
*r55489 Translations: French translation update by Gilles Vasseur, bug 32133<br />
*r55520 LCL: skip property TDataModule.PPI on FPC < 3.0.3<br />
*r55526 LCL: Dutch translation update by Bart, bug 32149<br />
*r55492 IDE: High-DPI: ObjectInspector: Fixed drawing of active row bitmap. {{MantisLink|32097}}<br />
*r55494 grids: Introduce constColRowBorderTolerance for colwidth/rowheight resizing.<br />
*r55495 grids: High-dpi scaling of constCellPadding, constRubberSpace and constColRowBorderTolerance<br />
*r55496 IDE: High-DPI: ObjectInspector: Size of filter edit glyphs. {{MantisLink|32097}}<br />
*r55498 IDE: High-DPI: Fixed image sizes of in IDE used TTreeFilterEdits and TListFilterEdits.<br />
*r55499 IDE: High-DPI: ComponentPagesPopup: Size of close button glyph. {{MantisLink|32097}}<br />
*r55500 IDE: High-DPI: ComponentPalette: Size of component pages speedbutton.<br />
*r55507 IDE: SearchResultWindow: Anchor of TreeFilterEdit to always show its button.<br />
*r55508 IDE: High-DPI: ObjectInspector: ComponentTreeView: Fixed image sizes.<br />
*r55509 IDE: High-DPI: ComponentPages: Fixed tree image sizes.<br />
*r55510 IDE: High-DPI: ActionsEditor: Fixed image sizes.<br />
*r55511 IDE: High-DPI: CodeExplorer: Fixed image sizes.<br />
*r55512 IDE: High-DPI: Better assigning of images to imagelists.<br />
*r55513 IDE: High-DPI: SourceEditor: Fixed source mark image sizes.<br />
*r55514 IDE: High-DPI: CodeBrowser: Fixed image sizes.<br />
*r55515 IDE: EditorDisplayOptions: Fixed wrong anchor of DisableAntialiasingCheckBox.<br />
*r55516 LCL: TTreeView: High-DPI: Make spaces between images DPI-aware.<br />
*r55530 LCL: form: force scale bounds in WM_DPICHANGED message handler. {{MantisLink|32162}}<br />
*r55531 LCL: TPromptDialog: high-DPI<br />
*r55533 LCL: TPromptDialog: support ChangeScale<br />
*r55534 lcl: groupededit: revert r53759 - buddy is scaled automatically. {{MantisLink|32154}}<br />
*r55537 lcl: control: high-DPI: correctly scale base bounds. {{MantisLink|31992}}<br />
*r55539 lcl: dbgrids: hide vertical scrollbar for ssNone and ssHorizontal style. {{MantisLink|32134}}<br />
*r55541 lazbuild: nicer error message on lpi file not found<br />
*r55548 startlazarus: start IDE on Mac via open, bug 32180, patch from Anthony Walter<br />
*r55558 TurboPower_iPro: Fix colored table background not being painted.<br />
*r55561 avglvltree: fix DisposeNode for nil Node. {{MantisLink|32189}}<br />
*r55568 IDEIntf: TOICustomPropertyGrid: handle wheel events on grid the same as on edit cell control, issue 32193, from Anthony Walter<br />
*r55583 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32184<br />
*r55318 DateTimePicker: Add RemoveHandlerOnChange, RemoveHandlerOnCheckBoxChange, override RemoveAllHandlersOfObjects<br />
*r55292 DateTimePiker: Built-in UpDown control appears flat with dtpoFlatButton option<br />
*r55279 Fix indentation<br />
*r55435 datetimepicker: update date also when handle is not yet allocated. {{MantisLink|32106}}<br />
*r55560 LazUtils: add Laz_AVL_Tree to the package<br />
*r55609, r55622 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55610 IDE: Polish translation update by Rafał Klekowski, bug 32217<br />
*r55589 docs: Improved font for source code in lhelp (at least on Windows)<br />
*r55591 TAChart: Fix incompletely displayed series marks for style smsLabelPercentTotal. {{MantisLink|32202}}<br />
*r55592 Turbopower_ipro: Underline links only at mouse-over.<br />
*r55600 IDE: ProcedureList: Fixed height of edit and combobox. Issue {{MantisLink|32212}}<br />
*r55598 LCL: combobox: sanity check for ItemIndex<br />
*r55604 SynEdit: assert correct method types<br />
*r55605 IDE options: change description and limit for "match whole word" of highlight equal terms. Issue {{MantisLink|032068}} Based on Patch by AlexeyT<br />
*r55606 SynEdit: fix range error. Issue {{MantisLink|0032067}} Patch by Pascal R.<br />
*r55613 SynEdit: fix crash in fold structure code TLazSynEditNestedFoldsList<br />
<br />
== Fixes for 1.8 RC3 (merged)==<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way.<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55133 DateTimeCtrls: TDateTimePicker: add Options property with dtpoDoChangeOnSetDateTime (not default). {{MantisLink|31679}}<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
*r55211 Fix uninitialized variables based on compiler warnings got with dfa (data flow analysis) enabled.<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55222 Fix more uninitialized variables and suppress compiler warnings. Merged manually.<br />
*r55233 QT, QT5: Initialize WideString Result in TQtLineEdit methods.<br />
*r55234 DateTimePicker - corrected misleading comment<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
*r55266 DateTimePicker - improve smart calling change when Date/Time is set from code<br />
*r55267 lcl: grids: fix endless loop in ScrollToCell for 0 Width/Height and non-SmoothScroll. {{MantisLink|31942}}<br />
*r55268 DateTimePicker - add input checking in SendExternalKey and add SendExternalKeyCode method<br />
*r55269 AnchorDockingDsgn: Loading for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55271 components: datetimepicker: TextForNullDate type TCaption - for translations<br />
*r55272 components: datetimepicker: change boolean properties EnableWhenUnchecked, AutoCheck, FlatButton to entries in Options.<br />
*r55277 ide: loading a docked desktop for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55279 Fix indentation<br />
*r55280 deb: lazarus: removed editoroptions.xml, the built-in defaults are better<br />
*r55295 rpm: fixed omitting editoroptions.xml<br />
*r55299 Translations: French translation update by Gilles Vasseur, bug 31978<br />
*r55300 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31980<br />
*r55302 IDE: Give default size for NewDialog layout at first start. Design-time size has no effect. Set constraints.<br />
*r55307 IDE: Support HTML lists, "ul" and "li" tags in TCodeHelpManager. {{MantisLink|31991}}.<br />
*r55321 MenuDesigner: High-DPI Icons.<br />
*r55324 IDE: High-DPI: some missing component icons.<br />
*r55331 codetools: guess type of default()<br />
*r55334 grids: Fix size of focus rectangle if gridlinewidth > 1. {{MantisLink|32002}}.<br />
*r55335 SpartaDockedFormEditor: Make resizer High-DPI aware.<br />
*r55337 SpartaDockedFormEditor: Less warnings and cleanup.<br />
*r55344 DBCtrls: Workaround for TDBRadioGroup being changable even if Dataset is readonly. {{MantisLink|31993}}.<br />
*r55345 Updated Contributors<br />
*r55346 codetools: updated debugging messages<br />
*r55348 SpartaDockedFormEditor: Scale resizer automatically per LCL.<br />
*r55351 IDE: Extending IDE context help search to lazutils.chm, issue 32022 from zbyna<br />
*r55357, r55358, r55359 Translations: Hungarian translation update by Péter Gábor, bug 32014<br />
*r55361 IDE: lazutils help: fixed freeing, bug 32022<br />
*r55374 lcl: win32: ClipboardFormatToMimeType: fixed not raising an exception<br />
*r55381 lcl: dbgrids: fix default col widths. {{MantisLink|32021}}<br />
*r55384 images: new high-dpi images designed by FTurle. {{MantisLink|32029}}, patch by FTurtle<br />
*r55390 MenuEditor: Better visibility of AddButtons, especially on GTK2.<br />
*r55391 MenuEditor: Show FakeButtons on correct place, when deleting a MenuItem. Fixed breaking revision 54863.<br />
*r55393 MenuEditor: Remove calculation of ShadowBox from wrong place.<br />
*r55394 MenuEditor: Fixed drawing of AddSubmenuFake on GTK2.<br />
*r55395 MenuEditor: Fixed drawing of AddSiblingFake on GTK2.<br />
*r55339 SynEdit: Pas HL, handle generics foo<T: class> does not fold / patch by Pascal<br />
*r55376 SynEdit: Pas-HL, test for ^ in PMyByte = type ^Byte;<br />
*r55377 SynEdit: fix pas HL, class function. more tests / some tests by Pascal R<br />
*r55396 Revert r54305 "LCL-GTK2: Prevent an occational freeze." Caused regressions.<br />
*r55398 lcl: application: fix exception causing handling enter keyup twice. {{MantisLink|32056}}<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done 17 May 2017)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done 06 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (Done 30 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 4 (Done 08 August 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 5 (Done 13 October 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 6 (maybe)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (ToDo)<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check lpl files by running "./tools/lplupdate -c" and do the svn mv commands<br />
** run <br />
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=111465Lazarus 1.8 fixes branch2017-08-11T16:30:29Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8 RC5 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
*r55630 GTK2: an attempt to reduce the number of superfluous OnChanges of TFloatSpinEdit. {{MantisLink|0031618}}.<br />
<br />
==== Merge conflicts ====<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
<br />
=== Merged revisions for 1.8 RC5 ===<br />
*r55635 gtk2: fix ScreenInfo.PixelsPerInch* values. {{MantisLink|31199}}, by Michl<br />
*r55646 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32255<br />
<br />
== Fixes for 1.8 RC4 (merged)==<br />
*r55411 Debugger: Fix anchoring in WatchPropertyDlg.<br />
*r55412 Finnish translations for IDE and OI.<br />
*r55413 DBRadiogroup: Fix crash when clicking without assigned field ({{MantisLink|0032077}}).<br />
*r55415 LCL: Japanese translation update by Haruyuki Fujimaki, {{MantisLink|32081}}<br />
*r55462 IDE: fixed checking for file changes on non UTF-8 files<br />
*r55433 Sparta_DockedFormEditor: Fixed drawing of MainMenu after adding the first MenuItem. {{MantisLink|31206}}<br />
*r55442 Win32: TGroupBox: Fixed wrong background color for inactive groupbox.<br />
*r55453 QT, QT5: Initialize WideString Result in TQtTextEdit methods.<br />
*r55459 LCL-Win32: Process surrogate pairs correctly when virtual keyboard is used. {{MantisLink|32101}}.<br />
*r55460 IDE: Fix left/right arrow key behavior in identifier completion. {{MantisLink|32117}}<br />
*r55466 Translations: Japanese translation update by takahiro and Haruyuki Fujimaki, bugs 32099, 32100<br />
*r55467 IDE: Turkish translation update by lazarusturkiye, bug 32104<br />
*r55474, r55502 Translations: Lithuanian translation update by Valdas Jankūnas, bug 32126<br />
*r55479 lcl: fixed typos<br />
*r55482 anchordocking: fixed hiding docksite when last control gets Visible=false<br />
*r55485 codetools: parse generic function<br />
*r55489 Translations: French translation update by Gilles Vasseur, bug 32133<br />
*r55520 LCL: skip property TDataModule.PPI on FPC < 3.0.3<br />
*r55526 LCL: Dutch translation update by Bart, bug 32149<br />
*r55492 IDE: High-DPI: ObjectInspector: Fixed drawing of active row bitmap. {{MantisLink|32097}}<br />
*r55494 grids: Introduce constColRowBorderTolerance for colwidth/rowheight resizing.<br />
*r55495 grids: High-dpi scaling of constCellPadding, constRubberSpace and constColRowBorderTolerance<br />
*r55496 IDE: High-DPI: ObjectInspector: Size of filter edit glyphs. {{MantisLink|32097}}<br />
*r55498 IDE: High-DPI: Fixed image sizes of in IDE used TTreeFilterEdits and TListFilterEdits.<br />
*r55499 IDE: High-DPI: ComponentPagesPopup: Size of close button glyph. {{MantisLink|32097}}<br />
*r55500 IDE: High-DPI: ComponentPalette: Size of component pages speedbutton.<br />
*r55507 IDE: SearchResultWindow: Anchor of TreeFilterEdit to always show its button.<br />
*r55508 IDE: High-DPI: ObjectInspector: ComponentTreeView: Fixed image sizes.<br />
*r55509 IDE: High-DPI: ComponentPages: Fixed tree image sizes.<br />
*r55510 IDE: High-DPI: ActionsEditor: Fixed image sizes.<br />
*r55511 IDE: High-DPI: CodeExplorer: Fixed image sizes.<br />
*r55512 IDE: High-DPI: Better assigning of images to imagelists.<br />
*r55513 IDE: High-DPI: SourceEditor: Fixed source mark image sizes.<br />
*r55514 IDE: High-DPI: CodeBrowser: Fixed image sizes.<br />
*r55515 IDE: EditorDisplayOptions: Fixed wrong anchor of DisableAntialiasingCheckBox.<br />
*r55516 LCL: TTreeView: High-DPI: Make spaces between images DPI-aware.<br />
*r55530 LCL: form: force scale bounds in WM_DPICHANGED message handler. {{MantisLink|32162}}<br />
*r55531 LCL: TPromptDialog: high-DPI<br />
*r55533 LCL: TPromptDialog: support ChangeScale<br />
*r55534 lcl: groupededit: revert r53759 - buddy is scaled automatically. {{MantisLink|32154}}<br />
*r55537 lcl: control: high-DPI: correctly scale base bounds. {{MantisLink|31992}}<br />
*r55539 lcl: dbgrids: hide vertical scrollbar for ssNone and ssHorizontal style. {{MantisLink|32134}}<br />
*r55541 lazbuild: nicer error message on lpi file not found<br />
*r55548 startlazarus: start IDE on Mac via open, bug 32180, patch from Anthony Walter<br />
*r55558 TurboPower_iPro: Fix colored table background not being painted.<br />
*r55561 avglvltree: fix DisposeNode for nil Node. {{MantisLink|32189}}<br />
*r55568 IDEIntf: TOICustomPropertyGrid: handle wheel events on grid the same as on edit cell control, issue 32193, from Anthony Walter<br />
*r55583 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 32184<br />
*r55318 DateTimePicker: Add RemoveHandlerOnChange, RemoveHandlerOnCheckBoxChange, override RemoveAllHandlersOfObjects<br />
*r55292 DateTimePiker: Built-in UpDown control appears flat with dtpoFlatButton option<br />
*r55279 Fix indentation<br />
*r55435 datetimepicker: update date also when handle is not yet allocated. {{MantisLink|32106}}<br />
*r55560 LazUtils: add Laz_AVL_Tree to the package<br />
*r55609, r55622 Translations: Ukrainian translation update by Olexandr Pylypchuk<br />
*r55610 IDE: Polish translation update by Rafał Klekowski, bug 32217<br />
*r55589 docs: Improved font for source code in lhelp (at least on Windows)<br />
*r55591 TAChart: Fix incompletely displayed series marks for style smsLabelPercentTotal. {{MantisLink|32202}}<br />
*r55592 Turbopower_ipro: Underline links only at mouse-over.<br />
*r55600 IDE: ProcedureList: Fixed height of edit and combobox. Issue {{MantisLink|32212}}<br />
*r55598 LCL: combobox: sanity check for ItemIndex<br />
*r55604 SynEdit: assert correct method types<br />
*r55605 IDE options: change description and limit for "match whole word" of highlight equal terms. Issue {{MantisLink|032068}} Based on Patch by AlexeyT<br />
*r55606 SynEdit: fix range error. Issue {{MantisLink|0032067}} Patch by Pascal R.<br />
*r55613 SynEdit: fix crash in fold structure code TLazSynEditNestedFoldsList<br />
<br />
== Fixes for 1.8 RC3 (merged)==<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way.<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55133 DateTimeCtrls: TDateTimePicker: add Options property with dtpoDoChangeOnSetDateTime (not default). {{MantisLink|31679}}<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
*r55211 Fix uninitialized variables based on compiler warnings got with dfa (data flow analysis) enabled.<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55222 Fix more uninitialized variables and suppress compiler warnings. Merged manually.<br />
*r55233 QT, QT5: Initialize WideString Result in TQtLineEdit methods.<br />
*r55234 DateTimePicker - corrected misleading comment<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
*r55266 DateTimePicker - improve smart calling change when Date/Time is set from code<br />
*r55267 lcl: grids: fix endless loop in ScrollToCell for 0 Width/Height and non-SmoothScroll. {{MantisLink|31942}}<br />
*r55268 DateTimePicker - add input checking in SendExternalKey and add SendExternalKeyCode method<br />
*r55269 AnchorDockingDsgn: Loading for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55271 components: datetimepicker: TextForNullDate type TCaption - for translations<br />
*r55272 components: datetimepicker: change boolean properties EnableWhenUnchecked, AutoCheck, FlatButton to entries in Options.<br />
*r55277 ide: loading a docked desktop for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55279 Fix indentation<br />
*r55280 deb: lazarus: removed editoroptions.xml, the built-in defaults are better<br />
*r55295 rpm: fixed omitting editoroptions.xml<br />
*r55299 Translations: French translation update by Gilles Vasseur, bug 31978<br />
*r55300 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31980<br />
*r55302 IDE: Give default size for NewDialog layout at first start. Design-time size has no effect. Set constraints.<br />
*r55307 IDE: Support HTML lists, "ul" and "li" tags in TCodeHelpManager. {{MantisLink|31991}}.<br />
*r55321 MenuDesigner: High-DPI Icons.<br />
*r55324 IDE: High-DPI: some missing component icons.<br />
*r55331 codetools: guess type of default()<br />
*r55334 grids: Fix size of focus rectangle if gridlinewidth > 1. {{MantisLink|32002}}.<br />
*r55335 SpartaDockedFormEditor: Make resizer High-DPI aware.<br />
*r55337 SpartaDockedFormEditor: Less warnings and cleanup.<br />
*r55344 DBCtrls: Workaround for TDBRadioGroup being changable even if Dataset is readonly. {{MantisLink|31993}}.<br />
*r55345 Updated Contributors<br />
*r55346 codetools: updated debugging messages<br />
*r55348 SpartaDockedFormEditor: Scale resizer automatically per LCL.<br />
*r55351 IDE: Extending IDE context help search to lazutils.chm, issue 32022 from zbyna<br />
*r55357, r55358, r55359 Translations: Hungarian translation update by Péter Gábor, bug 32014<br />
*r55361 IDE: lazutils help: fixed freeing, bug 32022<br />
*r55374 lcl: win32: ClipboardFormatToMimeType: fixed not raising an exception<br />
*r55381 lcl: dbgrids: fix default col widths. {{MantisLink|32021}}<br />
*r55384 images: new high-dpi images designed by FTurle. {{MantisLink|32029}}, patch by FTurtle<br />
*r55390 MenuEditor: Better visibility of AddButtons, especially on GTK2.<br />
*r55391 MenuEditor: Show FakeButtons on correct place, when deleting a MenuItem. Fixed breaking revision 54863.<br />
*r55393 MenuEditor: Remove calculation of ShadowBox from wrong place.<br />
*r55394 MenuEditor: Fixed drawing of AddSubmenuFake on GTK2.<br />
*r55395 MenuEditor: Fixed drawing of AddSiblingFake on GTK2.<br />
*r55339 SynEdit: Pas HL, handle generics foo<T: class> does not fold / patch by Pascal<br />
*r55376 SynEdit: Pas-HL, test for ^ in PMyByte = type ^Byte;<br />
*r55377 SynEdit: fix pas HL, class function. more tests / some tests by Pascal R<br />
*r55396 Revert r54305 "LCL-GTK2: Prevent an occational freeze." Caused regressions.<br />
*r55398 lcl: application: fix exception causing handling enter keyup twice. {{MantisLink|32056}}<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done 17 May 2017)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done 06 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (Done 30 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 4 (Done 08 August 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 5 (maybe)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (ToDo)<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=110791Lazarus 1.8 fixes branch2017-07-01T01:28:17Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8 RC4 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
<br />
==== Merge conflicts ====<br />
*r55340 tools/jsonviewer: Fix crash due to unknown clipboard format<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
<br />
=== Merged revisions for 1.8 RC4 ===<br />
*r55411 Debugger: Fix anchoring in WatchPropertyDlg.<br />
*r55412 Finnish translations for IDE and OI.<br />
*r55413 DBRadiogroup: Fix crash when clicking without assigned field ({{MantisLink|0032077}}).<br />
*r55415 LCL: Japanese translation update by Haruyuki Fujimaki, {{MantisLink|32081}}<br />
<br />
== Fixes for 1.8 RC3 (merged)==<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*r55063 Gtk3: focus message is not needed under gtk3 since it is organized in different way.<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55133 DateTimeCtrls: TDateTimePicker: add Options property with dtpoDoChangeOnSetDateTime (not default). {{MantisLink|31679}}<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
*r55211 Fix uninitialized variables based on compiler warnings got with dfa (data flow analysis) enabled.<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55222 Fix more uninitialized variables and suppress compiler warnings. Merged manually.<br />
*r55233 QT, QT5: Initialize WideString Result in TQtLineEdit methods.<br />
*r55234 DateTimePicker - corrected misleading comment<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
*r55266 DateTimePicker - improve smart calling change when Date/Time is set from code<br />
*r55267 lcl: grids: fix endless loop in ScrollToCell for 0 Width/Height and non-SmoothScroll. {{MantisLink|31942}}<br />
*r55268 DateTimePicker - add input checking in SendExternalKey and add SendExternalKeyCode method<br />
*r55269 AnchorDockingDsgn: Loading for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55271 components: datetimepicker: TextForNullDate type TCaption - for translations<br />
*r55272 components: datetimepicker: change boolean properties EnableWhenUnchecked, AutoCheck, FlatButton to entries in Options.<br />
*r55277 ide: loading a docked desktop for the first time, take the settings from the previous desktop. {{MantisLink|31981}}<br />
*r55279 Fix indentation<br />
*r55280 deb: lazarus: removed editoroptions.xml, the built-in defaults are better<br />
*r55295 rpm: fixed omitting editoroptions.xml<br />
*r55299 Translations: French translation update by Gilles Vasseur, bug 31978<br />
*r55300 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31980<br />
*r55302 IDE: Give default size for NewDialog layout at first start. Design-time size has no effect. Set constraints.<br />
*r55307 IDE: Support HTML lists, "ul" and "li" tags in TCodeHelpManager. {{MantisLink|31991}}.<br />
*r55321 MenuDesigner: High-DPI Icons.<br />
*r55324 IDE: High-DPI: some missing component icons.<br />
*r55331 codetools: guess type of default()<br />
*r55334 grids: Fix size of focus rectangle if gridlinewidth > 1. {{MantisLink|32002}}.<br />
*r55335 SpartaDockedFormEditor: Make resizer High-DPI aware.<br />
*r55337 SpartaDockedFormEditor: Less warnings and cleanup.<br />
*r55344 DBCtrls: Workaround for TDBRadioGroup being changable even if Dataset is readonly. {{MantisLink|31993}}.<br />
*r55345 Updated Contributors<br />
*r55346 codetools: updated debugging messages<br />
*r55348 SpartaDockedFormEditor: Scale resizer automatically per LCL.<br />
*r55351 IDE: Extending IDE context help search to lazutils.chm, issue 32022 from zbyna<br />
*r55357, r55358, r55359 Translations: Hungarian translation update by Péter Gábor, bug 32014<br />
*r55361 IDE: lazutils help: fixed freeing, bug 32022<br />
*r55374 lcl: win32: ClipboardFormatToMimeType: fixed not raising an exception<br />
*r55381 lcl: dbgrids: fix default col widths. {{MantisLink|32021}}<br />
*r55384 images: new high-dpi images designed by FTurle. {{MantisLink|32029}}, patch by FTurtle<br />
*r55390 MenuEditor: Better visibility of AddButtons, especially on GTK2.<br />
*r55391 MenuEditor: Show FakeButtons on correct place, when deleting a MenuItem. Fixed breaking revision 54863.<br />
*r55393 MenuEditor: Remove calculation of ShadowBox from wrong place.<br />
*r55394 MenuEditor: Fixed drawing of AddSubmenuFake on GTK2.<br />
*r55395 MenuEditor: Fixed drawing of AddSiblingFake on GTK2.<br />
*r55339 SynEdit: Pas HL, handle generics foo<T: class> does not fold / patch by Pascal<br />
*r55376 SynEdit: Pas-HL, test for ^ in PMyByte = type ^Byte;<br />
*r55377 SynEdit: fix pas HL, class function. more tests / some tests by Pascal R<br />
*r55396 Revert r54305 "LCL-GTK2: Prevent an occational freeze." Caused regressions.<br />
*r55398 lcl: application: fix exception causing handling enter keyup twice. {{MantisLink|32056}}<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done 17 May 2017)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done 06 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (Done 30 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 4 (maybe)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (ToDo)<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=110212Lazarus 1.8 fixes branch2017-06-07T12:28:15Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
These 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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8 RC3 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
*r55062 Gtk2,Gtk3: gtk should always send LM_SETFOCUS before mouse messages, like Qt and Win32 does. {{MantisLink|0031900}}<br />
*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'''<br />
*r55184 Gtk2: fixed sizing of form with constraints. {{MantisLink|0031950}}<br />
<br />
==== Submitted by developer / committer, tested, waiting to be merged ====<br />
*r55263 IDE: Revert revision 55249 as it breaks the scrolling of TScrollBox in designer. {{MantisLink|7114}}<br />
<br />
=== Merged revisions for 1.8 RC3 ===<br />
*r55238 codetools: added TFindDeclarationTool.FindClassMember<br />
*r55240 IDE: TMainIDE.OnPropHookCreateMethod: fixed creating JITMethod for ancestor<br />
*r55213 LCL: Fixed access violation with Application.BidiMode bdRightToLeft and ChildSizing.Layout cclTopToBottomThenLeftToRight. {{MantisLink|31966}}<br />
*r55220 IDE: ObjectInspector: Fixed OI don't show "default" in list of font names. {{MantisLink|31958}}<br />
*r55241 LazUtils: Fix compilation of utf8process.pp on Darwin with fpc trunk. {{MantisLink|0031525}}<br />
*r55249 IDE: Fixed TControl.InvalidatePreferredSize loop detected. {{MantisLink|30617}}<br />
*r55252 Translations: Ukrainian IDE translation update by Olexandr Pylypchuk. {{MantisLink|31957}}<br />
*r55259 IDEIntf: fixed TIDEMenuSection.Visible keeping Visible of children, bug 31970<br />
*r55261 IDE: method property editor: fixed rename<br />
<br />
== Fixes for 1.8 RC2 (merged) ==<br />
*r54810 new Database Login dialog. Modified patch by LacaK, issue 27764<br />
*r55104 TAChart: Use SameValue() in floating point comparisons.<br />
*r55106 SynEdit: MarkupFoldColor, fixed crash due to wrong method signature.<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54897 sqldb: fixed compile under darwin<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairoCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54911 sqldb: fixed win64 compile with fpc 3.0.2<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
*r54951 lcl: fixed TDbLookupCombobox showing blank items when used with a TSdfDat...<br />
*r54952 codetools: fixed compile with fpc 2.6.4<br />
*r54958 Gtk2: fixed shrinking designer form, bug 31832, patch Kostas Michalopoulos. Workaround for {{MantisLink|31832}}<br />
*r54968 updatemakefiles: check if fpcmake supports new version<br />
*r54972 cody: fixed typo<br />
*r54984 lcl: TMenu: raise exception if something else is freeing the FItems<br />
*r54986 projectgroups: set menuitems to nil on destroy<br />
*r54988 IDEIntf: TIDEMenuItem: fixed not freeing MenuItems of TMenu<br />
*r54990 projectgroups: fixed memleak<br />
*r54992 doceditor: fixed permissions<br />
*r54994 docs: removed sourceforge commercial footer, privacy breach<br />
*r54996 debian: fixed manpage-not-compressed-with-max-compression error<br />
*r54999 debian: fixed permissions<br />
*r55000 debian: fix group writable permissions<br />
*r55002 debian: disable debian/rules, not used by our deb<br />
*r55004 debian: fixed permissions and description<br />
*r55006 debian: fixed lintian warning about changelog<br />
*r55008 debian: lazarus deb now builds without lintian errors<br />
*r55010 debian: fpc-src no lintian errors<br />
*r55012 deb: fpc: no lintian errors<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54957 MenuEditor: Win32: If IDE is closed a AV is thrown. {{MantisLink|0031791}}<br />
*r54960 MenuEditor: GTK2: AV on closing IDE with opened menu editor. {{MantisLink|0031816}}<br />
*r55017 ide: images: update debug icons (by FTurtle). {{MantisLink|31830}}<br />
*r55027 IDE: High-DPI: Search Result Window<br />
*r55032 IDE: High-DPI: Move loading of glyphs to ideintf to multiple method use + cleanup.<br />
*r55033 IDE: High-DPI: TabOrderDialog<br />
*r55034 IDE: High-DPI: MenuEditor Images. {{MantisLink|0031877}}<br />
*r55035 IDE: High-DPI: All IDE SpeedButtons DPI-aware<br />
*r54953 IdeIntf: OI: always write values to objects if explicitely wanted.<br />
*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.<br />
*r54955 IdeIntf: propedits: fix highlighting default (=not stored) properties.<br />
*r54981 ideintf: fix regression in image scaling code.<br />
*r55015 IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.<br />
*r55038 ExternHelp: fix uses clause after r55035<br />
*r55039 IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.<br />
*r55016 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r55018 win32: menus: fix FPC 3.0.0 compilation. {{MantisLink|31875}}<br />
*r55019 win32: menus: fix menu height calculation. {{MantisLink|31875}}<br />
*r54980 Qt5: cbindings: implemented QObject::metaObject(), now we can extract complete classinfo from any Qt class.<br />
*r55041 Qt5: fixed build with QT_NATIVE_DIALOGS define.<br />
*r55043 qt, qt5: fix uninitialized result in TQtComboBox.getText<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
*r54956 lcl: grids: keep *IsStored functions to DefaultColWidth and DefaultRowHeight properties protected-only (related revision: r54949)<br />
*r54964 lcl: label: fix CalcFittingFontHeight. Patch by Luca Olivetti<br />
*r54970 lcl: grids: add Options2 = [goScrollToLastCol, goScrollToLastRow]. {{MantisLink|31766}}<br />
*r55020 lcl: treeview: High-DPI: fix scaling of non-themed node icons. {{MantisLink|31829}}<br />
*r55022 LCL: rename TControl.ScaleCoord* methods<br />
*r55026 LCL: TListView: Fixed access violation switching OwnerData. {{MantisLink|0031880}}<br />
*r55044 IDE: improved i18n in messages window, fixed some typos<br />
*r55056 IDE: regenerated translations and updated Russian translation<br />
*r54935 IDE: clean up<br />
*r55021 IDE: change DataModulePPI to FPC 3.0.3 check. {{MantisLink|31813}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54975 Gtk2: removed workaround for SW_SHOWNORMAL, added checks for SW_RESTORE and SW_SHOWMAXIMIZED. {{MantisLink|0031832}}<br />
*r55058 LCL: Disconnect OnIdle handler of FilterEdit when the control is destroyed. {{MantisLink|31893}}.<br />
*r55059 TodoList: Don't try to update the list too early. Regression caused by {{MantisLink|31006}}.<br />
*r55060 gtk3: fixed device context offset. Patch by Anton Kavalenka. {{MantisLink|31780}}.<br />
*r55064 MenuEditor: High-DPI: ShadowMenu. {{MantisLink|31877}}<br />
*r55070 MenuEditor: Showing "Add Submenu" button at the right position. Fixing breaking commit r54863.<br />
*r55075 MenuEditor: High-DPI: Arrow and Cleanup. {{MantisLink|31877}}<br />
*r55081 MenuEditor: Simplify and removed optic bug for icon choose dialog.<br />
*r55071 IDEIntf: Fix a stupid copy/paste error in r55015.<br />
*r55078 IDE: Improve adding a command and separator in Toolbar Config dialog. {{MantisLink|31890}}.<br />
*r55083 AnchorDocking: Revert revision 54525 as it breaks other reloading of AnchorDocking layouts. {{MantisLink|31834}}<br />
*r55084, r55148 Translations: French translation updates by Gilles Vasseur<br />
*r55093 codetools: fixed EnableCodeCompleteTemplates<br />
*r55096 IDE: package editor: publish: disable if units/includes outside pkg dir<br />
*r55098 IdeIntf: propedits: fix call stored method with index parameter if needed. {{MantisLink|31923}}<br />
*r55137 Translations: Japanese translation update by Haruyuki Fujimaki, bugs 31929, 31930, 31931<br />
*r55113 LCL: Implement TControl.AddHandlerOnMouseWheel/RemoveHandlerOnMouseWheel. Part of {{MantisLink|0031868}}.<br />
*r55114 TUpDown: Handle MouseWheel of Associate. {{MantisLink|0031868}}.<br />
*r55118 LCL: TTreeView: Win32 Fixed warning TResourceCacheItem.IncreaseRefCount 1000 TPenHandleCache. {{MantisLink|30661}}<br />
*r55122 LCL: TTreeView: Fix non-standard scrolling behaviour on selecting in multiline treeview. {{MantisLink|31681}}. Patch by Eric Heijnen.<br />
*r55109 LCL: TToolBar: remove in 1.7 introduced incompatiblity and use real values for ButtonHeight, ButtonWidth, ButtonDropWidth.<br />
*r55110 LCL: TTreeView: remove in 1.7 introduced incompatiblity and use real values for ExpandSignSize and Indent.<br />
*r55111 LCL: TTreeView: replace wrong property default for DefaultItemHeight with stored function<br />
*r55112 LCL: TTreeView: fix signs for r55110<br />
*r55126 LCL: listbox: fix default value for Options<br />
*r55116 IDE: Add some 200% component palette images (TDrawgrid, TEdit, TLabel, TStringGrid, TValueListEditor)<br />
*r55120 IDE: some more 200% component palette images (combobox, colorbox, button, bitbtn, colorbutton, labelededit, statictext, scrollbar, tabcontrol, pagecontrol).<br />
*r55123 IDE: Add component palette icons at 150% and 200% magnification (standard page complete)<br />
*r55124 IDE: Add palette icons for TButtonPanel, TSpeedButton, TShape at 150% and 200% magnification<br />
*r55128 IDE: Add more Mid/HiRes component palette icons (groupbox etc, updown, arrow, headercontrol, editbutton, (float)spinedit, colorlistbox)<br />
*r55132 IDE: Add component palette icons of all data-aware controls at 150% and 200% magnification.<br />
*r55134 IDE: IDE: Add component palette icons of htmlhelpdatabase and the propstorage components at 150% and 200% magnification.<br />
*r55135 IDE: Add palette images for TCheckListbox, TListView, TTreeView and TMaskEdit at 150% and 200% magnification<br />
*r55150 IDE + chmhelp: Add 150% and 200% icons for TXMLConfig, TChmHelpDatabase, TLHelpConnector.<br />
*r55129 TAChart: Avoid exception in IDE if Extent.Min >= Extent.Max<br />
*r55145 IDE: SpartaDockedFormEditor: Fixed AV when component from component palette is selected and no form unit is in the editor.<br />
*r55155 Debugger: Jump properly from call stack to include files. {{MantisLink|31755}}.<br />
*r55156 Finnish translation by Seppo Suutarla and myself.<br />
*r55157 IDE: Add 150% palette images for the LCL dialog components<br />
*r55158 IDE: Add 150% dialog palette images missing from previous commit.<br />
*r55159 docs: build_lcl_docs: updated, simulate shows both lazutils and lcl<br />
*r55161 docs: build_lcl_docs: showcmd shows --fpcdocs option<br />
*r55163 LCL: Grids: we need VisualChange and UpdateSizes also when handle is not allocated to access correct cache values. {{MantisLink|31955}}<br />
*r55164 LCL: grids: initialize scrollbar visibility info with correct values<br />
*r55167 docs: fixed xml<br />
*r55169 docs: build_lcl_docs: --footer<br />
*r55172 fixed spelling errors, bug 31956, from Paul Gevers<br />
*r55173 docs: fixed xml<br />
*r55177 IDE: Add 200% palette images for all dialog components<br />
*r55178 deb: fpc: install man pages if available<br />
*r55180 GTK2: Remove trailing NULL only when GTK_REMOVE_CLIPBOARD_NULL is defined. {{MantisLink|21453}} and {{MantisLink|31547}}.<br />
*r55181 IDE: Add magnified images (150% and 200%) for data access components<br />
*r55183 IDE: Add magnified (150% and 200%) component palette icons for packages sqlitelaz and sqlite3laz<br />
*r55185 Fix resource error due to r55183<br />
*r55201 codetools: fixed TEventsCodeTool.MethodTypeDataToStr for fpc 3.0+<br />
*r55202 IDE, OI: method propety editor: show inherited method without classname, treader does not support choosing the inherited<br />
*r55204 codetools: TEventsCodeTool.FindClassOfInstance: search unit in unitpath, the uses section is not enough<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54750 IDE: do not pass -B when option -k or -T changes, added resourcestring<br />
*r54752 IDE: parse namespaces from custom compiler options<br />
*r54757 lazutils: added MergeWithDelimiter<br />
*r54761 IDE: identifier completion: global property types, patch from Anton, bug ...<br />
*r54764 codetools: fixed compilation with fpc<3.1.1<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54768 codetools: basiccodetools: ReadDottedIdentifier, FindModuleNameInSource<br />
*r54770 codetools: use namespaces only for pas2js and fpc>30101<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54808 lazutils: fixed lazunicode compile under Delphi<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54822 codetools: fixed guesstype of copy()<br />
*r54828 codetools: added compiler directive switches $E, $G, $J, $O, $U<br />
*r54830 rtticontrols: updated example lpi<br />
*r54832 codetools: renamed cmsBlocks to cmsCBlocks, because less confusing<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54835 codetools: identifier completion: Delphi directives<br />
*r54837 codetools: parsing modeswitch on,off<br />
*r54839 codetools: set defines when setting modeswitches<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54850 IDE: menu designer: replaced some free with releasecomponent, controls ma...<br />
*r54852 IDE: menu designer: remove items via normal means<br />
*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)<br />
*r54856 IDE: fixed switching build mode in options dialog, bug 31787<br />
*r54858 IDE: menu designer: free shadowmenu via releasecomponent<br />
*r54860 codetools: added predefined fpc identifier get_frame<br />
*r54862 IDE: increased Max_Frame_Dump to 32<br />
*r54864 IDE: menu designer: do not call ProcessMessages<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54880 examples: removed obsolete openbrowser<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
*r54892 examples: fixed pascalstream with FPC 3.0+<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done 17 May 2017)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (Done 06 June 2017)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (maybe)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (ToDo)<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* SVN merge requests of this page<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
* Create new section on this page and move waiting merge requests to the new section<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.8_fixes_branch&diff=109824Lazarus 1.8 fixes branch2017-05-17T16:55:56Z<p>Valdir.marcos: /* Roadmap to 1.8.0 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8/ Lazarus 1.8 fixes] branch.<br />
<br />
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|Lazarus 1.6 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.8.0 release notes|here]]<br />
<br />
== Fixes for 1.8 RC2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer and waiting for testing (do not commit yet) ====<br />
*r54697 Gtk2: fixed triggering selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54791 Gtk2: implemented LCLIntf.ShowWindow(SW_RESTORE).Patch by AlexeyT. {{MantisLink|0031740}}<br />
*r54792 Carbon: implemented LCLIntf.ShowWindow(SW_RESTORE). Patch by Craig Peterson. {{MantisLink|0021816}}<br />
<br />
==== Submitted by developer / committer ====<br />
*r54948 lcl: grids: high-DPI: rewrite ColWidth&RowHeight scaling so that it's Delphi and Lazarus 1.6 compatible.<br />
*r54946 ide: rewrite (simplify) High-DPI icon scaling + support _150 and _200 variants for component images<br />
*r54949 lcl: grids: add (forgotten) *IsStored functions to DefaultColWidth and DefaultRowHeight properties. (related revision: r54948)<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.8 RC2 ===<br />
*r54938, r54944 Translations: Ukrainian translation updates by Olexandr Pylypchuk<br />
*r54895 lcl: grids: fix default TGridColumn width. {{MantisLink|31806}}<br />
*r54898 lcl: forms: scale TFrame the same as TForm. {{MantisLink|31807}}<br />
*r54899 CairCanvas: disable compilation for WinCE (there exists no cairo support on WinCE).<br />
*r54900 Printers4Lazarus: force fatal compilation error on WinCE platform, since the package is unsupported on this platform.<br />
*r54901 fpvectorial: Fix memory leak in dxf reader (http://forum.lazarus.freepascal.org/index.php/topic,36827.msg246126)<br />
*r54903 lcl: grids: always store valid column width. {{MantisLink|31806}}<br />
*r54904 IdeIntf: OI: High-DPI: restricted tab. Patch by AlexeyT, {{MantisLink|31778}}<br />
*r54905 IdeIntf: OI: High-DPI: value button. {{MantisLink|31784}}<br />
*r54913 lcl: colorbox: high-dpi: ColorRectWidth. {{MantisLink|31768}}<br />
*r54914 lcl: combobox, listbox: assign Font.PixelsPerInch to Canvas for custom draw events.<br />
*r54915 ide: codetoolsdefines dialog: high-DPI. Patch by AlexeyT, {{MantisLink|31774}}<br />
*r54916 ide: project options dialog: anchor top/bottom build modes button. {{MantisLink|31770}}<br />
*r54917 IdeIntf: OI: High-DPI: ValueComboBox.<br />
*r54918 grids: scale native bitmaps; ide: buildmodesmanager dialog: high-DPI check boxes. {{MantisLink|31771}}<br />
*r54922 ide: compiler_other_options frame: fix high-DPI. {{MantisLink|31779}}<br />
*r54923 Opkman: Fix high-DPI. {{MantisLink|31782}}<br />
*r54924 ide: about dialog: high-DPI. {{MantisLink|31776}}<br />
*r54925 ide editorfilemanager dialog: high-DPI. {{MantisLink|31775}}<br />
*r54926 lcl: groupededit: fix TabStop mechanism. {{MantisLink|31811}}<br />
*r54927 lcl: control: apply constraints to new size in DoAutoAdjustLayout and update top/left if bottom/right aligned. Fixes {{MantisLink|31772}}<br />
*r54928 ideintf: objectinspector: fix high-dpi in custom property grids. {{MantisLink|31769}}<br />
*r54929 lazcontrols: lvlgraphctrl: high-DPI. {{MantisLink|31781}}<br />
*r54930 lcl: groupededit: fix TabStop mechanism (fix regression after r54926). {{MantisLink|31811}}, {{MantisLink|31229}}<br />
*r54932 ide, designer: high-DPI: scale non-visual components. {{MantisLink|31812}}<br />
*r54934 ide: images: new high-dpi designed icons by FTurtle, {{MantisLink|31815}}<br />
*r54941 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes.<br />
*r54942 Qt5: cbindings - implemented QMargins, QSurface, QSurfaceFormat, QBackingStore, QScreen and QWindow classes (qt56.pas).<br />
<br />
== Fixes for 1.8 RC1 (merged) ==<br />
*r54585 Qt,Qt5: do not process events after modal form is hidden, otherwise we can have av if formclose contain caFree.<br />
*r54586 Qt: simplified code.<br />
*r54588 examples: fixed testall.lpi<br />
*r54589 Qt,Qt5: do not eat cpu with gtk theme. {{MantisLink|31191}}<br />
*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.<br />
*r54594 LazControls: Apply filter also at start in ListFilterEdit and ListviewFilterEdit. {{MantisLink|31632}}.<br />
*r54596 translations: German: updates from Swen Heinig<br />
*r54597 LazControls: Apply filter also at start in TreeFilterEdit. {{MantisLink|31632}}.<br />
*r54599 Qt,Qt5: fixed potential memleak with TQtWSDragImageList when bitmap handle is null.<br />
*r54600 LCL-Win32: Fix range error in ComboBoxWindowProc. Use SetWindowLong from LCLIntf. {{MantisLink|31635}}.<br />
*r54618 Lazreport: fix column number {{MantisLink|31544}}.<br />
*r54619 LazReport: fix export from LazReport to pdf (fclpdf), from Aleksey Lagunov {{MantisLink|31659}}<br />
*r54624 LCL: TGroupBox: Win32: Fix for doubled caption. {{MantisLink|31670}}.<br />
*r54627, r54656, r54657 LCL: TSpinEdit: Win32: Fixed Z-order problem with TSpinEdit. {{MantisLink|27862}}<br />
*r54631 IDE: useunit dialog: fixed adding unit to program uses section<br />
*r54632 codetools: fixed predefined identifiers delphi, fpc, pas2js<br />
*r54633 GTK2, GTK3: In DrawText support prefixed UTF-8 codepoints. {{MantisLink|31674}}.<br />
*r54638 codetools: delphi predefined identifiers: nativeint, bools<br />
*r54639 codetools: referenceto: fixed endpos<br />
*r54641 codetools: keywordfunclists: use fast property Count<br />
*r54643 codetools: ctnReferencTo for typeinfo, code hints and type check<br />
*r54648 IDE images: new images menu_view_components, menu_view_inspector, menu_view_messages, menu_view_search_results. Designed by FTurtle, {{MantisLink|31625}}<br />
*r54650 codetools: fixed resolving function result, simplified code<br />
*r54651 DateTimePicker - OnChange fires twice {{MantisLink|0031679}}<br />
*r54654 Qt, Qt5: fixed av because parent can be nil. {{MantisLink|31684}}<br />
*r54655 Gtk3: removed gdk_pixbuf_gettext which does not exist in gdk-pixbuf. {{MantisLink|31677}}<br />
*r54660 codetools: added nativeint, nativeuint for pas2js<br />
*r54666 codetools: added unique ids for bug reports<br />
*r54667 codetools: fixed recognizing str<br />
*r54670 codetools: fixed code completion for v in constset<br />
*r54672 codetools: debug gather unit names<br />
*r54675 codetools: fixed error msg<br />
*r54677 IDE: do not check package source directory of a manual package<br />
*r54680 fpcunit: consolerunner: use lazutils instead of lcl<br />
*r54683 codetools: linkscanner: unique ids for errors<br />
*r54685 codetools: sourcechangecache and directiveparser: unique ids for errors<br />
*r54687 codetools: fixed id on unknown exception<br />
*r54689 codetools: define template directory: fixed skipping empty directory<br />
*r54691 cody: identifier dictionary: use identifier: fixed jumping to syntax error<br />
*r54693 codetools: code completion: add proc for procvar: fixed reference-to<br />
*r54694 Qt, Qt5: fixed selection with TListView. {{MantisLink|0031595}}<br />
*r54696 Qt, Qt5: fixed triggering of selection change in TCheckListBox. {{MantisLink|0031697}}<br />
*r54698 TAChart: Change default value of TFitSeries.Pointer.Visible to false for backward-compatibility<br />
*r54707 Qt, Qt5: trigger OnSelectionChanged for first click. Part of {{MantisLink|0031697}}<br />
*r54710 Qt, Qt5: fixed wrong key release event after pressing ENTER in combobox dropdown list. {{MantisLink|0031574}}<br />
*r54713 codetools: fixed modeswitch name blocks to cblocks<br />
*r54715 codetools: added $mode ExtPas, load hidden units MacPas, ISO7185, ExtPas, BlockRTL<br />
*r54718 IDE: fixed compilation, bug 31711<br />
*r54720 codetools: parse multi dim arrays, patch from Paul W, issue 25045<br />
*r54724 IDE: identifier completion: do not auto complete single possibility when invoked by timer<br />
*r54727 codetools: fixed compilation with fpc 2.6.4<br />
*r54730 codetools: fixed parsing array<br />
*r54738 codetools: fixed find declaration of dotted unit name identifiers, improved identifier completion for namespaces<br />
*r54741 codetools: identifier completion: list each namespace only once<br />
*r54746 codetools: search units with namespaces<br />
*r54748 IDE: sourceeditor completion box: namespaces<br />
*r54743 Qt5: added QBuffer class, needed for saving and loading streams where QIODevice is needed. eg QImage<br />
*r54722 lcl: forms: don't check for old value in UpdateShowInTaskBar. {{MantisLink|31248}}, patch by Michl<br />
*r54732 lcl: grids: fix endless loop "paint->update scrollbars->paint". {{MantisLink|31518}}.<br />
*r54733 lcl: grids: don't invalidate grid when changing bounds if not necessary. {{MantisLink|31518}}.<br />
*r54765 LCL-GTK2: A workaround to prevent a complete freeze with menu separators. {{MantisLink|31138}}.<br />
*r54771 IDE: regenerated translations and updated Russian translation<br />
*r54772 IDE: Spanish translation update by Alonso Cárdenas Márquez, bug 31731<br />
*r54766 LCL: TTrayIcon: Win32: Fixed SIGSEGV after closing app. {{MantisLink|0029739}}<br />
*r54777 Qt, Qt5: set correct timestamp when using X11Raise(), some wm's complains about it.<br />
*r54778 Qt5: do not use x11 timestamp workaround as qt4 uses. Qt5 uses libxcb which handles timestamps well.<br />
*r54779 Qt: reverted using unixdatetime instead of x11 CurrentTime const because problem is in buggy wm not in our code.<br />
*r54781 LCL: TPageControl: Win32: Fixed Pagecontrol does show space for tabs, but no tabs in it. {{MantisLink|0019278}}<br />
*r54785 Translations: Hungarian translation update by Péter Gábor, bug 31739<br />
*r54799 ide: images: anchor editor. Designed by FTurtle, {{MantisLink|31730}}<br />
*r54802 Qt,Qt5: fixed regression from r54696. {{MantisLink|31697}}<br />
*r54809 MenuDesigner: Fixed adding a line separator at last position. {{MantisLink|0031744}}<br />
*r54833 DbEditMask example: Fix ShortDateFormat, it raised an exception.<br />
*r54845 LazUtf8: fix compilation for WinCE. {{MantisLink|0031788}}.<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*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)<br />
*r54866 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 31783<br />
*r54872 lhelp: Fix lhelp to show popup hints. {{MantisLink|31732}}.<br />
*r54874 Menu designer: Call GlobalDesignHook.Modified after adding an item. {{MantisLink|31791}}.<br />
*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)<br />
*r54876 Examples: Fix demo fontenum ignoring some user input (http://forum.lazarus.freepascal.org/index.php/topic,36839.0.html)<br />
*r54877 Examples: Minor improvements of sample project motiongraphics (http://forum.lazarus.freepascal.org/index.php/topic,36858.msg245986.html)<br />
*r54878 Examples: Improved usability of demo "openurltest".<br />
*r54881 Examples: Fix crash of demo "propstorage" (http://forum.lazarus.freepascal.org/index.php/topic,36862.msg246019/topicseen.html).<br />
*r54812 lcl: grids: disable VisualChange and UpdateSizes if AutoSize is disabled. Solves part of {{MantisLink|31715}}<br />
*r54813 lcl: support for DebugDisableAutoSizing compiler define<br />
*r54815 lcl: wincontrol: ignore FBoundsRealized in WM_SIZE. Solves part of {{MantisLink|31715}}<br />
*r54816 lcl: grids: Hi-DPI: row heights and column width. New default (system) value is -1. Solves part of {{MantisLink|31715}}<br />
*r54817 lcl: grids: ignore WMSIZE when updating scrollbars. Solves part of {{MantisLink|31715}}<br />
*r54840 lcl: grids: fix scrolling after r54816, {{MantisLink|31715}}<br />
*r54841 lcl: grids: scroll to highest possible value if col/row are out of valid bounds. Related to {{MantisLink|31766}}<br />
*r54842 lcl: dbgrids: adapt after r54816. {{MantisLink|31765}} and {{MantisLink|31715}}<br />
*r54843 ide: packager: adapt after r54816. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54844 lcl: grids: make GetDefaultRowHeight and *ColWidth public. {{MantisLink|31762}} and {{MantisLink|31715}}<br />
*r54848 ide: new icons designed by FTurtle, {{MantisLink|31789}}<br />
*r54882 lcl: grids: make default value for DefRowHeight and DefColWidth 0 and not -1 (due to LCL consistency). {{MantisLink|31715}}<br />
*r54888 docs: update TCustomGrid.DefColWidth, TCustomGrid.DefRowHeight, TToolBar.ButtonHeight, TToolBar.ButtonWidth, TToolBar.DropDownWidth, TCustomTreeView.ExpandSignSize, TCustomTreeView.Indent<br />
<br />
== Roadmap to 1.8.0 ==<br />
The release process will consist of the following steps.<br />
* Creation of the SVN 1.8 fixes branch. (Done 08 Apr 2017)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
* Release of 1.8.0 RC 1 (Done 17 May 2017)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 2 (ToDo)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of 1.8.0 RC 3 (maybe)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
* Release of Lazarus 1.8 (ToDo)<br />
<br />
Users can download the new stable version.<br />
<br />
=== Tests ===<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version in fixes_1_8 branch<br />
** 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<br />
** lazarus/ide/version.inc 1.8.0RC1 for RC1, no spaces! (1.8.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.8.0.1 for RC1, 1.8.0.2 for RC2, ... 1.8.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.8.0-1 for RC1, 1.8.0-2 for RC2, ... 1.8.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist<br />
*** CFBundleShortVersionString "1.8.0"<br />
*** CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_8 branch to tags/release_1_8_0_RC1 (or tags/lazarus_1_8_0 for final release)<br />
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'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=SqlDBHowto&diff=104236SqlDBHowto2016-09-23T23:01:27Z<p>Valdir.marcos: /* How to execute direct queries/make a table? */</p>
<hr />
<div>{{SqlDBHowto}}<br />
<br />
{{Note|This page started as a translation of [[SqlDBHowto/nl]]. Initially, the Dutch text was leading, meanwhile, the two articles have been synchronized.}}<br />
<br />
{{Infobox databases}}<br />
<br />
This text is setup as a 'how-to'. I want to answer a number of questions one by one, and explain how you can use the various classes. All those questions are put one after the other and form a sort of tutorial. <br />
<br />
I will try to word it in such a way that the text can be used for Lazarus as well as FreePascal. However, the examples are for FreePascal (i.e. they are console applications.)<br />
<br />
== Where can I find official documentation? ==<br />
Please see the official documentation at [http://www.freepascal.org/docs-html/fcl/sqldb/index.html SQLDB documentation]. <br />
<br />
== How to connect to a database server? ==<br />
SqlDB doesn't connect to a database server directly but uses a client that corresponds to the used database server. SqlDB sends the commands to the client library; the client library connects to the database and and transfers the commands. This means that a client library must be installed on the computer to make a connection to a database. Under Windows a client is usually a .dll, under Linux an .so and under OS/X a .dylib.<br />
<br />
When the client library is installed properly you can connect to a database server using a TSQLConnection component. Various TSQLConnection components are available for different database servers (see [[SQLdb_Package]]):<br />
* Firebird/Interbase: [[TIBConnection]]<br />
* MS SQL Server: [[TMSSQLConnection]] (available since FPC 2.6.1)<br />
* MySQL v4.0: [[TMySQL40Connection]] <br />
* MySQL v4.1: [[TMySQL41Connection]] <br />
* MySQL v5.0: [[TMySQL50Connection]] <br />
* MySQL v5.1: [[TMySQL51Connection]] (available since FPC version 2.5.1<br />
* MySQL v5.5: [[TMySQL55Connection]] (available since Lazarus 1.0.8/FPC version 2.6.2<br />
* MySQL v5.6: [[TMySQL56Connection]] (available in Lazarus 1.2.4/FPC version 2.6.4<br />
* ODBC: [[TODBCConnection]] (see [[ODBCConn#TODBCConnection]])<br />
* Oracle: [[TOracleConnection]] (see [[Oracle]])<br />
* PostgreSQL: [[TPQConnection]] (see [[postgresql#SQLDB]])<br />
* Sqlite3: [[TSQLite3Connection]] (available since FPC version 2.2.2, see [[SQLite#Built-in_SQLDB]]) <br />
* Sybase ASE: [[TSybaseConnection]] (available since FPC 2.6.1, see [[Lazarus_Database_Overview#Lazarus_and_MSSQL.2FSybase|Lazarus and MSSQL/Sybase]])<br />
<br />
Note for MySQL - There are many differences between the client versions to the extent that the clients and connections cannot be interchanged. If a MySQL client library version 4.1 is installed, you have to use a TMySQL41Connection. This is not related to the MySQL server; using the MySQL 4.1 client library you can probably connect to a MySQL 5.0 server (see MySQL documentation regarding what combinations are supported).<br />
<br />
Although details differ for the various databases, in general you need to set four properties to connect to a database server: <br />
* the server name or IP address<br />
* the name of the database<br />
* the username <br />
* the password<br />
When these properties are set, you can create a connection with the 'open' method. If the connection fails, a EDatabaseError exception is thrown. Use the property 'connected' to test if a connection has been made with the database server. Use the 'close' method to end the connection with the server.<br />
<br />
<syntaxhighlight><br />
Program ConnectDB;<br />
<br />
function CreateConnection: TIBConnection;<br />
begin<br />
result := TIBConnection.Create(nil);<br />
result.Hostname := 'localhost';<br />
result.DatabaseName := '/opt/firebird/examples/employee.fdb';<br />
result.UserName := 'sysdba';<br />
result.Password := 'masterkey';<br />
end;<br />
<br />
var <br />
AConnection : TIBConnection;<br />
<br />
begin<br />
AConnection := CreateConnection;<br />
AConnection.Open;<br />
if Aconnection.Connected then<br />
writeln('Successful connect!')<br />
else<br />
writeln('This is not possible, because if the connection failed, ' +<br />
'an exception should be raised, so this code would not ' +<br />
'be executed');<br />
AConnection.Close;<br />
AConnection.Free;<br />
end.<br />
</syntaxhighlight><br />
<br />
If an exception is thrown, read the error message carefully. It may be that the database server is not running, the user name or password are incorrect or the database name or IP address are typed incorrectly. If the error message states that the client library cannot be found, then check if the client is installed correctly. Often the error message states literally the name of the file looked for.<br />
<br />
== How to execute direct queries/make a table? ==<br />
<br />
SqlDB - the name says it all - only works with database server that make use of SQL. SQL stands for 'Structured Query Language' SQL is a language developed to allow working with relational databases. Virtually every database system has its own dialect, but a large number of SQL statements are the same for all database systems.<br />
<br />
In FPC, there is a difference between:<br />
* SQL statements that return information (a dataset). For this, you have to use the TSQLQuery component; see [[#How to read data from a table?]]. <br />
* statements that do not return information but do something else, e.g. update data. For this, you may also use the 'ExecuteDirect' method of a TSQLConnection. (You can also use this if you get a dataset back but are not interested in the results, e.g. in a selectable stored procedure).<br />
<br />
Most database system execute SQL statements within a transaction. If you want changes made within a transaction available in other transactions, or have those changes available even after closing the transaction(!), then you have to 'commit' the transaction. <br />
<br />
To support transactions Sqldb contains the TSQLTransaction component. A SQL statement that is executed by Sqldb must always be executed within a transaction, even if the database system does not support transactions. Also, there are database systems that do support transaction for which TSQLConnection does not (yet) support transaction. Even then, you must use the TSQLTransaction component.<br />
<br />
To use <tt>TSQLConnection.ExecuteDirect</tt> to execute a SQL statement you must specify which 'Transaction' must be used. In turn, to use TSQLTransaction you must specify which TSQLConnection component must be used.<br />
<br />
The following example creates a table 'TBLNAMES' with fields 'NAME' and 'ID' and inserts two records. The used SQL statements are not explained. For more information about the SQL statements, their use and syntax, please refer to the database system documentation. The procedure 'CreateConnection' is defined in the code example in [[#How to connect to a database server?]] above.<br />
<br />
<syntaxhighlight>program CreateTable;<br />
<br />
function CreateTransaction(pDB: TIBConnection): TSQLTransaction;<br />
begin<br />
result := TSQLTransaction.Create(pDB);<br />
result.Database := pDB;<br />
end;<br />
<br />
var <br />
AConnection : TSQLConnection;<br />
ATransaction : TSQLTransaction;<br />
<br />
begin<br />
AConnection := CreateConnection;<br />
ATransaction := CreateTransaction(AConnection);<br />
AConnection.Transaction := ATransaction;<br />
AConnection.Open;<br />
ATransaction.StartTransaction;<br />
AConnection.ExecuteDirect('create table TBLNAMES (ID integer, NAME varchar(40));'); <br />
<br />
// Some database-server types need a commit before you can use a newly created table. (Firebird)<br />
// With .Commit you also close the transaction<br />
ATransaction.Commit; <br />
<br />
ATransaction.StartTransaction;<br />
AConnection.ExecuteDirect('insert into TBLNAMES (ID,NAME) values (1,'Name1');'); <br />
AConnection.ExecuteDirect('insert into TBLNAMES (ID,NAME) values (2,'Name2');'); <br />
ATransaction.Commit; <br />
AConnection.Close;<br />
AConnection.Free;<br />
ATransaction.Free;<br />
end.</syntaxhighlight><br />
<br />
== How to read data from a table? ==<br />
Use the TSQLQuery component to read data from a table. A TSQLQuery component must be connected to a TSQLConnection component and a TSQLTransaction component to do its work. Setting the TSQLConnection and TSQLTransaction is discussed in [[#How to connect to a database server? ]] and [[#How to execute direct queries/make a table?]]. <br />
<br />
When the TSQLConnection, TSQLTransaction and TSQLQuery are connected, then TSQLQuery needs to be further configured to work. TSQLQuery has a 'SQL' property containing a TStrings object. The 'SQL' property contains a SQL statement that must be executed. If all data from a table <tt>tablename</tt> must be read, then set the 'SQL' property to:<br />
<syntaxhighlight lang="sql">'SELECT * FROM tablename;'</syntaxhighlight>.<br />
<br />
Use 'open' to read the table from the server and put the data in the TSQLQuery dataset. The data can be accessed through TSQLQuery until the query is closed using 'close'.<br />
<br />
TSQLQuery is a subclass of TDataset. TDataset has a 'Fields' collection that contains all columns of the table. The TDataset also keeps track of the current record. Use 'First', 'Next', 'Prior' and 'Last' to change the current record. 'Bof' returns 'True' if the first record is reached, and 'Eof' returns 'True' if the last record is reached. To read the value of a field in the current record, first find the right 'TField' object and then use 'AsString', 'AsInteger', etc.<br />
<br />
=== Example: reading data from a table ===<br />
Below is an example that displays all values of the table as it was made in [[#How to execute direct queries/make a table?]] above.<br />
<br />
<syntaxhighlight>Program ShowData;<br />
<br />
function CreateQuery(pConnection: TIBConnection; pTransaction: TSQLTransaction): TSQLQuery;<br />
begin<br />
result := TSQLQuery.Create(nil);<br />
result.Database := pConnection;<br />
result.Transaction := pTransaction<br />
end;<br />
<br />
var <br />
AConnection : TSQLConnection;<br />
ATransaction : TSQLTransaction;<br />
Query : TSQLQuery;<br />
<br />
begin<br />
AConnection := CreateConnection;<br />
ATransaction := CreateTransaction(AConnection);<br />
Query := CreateQuery(AConnection, ATransaction);<br />
Query.SQL.Text := 'select * from tblNames';<br />
AConnection.Open;<br />
Query.Open;<br />
while not Query.Eof do<br />
begin<br />
Writeln('ID: ', Query.FieldByName('ID').AsInteger, 'Name: ' +<br />
Query.FieldByName('Name').AsString);<br />
Query.Next;<br />
end;<br />
Query.Close;<br />
AConnection.Close;<br />
Query.Free;<br />
ATransaction.Free;<br />
AConnection.Free;<br />
end.</syntaxhighlight><br />
<br />
(The code above of course is not quite finished, it misses 'try...finally' blocks. However, the above code intends to show the database code and thus the finishing touches are left out.)<br />
Please note that 'TSQLTransaction.StartTransaction' is not used. This is not necessary. When TSQLQuery is opened, the SQL statement is executed and if no transaction is available then a transaction is automatically started. The programmer does not need to start the transaction explicitly.<br />
The same applies for the connection maintained by TSQLConnection. The connection is opened as needed, the line 'Aconnection.Open' is not really required.<br />
If a TSQLTransaction is destroyed, an automatic 'rollback' will be executed. '''Possible changes to data contained in the transaction will be lost.'''<br />
<br />
=== Why does TSQLQuery.RecordCount always return 10? ===<br />
To count the records in a dataset, use '.RecordCount'. However, notice that '.RecordCount' shows the number of records that is already loaded from the server. For performance reasons, SqlDB does not read all records when opening TSQLQuery by default, only the first 10. Only when the eleventh record is accessed will the next set of 10 records be loaded, etc. Using '.Last', all records will be loaded. <br />
<br />
When you want to know the real number of records on the server you can first call '.Last' and then call '.RecordCount'. <br />
<br />
An alternative is available. The number of records returned by the server is set by the '.PacketRecords' property. The default value is 10; if you make it -1 then all records will be loaded at once.<br />
<br />
In current stable FPC, '.RecordCount' does not take filters into account, i.e. it shows the unfiltered total.<br />
<br />
If you need the exact number of records, it often is a better idea to directly query the number of records in a query using another SQL query, but you would have to do that in the same transaction, as other transactions may have changed the number of records in the meanwhile.<br />
<br />
=== Lazarus ===<br />
Lazarus has various components to show data from a TDataset on a form. Instead of a While-loop and Writeln statements as used above, you can use the components to show the data in a table. Place the right TSQLConnection, TSQLTransaction and TSQLQuery components on a form, then connect them and set them properly. In addition you will need a TDatasource; set the 'TDatasource.Dataset' property to the TSQLQuery component you used. ('''Note''' do not set the 'TSQLQuery.Datasource' property to the TDatasource compnent you used. The 'TSQLQuery.Datasource' property is used only in master-detail tables - see [[MasterDetail]]) Subsequently you may put a TDBGrid onto the form and set the 'Datasource' property of the grid to the TDatasource component you added before.<br />
<br />
To see if it all works, set the 'Connected' property of the TSQLConnection to 'True' in the Lazarus IDE. The IDE will try to connect to the database server immediately. If this works you can set the 'TSQLQuery.Active' property to 'True'. If everything is right, you will see - within the IDE - all data from the table immediately on the screen.<br />
<br />
== How to change data in a table? ==<br />
To change the data in a record, the TDataset (from which TSQLQuery is derived) must be set to edit mode. To enter edit mode call the '.Edit', '.Insert' or '.Append' methods. Use the '.Edit' method to change the current record. Use '.Insert' to insert a new record before the current record. Use '.Append' to insert a new record at the end of the table. In edit mode you can change field values through the 'Fields' property. Use 'Post' to validate the new data, if the data is valid then the edit mode is left. If you move to another record - for example by using '.Next' - and the dataset is in edit mode, then first '.Post' is called. Use '.Cancel' to discard all changes you made since the last '.Post' call and leave the edit mode.<br />
<br />
<syntaxhighlight>Query.Edit;<br />
Query.FieldByName('NAME').AsString := 'Edited name';<br />
Query.Post;</syntaxhighlight><br />
<br />
The above is not the complete story yet. TSQLQuery is derived from TBufDataset which makes use of buffered updates. Buffered update means that after you called 'Post' the changes in the dataset are visible immediately, but they are not sent to the database server. What does happen is that the changes are maintained in a change log. When the '.ApplyUpdates' method is called, then all changes in the change log are sent to the database. Only then will database server know of the changes. The changes are sent to the server within a transaction of TSQLTransaction. Make sure to properly set the transaction before 'ApplyUpdates'. After applying the updates, a commit must be executed to save the changes on the database server.<br />
<br />
The below is an example of changing the data in a table, sending the changes to the server and comitting the transaction.<br />
<br />
<syntaxhighlight>Program EditData;<br />
<br />
var <br />
AConnection : TSQLConnection;<br />
ATransaction : TSQLTransaction;<br />
Query : TSQLQuery;<br />
<br />
begin<br />
AConnection := CreateConnection;<br />
ATransaction := CreateTransaction(AConnection);<br />
AConnection.Transaction := ATransaction;<br />
Query := CreateQuery(AConnection, ATransaction);<br />
Query.SQL.Text := 'select * from tblNames';<br />
Query.Open;<br />
Query.Edit;<br />
Query.FieldByName('NAME').AsString := 'Edited name';<br />
Query.Post;<br />
Query.UpdateMode := upWhereAll;<br />
Query.ApplyUpdates;<br />
ATransaction.Commit;<br />
Query.Free;<br />
ATransaction.Free;<br />
AConnection.Free;<br />
end.</syntaxhighlight><br />
<br />
For a discussion of 'UpdateMode' continue reading.<br />
<br />
== How does SqlDB send the changes to the database server? ==<br />
In the code example in [[#How to change data in a table?]], you will find the line<br />
<syntaxhighlight>Query.UpdateMode := upWhereAll;</syntaxhighlight><br />
without explanation of what it does. The best way to find out what that line does is to leave it out. If you leave out the statement and the followed this howto precisely, then you will receive the following error message:<br />
No update query specified and failed to generate one. (No fields for inclusion in where statement found)<br />
To understand what went wrong, you must understand how changes are sent to the database server. The only way to get data in a SQL server is by executing SQL queries. SQL has three types of queries for three different ways of manupulating a record. To create a new record, change or delete a record insert, update and delete statements are executed respectively. An update statement may be as follows:<br />
<syntaxhighlight lang="sql">update TBLNAMES set NAME='Edited name' where ID=1;</syntaxhighlight><br />
To send a change to the database server, Sqldb must assemble an update query. To assemble the query, three things are needed:<br />
; The name of the table : The table name is retrieved from parsing the select query, although this doesn't always work. <br />
; <tt>UPDATE</tt> or <tt>INSERT</tt> clause : These contain the fields that must be changed.<br />
; <tt>WHERE</tt> clause : This contains the fields that determine which records should be changed.<br />
<br />
Every field (each ''TField'' in ''Fields'') has a ProviderFlags property. Only fields with '''pfInUpdate''' in ''ProviderFlags'' will be used in the update or insert cluase of a query. By default all fields have ''pfInUpdate'' set in their ''ProviderFlags'' property.<br />
<br />
Which fields are used in the <tt>WHERE</tt> clause depends on the ''UpdateMode'' property of the query and the ''ProviderFlags'' property of the fields. Fields with ''pfInkey'' in their ''ProviderFlags'' are always used in the <tt>WHERE</tt> clause. A field will have the ''pfInKey'' flag set automatically if the field is part of the primary key of the table and 'TSQLQuery.UsePrimaryKeyAsKey' returns 'True'.<br />
<br />
The default value for ''UpdateMode'' of the query is ''upWhereKeyOnly''. In this update mode only fields with ''pfInkey'' in their ''ProviderFlags'' property are used in the <tt>WHERE</tt> clause. If none of the fields have their ''pfInKey'' flag set, then no fields are available for the <tt>WHERE</tt> clause and the error message from the beginning of this section will be returned. You can solve the issue by:<br />
* Adding a primary key to the table and set ''TSQLQuery.UsePrimaryKeyAsKey'' to 'True', or<br />
* Setting the ''pfInkey'' flag for one or more fields in code.<br />
<br />
The '''UpdateMode''' property knows two more possible values. 'upWhereAll' can be used to add all fields with the 'pfInWhere' flag set to the <tt>WHERE</tt> clause. By default all fields have this flag set. 'upWhereChanged' can be used to add only those fields that have the 'pfInWhere' flag set '''and''' that are changed in the current record.<br />
<br />
== How to execute a query using TSQLQuery? ==<br />
Next to statements that return a dataset (see [[#How to read data from a table?]]) SQL has statements that do not return data. For example <tt>INSERT</tt>, <tt>UPDATE</tt> and <tt>DELETE</tt> statements do not return data. These statements can be executed using ''[[#How to execute direct queries/make a table?|TSQLConnection.ExecuteDirect]]'', but TSQLQuery can also be used. If you do not expect return data use ''TSQLQuery.ExecSQL'' instead of ''TSQLQuery.Open''. As mentioned earlier, use ''TSQLQuery.Open'' to open the dataset returned by the SQL statement. <br />
<br />
The following procedure creates a table and inserts two records using TSQLQuery.<br />
<br />
<syntaxhighlight>procedure CreateTable;<br />
<br />
var <br />
Query : TSQLQuery;<br />
<br />
begin<br />
Query := CreateQuery(AConnection, ATransaction);<br />
Query.SQL.Text := 'create table TBLNAMES (ID integer, NAME varchar(40));';<br />
Query.ExecSQL;<br />
<br />
Query.SQL.Text := 'insert into TBLNAMES (ID,NAME) values (1,''Name1'');';<br />
Query.ExecSQL;<br />
<br />
Query.SQL.Text := 'insert into TBLNAMES (ID,NAME) values (2,''Name2'');';<br />
Query.ExecSQL;<br />
<br />
Query.Close;<br />
Query.Free;<br />
end;</syntaxhighlight><br />
<br />
== How to use parameters in a query? ==<br />
In the code example of [[#How to execute a query using TSQLQuery?]] the same query is used twice, only the values to be inserted differ. A better way to do this is by using parameters in the query. <br />
<br />
The syntax of parameters in queries is different per database system, but the differences are handled by TSQLQuery. Replace the values in the query with a colon followed by the name of the parameter you want to use. For example:<br />
<syntaxhighlight>Query.SQL.Text := 'insert into TBLNAMES (ID,NAME) values (:ID,:NAME);';</syntaxhighlight><br />
<br />
This query will create two parameters: 'ID' and 'NAME'.<br />
To determine the parameters, the query is parsed at the moment the text of ''TSQLQuery.SQL'' is assigned or changed. All existing parameters will be removed and the new parameters will be added to the 'TSQLQuery.Params' property. Assigning a value to a parameter is similar to assigning a value to a field in the dataset:<br />
<syntaxhighlight>Query.Params.ParamByName('Name').AsString := 'Name1'</syntaxhighlight>;<br />
<br />
You can't tell from the query what kind of data must be stored in the parameter. The data type of the parameter is determined at the moment a value is first assigned to the parameter. By assigning a value using '.AsString', the parameter is assigned the data type 'ftString'. You can determine the data type directly by setting the 'DataType' property. If an incorrect datatype is assigned to the parameter, then problems will occur during opening or executing the query.<br />
See [[Database field type]] for more information on data types.<br />
<br />
=== Select query ===<br />
An example of a select query with parameters would be to change something like this:<br />
<syntaxhighlight><br />
Query.SQL.Text := 'select ID,NAME from TBLNAMES where NAME = '''+Edit1.Text+''' ORDER BY NAME ';<br />
</syntaxhighlight><br />
to something like this:<br />
<syntaxhighlight><br />
Query.SQL.Text := 'select ID,NAME from TBLNAMES where NAME = :NAMEPARAM ORDER BY NAME ';<br />
Query.Params.ParamByName('NAMEPARAM').AsString := Edit1.Text;<br />
</syntaxhighlight><br />
<br />
=== Example ===<br />
The following example creates the same table as the previous example, but now parameters are used:<br />
<br />
<syntaxhighlight><br />
procedure CreateTableUsingParameters;<br />
<br />
var <br />
Query : TSQLQuery;<br />
<br />
begin<br />
Query := CreateQuery(AConnection, ATransaction);<br />
Query.SQL.Text := 'create table TBLNAMES (ID integer, NAME varchar(40));';<br />
Query.ExecSQL;<br />
<br />
Query.SQL.Text := 'insert into TBLNAMES (ID,NAME) values (:ID,:NAME);';<br />
Query.Prepare;<br />
<br />
Query.Params.ParamByName('ID').AsInteger := 1;<br />
Query.Params.ParamByName('NAME').AsString := 'Name1';<br />
Query.ExecSQL;<br />
<br />
Query.Params.ParamByName('ID').AsInteger := 2;<br />
Query.Params.ParamByName('NAME').AsString := 'Name2';<br />
Query.ExecSQL;<br />
<br />
//Query.UnPrepare; // no need to call this; should be called by Query.Close<br />
Query.Close;<br />
Query.Free;<br />
end;<br />
</syntaxhighlight><br />
<br />
Notice that this example requires more code than the example without the parameters. Then what is the use of using parameters? <br />
<br />
Speed is one of the reasons. The example with parameters is faster, because the database server parses the query only once (in the .Prepare statement or at first run). <br />
<br />
Another reason to use prepared statements is prevention of [http://en.wikipedia.org/wiki/SQL_injection SQL-injection] (see also [[Secure programming]]. <br />
<br />
Finally, in some cases it just simplifies coding.<br />
<br />
== Troubleshooting: TSQLConnection logging ==<br />
You can let a TSQLConnection log what it is doing. This can be handy to see what your Lazarus program sends to the database exactly, to debug the database components themselves and perhaps to optimize your queries.<br />
NB: if you use prepared statements/parametrized queries (see section above), the parameters are often sent in binary by the TSQLConnection descendent (e.g. TIBConnection), so you can't just copy/paste the logged SQL into a database query tool.<br />
Regardless, connection logging can give a lot of insight in what your program is doing.<br />
<br />
Alternatives are: <br />
# you can use the debugger to step through the database code if you have built FPC (and Lazarus) with debugging enabled. <br />
# if you use ODBC drivers (at least on Windows) you could enable tracelog output in the ODBC control panel.<br />
# many databases allow you to monitor all statements sent to it from a certain IP address/connection.<br />
<br />
<br />
If you use TSQLConnection logging, two things are required:<br />
# indicate which event types your TSQLConnection should log<br />
# point TSQLConnection at a function that receives the events and processes them (logs them to file, prints them to screen, etc.).<br />
That function must be of type TDBLogNotifyEvent (see sqldb.pp), so it needs this signature:<br />
<syntaxhighlight><br />
TDBLogNotifyEvent = Procedure (Sender : TSQLConnection; EventType : TDBEventType; Const Msg : String) of object;<br />
</syntaxhighlight><br />
<br />
=== FPC (or: the manual way) ===<br />
A code snippet can illustrate this:<br />
<syntaxhighlight><br />
uses<br />
...<br />
TSQLConnection, //or a child object like TIBConnection, TMSSQLConnection<br />
...<br />
var<br />
type <br />
TMyApplication = class(TCustomApplication); //this is our application that uses the connection<br />
...<br />
private<br />
// This example stores the logged events in this stringlist:<br />
FConnectionLog: TStringList;<br />
...<br />
protected<br />
// This procedure will receive the events that are logged by the connection:<br />
procedure GetLogEvent(Sender: TSQLConnection; EventType: TDBEventType; Const Msg : String);<br />
...<br />
procedure TMyApplication.GetLogEvent(Sender: TSQLConnection;<br />
EventType: TDBEventType; const Msg: String);<br />
// The procedure is called by TSQLConnection and saves the received log messages<br />
// in the FConnectionLog stringlist<br />
var<br />
Source: string;<br />
begin<br />
// Nicely right aligned...<br />
case EventType of<br />
detCustom: Source:='Custom: ';<br />
detPrepare: Source:='Prepare: ';<br />
detExecute: Source:='Execute: ';<br />
detFetch: Source:='Fetch: ';<br />
detCommit: Source:='Commit: ';<br />
detRollBack: Source:='Rollback:';<br />
else Source:='Unknown event. Please fix program code.';<br />
end;<br />
FConnectionLog.Add(Source + ' ' + Msg);<br />
end;<br />
<br />
...<br />
// We do need to tell our TSQLConnection what to log:<br />
FConnection.LogEvents:=LogAllEvents; //= [detCustom, detPrepare, detExecute, detFetch, detCommit, detRollBack]<br />
// ... and to which procedure the connection should send the events:<br />
FConnection.OnLog:=@Self.GetLogEvent;<br />
...<br />
// now we can use the connection and the FConnectionLog stringlist will fill with log messages.<br />
</syntaxhighlight><br />
<br />
You can also use TSQLConnection's GlobalDBLogHook instead to log everything from multiple connections.<br />
<br />
=== Lazarus (or: the quick way) ===<br />
Finally, the description above is the FPC way of doing things as indicated in the introduction; if using Lazarus, a quicker way is to assign an event handler to the TSQLConnection's OnLog event.<br />
<br />
[[Category:Databases]]<br />
<br />
== See also ==<br />
* [[Working With TSQLQuery]]<br />
<br />
[[Category:Databases]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.6_fixes_branch&diff=98865Lazarus 1.6 fixes branch2016-01-14T17:28:15Z<p>Valdir.marcos: /* Roadmap to 1.6 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_6/ Lazarus 1.6 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.4) see SVN and [[Lazarus_1.4_fixes_branch|Lazarus 1.4 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.6.0 release notes|here]]<br />
<br />
== Fixes for 1.6 RC3 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r51114 Qt: do not restore hints which are not visible by lcl.<br />
*r51229 ide: fix Options changed through "Change Build Mode" CoolBar button isn't respected by the compiler. {{MantisLink|28059}}<br />
*r51231 Revert r50906. Prevented docking the Search Results window.<br />
*r51232 fpvectorial: Support rotated linear gradients. Support entity- and page-relative coordinates for gradient vectors.<br />
*r51255 DBNavigator: restore the icons for "delete" and "cancel" that got lost in r32029. {{MantisLink|0029359}}.<br />
*r51256 Components, sqlitecomponenteditor: less hints.<br />
*r51257 fpvectorial: Rectangle, circle and ellipse entities support all linear gradients, translation and rotation.<br />
*r51261 IDE: Support dotted unit names in FilenameIsPascalSource. {{MantisLink|29363}}.<br />
*r51262 fpvectorial: Complete rotation and translation for all 2d segments of TPath<br />
*r51264 Qt: fixed compilation with QTOPIA define. {{MantisLink|0029379}}<br />
*r51266 TAChart: Add "ResetFont" to drawing interface to fix issue 27163 without interfering with nogui widgetset.<br />
*r51267 IDE: Fix moving up/down in ListFilterEdit. Also don't use Listbox.ItemHeight when = 0. {{MantisLink|29385}}.<br />
*r51275 IDE: Move the InvertAssignment from Refactor to Source submenu in source editor's popup menu. Already moved in main menu earlier.<br />
*r51284 IDE: fix source editor tab popup menu AV. {{MantisLink|29394}}<br />
*r51286 LCL: grids: partially revert r49016 that prevents OnSelectEditor when entering cell by keyboard. {{MantisLink|29191}}<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.6 RC3 ===<br />
<br />
== Fixes for 1.6 RC2 (merged) ==<br />
<br />
*r50702 IDE: regenerated translations and updated Russian translation<br />
*r50704 LCL: CustomDrawn: fixed compilation ({{MantisLink|0029142}}).<br />
*r50742 Qt: pass mousemove event to the viewport of TQtWindowArea, stop mouse propagation to parent. {{MantisLink|29159}}<br />
*r50743 Qt: fixed regression from r50742. {{MantisLink|29159}}<br />
*r50750 Qt: fixed mousemove with mdi child forms. {{MantisLink|29159}}<br />
*r50752 Qt: fixed design form cursor change. related to {{MantisLink|29159}}<br />
*r50759 Qt: eat less cpu in ownerdata mode when imagelist is assigned without imageindexes per item. {{MantisLink|29179}}<br />
*r50761 Qt: optimized TQtTreeWidget when OwnerDraw=true and imagelist is assigned, but without imageindexes per item. {{MantisLink|29179}}<br />
*r50764 LCL: unified RST and RSJ file handling. This fixes false fuzzying multiline strings and adding empty ones to .po file when regenerating e.g. lazaruside.po from RSJ files, which are created by FPC 3.0.0 and up.<br />
*r50765 IDE: adapted localize scripts to work with RSJ files too<br />
*r50733 packagetabs: add "View project source" menu item<br />
*r50754 packagetabs: implement i18n, HU translation. Issue 29173. Patch by Peter Gabor<br />
*r50762 packagetabs: add "Copy File Path To Clipboard" menu command<br />
*r50781 PackageTabs: added Russian translation<br />
*r50772 LCL: ShellCtrls: less hints.<br />
*r50785 Qt: fixed wrong sizing of rows in TListView when OwnerDraw = true. {{MantisLink|29182}}.<br />
*r50795 Package editor: Improve popup menu behavior. Part of {{MantisLink|26188}}.<br />
*r50796 Package editor: Don't update the whole tree when moving a dependency up/down. Part of {{MantisLink|26188}}.<br />
*r50804 Package editor: Mark a package as modified after moving a dependency up/down. Part of {{MantisLink|26188}}.<br />
*r50753 TAChart: Localization (work in progress - please do not provide translations at this stage...)<br />
*r50756 TAChart: Combine all po files in a single file (TAChartStrConsts)<br />
*r50758 TAChart: Complete localization<br />
*r50760 TAChart: Swedish translation by "kapibara"<br />
*r50814 Finnish translation for TAChart by Seppo Suutarla.<br />
*r50853 TAChart: improved i18n (and cleaned up unused string), regenerated translations and added Russian translation<br />
*r50856 TAChart: Overload "RegisterSeriesClass", "RegisterChartToolClass", and "RegisterAxisTransformClass" with old versions accepting a string as parameter<br />
*r50768 fpvectorial: Fix text positioning issue when reading svg files.<br />
*r50807 fpvectorial: Fix calculation of bounding rectangle of all entities on a page<br />
*r50808 fpvectorial: Fix memory leak of svg tokenizer. Add ReadDefsFromNode to TvSVGVectorialReader.ReadEntityFromNode. Prepare reading of line styles for svg.<br />
*r50809 fpvectorial: Fix memory leak of TvEntityWithSubEntities due to not releasing items in FElements list.<br />
*r50810 fpvectorial: Fix bounding box of circle. Fix page bounding box in case of several top-level entities.<br />
*r50818 fpvectorial: Add parameter to Render method for calculation of bounding box without drawing. Fix svgreader crashing due to incorrect decimal separator in "stroke-opacity".<br />
*r50819 fpvectorial: Fix runtime error with fpc trunk due to duplicate application of ExtractFileExt returning no extension any more.<br />
*r50875 fpvectorial: svg reader detects pen styles & patterns now. Fix rendering of lines with the specified pen styles & patterns.<br />
*r50815 Package editor: Duplicate the "Add" button's menu items in tree popup menu. Part of {{MantisLink|28097}}.<br />
*r50925, r50970, r50980, r51073, r51146 Translations: French translation updates by Gilles Vasseur<br />
*r50839 Packager: Update search paths after "Add Active File To Package". {{MantisLink|27720}}.<br />
*r50850 LazUtils: implement Utf8Delete() and Utf8Insert() for parameters of type Utf8String. (Only needed for these, since they use var parameters). (Reason for merging: this was a regression caused by the move from 2.6.4 to 3.0.0 compiler)<br />
*r50910 LazUtils: Second attempt to implement Utf8Delete() for parameters of type Utf8String.<br />
*r50870 LCL: toolbutton: fix down states. {{MantisLink|28286}}.<br />
*r50942 LCL: Adjust Width and Height when setting Contraints. {{MantisLink|28654}}.<br />
*r50906 IDE: Don't show Search Results window initially. Its position is still remembered.<br />
*r50909 IDE: Hide the Export / Import buttons in options General page for now. The set of options makes no sense.<br />
*r50905 fpvectorial: Add more named svg colors, speed up finding of named colors.<br />
*r50912 fpvectorial: Render horizontal and vertical gradients for TPath (straight edges, no "holes")<br />
*r50913 fpvectorial: Fix rendering for text with correct font name and font size.<br />
*r50933 fpvectorial: Fix svgreader crashing if stroke-dasharray is "none". Fix w3schools demo file "polyline2svg" to display correctly.<br />
*r50949 fpvectorial: Fix svg reader bugs related with horizontal and vertical LineTo commands<br />
*r50940 IdeIntf: Add checks to TPropertyEditorHook.GetComponentName and match the return type with Component.Name's type.<br />
*r50943 IDE: Restore Jump to Implementation menu item accidentally removed in r49226.<br />
*r50958 Install Package Dlg: Retain cursor position after moving packages between lists. {{MantisLink|26802}}.<br />
*r50963 fpdebug: fixed mem leaks, bug 29227 patch from Anton<br />
*r50982 Components: Hungarian translation update by Péter Gábor, bug 29218<br />
*r50995 IDE: show output of "lazarus --help" command in IDE interface language when it is set to automatic instead of showing it in English.<br />
*r50991 LCL: fixed infinite loop and crash with TScrollingWinControl.{{MantisLink|29194}}<br />
*r51001 synedit: fix TSynCustomHighlighter.GetIdentChars<br />
*r51003 Qt: keep track of scrolled offset when viewport is not visible.{{MantisLink|29239}}<br />
*r51009 TAChart: Check validity of base of logarithmic transform.{{MantisLink|29242}}<br />
*r51015 TAChart: updated Russian translation<br />
*r51013 H2Pas: fixed typos, bug 29244<br />
*r51014 H2Pas: added French translation by by Gilles Vasseur, bug 29244, regenerated translations and updated Russian translation<br />
*r51019 Qt: fixed segfault inside setPopupParent.related to {{MantisLink|29247}}<br />
*r51020 H2Pas: registered forgotten text conversion tool<br />
*r51026 LazUtils: fix compilation for WinCE. {{MantisLink|0029249}}.<br />
*r51019 Qt: fixed segfault inside setPopupParent.related to issue {{MantisLink|29247}}<br />
*r51022 lcl: gtk2: fix PopupMode/PopupParent for non-modal windows. Issue {{MantisLink|29247}}<br />
*r51023 lcl: qt: fix PopupMode/PopupParent for non-modal windows. Issue {{MantisLink|29247}}.<br />
*r51024 components: PO highlighter regression fix from r51001, issue {{MantisLink|29235}}<br />
*r51032 lcl: rewrite PopupMode/PopupParent - unify code for PopupMode/PopupParent in one function TCustomForm.GetRealPopupParent for all WS. - change TWSCustomFormClass.SetPopupParent to TWSCustomFormClass.SetRealPopupParent without PopupMode parameter. - Fix TPopupMode documentation. Issue {{MantisLink|29247}}<br />
*r51036 lcl: qt: revert wrong change for modal windows from r51032<br />
*r51044 Qt: fixed Qt compilation after r51036<br />
*r51046 Qt: added pure X11 function for transient hint. Related to issue {{MantisLink|29253}}<br />
*r51047 Qt: use direct X11 call for transient hint since Qt's QtTool flag is buggy. issue {{MantisLink|29253}}<br />
*r51049 lcl: fix TCustomForm.SetPopupMode: remove PopupParent for both pmAuto and pmNone<br />
*r51050 ideintf, ide: change result type of TMainIDEBase.GetMainBar from TComponent to TForm. (needed for merging r51051) {{MantisLink|24711}}<br />
*r51051 ideintf: set PopupMode/PopupParent for collection editor and actions editor. {{MantisLink|24711}}<br />
*r51068 ide: fix Options changed through "Change Build Mode" CoolBar button isn't respected by the compiler. {{MantisLink|28059}}<br />
*r51004 fpvectorial: Correct calculation of ellipse center of elliptical arc path segment<br />
*r51021 fpvectorial: Fix path to avoid rendering of internal lines for bezier segments. Fix elliptic path segment with rotated axis.<br />
*r51058 fpvectorial: Reorganize TPath.Render. Support polygon even-odd and non-zero winding rules for brush fill.<br />
*r51060 fpvectorial: Fix svg reader memory leaks related to BrushDefs and tokenizer. Declare package as runtime package.<br />
*r51030 Qt: fixed memleak in TQtWidgetSet.DCSetPixel.<br />
*r51040 Qt: much faster DCSetPixel when painter is QImage or QPixmap. {{MantisLink|29256}}<br />
*r51031 TAChart: Fix TDataPointEditor to mark the property as modified after data entry ({{MantisLink|29236}}). Minor optical brush up of form.<br />
*r51037 ShellListView: allow for case-sensitive masks. {{MantisLink|0029255}}.<br />
*r51033, r51034, r51038, r51039, r51041 LazUtils: Prevent CopyDirTree copying to a subdirectory of source. {{MantisLink|28841}}.<br />
*r51088 lcl: grids: don't apply editor value if ESC is pressed. {{MantisLink|29261}}<br />
*r51092 lcl: grids: fix Wrong Alignment in TCustomGrid for Editor. {{MantisLink|29243}}<br />
*r51094 lcl: win32: ComboBox ItemWidth support. {{MantisLink|29149}}<br />
*r51097 anchordocking: fix dock site main menu changes docked windows height. {{MantisLink|18538}}<br />
*r51098 lcl: splitter: make MoveSplitter virtual (needed for r51099)<br />
*r51099 anchordocking: fix height change when dock site width is changed for ScaleOnResize. {{MantisLink|29298}}<br />
*r51059, r51080 IDE: Save Application Bundle and resource XPManifest to default project configuration. {{MantisLink|22286}}. + fix LazBuild compilation.<br />
*r51084 IDE: Enable "Make Resource String" command also when cursor is behind an end-quote. {{MantisLink|28829}}.<br />
*r51105 IDE: Remove explicit update of Messages window from TMainIDE.StartIDE. It deserves no special treatment layout-wise.<br />
*r51086 TurboPower ipro: Fix non-breaking space character given by numerical value instead of "&nbsp;"; fixes {{MantisLink|28174}}.<br />
*r51100 TurboPower ipro: Fix bgcolor attribute of tables, rows and cells<br />
*r51096 LHelp: Fix incorrect processing of internal links specified by absolute paths. {{MantisLink|29267}}<br />
*r51106 LCL: Fix TComboExItems.Insert. {{MantisLink|29302}}.<br />
*r51107 codetools: support helpers for array types<br />
*r51108 fpvectorial: Fix painting issue in smooth bezier paths if previous segment is a relative bezier path<br />
*r51109 fpvectorial: Fix incorrect exception that paths must begin with a MoveTo command.<br />
*r51117 fpvectorial: Fix svgreader to accept "in" as known length unit.<br />
*r51135 fpvectorial: Fix filling of multiple polygons in the same path. Fix svgreader to default to clear pen and brush styles.<br />
*r51115 lcl: TCustomForm: prevent sending Resizing twice. {{MantisLink|29310}} and {{MantisLink|29308}} (please wait until it is properly tested)<br />
*r51121 anchordocking: do not draw disabled splitters, anchordockingdsgn: disable and make MainIDEBar splitter smaller if AdjustHeight is enabled<br />
*r51124 anchordocking: fix wrong PercentValue from r51099<br />
*r51126 TFloatSpinEdit: don't "eat" Undo keyboard shortcut (Ctrl+Z)<br />
*r51138 codetools: prevent AV for incomplete generic types<br />
*r51139 codetools: fix TDirectiveSequenceItem.FindValue<br />
*r51140 codetools: pascalreadertool: support TGenericClass<TypeReference,TypeReference>.TNestedClass (delphi mode)<br />
*r51142 anchordocking: prevent AV<br />
*r51143 packagetabs: prevent AV<br />
*r51159 packagetabs: prevent AV<br />
*r51162, r51163 IDE: Remove a Checkbox for creating Debug and Release modes in Build Modes manager. Can be done by setting compiler options as default.<br />
*r51165 packagetabs: fix TRecreateToolBarStamps.Changed<br />
*r51181 Anchordocking: Don't update a tabbed page's caption with its name when saving desktops. {{MantisLink|29199}}.<br />
*r51182 fpvectorial: Simple gradient support for TPath<br />
*r51184 anchordocking: update percent position after anchor change. Issue 29309<br />
*r51194 fpvectorial: Add gradients with more than two colors<br />
*r51195 Installer: Hungarian translation by Péter Gábor, bug 29322<br />
*r51196 TurboPower IPro: regenerated translations and updated French translation. Patch by Gilles Vasseur, bug 29330.<br />
*r51202 IDE: regenerated translations and updated Russian translation<br />
*r51216 codetools: support static array helpers<br />
*r51220 Translations: Hungarian translation update by Péter Gábor, bug 29351<br />
<br />
== Fixes for 1.6 RC1 (merged) ==<br />
<br />
*r50543 translations: German: updates from Swen Heinig<br />
*r50545 LazControls: Select the first matching node in TreeFilterEdit. {{MantisLink|24795}}.<br />
*r50546 IDEIntf: regenerated translations and improved Russian translation<br />
*r50547 Favorites: regenerated translations and added Russian translation<br />
*r50548 IDE: regenerated translations and updated Russian translation<br />
*r50551 LCL: TWinControl.ScollBy: less overhead<br />
*r50553 LCL-Win: Revert from ScrollWindowEx back to ScrollWindow. {{MantisLink|26086}}.<br />
*r50554 Translations: Hungarian translation update by Péter Gábor, bug 29118<br />
*r50557 LCL: fixed regression in scrolling from r50523<br />
*r50558 LCL: use ScrollWindowEx instead of ScrollWindow. {{MantisLink|26086}}.<br />
*r50566 Grids: Do nut move to another cell when user presses Left/Right in editor. {{MantisLink|0029084}}.<br />
*r50567 LazUtils: Fix implicit codepage ceversion issue for FindFirstUtf8/FindNextUtf8 (Windows). Patch by Michl. {{MantisLink|0028406}}.<br />
*r50568 ValueListEditor: Revert r45782. It is not a proper fix, and the issue cannot be reproduced anymore. {{MantisLink|0026449}}.<br />
*r50569 LazUtils: fix issue with implicit codepage conversion in ParamStrUtf8. {{MantisLink|0028815}}.<br />
*r50582 LCL: use ScrollWindowEx directly instead of ScrollWindowPtr. {{MantisLink|29131}}.<br />
*r50583 Add missing code from commit r50582<br />
*r50620 Finnish translations.<br />
*r50648 TShellTreeView: Yet another attempt to fix SetPath ({{MantisLink|0026088}}).<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.6 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.6 fixes branch. (Done 30 Nov 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.6 RC 1 (Done 08 Dec 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.6 RC 2 (Done 14 Jan 2016)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.6 RC 3<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 1.6<br />
<br />
Users can download the new stable version.<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.6 in fixes_1_6 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.6.0.1 for RC1, 1.6.0.2 for RC2, 1.6.0.3 for RC3, 1.6.0.4 for final<br />
** lazarus/ide/version.inc 1.6RC1 for RC1, no spaces! (1.6.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.6.0.1 for RC1, 1.6.0.2 for RC2, ... 1.6.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.6.0-1 for RC1, 1.6.0-2 for RC2, ... 1.6.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist "v1.6 RC1" or (v1.6.0 final release)<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_6 branch to tags/release_1_6_RC1 (or tags/lazarus_1_6 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_6 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_6_RC1 -m 'tagged 1.6RC1 as tags/lazarus_1_6_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.6_fixes_branch&diff=98645Lazarus 1.6 fixes branch2016-01-02T03:41:52Z<p>Valdir.marcos: /* Roadmap to 1.6 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_6/ Lazarus 1.6 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.4) see SVN and [[Lazarus_1.4_fixes_branch|Lazarus 1.4 fixes branch]]<br />
<br />
Release notes can be found [[Lazarus 1.6.0 release notes|here]]<br />
<br />
== Fixes for 1.6 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r51059,r51080 IDE: Save Application Bundle and resource XPManifest to default project configuration. {{MantisLink|22286}}. + fix LazBuild compilation.<br />
*r51084 IDE: Enable "Make Resource String" command also when cursor is behind an end-quote. {{MantisLink|28829}}.<br />
*r51086 TurboPower ipro: Fix non-breaking space character given by numerical value instead of "&nbsp;"; fixes {{MantisLink|28174}}.<br />
*r51087 IDE: Prevent crash when clicking button "Change Build Mode" and Cancel in dialog. BackupBuildModes is not called always. {{MantisLink|29292}}.<br />
*r51096 LHelp: Fix incorrect processing of internal links specified by absolute paths. {{MantisLink|29267}}<br />
*r51100 TurboPower ipro: Fix bgcolor attribute of tables, rows and cells<br />
*r51105 IDE: Remove explicit update of Messages window from TMainIDE.StartIDE. It deserves no special treatment layout-wise.<br />
*r51107 codetools: support helpers for array types (please wait until it is properly tested)<br />
*r51108 fpvectorial: Fix painting issue in smooth bezier paths if previous segment is a relative bezier path<br />
*r51109 fpvectorial: Fix incorrect exception that paths must begin with a MoveTo command.<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.6 RC2 ===<br />
<br />
*r50702 IDE: regenerated translations and updated Russian translation<br />
*r50704 LCL: CustomDrawn: fixed compilation ({{MantisLink|0029142}}).<br />
*r50742 Qt: pass mousemove event to the viewport of TQtWindowArea, stop mouse propagation to parent. {{MantisLink|29159}}<br />
*r50743 Qt: fixed regression from r50742. {{MantisLink|29159}}<br />
*r50750 Qt: fixed mousemove with mdi child forms. {{MantisLink|29159}}<br />
*r50752 Qt: fixed design form cursor change. related to {{MantisLink|29159}}<br />
*r50759 Qt: eat less cpu in ownerdata mode when imagelist is assigned without imageindexes per item. {{MantisLink|29179}}<br />
*r50761 Qt: optimized TQtTreeWidget when OwnerDraw=true and imagelist is assigned, but without imageindexes per item. {{MantisLink|29179}}<br />
*r50764 LCL: unified RST and RSJ file handling. This fixes false fuzzying multiline strings and adding empty ones to .po file when regenerating e.g. lazaruside.po from RSJ files, which are created by FPC 3.0.0 and up.<br />
*r50765 IDE: adapted localize scripts to work with RSJ files too<br />
*r50733 packagetabs: add "View project source" menu item<br />
*r50754 packagetabs: implement i18n, HU translation. Issue 29173. Patch by Peter Gabor<br />
*r50762 packagetabs: add "Copy File Path To Clipboard" menu command<br />
*r50781 PackageTabs: added Russian translation<br />
*r50772 LCL: ShellCtrls: less hints.<br />
*r50785 Qt: fixed wrong sizing of rows in TListView when OwnerDraw = true. {{MantisLink|29182}}.<br />
*r50795 Package editor: Improve popup menu behavior. Part of {{MantisLink|26188}}.<br />
*r50796 Package editor: Don't update the whole tree when moving a dependency up/down. Part of {{MantisLink|26188}}.<br />
*r50804 Package editor: Mark a package as modified after moving a dependency up/down. Part of {{MantisLink|26188}}.<br />
*r50753 TAChart: Localization (work in progress - please do not provide translations at this stage...)<br />
*r50756 TAChart: Combine all po files in a single file (TAChartStrConsts)<br />
*r50758 TAChart: Complete localization<br />
*r50760 TAChart: Swedish translation by "kapibara"<br />
*r50814 Finnish translation for TAChart by Seppo Suutarla.<br />
*r50853 TAChart: improved i18n (and cleaned up unused string), regenerated translations and added Russian translation<br />
*r50856 TAChart: Overload "RegisterSeriesClass", "RegisterChartToolClass", and "RegisterAxisTransformClass" with old versions accepting a string as parameter<br />
*r50768 fpvectorial: Fix text positioning issue when reading svg files.<br />
*r50807 fpvectorial: Fix calculation of bounding rectangle of all entities on a page<br />
*r50808 fpvectorial: Fix memory leak of svg tokenizer. Add ReadDefsFromNode to TvSVGVectorialReader.ReadEntityFromNode. Prepare reading of line styles for svg.<br />
*r50809 fpvectorial: Fix memory leak of TvEntityWithSubEntities due to not releasing items in FElements list.<br />
*r50810 fpvectorial: Fix bounding box of circle. Fix page bounding box in case of several top-level entities.<br />
*r50818 fpvectorial: Add parameter to Render method for calculation of bounding box without drawing. Fix svgreader crashing due to incorrect decimal separator in "stroke-opacity".<br />
*r50819 fpvectorial: Fix runtime error with fpc trunk due to duplicate application of ExtractFileExt returning no extension any more.<br />
*r50875 fpvectorial: svg reader detects pen styles & patterns now. Fix rendering of lines with the specified pen styles & patterns.<br />
*r50815 Package editor: Duplicate the "Add" button's menu items in tree popup menu. Part of {{MantisLink|28097}}.<br />
*r50925, r50970, r50980 Translations: French translation updates by Gilles Vasseur<br />
*r50839 Packager: Update search paths after "Add Active File To Package". {{MantisLink|27720}}.<br />
*r50850 LazUtils: implement Utf8Delete() and Utf8Insert() for parameters of type Utf8String. (Only needed for these, since they use var parameters). (Reason for merging: this was a regression caused by the move from 2.6.4 to 3.0.0 compiler)<br />
*r50910 LazUtils: Second attempt to implement Utf8Delete() for parameters of type Utf8String.<br />
*r50870 LCL: toolbutton: fix down states. {{MantisLink|28286}}.<br />
*r50942 LCL: Adjust Width and Height when setting Contraints. {{MantisLink|28654}}.<br />
*r50906 IDE: Don't show Search Results window initially. Its position is still remembered.<br />
*r50909 IDE: Hide the Export / Import buttons in options General page for now. The set of options makes no sense.<br />
*r50905 fpvectorial: Add more named svg colors, speed up finding of named colors.<br />
*r50912 fpvectorial: Render horizontal and vertical gradients for TPath (straight edges, no "holes")<br />
*r50913 fpvectorial: Fix rendering for text with correct font name and font size.<br />
*r50933 fpvectorial: Fix svgreader crashing if stroke-dasharray is "none". Fix w3schools demo file "polyline2svg" to display correctly.<br />
*r50949 fpvectorial: Fix svg reader bugs related with horizontal and vertical LineTo commands<br />
*r50940 IdeIntf: Add checks to TPropertyEditorHook.GetComponentName and match the return type with Component.Name's type.<br />
*r50943 IDE: Restore Jump to Implementation menu item accidentally removed in r49226.<br />
*r50958 Install Package Dlg: Retain cursor position after moving packages between lists. {{MantisLink|26802}}.<br />
*r50963 fpdebug: fixed mem leaks, bug 29227 patch from Anton<br />
*r50982 Components: Hungarian translation update by Péter Gábor, bug 29218<br />
*r50995 IDE: show output of "lazarus --help" command in IDE interface language when it is set to automatic instead of showing it in English.<br />
*r50991 LCL: fixed infinite loop and crash with TScrollingWinControl.{{MantisLink|29194}}<br />
*r51001 synedit: fix TSynCustomHighlighter.GetIdentChars<br />
*r51003 Qt: keep track of scrolled offset when viewport is not visible.{{MantisLink|29239}}<br />
*r51009 TAChart: Check validity of base of logarithmic transform.{{MantisLink|29242}}<br />
*r51015 TAChart: updated Russian translation<br />
*r51013 H2Pas: fixed typos, bug 29244<br />
*r51014 H2Pas: added French translation by by Gilles Vasseur, bug 29244, regenerated translations and updated Russian translation<br />
*r51019 Qt: fixed segfault inside setPopupParent.related to {{MantisLink|29247}}<br />
*r51020 H2Pas: registered forgotten text conversion tool<br />
*r51026 LazUtils: fix compilation for WinCE. {{MantisLink|0029249}}.<br />
*r51019 Qt: fixed segfault inside setPopupParent.related to issue {{MantisLink|29247}}<br />
*r51022 lcl: gtk2: fix PopupMode/PopupParent for non-modal windows. Issue {{MantisLink|29247}}<br />
*r51023 lcl: qt: fix PopupMode/PopupParent for non-modal windows. Issue {{MantisLink|29247}}.<br />
*r51024 components: PO highlighter regression fix from r51001, issue {{MantisLink|29235}}<br />
*r51032 lcl: rewrite PopupMode/PopupParent - unify code for PopupMode/PopupParent in one function TCustomForm.GetRealPopupParent for all WS. - change TWSCustomFormClass.SetPopupParent to TWSCustomFormClass.SetRealPopupParent without PopupMode parameter. - Fix TPopupMode documentation. Issue {{MantisLink|29247}}<br />
*r51036 lcl: qt: revert wrong change for modal windows from r51032<br />
*r51044 Qt: fixed Qt compilation after r51036<br />
*r51046 Qt: added pure X11 function for transient hint. Related to issue {{MantisLink|29253}}<br />
*r51047 Qt: use direct X11 call for transient hint since Qt's QtTool flag is buggy. issue {{MantisLink|29253}}<br />
*r51049 lcl: fix TCustomForm.SetPopupMode: remove PopupParent for both pmAuto and pmNone<br />
*r51050 ideintf, ide: change result type of TMainIDEBase.GetMainBar from TComponent to TForm. (needed for merging r51051) {{MantisLink|24711}}<br />
*r51051 ideintf: set PopupMode/PopupParent for collection editor and actions editor. {{MantisLink|24711}}<br />
*r51068 ide: fix Options changed through "Change Build Mode" CoolBar button isn't respected by the compiler. {{MantisLink|28059}}<br />
*r51004 fpvectorial: Correct calculation of ellipse center of elliptical arc path segment<br />
*r51021 fpvectorial: Fix path to avoid rendering of internal lines for bezier segments. Fix elliptic path segment with rotated axis.<br />
*r51058 fpvectorial: Reorganize TPath.Render. Support polygon even-odd and non-zero winding rules for brush fill.<br />
*r51060 fpvectorial: Fix svg reader memory leaks related to BrushDefs and tokenizer. Declare package as runtime package.<br />
*r51030 Qt: fixed memleak in TQtWidgetSet.DCSetPixel.<br />
*r51040 Qt: much faster DCSetPixel when painter is QImage or QPixmap. {{MantisLink|29256}}<br />
*r51031 TAChart: Fix TDataPointEditor to mark the property as modified after data entry ({{MantisLink|29236}}). Minor optical brush up of form.<br />
*r51037 ShellListView: allow for case-sensitive masks. {{MantisLink|0029255}}.<br />
*r51033, r51034, r51038, r51039, r51041 LazUtils: Prevent CopyDirTree copying to a subdirectory of source. {{MantisLink|28841}}.<br />
*r51073 Translations: French translation update by Gilles Vasseur, bug 29254<br />
*r51088 lcl: grids: don't apply editor value if ESC is pressed. {{MantisLink|29261}}<br />
*r51092 lcl: grids: fix Wrong Alignment in TCustomGrid for Editor. {{MantisLink|29243}}<br />
*r51094: lcl: win32: ComboBox ItemWidth support. {{MantisLink|29149}}<br />
*r51097 anchordocking: fix dock site main menu changes docked windows height. {{MantisLink|18538}}<br />
*r51098 lcl: splitter: make MoveSplitter virtual (needed for r51099)<br />
*r51099 anchordocking: fix height change when dock site width is changed for ScaleOnResize. {{MantisLink|29298}}<br />
<br />
== Fixes for 1.6 RC1 (merged) ==<br />
<br />
*r50543 translations: German: updates from Swen Heinig<br />
*r50545 LazControls: Select the first matching node in TreeFilterEdit. {{MantisLink|24795}}.<br />
*r50546 IDEIntf: regenerated translations and improved Russian translation<br />
*r50547 Favorites: regenerated translations and added Russian translation<br />
*r50548 IDE: regenerated translations and updated Russian translation<br />
*r50551 LCL: TWinControl.ScollBy: less overhead<br />
*r50553 LCL-Win: Revert from ScrollWindowEx back to ScrollWindow. {{MantisLink|26086}}.<br />
*r50554 Translations: Hungarian translation update by Péter Gábor, bug 29118<br />
*r50557 LCL: fixed regression in scrolling from r50523<br />
*r50558 LCL: use ScrollWindowEx instead of ScrollWindow. {{MantisLink|26086}}.<br />
*r50566 Grids: Do nut move to another cell when user presses Left/Right in editor. {{MantisLink|0029084}}.<br />
*r50567 LazUtils: Fix implicit codepage ceversion issue for FindFirstUtf8/FindNextUtf8 (Windows). Patch by Michl. {{MantisLink|0028406}}.<br />
*r50568 ValueListEditor: Revert r45782. It is not a proper fix, and the issue cannot be reproduced anymore. {{MantisLink|0026449}}.<br />
*r50569 LazUtils: fix issue with implicit codepage conversion in ParamStrUtf8. {{MantisLink|0028815}}.<br />
*r50582 LCL: use ScrollWindowEx directly instead of ScrollWindowPtr. {{MantisLink|29131}}.<br />
*r50583 Add missing code from commit r50582<br />
*r50620 Finnish translations.<br />
*r50648 TShellTreeView: Yet another attempt to fix SetPath ({{MantisLink|0026088}}).<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.6 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.6 fixes branch. (Done 30 Nov 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.6 RC 1 (Done 08 Dec 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.6 RC 2<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.6 RC 3<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 1.6<br />
<br />
Users can download the new stable version.<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.6 in fixes_1_6 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.6.0.1 for RC1, 1.6.0.2 for RC2, 1.6.0.3 for RC3, 1.6.0.4 for final<br />
** lazarus/ide/version.inc 1.6RC1 for RC1, no spaces! (1.6.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.6.0.1 for RC1, 1.6.0.2 for RC2, ... 1.6.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.6.0-1 for RC1, 1.6.0-2 for RC2, ... 1.6.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist "v1.6 RC1" or (v1.6.0 final release)<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_6 branch to tags/release_1_6_RC1 (or tags/lazarus_1_6 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_6 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_6_RC1 -m 'tagged 1.6RC1 as tags/lazarus_1_6_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=88141Lazarus 1.4 fixes branch2015-04-22T13:16:40Z<p>Valdir.marcos: /* Fixes for 1.4 RC4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4.2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4.2 ===<br />
<br />
*r48777 Qt: unset taskbar button only when showintaskbar=stNever.<br />
*r48782, r48812 Translations: updated French translation by Gilles Vasseur<br />
*r48784 IDEIntf: regenerated translations<br />
*r48785 IDEIntf: deleted file, which was committed by accident<br />
*r48786 SynEdit: regenerated translations<br />
*r48787 Translations: Hungarian translation update by Péter Gábor, bug 27903<br />
*r48796 IDE: In BuildMode config dialog, prevent hiding Name in the grid when InSession is not shown. {{MantisLink|27881}}.<br />
*r48809 IDE: Update project inspector after renaming a unit. {{MantisLink|27909}}.<br />
*r48795, r48811 translations: German: updates from Swen Heinig<br />
<br />
== Fixes for 1.4.0 Final ==<br />
<br />
=== Merged revisions for 1.4.0 Final ===<br />
*r48705 IDE: Polish translation update by Darek Mazur, {{MantisLink|0027822}}<br />
*r48617 Qt: hide widget before deleteLater, so if our event loop is blocked for some reason, widget will go away. {{MantisLink|0027781}}<br />
*r48618 Qt: Reveal a wrong typecast in QtObjectFromWidgetH.<br />
*r48620 IDE fix crash in TDiffDlg.SaveSettings when fFile = nil. {{MantisLink|0027780}}.<br />
*r48621 Qt: fixed compilation with define VerboseQtResize.<br />
*r48628 LCL: Publish TToggleBox.Align. {{MantisLink|0027785}}.<br />
*r48634 Qt: do not raise exception if obj is nil (related to r48618).<br />
*r48635 ShellCtrls: make TShellListView.Columns public (Delphi compatibility). {{MantisLink|0027786}}.<br />
*r48643 Gtk2: fixed crash when GtkDeviceContext widget isn't mapped yet. Use default root win as drawable. {{MantisLink|0027795}}<br />
*r48677 Finnish translations for chmhelp from Seppo Suutarla.<br />
*r48679 Qt: fixed build with -dQT_NATIVE_DIALOGS.<br />
*r48690 Gtk2: fixed triggering of OnMouseUp event when mouse moved out of component. {{MantisLink|0021982}}<br />
*r48692 Qt: fixed popupParent behaviour when mode is pmExplicit. {{MantisLink|0025589}}<br />
*r48693 Gtk2: fixed popupParent behaviour when mode is pmExplicit. {{MantisLink|0025589}}<br />
*r48696 Qt: fixed TPageControl ignores nboKeyboardTabSwitch. {{MantisLink|0022853}}<br />
*r48697 Gtk2: create FDrawable on demand, only when FDrawable is nil and widget unmapped yet (usually happens only for TCustomForm). {{MantisLink|0027821}}<br />
*r48735 SynEdit: regenerated Hebrew translation<br />
*r48725 Qt: qt does not support TMenuItem.RightJustify. {{MantisLink|0027828}}<br />
*r48728 TAChart: Fix misaligned data in stacked area series (http://forum.lazarus.freepascal.org/index.php/topic,28025.msg174184)<br />
*r48726, r48730-r48732 New PNG icons for PascalScript with transparency defined, from Sandro Cumerlato. + Use them.<br />
*r48736, r48749, r48761, r48765 Translations: updated French translation by Gilles Vasseur<br />
<br />
== Fixes for 1.4 RC3 ==<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
*r48503,r48505 Packager: Use filter "*.lpk" in save dialog for a new package. {{MantisLink|27726}}<br />
*r48504 LCL: Prevent TDBDateEdit interfering with other Data Aware Controls. {{MantisLink|27702}}<br />
*r48506 IdeIntf: Prevent invalid shortcut entries in TCustomShortCutGrabBox. {{MantisLink|27705}}<br />
*r48508 Qt: do not set sizehint of QTreeWidgetItem in autosized column if iconsize = 0 (regression).related to {{MantisLink|27696}}<br />
*r48509 Qt: fixed index out of bounds when setting item text. {{MantisLink|27740}}<br />
*r48510 TAChart: Fix paned charts to draw axis lines only in data range.<br />
*r48511 TAChart: Add extended demo for paned charts (demo/panes-2)<br />
*r48527 Carbon: trigger assigned action from trayicon popupmenu.Patch by Anton Kavalenka. {{MantisLink|23399}}<br />
*r48531 TAChart: Fix TFuncSeries hanging in case of inverted x axis<br />
*r48534 TAChart: Fix panes to work with TFuncSeries. Update panes-2 demo.<br />
*r48562 EditorToolbar: Use owner drawing in config ListView, does not work with QT otherwise.<br />
*r48580 EditorToolbar: Make the ListView work with both QT and OSX. Requires IFDEFs.<br />
*r48594 TAChart: Fix ColorMapSeries painting failure in case of StepY=1<br />
*r48554 IDE: Finnish translation fix. Issue #27758, patch from Ocean.<br />
*r48557 IDE: one more tweak for Finnish translation.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 3 (Done 06 Apr 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 1.4 (Done 19 Apr 2015)<br />
<br />
Users can download the new stable version.<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for RC3, 1.4.0.4 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces! (1.4.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, ... 1.4.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, ... 1.4.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist "v1.4 RC1" or (v1.4.0 final release)<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1 (or tags/lazarus_1_4 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=88140Lazarus 1.4 fixes branch2015-04-22T13:14:22Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4.2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4.2 ===<br />
<br />
*r48777 Qt: unset taskbar button only when showintaskbar=stNever.<br />
*r48782, r48812 Translations: updated French translation by Gilles Vasseur<br />
*r48784 IDEIntf: regenerated translations<br />
*r48785 IDEIntf: deleted file, which was committed by accident<br />
*r48786 SynEdit: regenerated translations<br />
*r48787 Translations: Hungarian translation update by Péter Gábor, bug 27903<br />
*r48796 IDE: In BuildMode config dialog, prevent hiding Name in the grid when InSession is not shown. {{MantisLink|27881}}.<br />
*r48809 IDE: Update project inspector after renaming a unit. {{MantisLink|27909}}.<br />
*r48795, r48811 translations: German: updates from Swen Heinig<br />
<br />
== Fixes for 1.4 RC4 ==<br />
<br />
=== Merged revisions for 1.4 RC4 ===<br />
*r48705 IDE: Polish translation update by Darek Mazur, {{MantisLink|0027822}}<br />
*r48617 Qt: hide widget before deleteLater, so if our event loop is blocked for some reason, widget will go away. {{MantisLink|0027781}}<br />
*r48618 Qt: Reveal a wrong typecast in QtObjectFromWidgetH.<br />
*r48620 IDE fix crash in TDiffDlg.SaveSettings when fFile = nil. {{MantisLink|0027780}}.<br />
*r48621 Qt: fixed compilation with define VerboseQtResize.<br />
*r48628 LCL: Publish TToggleBox.Align. {{MantisLink|0027785}}.<br />
*r48634 Qt: do not raise exception if obj is nil (related to r48618).<br />
*r48635 ShellCtrls: make TShellListView.Columns public (Delphi compatibility). {{MantisLink|0027786}}.<br />
*r48643 Gtk2: fixed crash when GtkDeviceContext widget isn't mapped yet. Use default root win as drawable. {{MantisLink|0027795}}<br />
*r48677 Finnish translations for chmhelp from Seppo Suutarla.<br />
*r48679 Qt: fixed build with -dQT_NATIVE_DIALOGS.<br />
*r48690 Gtk2: fixed triggering of OnMouseUp event when mouse moved out of component. {{MantisLink|0021982}}<br />
*r48692 Qt: fixed popupParent behaviour when mode is pmExplicit. {{MantisLink|0025589}}<br />
*r48693 Gtk2: fixed popupParent behaviour when mode is pmExplicit. {{MantisLink|0025589}}<br />
*r48696 Qt: fixed TPageControl ignores nboKeyboardTabSwitch. {{MantisLink|0022853}}<br />
*r48697 Gtk2: create FDrawable on demand, only when FDrawable is nil and widget unmapped yet (usually happens only for TCustomForm). {{MantisLink|0027821}}<br />
*r48735 SynEdit: regenerated Hebrew translation<br />
*r48725 Qt: qt does not support TMenuItem.RightJustify. {{MantisLink|0027828}}<br />
*r48728 TAChart: Fix misaligned data in stacked area series (http://forum.lazarus.freepascal.org/index.php/topic,28025.msg174184)<br />
*r48726, r48730-r48732 New PNG icons for PascalScript with transparency defined, from Sandro Cumerlato. + Use them.<br />
*r48736, r48749, r48761, r48765 Translations: updated French translation by Gilles Vasseur<br />
<br />
== Fixes for 1.4 RC3 ==<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
*r48503,r48505 Packager: Use filter "*.lpk" in save dialog for a new package. {{MantisLink|27726}}<br />
*r48504 LCL: Prevent TDBDateEdit interfering with other Data Aware Controls. {{MantisLink|27702}}<br />
*r48506 IdeIntf: Prevent invalid shortcut entries in TCustomShortCutGrabBox. {{MantisLink|27705}}<br />
*r48508 Qt: do not set sizehint of QTreeWidgetItem in autosized column if iconsize = 0 (regression).related to {{MantisLink|27696}}<br />
*r48509 Qt: fixed index out of bounds when setting item text. {{MantisLink|27740}}<br />
*r48510 TAChart: Fix paned charts to draw axis lines only in data range.<br />
*r48511 TAChart: Add extended demo for paned charts (demo/panes-2)<br />
*r48527 Carbon: trigger assigned action from trayicon popupmenu.Patch by Anton Kavalenka. {{MantisLink|23399}}<br />
*r48531 TAChart: Fix TFuncSeries hanging in case of inverted x axis<br />
*r48534 TAChart: Fix panes to work with TFuncSeries. Update panes-2 demo.<br />
*r48562 EditorToolbar: Use owner drawing in config ListView, does not work with QT otherwise.<br />
*r48580 EditorToolbar: Make the ListView work with both QT and OSX. Requires IFDEFs.<br />
*r48594 TAChart: Fix ColorMapSeries painting failure in case of StepY=1<br />
*r48554 IDE: Finnish translation fix. Issue #27758, patch from Ocean.<br />
*r48557 IDE: one more tweak for Finnish translation.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 3 (Done 06 Apr 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of Lazarus 1.4 (Done 19 Apr 2015)<br />
<br />
Users can download the new stable version.<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for RC3, 1.4.0.4 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces! (1.4.0 for final release)<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, ... 1.4.0.4 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, ... 1.4.0-4 for final<br />
** lazarus/lazarus.app/Contents/Info.plist "v1.4 RC1" or (v1.4.0 final release)<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1 (or tags/lazarus_1_4 for final release)<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=87853Lazarus 1.4 fixes branch2015-04-07T16:42:30Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC4 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r48617 Qt: hide widget before deleteLater, so if our event loop is blocked for some reason, widget will go away. {{MantisLink|0027781}}<br />
*r48618 Qt: Reveal a wrong typecast in QtObjectFromWidgetH.<br />
*r48620 IDE fix crash in TDiffDlg.SaveSettings when fFile = nil. {{MantisLink|0027780}}.<br />
*r48621 Qt: fixed compilation with define VerboseQtResize.<br />
*r48628 LCL: Publish TToggleBox.Align. {{MantisLink|0027785}}.<br />
*r48634 Qt: do not raise exception if obj is nil (related to r48618).<br />
*r48635 ShellCtrls: make TShellListView.Columns public (Delphi compatibility). {{MantisLink|0027786}}.<br />
*r48643 Gtk2: fixed crash when GtkDeviceContext widget isn't mapped yet. Use default root win as drawable. {{MantisLink|0027795}}<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC4 ===<br />
<br />
== Fixes for 1.4 RC3 ==<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
*r48503,r48505 Packager: Use filter "*.lpk" in save dialog for a new package. {{MantisLink|27726}}<br />
*r48504 LCL: Prevent TDBDateEdit interfering with other Data Aware Controls. {{MantisLink|27702}}<br />
*r48506 IdeIntf: Prevent invalid shortcut entries in TCustomShortCutGrabBox. {{MantisLink|27705}}<br />
*r48508 Qt: do not set sizehint of QTreeWidgetItem in autosized column if iconsize = 0 (regression).related to {{MantisLink|27696}}<br />
*r48509 Qt: fixed index out of bounds when setting item text. {{MantisLink|27740}}<br />
*r48510 TAChart: Fix paned charts to draw axis lines only in data range.<br />
*r48511 TAChart: Add extended demo for paned charts (demo/panes-2)<br />
*r48527 Carbon: trigger assigned action from trayicon popupmenu.Patch by Anton Kavalenka. {{MantisLink|23399}}<br />
*r48531 TAChart: Fix TFuncSeries hanging in case of inverted x axis<br />
*r48534 TAChart: Fix panes to work with TFuncSeries. Update panes-2 demo.<br />
*r48562 EditorToolbar: Use owner drawing in config ListView, does not work with QT otherwise.<br />
*r48580 EditorToolbar: Make the ListView work with both QT and OSX. Requires IFDEFs.<br />
*r48594 TAChart: Fix ColorMapSeries painting failure in case of StepY=1<br />
*r48554 IDE: Finnish translation fix. Issue #27758, patch from Ocean.<br />
*r48557 IDE: one more tweak for Finnish translation.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Maybe 1.4 RC 3 (Done 06 Apr 2015)<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between March and April 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=87852Lazarus 1.4 fixes branch2015-04-07T16:41:34Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC4 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r48617 Qt: hide widget before deleteLater, so if our event loop is blocked for some reason, widget will go away. {{MantisLink|0027781}}<br />
*r48618 Qt: Reveal a wrong typecast in QtObjectFromWidgetH.<br />
*r48620 IDE fix crash in TDiffDlg.SaveSettings when fFile = nil. {{MantisLink|0027780}}.<br />
*r48621 Qt: fixed compilation with define VerboseQtResize.<br />
*r48628 LCL: Publish TToggleBox.Align. {{MantisLink|0027785}}.<br />
*r48634 Qt: do not raise exception if obj is nil (related to r48618).<br />
*r48635 ShellCtrls: make TShellListView.Columns public (Delphi compatibility). {{MantisLink|0027786}}.<br />
*r48643 Gtk2: fixed crash when GtkDeviceContext widget isn't mapped yet. Use default root win as drawable. {{MantisLink|0027795}}<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC4 ===<br />
<br />
== Fixes for 1.4 RC3 ==<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
*r48503,r48505 Packager: Use filter "*.lpk" in save dialog for a new package. {{MantisLink|27726}}<br />
*r48504 LCL: Prevent TDBDateEdit interfering with other Data Aware Controls. {{MantisLink|27702}}<br />
*r48506 IdeIntf: Prevent invalid shortcut entries in TCustomShortCutGrabBox. {{MantisLink|27705}}<br />
*r48508 Qt: do not set sizehint of QTreeWidgetItem in autosized column if iconsize = 0 (regression).related to {{MantisLink|27696}}<br />
*r48509 Qt: fixed index out of bounds when setting item text. {{MantisLink|27740}}<br />
*r48510 TAChart: Fix paned charts to draw axis lines only in data range.<br />
*r48511 TAChart: Add extended demo for paned charts (demo/panes-2)<br />
*r48527 Carbon: trigger assigned action from trayicon popupmenu.Patch by Anton Kavalenka. {{MantisLink|23399}}<br />
*r48531 TAChart: Fix TFuncSeries hanging in case of inverted x axis<br />
*r48534 TAChart: Fix panes to work with TFuncSeries. Update panes-2 demo.<br />
*r48562 EditorToolbar: Use owner drawing in config ListView, does not work with QT otherwise.<br />
*r48580 EditorToolbar: Make the ListView work with both QT and OSX. Requires IFDEFs.<br />
*r48594 TAChart: Fix ColorMapSeries painting failure in case of StepY=1<br />
*r48554 IDE: Finnish translation fix. Issue #27758, patch from Ocean.<br />
*r48557 IDE: one more tweak for Finnish translation.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Maybe 1.4 RC 3 (Done 07 Apr 2015)<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between March and April 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=87851Lazarus 1.4 fixes branch2015-04-07T16:40:06Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC4 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r48617 Qt: hide widget before deleteLater, so if our event loop is blocked for some reason, widget will go away. {{MantisLink|0027781}}<br />
*r48618 Qt: Reveal a wrong typecast in QtObjectFromWidgetH.<br />
*r48620 IDE fix crash in TDiffDlg.SaveSettings when fFile = nil. {{MantisLink|0027780}}.<br />
*r48621 Qt: fixed compilation with define VerboseQtResize.<br />
*r48628 LCL: Publish TToggleBox.Align. {{MantisLink|0027785}}.<br />
*r48634 Qt: do not raise exception if obj is nil (related to r48618).<br />
*r48635 ShellCtrls: make TShellListView.Columns public (Delphi compatibility). {{MantisLink|0027786}}.<br />
*r48643 Gtk2: fixed crash when GtkDeviceContext widget isn't mapped yet. Use default root win as drawable. {{MantisLink|0027795}}<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC4 ===<br />
<br />
== Fixes for 1.4 RC3 ==<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
*r48503,r48505 Packager: Use filter "*.lpk" in save dialog for a new package. {{MantisLink|27726}}<br />
*r48504 LCL: Prevent TDBDateEdit interfering with other Data Aware Controls. {{MantisLink|27702}}<br />
*r48506 IdeIntf: Prevent invalid shortcut entries in TCustomShortCutGrabBox. {{MantisLink|27705}}<br />
*r48508 Qt: do not set sizehint of QTreeWidgetItem in autosized column if iconsize = 0 (regression).related to {{MantisLink|27696}}<br />
*r48509 Qt: fixed index out of bounds when setting item text. {{MantisLink|27740}}<br />
*r48510 TAChart: Fix paned charts to draw axis lines only in data range.<br />
*r48511 TAChart: Add extended demo for paned charts (demo/panes-2)<br />
*r48527 Carbon: trigger assigned action from trayicon popupmenu.Patch by Anton Kavalenka. {{MantisLink|23399}}<br />
*r48531 TAChart: Fix TFuncSeries hanging in case of inverted x axis<br />
*r48534 TAChart: Fix panes to work with TFuncSeries. Update panes-2 demo.<br />
*r48562 EditorToolbar: Use owner drawing in config ListView, does not work with QT otherwise.<br />
*r48580 EditorToolbar: Make the ListView work with both QT and OSX. Requires IFDEFs.<br />
*r48594 TAChart: Fix ColorMapSeries painting failure in case of StepY=1<br />
*r48554 IDE: Finnish translation fix. Issue #27758, patch from Ocean.<br />
*r48557 IDE: one more tweak for Finnish translation.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Maybe 1.4 RC 3 (Done 05 Apr 2015)<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between March and April 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=87524Lazarus 1.4 fixes branch2015-03-25T17:59:15Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC3 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r48496 TAChart: Fix arrows at axes and constant line series with respect to rtl bidi mode and line flips<br />
*r48501 TAChart: Fix centering of axis title for chart panes<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
*r48467 IDE: improved i18n<br />
*r48468 IDE: regenerated translations and updated Russian translation<br />
*r48469 EditorToolBar: improved i18n, regenerated translations and updated Russian translation<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}.<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}.<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}.<br />
*r48425 Revert r46068 "Designer: remove a duplicate call to DoDeletePersistent." {{MantisLink|27689}}.<br />
*r48426 IDE: Fix crash in procedurelist when no file is open in editor. {{MantisLink|0027694}}.<br />
*r48435 Gtk2: do not set TStatusBar panel text if panel is ownerdrawn. {{MantisLink|27695}}.<br />
*r48433,r48434,r48439,r48440 Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. {{MantisLink|27667}}.<br />
*r48473 TAChart: Fix axis labels reaching beyond data limits in paned charts<br />
*r48475 Qt: implemented minimum column size for TListView. Fixed TListView.Columns.AutoSize. {{MantisLink|27696}}<br />
*r48449 translations: German: updates from Swen Heinig<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
This is the start of the stabilization process before a new Lazarus release.<br />
<br />
* Release of 1.4 RC 1 (Done 16 Fev 2015)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2 (Done 02 Mar 2015)<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Maybe 1.4 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between March and April 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=87408Lazarus 1.4 fixes branch2015-03-18T02:23:31Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br />
<br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC3 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r48377 Use TaskDialogIndirect on Vista and up, independantly from status of ThemeServices. {{MantisLink|0027664}}.<br />
*r48393 Qt: fixed TListView drLabel size with checkable listView. {{MantisLink|0027673}}<br />
*r48394 Qt: do not send mousewheel event to lcl when combobox is dropped down. {{MantisLink|0027675}}<br />
*r48398, r48400 New icon for TDbDateEdit. {{MantisLink|27672}}<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC3 ===<br />
<br />
*r47911 LCL, dbgrid, call SelectEditor manually in DatasetScrolled in case row index do not change, based on patch by Luca Olivetti. {{MantisLink|0027232}}<br />
*r47990 was undo, as it broke many other functions: codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r48041 Gtk2: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48042 Qt: fixed crash with TSplitter with resizestyle = rsNone. {{MantisLink|0027559}}<br />
*r48047 LCL: TCustomSplitter, fixed bug with dangling pointer of rubber band.{{MantisLink|0027559}}<br />
*r48048 Themes: fixed memleak with dotted brush bitmap.Part of {{MantisLink|0027559}}<br />
*r48051 tests: fixed TestFilenameIsMatching on Windows, bug 27567<br />
*r48054 IDE: fixed resolving macros of external tools before switching back from IDE to project<br />
*r48056 TShellTreeView: fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48057 CairoCanvas: cairo is not supported on Win64, but the package needs to be compiled for printers4lazarus<br />
*r48060 IDE: fixed updating highlighters after changing project options, bug 27554<br />
*r48063 TShellTreeView: better fix not displaying files in connected ShellListView. {{MantisLink|0027571}}.<br />
*r48070 lazutils: TFileStreamUTF8: fixed string type<br />
*r48072 TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.<br />
*r48082 IDE: codetools error: scroll in Messages window<br />
*r48090 LCL: regenerated translations and updated Russian translation<br />
*r48093 Carbon: fixed range check error when setting column width in TListView. Patch by C Western. {{MantisLink|0027581}}<br />
*r48096 IDE: source editor command: fixed check focus in sourcenotebook or mainidebar, issue 27165<br />
*r48100 r48102 r48105: removed obsolete SrcPath and OtherUnitFiles<br />
*r48106 LHelp: i18n and initial Hungarian translation, based on patch by Péter Gábor, bug 27576; also added Russian translation<br />
*r48107 Translations: French translation update by Gilles Vasseur, bugs 27585, 27587<br />
*r48108 IDE: fixed minor typo, bug 27583<br />
*r48109 IDE: regenerated translations and updated Russian translation (also solves bug 27583)<br />
*r48114 sqldb: fixed license mentioning GPL-2 of unit registersqldb<br />
*r48120 LazFileUtils: fix error in TryCreateRelativePath (it failed e.g with Dest=C:\ and Source=C:\foo). {{MantisLink|0027601}}.<br />
*r48121 TShellTreeView: setpath: only check for hidden dirs in folders below the root. Fixes {{MantisLink|0027591}}.<br />
*r48125 TShellTreeView: setpath: adjust for the fact that some Windows versions report faHidden on drive roots (e.g. C:\). Second attempt to fix {{MantisLink|0027591}}.<br />
*r48128 IDE: project: if target file is set and apply conventions is off then always pas -o<br />
*r48132 IDE: FindProgram: resolve leading ~ under Unix<br />
*r48134 ShellCtrls: don't raise unspecified exceptions for errors specific to shellctrls. (Not Delphi compatible, but won't break anything, and ShellCtrls isn't very Delphi compatible.)<br />
*r48135 TShellTreeView: don't call SetObjectType in constructor. Part of {{MantisLink|0027591}}.<br />
*r48136 Gtk2: fixed av with modal forms. {{MantisLink|0026752}} , {{MantisLink|0027577}}<br />
*r48139 IDE, field property editor: make sure FieldDefs are updated before gathering the field list, by Tony Whyman, {{MantisLink|26492}}<br />
*r48177 Qt: keep QPen in sync when setting it out of device context. {{MantisLink|0027620}}<br />
*r48179 TAChart: Fix incorrect brush color of SVGDrawer. {{MantisLink|0027633}}<br />
*r48180 TAChart: Fix incorrect conversion of TColor to TFPColor in the SVG and FPVectorial drawers.<br />
*r48187 IdeIntf: Prevent a crash when Action is deleted in ActionsEditor. {{MantisLink|27624}}<br />
*r48254 IDE: Update component list state also with keyboard arrows.<br />
*r48257 TShellTreeView: publish OnCollapsed, OnCollapsing, OnDblClick, OnEdited, OnEditing, OnEnter, OnExit, OnExpanded, OnExpanding. Patch by ocean. {{MantisLink|0027640}}.<br />
*r48265 Win32: Use Vista dialogs independant from status of ThemesEnabled. {{MantisLink|0026940}}.<br />
*r48298 Qt: fixed text drawing when NO_CLIP flag is present. {{MantisLink|0027631}}<br />
*r48299 Gtk2: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48300 Qt: drawtext with rotated font. {{MantisLink|0027547}}<br />
*r48301 Win32: Use Vista dialogs independant from status of ThemesEnabled also for Open/SavePicturDialog. {{MantisLink|0026940}}.<br />
*r48302 TShellTreeView: deprecate function GetSelectedNodePath, since it's redundant.<br />
*r48303 Qt: fixed returning empty rect for TListView.ItemDisplayRect when using drIcon. {{MantisLink|0027659}}<br />
*r48347 Docs: document that TCustomMemo.Lines cannot store Objects. {{MantisLink|0009366}}.<br />
<br />
== Fixes for 1.4 RC2 ==<br />
<br />
=== Merged revisions for 1.4 RC2 ===<br />
<br />
*r47793 LCL: TShellCtrl: fixed slow checking for duplicates, bug 27473<br />
*r47782 TDateEdit: fix GetDate when DateOrder is doNone and Text has literal day- or monthnames. Issue {{MantisLink|0027454}}.<br />
*r47794 TDateEdit: Remove method DateFormatChanged: it exposes a private field that is only meant for internal use, and should not be changed by user.<br />
*r47790 Qt: fixed segfault when setting image list on TListView with OwnerData:=True. part of ({{MantisLink|0027469}})<br />
*r47804 Qt: dramatically improved OnData event of TListView. ({{MantisLink|0027475}})<br />
*r47805 Gtk2: fixed drawing images when TListView.OwnerData := true. ({{MantisLink|0027469}})<br />
*r47812, r47817, r47818 IDE: append -dWIN9XPLATFORM when building IDE on win9x for win32<br />
*r47814 LCL: added a listener for CM_CURSORCHANGED in TGraphicControl ({{MantisLink|0014257}})<br />
*r47841 LCL: fix to *r47814 for the control being in a scrolled window.<br />
*r47815 TShellTreeView: if Selected is a file then set the associated ShellListView.Root to the parentfolder (instead of to the file itself).<br />
*r47820 Qt: fixed regression with design time forms from r47674.<br />
*r47827 Converter: Fix converting DFM form files. Last char was left out. Issue #27446.<br />
*r47839 LCL: regenerated Russian translation<br />
*r47840 LCL: French translation update by Gilles Vasseur, bug 27478<br />
*r47842 LCL, ShellTreeView: improved i18n, patch by Péter Gábor with some changes, bug 27474; regenerated translations and updated Russian translationLCL: regenerated Russian translation<br />
*r47850 IdeIntf: Show Meta- menuitem shortcuts in Object Inspector only for Mac. {{MantisLink|27456}}<br />
*r47861 IDE: compare compiled file: ignore spaces between options<br />
*r47863 IDE: checking Makefile.compiled: ignore -Cg on Linux<br />
*r47866 TAChart: Less compilation hints and notes {{MantisLink|274884}}<br />
*r47869 LCL: gtk2: GetPreferredSize: subtract client area<br />
*r47871 IDE: project options: version: disable unneeded AutoSize<br />
*r47873 LCL: TScrollingWincontrol: GetLogicalClientRect: independent of AutoScroll to avoid cycle, GetPreferredSize: independent of AutoScroll, added extra checks if LCL clientrect is not in sync with widgetset, improved debugging preferredsize<br />
*r47875 LCL: TCustomGrid: disable default preferred size, because grid moves controls and change scrollbars, bug 27095<br />
*r47879 lazutils: fixed compilation on win64<br />
*r47877 IDE: Workaround for a missing DirectoryEdit event in Carbon. {{MantisLink|23063}}<br />
*r47886 LCL: win32: do not start timer when application terminated<br />
*r47887 IDE: editor color option: fixed layout, bug 27434<br />
*r47890 lazutf8: GetFormatSettingsUTF8: map common multibyte chars to ASCII<br />
*r47895 LCL: TTreeView: mousedown: fixed select on click on state icon<br />
*r47897 LCL: gtk2: GetGTKDefaultWidgetSize: ignore client area with child controls<br />
*r47898 IDE: designer: initialize FIsNonVisualComponent, bug 27502<br />
*r47900 IDE: designer: resize multiple controls: round mathematically instead of always down, needed for increase size by 1<br />
*r47905 IDE: Change default mouse settings for left gutter clicks<br />
*r47908 lcl: TCustomListView: show editor on dblclick via QueueAsyncCalls, bug 27505<br />
*r47913 LCL: carbon: do not use GetBestControlRect if there are child controls<br />
*r47920 IDE: auto create application bundle for IDE on darwin for all widgetsets<br />
*r47922 IDE: build laz: when clean option is on, clean up fallback directories too<br />
*r47924 LCL: MessageBox: default parameter Flags = MB_OK, bug 27510<br />
*r47928 Package editor: Prevent collapsing all tree nodes when changing file type. {{MantisLink|26188}}<br />
*r47930 codetools: fixed directive WriteableConst, bug 27512<br />
*r47932 codetools: identifier completion: updated list of directives<br />
*r47950 IDE: messages: fixed showing commandline<br />
*r47952 IDE: messages: about: use wordwrap<br />
*r47954 IDE: messages: linker errors: fixed finding them even without info message (9015) Linking<br />
*r47956 IDE: external tools: added TAbstractExternalTool.ReadStdOutBeforeErr, changed default to read stderr before out, needed by FPC linker errors<br />
*r47958 IDE: always pass -vi to FPC, needed to resolve file names without path<br />
*r47960 IDE: compiler options: verbosity: one column<br />
*r47964 IDE: compiler options: verbosity: removed -ve, IDE needs this to jump to errors<br />
*r47965 IDE: compiler options: removed obsolete option show summary, summary are now always shown in header<br />
*r47973 IDE: added TargetCPU a64<br />
*r47990 codetools: method jumping, class completion: support having an overload that differ only in class keyword, issue 25130<br />
*r47881 TShellTreeView: SetPath: take value of ObjectTypes into account.<br />
*r47889 Gtk2: new function Gtk2_PixBufFromBitmap(), simplified usage. patch by theo. {{MantisLink|27477}}<br />
*r47906 Qt: fixed TListView.OnData when we use TQtListWidget (vsList).<br />
*r47907 Qt: fixed selection behaviour of TListView.vsList when OwnerData = true.<br />
*r47923 Qt: fixed getting displaysize of TListView.Item drIcon. part of {{MantisLink|27509}}<br />
*r47939 Qt: do not send resize event on restore of minimized mdichild form. {{MantisLink|27518}}<br />
*r47941 LCL: TCustomListView: use drLabel instead of drBounds for listview editor bounds. {{MantisLink|27509}}<br />
*r47942 Qt: fixed TListItem DisplayRect for drLabel & drIcon. part of {{MantisLink|27509}}<br />
*r47944 Gtk2: fixed TListView displayRect for drLabel.{{MantisLink|27509}}<br />
*r47946 Qt: return correct displayrect(drLabel, drIcon) for TListView.vsList. {{MantisLink|27509}}<br />
*r47959 LHelp: Speedup communication between Lazarus and LHelp and speedup the chm search. LHelp is rebuilt if BeginUpdate is not supported.<br />
*r47970 IDE: Fix "All Options" parser for FPC 3.x output.<br />
*r47975 LHelp: Lazarus tries to save the old LHelp executable if compilation fails.<br />
*r47979 IDE: Take care of component palette page names that differ only by character case. Issue #27516.<br />
*r47982 LCL: Horizontal and Vertical Spacing for TCoolBar. Issue #27523<br />
*r47987 Help/LHelp: Don't scan directories in search path recursively to look for chm files<br />
*r47992 TCheckListBox: when user presses spacebar: if ItemIndex = -1: set it to 0 and fire OnClick; fire OnClickCheck. {{MantisLink|0024695}}.<br />
*r47993 TCheckListBox: fix possible crash introduced in r47992.<br />
*r47983, r47994 TI Grid: Fix and publish CheckboxForBoolean. Issue #27521.<br />
*r47971, r47995 IDE: Improve ComponentList window. Issues #27527, #27539<br />
*r48017 lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug 27538<br />
*r48024 LazReport: Polish translation update by Paweł Dmitruk, bug 27548. While at this, regenerated all other translations.<br />
*r48025 IDE: French translation update by Gilles Vasseur, bug 27546<br />
*r48013 Fixed Finnish translation.<br />
*r48014 IdeIntf: Use CheckBox as boolean editor also for Set elements.<br />
*r48022 Add Balazs Szekely to contributors list.<br />
*r48023 IdeIntf: Support restoring default value in Object Inspector for Set types. Issue #18734.<br />
*r48039 IDE: fpc msg parser, use console or system codepage depending on compiler version, bug 26623<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
*r47578 Qt: fixed themed drawing of disabled combobox.{{MantisLink|0027381}}<br />
*r47583 ColorListBox: use same logic for Style as TColorBox. Issue {{MantisLink|0027397}}.<br />
*r47590 IDE: added parameters --verbose, --quiet, when building IDE or project and when quit, give message when already building<br />
*r47616 IDE: package links dialog: fixed delete after sort<br />
*r47618 IDE: package links dialog: fixed sort after refilling grid<br />
*r47623 codetools: DateToCfgStr extended for time<br />
*r47625 printers: fixed combining date+time<br />
*r47627 turbopower_ipro: fixed combining date+time<br />
*r47629 lazsvnpkg: fixed combining date+time<br />
*r47631 examples: fixed combining date+time<br />
*r47633 tests: fixed combining date+time<br />
*r47635 LCL: tiff: fixed combining date+time<br />
*r47637 datetimectrls: fixed decodetime<br />
*r47639 codetools: fixed decodetime<br />
*r47641 fixed wrong Frac/Trunc in DecodeDate/Time<br />
*r47645 lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed<br />
*r47647 IDE: package links: remove old links to same lpk files, fixed using the recently used lpk of two packages with same name<br />
*r47677 LCL: carbon: TMemo.Lines.Assign: fixed empty strings at start, bug 27438<br />
*r47679 IDE: invalidate file cache before building, after save<br />
*r47585 Components, sqlite: i18n and layout improvement, patch by Péter Gábor, bug 27390 with string corrections. Also added Russian translation.<br />
*r47602 Translation example: Fix compilation, DefaultTranslator -> LCLTranslator.<br />
*r47606 IPro, TIpHtmlPreview: make printers print always. {{MantisLink|27409}}<br />
*r47652 IPro, TIpHtmlPanel: Support color printers. Issue #27420.<br />
*r47650 ShellTreeView: when fObjectTypes = [otFolders] only show expandsign if node has subdirs. Modified patch from theo. {{MantisLink|0027415}}.<br />
*r47686 ShellTreeView: change the logic of showing an expandsign so that the same logic of r47650 is applied wether or not [otHidden] is specified.<br />
*r47687 ShellTreeView: comment out some redundant code.<br />
*r47690 ShellTreeView: respect the designtime settings of ObjectTypes; add DbgS() for TObjectTypes<br />
*r47651 LCL/interfaces/qt: remove wrong offsets from Ellipse and RadialPie<br />
*r47662 fpvectorial: Add font name, color and styles, text rotation, text anchors to svgvectorialwriter. {{MantisLink|0027321}}<br />
*r47663 TAChart: Improved output of fpvectorial writer (related to {{MantisLink|0027321}})<br />
*r47700 LCL: French translation update by gilles58, bug 27423<br />
*r47649 translations: German: updates from Swen Heinig<br />
*r47672 GDBMI debugger, check result of SetFileName. Issue 0027431 po files<br />
*r47689 LazDebuggerGdbmi: updated Russian translation<br />
*r47706 Components, sqlite: Hungarian translation by Péter Gábor<br />
*r47721 Docs: added Gilles Vasseur to contributors list<br />
*r47584 IDE: regenerated translations and updated Russian translation<br />
*r47691 IDE: regenerated translations and updated Russian translation<br />
*r47600 Qt: added define TQTMESSAGEBOXUSEPARENT to fix showing dialogs behind application on MacOSX.<br />
*r47673 Qt: improved TQtGroupBox, added ability to show/hide checkbox in title of TQtGroupBox, needed by 3rd party components.<br />
*r47674 Qt: properly handle designed forms. Now IDE minimizing also minimize designed forms.<br />
*r47730 Qt: implemented TPreviewFileDialog.<br />
*r47731 Qt: check if GlobalCaret is assigned before setting respond to focus, or using getter. fixes crash.<br />
*r47732 Qt: qtwsdialogs: check if directory or filename exists in TOpenDialog.<br />
*r47733 Qt: change to mswin path delimiters if qt returned slash.Try to find $HOME if it's added as InitialDir.<br />
*r47734 Qt: make ALT modifier work under MacOSX. ({{MantisLink|0027411}})<br />
*r47742 Qt: fixed bug when setting filename of TSaveDialog.<br />
*r47743 ShellTreeView: refresh the tree when ObjectTypes is changed. Based upon a patch by theo.<br />
*r47744 Qt: finally fixed AppMinimize for designed forms.<br />
*r47747 Qt: unset elide mode on tabs under macosx because we have unreadable tabs when control contains a lot of tabs.<br />
<br />
== Older versions ==<br />
<br />
*[[Lazarus 1.4.0 release notes]]<br />
*[[Lazarus 1.2 fixes branch]]<br />
*[[Lazarus 1.2.0 release notes]]<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch. (Done 11 Jan 2015)<br />
<br />
* Release of 1.4 RC 1<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks. (Done 16 Fev 2015)<br />
<br />
* Release of 1.4 RC 2<br />
<br />
The testing period is scheduled to last 2 weeks. (Done 02 Mar 2015)<br />
<br />
* Maybe 1.4 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between March and April 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
== Other branches ==<br />
{{Navbar Lazarus Release Notes}}<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>Valdir.marcoshttps://wiki.freepascal.org/index.php?title=Lazarus_1.4_fixes_branch&diff=86049Lazarus 1.4 fixes branch2015-01-29T20:54:51Z<p>Valdir.marcos: /* Roadmap to 1.4 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_4/ Lazarus 1.4 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.2) see SVN and [[Lazarus_1.2_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.4.0 release notes|here]]<br />
<br />
== Notes ==<br />
<br />
{{Warning| FPC 2.6.4 has a bug when assigning data to TStringfield types (e.g. VARCHAR) of larger than 8192 bytes. Please see {{MantisLink|26068}} for a fix you can apply to your projects.}}<br />
<br />
== Fixes for 1.4 RC1 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r47562 Revert r47557 "LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189."<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.4 RC1 ===<br />
*r47339 Qt: fixed LM_CONTEXTMENU event in case of TQtCustomControl, when eg. form.PopupMenu is assigned, and control.PopupMenu=nil.<br />
*r47340 IDE Fix possible crash in TInitialSetupDialog.Init<br />
*r47345 IDE: Updated Italian translation languages/lazarusid.it.po<br />
*r47343 TAChart: Modify TBoxAndWhiskerSeries.AddXY to use correct YCount value.<br />
*r47346 SynEdit: TSynPluginSyncroEdit: Add a "CaseSensitive" property ({{MantisLink|0027258}})<br />
*r47348 TAChart: Improvements of Box-Whisker series (no crash on NaN, new prop WidthStyle, respect data point color)<br />
*r47352 IDE: Assign event handler in better place, designer will be focused when component is selected in palette.<br />
*r47353 Comp. Education: fix compilation after component palette changes.<br />
*r47354 IDE: build file: clean messages<br />
*r47356 IDE: fixed typo<br />
*r47358 IDE: corrected message after r47319<br />
*r47359 IDE: regenerated translations; updated Russian translation<br />
*r47360, r47369 Translations: committed regenerated files<br />
*r47367 TAChart: Avoid TBubbleSeries crashing if X/Y/R is NaN<br />
*r47375 lcl: TWinControl.InsertControl fixed position in Controls, widgetsets do not support that yet, issue 25405<br />
*r47374 Qt: fixed infinite loop with when double click item inside QTreeWidget (TListView.vsReport).({{MantisLink|0027298}})<br />
*r47379 IDE: Messages window: fixed autoscroll to new message<br />
*r47393 IDE: fix button anchors in UnusedUnitsDialog.<br />
*r47394 GDBMI debugger: updated Russian translation<br />
*r47399 IDE: Hid "Cancel Scanning" button in "Compare Files" dialog. It is always disabled and its functionality was never implemented.<br />
*r47401 OI: Update Boolean value from a Checkbox also when the control is changed but property remains the same.<br />
*r47402 TAChart: Fix font color/style/rotation in TADrawerSVG<br />
*r47403 H2Pas: fixed typos, patch by Péter Gábor, bug 27316; also regenerated translations and updated Russian translation.<br />
*r47404 Debugger: minor message improvements<br />
*r47405 Debugger: regenerated translations; updated Russian translation<br />
*r47420 translations: German: updates from Swen Heinig<br />
*r47421 IDE: options: identifier completion: dividers for groups<br />
*r47423 IDE: resourcestring<br />
*r47426 IDE: project options: FPC resources above old lrs resources<br />
*r47428 translations: German: updates from Swen Heinig<br />
*r47411 EditButton: implement property ButtonCursor ({{MantisLink|0027277}}).<br />
*r47412 EditButton: publish some more properties in TCustomEditButton derived components (for consistency).<br />
*r47413 Qt: proper paint of selected item in TListView.OnAdvancedDrawItem. ({{MantisLink|0027315}})<br />
*r47414 Qt: added cdPostPaint for TListView when ViewStyle <> vsReport. part of ({{MantisLink|0027315}})<br />
*r47415 Qt: added QtAlignVCenter, so text is properly aligned in TListItem. ({{MantisLink|0027043}})<br />
*r47416 Qt: fixed paint of empty items when we use OnCustomDraw or OnAdvancedDraw in TListView.<br />
*r47418 Gtk2: fixed item height. ({{MantisLink|0027043}})<br />
*r47419 EditButton: replace property ButtonAlign: TButtonAlign with Layout: TLeftRight.<br />
*r47435 IDE, Identifier Completion dialog: allow some captions to be translated independently<br />
*r47436 IDE: regenerated translations; updated Russian translation<br />
*r47410 OI: show '(Mixed)' for Checkbox caption when multiselect and values are mixed.<br />
*r47441 Object Inspector: i18nalize '(Mixed)' value<br />
*r47474 LCL: Fix a grammar error in a resource string.<br />
*r47475 Improvements for Finnish translation.<br />
*r47476 LCL: regenerated translations; updated Russian translation<br />
*r47479 Fix errors in Finnish translation.<br />
*r47481 LCL: Revert a workaround for FPC bug that causes Arithmetic overflow in TControlbar. Fixed in FPC trunk. Issue #27167.<br />
*r47482 IDE: regenerated Finnish translation<br />
*r47484 LazReport: i18n-ed editor options and function editor, based on patch by Péter Gábor, bugs 27339, 27340; regenerated translations and updated Russian translation.<br />
*r47485 LazReport: fixed typo in function description, patch by Péter Gábor, bug 27338; regenerated translations and updated Russian translation.<br />
*r47490 IDE: Improve TPathEditorButton class, handle Templates better.<br />
*r47491 IDE: Refactor TPathEditorButton more. Copy values between dialog and edit here instead of clients' code.<br />
*r47492 IDE: in Compiler_path_options, turn method CheckSearchPath into a function. Harmonize.<br />
*r47493 IDE: Let TPathEditorButton show the list of paths in edit control's hint.<br />
*r47494 IDE: Fix a layout error in TPathEditorDialog where TemplateGroupBox went under ButtonPanel.<br />
*r47499 Fix some Finnish translations.<br />
*r47500 LazReport: correctly clear combobox in editor options and fix typo in class method name, based on patch by Péter Gábor, bugs 27347<br />
*r47524 IDE: messages: fixed scanning filenames with brackets<br />
*r47530 lcl: grids: docs, issue 27325, from Simon Ameis<br />
*r47532 ideintf: resourcestring, issue 27317, from Gábor<br />
*r47542 LCL: TCustomSpeedButton: do not store Glyph in lfm when Action provides the Glyph, issue 27357, from BBaz<br />
*r47521 TAChart: Move declaration of TDrawEvent event out of the context of TChart and rename it to TChartDrawEvent to fix event OnAfterDraw<br />
*r47523 LCL: TCustomBitBtn: do not store Glyph when set by Action, issue 27358, from BBaz<br />
*r47553 IDEIntf: updated Russian translation<br />
*r47554 Translations: Hungarian translation update by Péter Gábor, bug 27365<br />
*r47556 * Phillipe Levi mentioned seeing "Stringrid" on the ml, a grep turned up two occurances -> fixed.<br />
*r47557 LCL: Prevent calling TListView OnMouseUp twice on Windows 7. Issue #27189, patch from Michl.<br />
*r47563 IDE: drop files: invalidate file state cache<br />
<br />
== Roadmap to 1.4 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.4 fixes branch (Done 11 Jan 2015)<br />
<br />
* Release of 1.4 RC 1<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Release of 1.4 RC 2<br />
<br />
The testing period is scheduled to last 2 weeks.<br />
<br />
* Maybe 1.4 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.4 (between Feb and Apr 2015)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.4 in fixes_1_4 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lazarus/ide/version.inc 1.4RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.4.0.1 for RC1, 1.4.0.2 for RC2, 1.4.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.4.0-1 for RC1, 1.4.0-2 for RC2, 1.4.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.4 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_4 branch to tags/release_1_4_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_4 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_4_RC1 -m 'tagged 1.4RC1 as tags/lazarus_1_4_RC1'<br />
* Set version to next version in svn<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]<br />
[[Category:Release Notes]]</div>Valdir.marcos