Bug 73059 - EDITING: Forms - columns could not be hidden in a tablecontrol while editing a form
Summary: EDITING: Forms - columns could not be hidden in a tablecontrol while editing ...
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
3.6.0.0.beta1
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:4.5.0 target:4.4.1 target:4.3.7
Keywords: bibisected, regression
Depends on:
Blocks:
 
Reported: 2013-12-27 08:10 UTC by Robert Großkopf
Modified: 2015-12-17 07:34 UTC (History)
7 users (show)

See Also:
Crash report or crash signature:


Attachments
Form with a tablecontrol. Try to hide a column while editing the form. (9.83 KB, application/vnd.oasis.opendocument.base)
2013-12-27 08:10 UTC, Robert Großkopf
Details
Hide columns while editing a form is possible up to LO 3.5 (10.69 KB, image/png)
2013-12-27 08:13 UTC, Robert Großkopf
Details
Hide columns while editing a form is not possible since LO 3.6 (9.54 KB, image/png)
2013-12-27 08:13 UTC, Robert Großkopf
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Großkopf 2013-12-27 08:10:49 UTC
Created attachment 91209 [details]
Form with a tablecontrol. Try to hide a column while editing the form.

Open the attached database.
Open the form for editing.
Try to hide a column of the tablecontrol with the context-menue of the mouse.
There isn't any possibility for hiding a column while editing a form. 

This possibility has been gone since LO 3.6. Tested it with 3.0.0.0beta1 as the first version I have installed. With LO 3.5.7.2 and all other earlier versions this works.

Note: This bug appears at the same time as bug54021.
Comment 1 Robert Großkopf 2013-12-27 08:13:12 UTC
Created attachment 91210 [details]
Hide columns while editing a form is possible up to LO 3.5
Comment 2 Robert Großkopf 2013-12-27 08:13:48 UTC
Created attachment 91211 [details]
Hide columns while editing a form is not possible since LO 3.6
Comment 3 senya 2014-10-15 12:54:17 UTC
I confirm it happens on 4.2.6.3.

