dcs-liberation / dcs_liberation

DCS World dynamic campaign.
GNU Lesser General Public License v3.0
712 stars 185 forks source link

'PySide2.QtWidgets.QWidgetItem' object has no attribute 'width' #2272

Closed Holdi601 closed 2 years ago

Holdi601 commented 2 years ago

Affected versions

5.2.0

Development build

No response

Description

image When confirming my round results i got this error. I tried to save afterwards but it didnt open the Save as prompt as it usually does. Syria Full map campaign

Save game and other files

image GH_Syria_alone.zip state.zip

Raffson commented 2 years ago

Can you provide a little more context? I can't seem to reproduce this error. I tried loading up your campaign and manually submitting the results from state.json but on my end everything seems to work.

Holdi601 commented 2 years ago

Well i had the bug once, i finished the mission accepted the results and this error showed up. As a dev myself i thought posting about that bug on discord but i got told i should post it here.

Raffson commented 2 years ago

Literally any clue would help at this point, I need as much info as you can provide. Because if I can't reproduce this error, then the only thing left is to check the code. That only added to the confusion because I don't see how a QWidgetItem suddenly gets thrown in the mix...

Holdi601 commented 2 years ago

Sorry, sadly I dont have. I played Liberation missions before and after and didn't got this message again. So I wouldn't know what went special in this scenario. I guess if you can't find a line how this code gets into that state, put the bug on backlog with CNR ?

Raffson commented 2 years ago

Just to be clear, you accepted results after actually flying a mission, correct? It would be the only difference that comes to mind, and perhaps a starting point to track down the program flow...

Holdi601 commented 2 years ago

Yes I accepted the results and then this message came.

Raffson commented 2 years ago

Right, then I'd like to know which flight you flew exactly. Looking at the ATO I only find BARCAP packages and 1 AWACS package with no player slots, so I'm suspecting the state of the save-file is "1 turn ahead of the problem", could that be possible in your opinion?

Holdi601 commented 2 years ago

Im verly certain I flew a harrier in that mission on a sead or dead.

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows

From: @.> Sent: Friday, 1 July 2022 13:50 To: @.> Cc: @.>; @.> Subject: Re: [dcs-liberation/dcs_liberation] 'PySide2.QtWidgets.QWidgetItem' object has no attribute 'width' (Issue #2272)

Right, then I'd like to know which flight you flew exactly. Looking at the ATO I only find BARCAP packages and 1 AWACS package with no player slots, so I'm suspecting the state of the save-file is "1 turn ahead of the problem", could that be possible in your opinion?

— Reply to this email directly, view it on GitHubhttps://github.com/dcs-liberation/dcs_liberation/issues/2272#issuecomment-1172262349, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEKZPQU5S56DK6GBC3M2USTVR3LRLANCNFSM5Z3AOXVA. You are receiving this because you authored the thread.Message ID: @.***>

Raffson commented 2 years ago

All I got in your save-file is AI flights for F-14B, F-15C & F/A-18C... (and AWACS of course)

Holdi601 commented 2 years ago

That might be the issue then? I mean the other possibility is I flew a hornet but especially in my first couple tries with Liberation (which this was on my end) I used the Av8b

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows

From: @.> Sent: Friday, 1 July 2022 13:53 To: @.> Cc: @.>; @.> Subject: Re: [dcs-liberation/dcs_liberation] 'PySide2.QtWidgets.QWidgetItem' object has no attribute 'width' (Issue #2272)

All I got in your save-file is AI flights for F-14B, F-15C & F/A-18C...

— Reply to this email directly, view it on GitHubhttps://github.com/dcs-liberation/dcs_liberation/issues/2272#issuecomment-1172264710, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEKZPQTEH3WWU3ZN7SP5MJDVR3L4ZANCNFSM5Z3AOXVA. You are receiving this because you authored the thread.Message ID: @.***>

Raffson commented 2 years ago

It's probably why I can't reproduce the error. But the fact that it popped up on your end means there's got to be a problem somewhere, and probably didn't get fixed up until now since the history for delegates.py shows no changes to the code that causes the exception. So yeah, seems like this is gonna be a tough one 🤣

Raffson commented 2 years ago

@DanAlbert I think you can close this one as not reproducible cause the save-file is 1 turn ahead afaict, and this doesn't seem like something I'll be able to fix considering the error doesn't make much sense either.

https://github.com/dcs-liberation/dcs_liberation/blob/7355162d80bf71f428968cd60682f2e90e97d34c/qt_ui/delegates.py#L54-L72

I assume the problem in line 62 is related to whatever's returned from self.icon_size(options), but since that's supposed to return a QSize object and the error seems to suggest a QWidgetItem was returned, that just defies the code. Afaik QSize isn't derived from QWidgetItem so I don't see the conenction...