Skip to content

QfPaneDrawer component shared by the featurelistform and bookmarklist drawers#7669

Open
kaustuvpokharel wants to merge 3 commits into
masterfrom
bookmark-centralizePane
Open

QfPaneDrawer component shared by the featurelistform and bookmarklist drawers#7669
kaustuvpokharel wants to merge 3 commits into
masterfrom
bookmark-centralizePane

Conversation

@kaustuvpokharel

@kaustuvpokharel kaustuvpokharel commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

The featurelistform and bookmark listdrawer had duplicated pane sizing, drag-to-resize, fullscreen and resize-animation logic. This extracts that into a shared QfPaneDrawer and migrates both onto it

Each components keeps its own header, content and behaviour, configuring the shell via contentVisible, minContentHeight, headerHeight and freezeKey, and reacting to collapsed() for below-minimum drags. NavigationBar is unchanged, hence no behavioural change intended for either drawer

@kaustuvpokharel kaustuvpokharel self-assigned this Jul 1, 2026
@qfield-fairy

qfield-fairy commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

🍎 MacOS DMG universal builds

Download a MacOS DMG universal build of this PR for testing.
(Built from commit 50afd45)

📱 Android builds

Download an Android arm64 build of this PR for testing.
(Built from commit 50afd45)

Other Android architectures

🪟 Windows builds

Download a Windows build of this PR for testing and for arm64.

(Built from commit 50afd45)

🐧 Linux AppImage builds

Download a Linux AppImage build of this PR for testing.
(Built from commit 50afd45)

Comment on lines +13 to +16
property real dragHeightAdjustment: 0
property real dragWidthAdjustment: 0
property real lastWidth
property real lastHeight

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we avoid exposing these internal properties at the root item level?

We can use a

QtObject {
id: props
}

object in there.

Pane {
id: paneDrawer

property bool isVertical: parent.width < parent.height || parent.width < 300

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume it's read-only?

* \ingroup qml
*/
Pane {
id: paneDrawer

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While we're here and cleaning things up, please add // comments to the properties that have no comment yet.

Also, use //! instead of // , that will help us getting a better documentation on api.qfield.org.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants