View Issue Details

IDProjectCategoryView StatusLast Update
0026200LazarusWidgetsetpublic2014-09-11 18:43
ReporterAndrey Zubarev Assigned ToZeljan Rikalo  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86_64OSkubuntu 
Product Version1.3 (SVN) 
Fixed in Version1.3 (SVN) 
Summary0026200: rev45059 break anchordocking on qt widget type
DescriptionAfter r45059 anchordocking stopped working (in IDE and my program) - changebounds loop detected. I attach screen with my layout and error message
TagsNo tags attached.
Fixed in Revision45147
LazTarget1.2.4
WidgetsetQT
Attached Files

Relationships

related to 0018298 resolvedMattias Gaertner Please update the default layout provided with anchor docking package 

Activities

Andrey Zubarev

2014-05-20 22:56

reporter  

bad45059.png (570,594 bytes)

Andrey Zubarev

2014-05-20 22:59

reporter   ~0075150

log:

zamtmn@desktop:~/hdd/src/lazarus$ ./startlazarus
 is a file
TLazarusManager.Run starting /home/zamtmn/hdd/src/lazarus/lazarus ...
TMainIDE.ParseCmdLineOptions:
  PrimaryConfigPath="/home/zamtmn/.lazarus"
  SecondaryConfigPath="/etc/lazarus"
TIDEAnchorDockMaster.MakeIDEWindowDockSite MainIDE:TMainIDEBar
TIDEAnchorDockMaster.LoadUserLayout anchordocklayout.xml
TIDEAnchorDockMaster.LoadUserLayout restoring ...
Bus::open: Can not get ibus-daemon's address.
IBusInputContext::createInputContext: no connection to ibus-daemon
TApplication.HandleException TControl.ChangeBounds loop detected AnchorDockSplitter3:TAnchorDockSplitter Left=0,Top=-19082,Width=1841,Height=4 NewLeft=0,NewTop=46454,NewWidth=1841,NewHeight=4
  Stack trace:
  $000000000061E313 line 635 of include/control.inc
  $000000000061DFF4 line 661 of include/control.inc
  $0000000000625471 line 3661 of include/control.inc
  $000000000061AE4B line 7941 of include/wincontrol.inc
  $00000000011B5222 line 5752 of anchordocking.pas
  $00000000011ADE06 line 4100 of anchordocking.pas
  $0000000000616FC8 line 6297 of include/wincontrol.inc
  $0000000000623348 line 2833 of include/control.inc
  $0000000000623384 line 2835 of include/control.inc
  $00000000006230BC line 2881 of include/control.inc
  $0000000000611109 line 3504 of include/wincontrol.inc
  $000000000061D56A line 356 of include/control.inc
  $000000000061D52A line 351 of include/control.inc
  $000000000061D52A line 351 of include/control.inc
  $000000000061D52A line 351 of include/control.inc
  $000000000061B502 line 8115 of include/wincontrol.inc
  $0000000000628789 line 4758 of include/control.inc

Andrey Zubarev

2014-05-20 23:03

reporter  

anchordocklayout.xml (1,780 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
  <MainConfig>
    <Nodes ChildCount="2">
      <Item1 Name="MainIDE" Type="CustomSite" ChildCount="1">
        <Bounds Left="49" Top="25" Width="2445" Height="1331">
          <WorkArea>
            <Rect Right="2560" Bottom="1440"/>
          </WorkArea>
        </Bounds>
        <Item1 Name="AnchorDockSite5" Type="Layout" ChildCount="5">
          <Bounds Top="64" Width="2445" Height="1241" SplitterPos="60"/>
          <Anchors Align="Bottom"/>
          <Item1 Name="MessagesView" Type="Control">
            <Bounds Top="1127" Width="1841" Height="114"/>
            <Anchors Top="AnchorDockSplitter3" Right="AnchorDockSplitter2"/>
          </Item1>
          <Item2 Name="AnchorDockSplitter2" Type="SplitterVertical">
            <Bounds Left="1841" Width="4" Height="1241"/>
          </Item2>
          <Item3 Name="CodeExplorerView" Type="Control">
            <Bounds Left="1845" Width="600" Height="1241"/>
            <Anchors Left="AnchorDockSplitter2"/>
          </Item3>
          <Item4 Name="AnchorDockSplitter3" Type="SplitterHorizontal">
            <Bounds Top="1123" Width="1841" Height="4"/>
            <Anchors Right="AnchorDockSplitter2"/>
          </Item4>
          <Item5 Name="SourceNotebook" Type="Control">
            <Bounds Width="1841" Height="1123"/>
            <Anchors Right="AnchorDockSplitter2" Bottom="AnchorDockSplitter3"/>
            <Header Position="left"/>
          </Item5>
        </Item1>
      </Item1>
      <Item2 Name="ObjectInspectorDlg" Type="Control">
        <Bounds Top="266" Width="306" Height="734">
          <WorkArea>
            <Rect Right="2560" Bottom="1440"/>
          </WorkArea>
        </Bounds>
      </Item2>
    </Nodes>
  </MainConfig>
</CONFIG>
anchordocklayout.xml (1,780 bytes)   

Zeljan Rikalo

2014-05-21 08:42

developer   ~0075157

Please provide: Qt library version. Anchor docking works fine here on Fedora 19 32bit Qt-4.8.5.

Zeljan Rikalo

2014-05-21 08:44

developer   ~0075158

Please update to current trunk and give feedback. I'm using Lazarus 1.3 r45117 FPC 2.6.4 i386-linux-qt.

Zeljan Rikalo

2014-05-21 10:05

developer   ~0075161

Please test with r45123.

Zeljan Rikalo

2014-05-21 10:54

developer   ~0075162

Just tested under 64bit Fedora 16 Qt-4.8.4 and everything is fine.

Zeljan Rikalo

2014-05-21 18:24

developer   ~0075167

Please test with trunk r45138 and give feedback. I could not reproduce it on any of my machines.

Andrey Zubarev

2014-05-21 19:03

reporter   ~0075168

rev 45138 - the bug is present.
>>I could not reproduce it on any of my machines.
please try use my anchordocklayout.xml or create a window layout as shown in the screenshot. The error appears not on all layouts. For example, if I have time to close the Code Explorer - all works fine

>>Please provide: Qt library version
How i can verify this?

Zeljan Rikalo

2014-05-21 19:38

developer   ~0075171

Yes, I'm using your layout all the time (it's almost same like mine default layout) and I cannot reproduce it.
You must google for apt-get library version, or include qtint unit into your unit of project and writeln consts QtVersionMajor,QtVersionMinor and QtVersionMicro.