However, after you open a column properties window from the form editor and then close it, menu entry for "Hide column" appears in the context menu.
Comment 4 Robert Großkopf 2014-10-15 17:21:03 UTC
(In reply to senya from comment #3) 
> However, after you open a column properties window from the form editor and
> then close it, menu entry for "Hide column" appears in the context menu.

Could confirm "Hide Column" appears after opening column properties. It seems to be not the same context menu. There is also "Column Width" in the menu, which appears after opening the column properties.
Comment 5 Matthew Francis 2014-12-06 09:06:04 UTC
Results from bibisect-43all:
 d3f11a2232b85bc3ab3e69000f571c0eba1930fd is the first bad commit
commit d3f11a2232b85bc3ab3e69000f571c0eba1930fd
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date:   Wed May 2 19:14:52 2012 +0200

    source-hash-0bbf79005a697c6781047c01f05eb660836a18e1
    
    commit 0bbf79005a697c6781047c01f05eb660836a18e1
    Author:     Stephan Bergmann <sbergman@redhat.com>
    AuthorDate: Mon Apr 23 11:47:45 2012 +0200
    Commit:     Stephan Bergmann <sbergman@redhat.com>
    CommitDate: Mon Apr 23 11:47:45 2012 +0200
    
        Do not fail for legacy rdb that only contains root key

# bad: [423a84c4f7068853974887d98442bc2a2d0cc91b] source-hash-c15927f20d4727c3b8de68497b6949e72f9e6e9e
# good: [65fd30f5cb4cdd37995a33420ed8273c0a29bf00] source-hash-d6cde02dbce8c28c6af836e2dc1120f8a6ef9932
git bisect start 'latest' 'oldest'
# bad: [e02439a3d6297a1f5334fa558ddec5ef4212c574] source-hash-6b8393474974d2af7a2cb3c47b3d5c081b550bdb
git bisect bad e02439a3d6297a1f5334fa558ddec5ef4212c574
# bad: [8f4aeaad2f65d656328a451154142bb82efa4327] source-hash-1885266f274575327cdeee9852945a3e91f32f15
git bisect bad 8f4aeaad2f65d656328a451154142bb82efa4327
# good: [369369915d3582924b3d01c9b01167268ed38f3b] source-hash-45295f3cdceb4c289553791071b5d7f4962d2ec4
git bisect good 369369915d3582924b3d01c9b01167268ed38f3b
# bad: [6fce03a944bf50e90cd31e2d559fe8705ccc993e] source-hash-47e4a33a6405eb1b5186027f55bd9cb99b0c1fe7
git bisect bad 6fce03a944bf50e90cd31e2d559fe8705ccc993e
# bad: [8a39227e344637eb7154a10ac825d211e64d584c] source-hash-f5080ebb7022c9f5d7d7fdca4fe9d19f9bb8cabf
git bisect bad 8a39227e344637eb7154a10ac825d211e64d584c
# good: [e8bc60acad752e284db73fc4d8ad383ac055361c] source-hash-7e6e16ba6de2d3ef2b130d1ad5ffeabfdb37918e
git bisect good e8bc60acad752e284db73fc4d8ad383ac055361c
# bad: [e1ec404400a4c6531a5d49d89631d1acc599071d] source-hash-5708f2bfa70db0479ddbf9b454329cd81e0f509d
git bisect bad e1ec404400a4c6531a5d49d89631d1acc599071d
# good: [894d6fd8932770422f37b8f562717c846fef6a1b] source-hash-61d78aca81f08ac3a0f9eb65799d04d56fbad312
git bisect good 894d6fd8932770422f37b8f562717c846fef6a1b
# bad: [54177448b4716be474746c4a676f39d8038caf03] source-hash-fd58025dc7379126738cf73908ec10e809348e6a
git bisect bad 54177448b4716be474746c4a676f39d8038caf03
# bad: [d3f11a2232b85bc3ab3e69000f571c0eba1930fd] source-hash-0bbf79005a697c6781047c01f05eb660836a18e1
git bisect bad d3f11a2232b85bc3ab3e69000f571c0eba1930fd
# first bad commit: [d3f11a2232b85bc3ab3e69000f571c0eba1930fd] source-hash-0bbf79005a697c6781047c01f05eb660836a18e1
Comment 6 Alex Thurgood 2015-01-03 17:41:26 UTC
Adding self to CC if not already on
Comment 7 Julien Nabet 2015-01-25 13:07:15 UTC
On pc Debian x86-64 with master sources updated yesterday, I could reproduce this.

The problem is there:
991 Reference< XRowSet >  xDataSource(xColumns->getParent(), UNO_QUERY);
992 Reference< XChild >  xConn(::dbtools::getConnection(xDataSource),UNO_QUERY);
993 if (xConn.is())
...
xConn returns nothing.
see http://opengrok.libreoffice.org/xref/core/dbaccess/source/ui/browser/sbagrid.cxx#992
That's because:
    331 Reference< XConnection> getConnection(const Reference< XRowSet>& _rxRowSet) throw (RuntimeException)
    332 {
    333     Reference< XConnection> xReturn;
    334     Reference< XPropertySet> xRowSetProps(_rxRowSet, UNO_QUERY);
    335     if (xRowSetProps.is())
    336         xRowSetProps->getPropertyValue("ActiveConnection") >>= xReturn;
    337     return xReturn;
    338 }
line 336 returns nothing
see http://opengrok.libreoffice.org/xref/core/connectivity/source/commontools/dbtools.cxx#331

Opening column properties calls lcl_connectRowSet, 
#0  dbtools::lcl_connectRowSet (_rxRowSet=uno::Reference to (frm::ODatabaseForm *) 0x329a108, _rxContext=uno::Reference to (cppu::ComponentContext *) 0x33a1dd0, 
    _bSetAsActiveConnection=true, _bAttachAutoDisposer=false) at /home/julien/compile-libreoffice/libreoffice/connectivity/source/commontools/dbtools.cxx:346
#1  0x00002aaac94c3af0 in dbtools::ensureRowSetConnection (_rxRowSet=uno::Reference to (frm::ODatabaseForm *) 0x329a108, 
    _rxContext=uno::Reference to (cppu::ComponentContext *) 0x33a1dd0, _bUseAutoConnectionDisposer=false)
    at /home/julien/compile-libreoffice/libreoffice/connectivity/source/commontools/dbtools.cxx:468
