Welcome!
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
-
@ihf said:
found = self.found_redline
AttributeError: 'Outliner' object has no attribute 'found_redline'It seems to happen when you do a long press on an outline but without move
Nb: very old bug but will be corrected. Long press is for moving and you have tried to use it for selecting
DON't forget that you have a new button at right of undo to select.
And for pasting, a single tap on an outline is needed for its popup menu, not a long press -
@ihf Questions:
There some ways to remove lines:- Delete with children in general popup menu
- Delete selected lines
- Cut selected lines
Do I need to program an automatic removal of their due date calendar events?
In the same way, if we paste lines which have a due date, doI need to program an automatic creation of their due date calendar events?
-
@cvp ideally, yes the due dates would go with the items and be changed to point to the correct outline. If that proves to be too troublesome then I would delete the due dates as part of the move and then I would have to add due dates back. Either that, or leave the due dates and they’ll just point to the wrong outline.
-
@ihf said:
delete the due dates as part of the move
I understand your sentence but you still have a problem with copy, not only move.
When you do a move, you do first a cut, and the program does not know if you really will do paste later, thus events would be removed.
But, imagine you do an undo after. I could reset the rows but events are no more there.
I can't do an undo of the events...I let that in my todo but not for immediate development
There is also a problem if you rename a file. The events would also be updated, in their title and url
That becomes complex to manage
-
-
@cvp given the uncertainties of cut and not being able to paste, perhaps we should only do copy and then after it’s confirmed that the copy is done you manually go back and delete the rows that were copied?
-
@cvp I was trying to install outline on another iPad and I installed black Mamba:
import requests as r; exec(r.get('http://bit.ly/get-blackmamba').text) Checking latest Black Mamba release... Latest release 1.5.2 (2018-05-28) (tag v1.5.2) found Checking Black Mamba installation... Black Mamba 0.0.26 installed Downloading ZIP... Extracting ZIP archive... Moving to site-packages-3 /private/var/mobile/Containers/Shared/AppGroup/10326461-C5EE-49C0-8E1C-369955119C79/Pythonista3/Documents/site-packages-3/blackmamba... Saving installed version release info Black Mamba 1.5.2 installed
But now when I run the outline script, I get:
Traceback (most recent call last): File "/private/var/mobile/Containers/Shared/AppGroup/10326461-C5EE-49C0-8E1C-369955119C79/Pythonista3/Documents/outline.py", line 47, in <module> from blackmamba.uikit.keyboard import (register_key_event_handler, UIEventKeyCode, UIKeyModifier, unregister_key_event_handlers) ModuleNotFoundError: No module named 'blackmamba.uikit.keyboard'; 'blackmamba.uikit' is not a package
Where did I go wrong?
-
@ihf said:
uncertainties of cut and not being able to paste,
What problem did you have?
The clipboard is a file, thus we will not lose the cut part.
-
@ihf said:
ModuleNotFoundError: No module named 'blackmamba.uikit.keyboard'; 'blackmamba.uikit' is not a package
Did you restart Pythonista, always needed after installation in site-packages
And check you have the tree site-packages-3/blackmamba/uikit/keyboard.py
-
@cvp working again (probably neglected to restart) . Ignore that comment about paste being uncertain
-
-
@ihf Some questions relative to possible improvements:
- Do you want to see that a due date is already set, for instance by a clock in the checkbox?
- For the actions delete with children from general popup menu and delete/cut selected rows, do you want that I automatically delete the eventual calendar events, without feedback because could be several such rows?
- For paste operation, do you want I automatically create a calendar event for each row where due date exists, without feedback because could be several such rows?
- As outline of a row can vary frequently by renumbering when you promote/demote or add a row before, we could not store this outline in the event title, keeping only file name and text of the row?
- If you use a lot an external keyboard, are you interested to define keys combinations for more actions, like 'font attributes' or some options of popup menu?
I had promised to debug the undo process previous week, but I have been fully occupied by copy/paste and other things. Thus, I apologize and I'll try next week. Not this week-end because the week-end is fun only, thus only new functionalities 😀
-
@cvp I would say YES to all 5 of your questions. I obviously have to work harder to think of new features because you are coming up with great ideas faster than I am :-)
-
@cvp I was just typing into an outline and got this:
Traceback (most recent call last): File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 869, in __call__ argtypes = kwargs['argtypes'] KeyError: 'argtypes' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/private/var/mobile/Containers/Shared/AppGroup/6CCAAFF1-947E-4DC8-B33B-58EE87A0823C/Pythonista3/Documents/outline.py", line 3686, in tableview_reload_one_row self.tvo.reloadRowsAtIndexPaths_withRowAnimation_([nsindex], UITableViewRowAnimationNone) File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 878, in __call__ args = tuple(_auto_wrap(a, argtype_encodings[i], argtypes[i+2]) for i, a in enumerate(args)) File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 878, in <genexpr> args = tuple(_auto_wrap(a, argtype_encodings[i], argtypes[i+2]) for i, a in enumerate(args)) File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 695, in _auto_wrap return ns(arg) File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 1007, in ns arr = NSMutableArray.array() File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 727, in __call__ ordered_args = list(args) + [kwargs[key] for key in kwarg_order] File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 727, in <listcomp> ordered_args = list(args) + [kwargs[key] for key in kwarg_order] TypeError: unhashable type: 'dict' ```
-
-
@ihf said:
Traceback (most recent call last):
File "/var/containers/Bundle/Application/BD1F4CA5-69E3-4F62-BEFE-2AD2B2CD0813/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 869, in call
argtypes = kwargs['argtypes']
KeyError: 'argtypes'I already got that too when I perform multiple runs without restarting Pythonista. I don't think the solution is in my hands if it is not reproducible on demand.
-
If you use a lot an external keyboard, are you interested to define keys combinations for more actions, like 'font attributes' or some options of popup menu?
Up to you to define keys combinations and their actions. Or perhaps I could do that dynamically but it seems more complex
-
Version V00.89 - identify outlines of which due date is set by a light green background - outline no more stored in calendar event title, only file name and text - delete eventual calendar event of all outlines deleted by 'delete with children' - delete eventual calendar event of all outlines deleted by 'delete/cut selected' - add eventual calendar event of all outlines added'by 'paste' nb: events are added/deleted without any feedback because could be multiple - correction of bug "error if action delete/cut/copy but no outline selected"
-
@cvp This has nothing to do with Outline and it may have been reported elsewhere but there appears to be a bug in Pythonista such that if you run Pythonista and leave it (but not kill it) and then try to run a script via the pythonista3:// URL, Pythonista will crash. I noticed this because I am using a trivial shortcut to select the outline I want to open and if Pythonista was used and exited, the shortcut opens Pythonista and it crashes immediately.
-
@ihf You know that the script became very long and I remark that I can't even run it twice anymore in the same Pythonista run, if I leave it for one minute. Memory problem?