Zeljan Rikalo

2014-05-21 20:04

developer   ~0075173

ok, I got something bad, but not error. When codeexplorer is docked and when it fills values via OnIdle then problem begins.

Andrey Zubarev

2014-05-21 20:19

reporter   ~0075175

Qt-4.8.6

QtVersionMajor=4
QtVersionMinor=8
QtVersionMicro=6

Zeljan Rikalo

2014-05-21 22:35

developer   ~0075180

Try in qtwidgets.pas

function TQtMainWindow.getClientBounds: TRect;
begin
  {$IFDEF QTSCROLLABLEFORMS}
  (* COMMENT THIS CODE
  if Assigned(ScrollArea) and
    {forms which have parent eg.docked must always provide
     ScrollArea clientRect, while others provide such info
     only when they are mapped.}
    (testAttribute(QtWA_Mapped) or (LCLObject.Parent <> nil)) then
      Result := ScrollArea.getClientBounds
  else
  *)
  {$ENDIF}
  Result:=inherited getClientBounds;

Andrey Zubarev

2014-05-21 23:05

reporter   ~0075184

Yes, it work

Zeljan Rikalo

2014-05-22 07:15

developer   ~0075190

But it's not correct.Something is wrong with TCustomForm clientRect when it's docked or LCL does not have clientRect information at the right time.
You can use that for workaround for now but it's bug and must be fixed.

Zeljan Rikalo

2014-05-22 12:20

developer   ~0075192

Please test and close if ok.

Andrey Zubarev

2014-05-22 13:42

reporter   ~0075195

Thanks!

Issue History

Date Modified Username Field Change
2014-05-20 22:56 Andrey Zubarev New Issue
2014-05-20 22:56 Andrey Zubarev File Added: bad45059.png
2014-05-20 22:59 Andrey Zubarev Note Added: 0075150
2014-05-20 23:03 Andrey Zubarev File Added: anchordocklayout.xml
2014-05-21 08:42 Zeljan Rikalo LazTarget => -
2014-05-21 08:42 Zeljan Rikalo Note Added: 0075157
2014-05-21 08:42 Zeljan Rikalo Assigned To => Zeljan Rikalo
2014-05-21 08:42 Zeljan Rikalo Status new => assigned
2014-05-21 08:44 Zeljan Rikalo Note Added: 0075158
2014-05-21 10:05 Zeljan Rikalo Note Added: 0075161
2014-05-21 10:54 Zeljan Rikalo Note Added: 0075162
2014-05-21 18:24 Zeljan Rikalo Note Added: 0075167
2014-05-21 18:24 Zeljan Rikalo Status assigned => feedback
2014-05-21 19:03 Andrey Zubarev Note Added: 0075168
2014-05-21 19:03 Andrey Zubarev Status feedback => assigned
2014-05-21 19:38 Zeljan Rikalo Note Added: 0075171
2014-05-21 20:04 Zeljan Rikalo Note Added: 0075173
2014-05-21 20:19 Andrey Zubarev Note Added: 0075175
2014-05-21 22:35 Zeljan Rikalo Note Added: 0075180
2014-05-21 23:05 Andrey Zubarev Note Added: 0075184
2014-05-22 07:15 Zeljan Rikalo Note Added: 0075190
2014-05-22 12:20 Zeljan Rikalo Fixed in Revision => 45147
2014-05-22 12:20 Zeljan Rikalo LazTarget - => 1.2.4
2014-05-22 12:20 Zeljan Rikalo Note Added: 0075192
2014-05-22 12:20 Zeljan Rikalo Status assigned => resolved
2014-05-22 12:20 Zeljan Rikalo Fixed in Version => 1.3 (SVN)
2014-05-22 12:20 Zeljan Rikalo Resolution open => fixed
2014-05-22 13:42 Andrey Zubarev Note Added: 0075195
2014-05-22 13:42 Andrey Zubarev Status resolved => closed
2014-09-11 18:43 Mattias Gaertner Relationship added related to 0018298