0
votes

I have an image object in QML (QtQuick 1.0), its height must be relative (in case of window scaling), but the problem is when I try to display this image in fullsize. Please look at the following part of my code:

 Image {
      id: selectionDialogImage
      source: "qrc:/Images/myImage.png"
      property int oldHeight: sourceSize.height
      sourceSize.height: testsList.height/3
      scale: 1
      anchors.bottom: parent.bottom
      anchors.left: parent.left
      visible: false
      property bool imageFullsize: false
      MouseArea {
                anchors.fill: parent
                onClicked:
                  {
                    if(parent.imageFullsize)
                    {
                       parent.parent = selectionDialogQuestionText;
                       parent.sourceSize.width = undefined;
                       parent.sourceSize.height = testsList.height/3;
                       parent.anchors.horizontalCenter = undefined;
                       parent.anchors.verticalCenter = undefined;
                       parent.anchors.left = selectionDialogQuestionText.left;
                       parent.anchors.bottom = selectionDialogQuestionText.bottom;
                       parent.imageFullsize = false;
                    }
                    else
                    {
                       parent.parent = mainItem;
                       parent.sourceSize.height = parent.oldHeight;
                       //parent.sourceSize.height = undefined;
                       parent.sourceSize.width = mainItem.width;
                       parent.anchors.horizontalCenter = mainItem.horizontalCenter;
                       parent.imageFullsize = true;
                    }
                  }
              }
       }

selectionDialogQuestionText is a default parent of my image item. mainItem is the largest item, it has size of the whole window. So I want to have the image size set on the basis of width when I'm displaying it on a fullscreen, but in another state I want to scale the image setting its height.

When I set parent.sourceSize.width = mainItem.width;, image isn't scaled, but its height is as previous (very little) so its proportions are inappropriate.

Can I store old height of source image in any way? I need something like const, because property int oldHeight: sourceSize.heigh is relative. Or is there a way to restore default size of image and then set height/width?

UPDATE #1: I tried to use method described by @Mitch:

property int oldHeight
Component.onCompleted: {
   oldHeight = sourceSize.height
   }
   sourceSize.height: 250

but console.log("oldHeight="+parent.oldHeight) a few lines below shows oldHeight=250, not original height.

1
Can you provide illustrations of what you're trying to do? Your question is quite difficult to follow.Mitch

1 Answers

1
votes

Can I store old height of source image in any way?

You can use Component.onCompleted:

Image {
    // ...
    Component.onCompleted: {
        oldHeight = sourceSize.height
    }
}