12-22-2019, 04:27 PM | #61 |
just an egg
Posts: 1,583
Karma: 4300000
Join Date: Mar 2015
Device: Kindle, iOS
|
|
12-22-2019, 04:37 PM | #62 |
Grand Sorcerer
Posts: 27,463
Karma: 192992430
Join Date: Jan 2010
Device: Nexus 7, Kindle Fire HD
|
That makes me feel good actually. Should be easy (or at least easier) to track down.
|
Advert | |
|
12-22-2019, 05:21 PM | #63 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
Away from my computer today but I will start looking tomorrow morning.
Does it happen with Sigil 0.9.18 at all? |
12-22-2019, 05:54 PM | #64 |
Grand Sorcerer
Posts: 27,463
Karma: 192992430
Join Date: Jan 2010
Device: Nexus 7, Kindle Fire HD
|
No. It doesn't seem to with similar steps anyway. Tested 0.9.18 on Windows with Qt5.12.3 and Linux with Qt5.13.2.
The bug hitting Sigil 1.0.0 on Linux with Qt5.13.2, but not with Sigil 0.9.18 on Linux with Qt5.13.2 would seem to clear Qt of any fault, I think. EDIT: Debug output shows that FlowTab::SplitSection() is definitely being called multiple times. As is MainWIndow::CreateSectionBreakOldTab() TabManager's OldTabRequest signal is hardwired to FlowTab's OldTabRequest signal. FlowTab emits its own OldTabRequest signal in SplitSection(), and MainWindow connects TabManager's OldTabRequest signal to it's own CreateSectionBreakOldTab method. Not sure if that helps, but it made my head hurt to follow that all around! . It's almost like closed tabs aren't getting properly disconnected from signals or something (that's a WAG on my part, though). Last edited by DiapDealer; 12-22-2019 at 06:38 PM. |
12-22-2019, 07:12 PM | #65 | |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
Yes, I agree, it is probably due to signals not being properly disconnected when the current tab is closed. Which I think is related to the fast delete of tabs "fix" issue we had earlier in 0.9.991 alpha.
So my fix probably broke tab signal disconnect in MainWindow.cpp. Arrrrggggghhhhh! Kevin Quote:
|
|
Advert | |
|
12-22-2019, 07:39 PM | #66 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
From eyeballing the code, it appears we never disconnect the tag OldTabRequest signal from the TabManager which then forwards it to MainWindow repeatedly.
I will try to see where or how that should of been disconnected. |
12-22-2019, 07:41 PM | #67 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
The connection is made in TabManager when opening a new tab. So when we switch tabs we should be disconnecting it as you can only split the current tab at the cursor.
Edit: No I was wrong, that is not the problem. We are somehow MakingTabConnections more than once on the same tab. I am pretty sure this is a artifact of the changes to fix fast tab deletion. Last edited by KevinH; 12-22-2019 at 08:20 PM. |
12-22-2019, 08:51 PM | #68 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
I have really having a hard time recreating this issue on any mac build with the debug output.
Please remember that opening a new empty epub does not overwrite any of the old epub on a mac, so these instructions do not seem to work: 1) make sure Sigil is closed 2) launch Sigil (empty epub) 3) click File->New->Default|Epub2|Epub33 (doesn't matter what kind of new epub) 4) place cursor before the p tag in Code View 5) split using the shortcut or Edit->Split at Cursor So I tried adding a bunch on blank html files then closing all of those tabs until just one remained and tried the split at cursor in it. The debug output shows exactly one invocation when running this test. So closing tabs is obviously not enough for me to see the issue.. So can anyone who can recreate this on a mac, please explain step by step how to see this issue? Thanks, KevinH |
12-22-2019, 09:00 PM | #69 |
Grand Sorcerer
Posts: 27,463
Karma: 192992430
Join Date: Jan 2010
Device: Nexus 7, Kindle Fire HD
|
The original instructions were to open a new blank epub, place the cursor in front of the p tag and split the file twice by using CTRL+Return two times. With the Section0003 tab active, use Window->Close other Tabs, and then split the remaining tab (in front of the p tag).
|
12-22-2019, 09:04 PM | #70 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
Okay I found Senior47's instructions and I can recreate it.
But it seems which windows are closed (never the current Window) matter, so somehow the break tab connections are never getting done properly if you do not move to a new tab before closing it. Hmm ... this is going to be fun to debug! |
12-22-2019, 09:39 PM | #71 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
Found it. It was related to the fast tab closing fix. The current code works if you make the tab you are about to close, the current tab first. It assumes the closing of a tab always forces a new tab to become current.
This is of course is not what happens in this case at all. So we need to change the logic to handle the case where the tab being closed is the current tab, and the case where the tab being closed is not the current tab meaning no tab switch is needed and therefore no break and make of signal connections. I have a fix that seems to work in this case but it may break the fast close of tabs. I really need to sleep on this change and run more tests in the morning to see if it causes the old bug to return. If not I will commit it. Thank you to everyone who helped report the bug, figured out how to recreate it consistently, reported the platforms it failed on, etc. Without your help I don't think we would have been able to find the bug so quickly! |
12-22-2019, 09:42 PM | #72 | |
Grand Sorcerer
Posts: 27,463
Karma: 192992430
Join Date: Jan 2010
Device: Nexus 7, Kindle Fire HD
|
Quote:
|
|
12-22-2019, 09:43 PM | #73 |
Grand Sorcerer
Posts: 27,463
Karma: 192992430
Join Date: Jan 2010
Device: Nexus 7, Kindle Fire HD
|
Sorry we cross-posted, there.
|
12-22-2019, 09:47 PM | #74 |
Sigil Developer
Posts: 7,506
Karma: 5433350
Join Date: Nov 2009
Device: many
|
And effectively you are right. It just needs to be closed without becoming the current tab before the close x is hit. In the fast tab close test case that was never the case as we were deleting the last tab which was active (last one created) and as it closed it moved to the next tab to the left, making it current.
Last edited by KevinH; 12-22-2019 at 09:52 PM. |
12-23-2019, 08:30 AM | #75 |
Member
Posts: 15
Karma: 10
Join Date: Mar 2019
Location: Hamburg/Germany
Device: Kindle Paperwhite 7. Generation
|
"virtual folders"
I find it a bit confusing that the book browser shows the folders Images, Styles etc. with a first capital letter, although it has to be images, styles etc. in html source code. I am working a lot with template-epubs and it took some time to find the reason why
Code:
src="../Images/cover.jpg" What is the reason for this change? Wouldn't it be better to rename the folders in the browser so that they start with a small letter? |
Thread Tools | Search this Thread |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Sigil-0.9.18 Released | DiapDealer | Sigil | 20 | 09-13-2019 09:08 AM |
Sigil-0.9.4 Released | KevinH | Sigil | 40 | 03-26-2016 10:15 AM |
Sigil-0.8.900 released for testing - Wait for Sigil-0.8.901 | KevinH | Sigil | 106 | 10-04-2015 10:41 AM |
Sigil 0.8.3 Released | user_none | Sigil | 10 | 02-02-2015 04:32 PM |
Sigil 0.4.2 Released | user_none | Sigil | 41 | 10-26-2011 06:03 AM |