This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Outliner with drag/drop reordering - part 2
@ihf I found the reason, I erroneously added a blank line at begin of .versions file.
Wait 1 minute please
@ihf ok, retry please
@cvp That did it. The new version looks good and does exactly what I was looking for. There appears to be one small glitch. When I sort by check boxes at beginning it works perfectly but when I do it at end, there is a blank line after the first of the checked (completed) lines. I tried on another outline and had a similar problem except it was when I did the sort to beginning and then the blank line (2 of them) were between the uncompleted items at the end. I tried on 3 more outlines and did not see the problem.
Would it be possible that the problem comes from the same problem of rows with multiple lines like the previous described in sort of dates? This problem is not solved at all.
Rows height is not correctly computed if sorted rows
Or is it possible that you have rows without box?
@cvp It is quite possible that it is related to the other Tableview row height issues.
@ihf you could check that your outlines which do not give the same error do not have multi lines rows
@cvp yes, I think it is only a problem with outlines that have multi-lines.
Unrelated: I believe you already addressed this but I cant seem to find it in the forum thread. I would like to be able to select text and thru the share sheet, copy the text to an outline. I can’t seem to find the script that does this.. did I just imagine this?
@ihf If I correctly understand your request:
Select rows you want to copy, choose copy option, These rows will be stored in outline.clipboard file. Then, in the destination outline file, tap the outline after which you want to paste. In the appearing popup menu, choose paste xxxx option. xxxx is the text of the first copied row. The copied rows will be pasted after the row of the popup menu. Easy, isn'it?
Edit: I think there is a bug if you copy/paste several rows and that they don't have the same level as the destination row. Not yet identified...The paste works but you could have to promote/demote some pasted rows.
Would you agree if the paste operation would add pasted lines at same level of destination line, without taking in account the initial level of copied lines?
Please, tell me
- if I had correctly understood your request
- if the copy/paste described is what you want
- if the proposition of the level of pasted lines is ok for you
@cvp Actually, I was asking an easier question. When i go to the ios share sheet and select “run pythonista script”, there is a script called“Copy to Todo”. If I select text in a document and invoke this script, it adds the text as the last item to the outline named Todo. I wanted to add another script to this share sheet that copied something to a different outline. However, when I searched for “Copy to Todo” in Pythonista, I didn’t see it. I finally realized that Copy to Todo merely invokes outline.py with the name of the outline (Todo) as an argument. The script then copies whatever is in the clipboard to the named outline. It all works, I just forgot how.
I answer to your question, the copy/paste is fine with the level of paste as it is not a problem to demote/promote after the operation ,when needed.
@ihf From V00.91 (I also forgot this functionality)... Sorry that I had not correctly understood your question. Anyway, so we now remember this (asked by you, written by me, both guilty) functionality.
@ihf My new program outline.py using a ScrollView in place of a TableView is done, but I cannot provide it yet because it is full of bugs and I am not motivated to debug it in the short term.
In the ScrollView version, the bug of bad rows heights when sorting rows on date or completed checkbox does not exist (there is no row), so I have corrected (at least, I hope I did it) this bug in the TableView version, so this is for you:
new V01.28 and outline.versions with
Version V01.28 - correction of bug "when outline is sorted (on a date or completed checkbox), the height of multiple lines rows is incorrectly computed"
Feed back is hoped
@cvp There still seems to be the problem where the end of the second line of an item becomes part of the beginning of the next item when I view any of the dates. I can send screenshots if that helps.
@ihf new V01.29 and outline.versions with
Version V01.29 - correction of bug "when an outline date is displayed, the height of multiple lines rows is still incorrectly computed"
Feed back hoped
Thanks! That fixed the problem. I was wondering if there was a way that I could write a shortcut which added an item to an outline much the way the share sheet can. The shortcut could put something in the clipboard but in order from the current script to add that, it looks to see if the script is running from the share sheet (appex). Is there a way to signal that the script is running from a shortcut (perhaps an additional parm)?
@ihf Please, confirm that I correctly understand: you want to run the outline.py from a shortcut, with as arguments:
- the name of The outline file
- something identifying that the program is started by a shortcut having stored the text in the clipboard.
Remember that the 2nd (optional) argument is the folder where to find the outline if not in the default one...
We could use an optional special character in front of 1st argument, like @ToDo specifying that comes from a shortcut, or put a special character alone as 2nd argument
@ihf new V01.30 and outline.versions with
Version V01.30 - correction of bug "when we add a new row by passing its text via the share sheet, this new row did not have a creation date"
Please read also previous post and decide how you prefer to warn the script that it has to add a row with the text in the clipboard.
It could be with
1st argument = outline name
2nd argument = CLIPBOARD word in place of a folder
1st argument = ©outline name
Don't forget that when you go via the share sheet, the program can close it-self and disappear.
But when you open Pythonista via an url, I could close the outline file, but do you want I also abort Pythonista to fall in the iDevice home screen?
ihf last edited by ihf
@cvp I can’t think of a strong reason to pick between options one and two but I would lean slightly toward one because it seems a bit more intuitive.
You mentioned a good point, the shortcut would need to be able to add to the outline “quietly“. As with the Share sheet and Run Pythonista Script, the script runs without showing anything on the screen. Given that the Share sheet method can take 20 sec to run, I wonder if the Shortcut will timeout.
the shortcut would need to be able to add to the outline “quietly“. As with the Share sheet and Run Pythonista Script, the script runs without showing anything on the screen. Given that the Share sheet method can take 20 sec to run, I wonder if the Shortcut will timeout.
If a script runs Pythonista through its url scheme, Pythonista will appear, run and, I could call Shortcuts afterwards but with which shortcut?
@cvp I may be mistaken but if you return to Shortcuts (no particular shortcut specified) the shortcut that was running or just continue from there.
@ihf new V01.31 and outline.versions with
Version V01.31 - support run mode to add a row with text pasted from Clipboard by Pythonista url scheme with arguments outline_name CLIPBOARD. Short run without opening full View and ending with opening Shortcuts app
Please try different modes
- normal run
- share sheet mode with shared text
- shortcut mode passing text via clipboard and calling Pythonista url scheme with
1st argument = outline name
2nd argument = CLIPBOARD word
Share sheet and clipboard mode should be short quick modes, without displaying an ui.View
And surely feed back hoped because last mode is not so easy (for me)