#2  0x00002aaae35f0cd6 in pcr::FormComponentPropertyHandler::impl_ensureRowsetConnection_nothrow (this=0x398c240)
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/formcomponenthandler.cxx:2413
#3  0x00002aaae35f05e0 in pcr::FormComponentPropertyHandler::impl_initFieldList_nothrow (this=0x398c240, _rFieldNames=std::__debug::vector of length 0, capacity 0)
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/formcomponenthandler.cxx:2357
#4  0x00002aaae35eaede in pcr::FormComponentPropertyHandler::describePropertyLine (this=0x398c240, _rPropertyName="DataField", 
    _rxControlFactory=uno::Reference to (pcr::OPropertyBrowserController *) 0x3964118)
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/formcomponenthandler.cxx:1378
#5  0x00002aaae364309c in pcr::OPropertyBrowserController::describePropertyLine (this=0x39640d0, _rProperty=..., _rDescriptor=...)
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/propcontroller.cxx:1142
#6  0x00002aaae3643890 in pcr::OPropertyBrowserController::UpdateUI (this=0x39640d0)
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/propcontroller.cxx:1227
#7  0x00002aaae3641ff6 in pcr::OPropertyBrowserController::impl_rebindToInspectee_nothrow (this=0x39640d0, _rObjects=std::__debug::vector of length 1, capacity 1 = {...})
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/propcontroller.cxx:967
#8  0x00002aaae363e864 in pcr::OPropertyBrowserController::inspect (this=0x39640d0, _rObjects=uno::Sequence of length 1 = {...})
    at /home/julien/compile-libreoffice/libreoffice/extensions/source/propctrlr/propcontroller.cxx:284
#9  0x00002aaad1081561 in FmPropBrw::implSetNewSelection (this=0x3614920, _rSelection=std::__debug::set with 1 elements = {...})
    at /home/julien/compile-libreoffice/libreoffice/svx/source/form/fmPropBrw.cxx:397
#10 0x00002aaad1082e5a in FmPropBrw::StateChanged (this=0x3614920, nSID=10636, eState=DEFAULT, pState=0x350b470)
    at /home/julien/compile-libreoffice/libreoffice/svx/source/form/fmPropBrw.cxx:640
#11 0x00002aaaaeb4194b in SfxStateCache::SetState_Impl (this=0x33a1640, eState=DEFAULT, pState=0x350b470, bMaybeDirty=false)
    at /home/julien/compile-libreoffice/libreoffice/sfx2/source/control/statcach.cxx:429
#12 0x00002aaaaeb4150b in SfxStateCache::SetState (this=0x33a1640, eState=DEFAULT, pState=0x350b470, bMaybeDirty=false)
    at /home/julien/compile-libreoffice/libreoffice/sfx2/source/control/statcach.cxx:339
#13 0x00002aaaaeaf4361 in SfxBindings::UpdateControllers_Impl (this=0x34f6cf0, pIF=0x3175040, rFound=..., pItem=0x350b470, eState=SET)
    at /home/julien/compile-libreoffice/libreoffice/sfx2/source/control/bindings.cxx:1487
#14 0x00002aaaaeaf0406 in SfxBindings::Update_Impl (this=0x34f6cf0, pCache=0x3280300) at /home/julien/compile-libreoffice/libreoffice/sfx2/source/control/bindings.cxx:433
#15 0x00002aaaaeaf4aad in SfxBindings::NextJob_Impl (this=0x34f6cf0, pTimer=0x32de980) at /home/julien/compile-libreoffice/libreoffice/sfx2/source/control/bindings.cxx:1619

so "hidden column" can appear then.

Lionel: thought you might be interested in this one.
It seems, form related bugs have a similar root cause.
Comment 8 Lionel Elie Mamane 2015-01-25 18:09:27 UTC
Work-around: open the properties of any column, or swtich to non-design mode and back to design mode.

Julien, thanks for the analysis. Feel free to take inspiration from the fix to fix the other similar bugs :) When trying to test, take care of the above work-around, which might make you think it is fixed when it is not :)
Comment 9 Julien Nabet 2015-01-25 18:26:21 UTC
Thank you Lionel for your feedback and your fix! :-)

(http://cgit.freedesktop.org/libreoffice/core/commit/?id=71ba72260ea9526bbe2003f669bb4f006a907504)
Comment 10 Commit Notification 2015-02-09 13:14:48 UTC
Lionel Elie Mamane committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=6d82d8b51776b349ff58fc15d269840755859d02&h=libreoffice-4-4

tdf#73059 isDBReadOnly ensure connection before trying to retrieve it

It will be available in 4.4.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 11 Commit Notification 2015-02-09 17:26:56 UTC
Lionel Elie Mamane committed a patch related to this issue.
It has been pushed to "libreoffice-4-3":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=605c8d7f4c7b5b431747ced10243e01529b31777&h=libreoffice-4-3

tdf#73059 isDBReadOnly ensure connection before trying to retrieve it

It will be available in 4.3.7.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 12 Robinson Tryon (qubit) 2015-12-17 07:34:55 UTC Comment hidden (obsolete)