Talk:Features/Edit panel on Frame

From Sugar Labs
Jump to navigation Jump to search
<lucian_> walterbender: so any thoughts about how to abstract that TextEditor class? maybe even move it outside Browse?
<lucian_> walterbender: (i don't mean to rush you)
<walterbender> lucian_: that is an abstraction problem I have also been strucggling with...
<lucian_> walterbender: i could make the TextEditor subclass gtk.Widget
<walterbender> lucian_: I would prefer to have these edit functions outside... for example, I want to sue Pippy to edit Python code that users modify in Turtle Art rather than putting a Python editor directly into Turtle Art
<lucian_> walterbender: but it would lose a lot of functionality it has now as a window
<walterbender> It would be good to have a general sytles editor that you could use outside of Browse...
<walterbender> lucian_: I could use ^^ to edit the styles for the epxort of HTML in Turtle Art for example
<walterbender> lucian_: so I am in favor of the stand-alone approach.
<lucian_> walterbender: but wouldn't that involve the Journal?
<walterbender> lucian_: also it keeps the individual activities simpler.
<walterbender> lucian_: yes.
<lucian_> walterbender: i don't really want users to know that there's a style.user.css file somewhere
<walterbender> lucian_: you save the styles to the journal and import them into the activity at run time
<walterbender> lucian_: why not, if they are editing the style, should they not know that there is an object associated with that edit?
<walterbender> lucian_: that they can refer to whenever they want it?
<lucian_> walterbender: but then how can i include the styles in the SSB bundles created by Browse?
<walterbender> lucian_: this is part of the issue I had with Turtle Art... the Rainbow stuff gets a bit in the way...
<lucian_> walterbender: yeah, it does
<lucian_> walterbender: why do we need it again?
<walterbender> lucian_: I tried to override some imports -- a reload -- in Python, but it was not robust inside of Rainbow... never really got it to work the way I wanted it to...
<walterbender> they can import the code from the Journal that they wrote in Pippy
<lucian_> walterbender: hmm
<walterbender> lucian_: the problem I had was that I tried to just import the code as a module from the journal and I ran into Rainbow problems.
<walterbender> lucian_: less eloquent and a bit restrictive, as I have trouble with imports
<lucian_> walterbender: that seems an arbitrary restriction to me
<lucian_> walterbender: if activities can read the code, they can eval it. so why block imports?
<walterbender> lucian_: I think it is a bug.. either in my code or Rainbow
<walterbender> lucian_: let me find the ticket that describes some of the approaches I took...
<silbe> walterbender: it's a restriction caused by the way you're doing it
<walterbender> silbe: I know, but I tried doing it all different ways, with no luck.
<walterbender> silbe: :(
<lucian_> walterbender: hmm
<lucian_> walterbender: so i want users to be able to go to userstyles.org, copy/paste some CSS, paste it into and editor and immediately apply it to see how it looks
<lucian_> walterbender: i'm not sure that effect can be achieved with an external style editor
<walterbender> lucian_: I think it can be... perhaps with at most one additional step...
<walterbender> lucian_: Rainbow purposefully puts restrictions in place in terms of one activity talking directly to another...
<walterbender> lucian_: you may not agree with the rationale, but it is spelled out in the Bitfrost spec.
<lucian_> walterbender: with an external activity, users would at least have to switch windows to edit and see results
<walterbender> lucian_: I argue that editing it a context switch already, so what difference does it make?
<walterbender> lucian_: and then the editing experience would be consistent from activity to activity
<lucian_> walterbender: that's biggest incentive for an internal editor. you write CSS in that small window, hit apply (or save) and you can see stuff instantly
<walterbender> lucian_: yes. As I said, I think you need to add one step to do it externally: pull the file from the Journal.
<walterbender> lucian_: once you have it, you can remember and pull it automatically when you want to revisit the page...
<walterbender> lucian_: but the first time, you need that extra step
<lucian_> walterbender: but i'm not comfortable with having a delay between editing css and seeing results
<lucian_> walterbender: right now you don't even need to reload the page, it's really instant
<walterbender> lucian_: I think you can work around it as follows:
<walterbender> lucian_: (1) download the css into the Journal (you need to download regardless of internal or external)
<walterbender> lucian_: (2) open the file into the editor (from the Journal) this is an extra step in the external version
<walterbender> lucian_: (3) refresh the browser, which by default is reading from the file you saved to the Journal
<walterbender> lucian_: I suppose by automatic, you want to avoid the refresh step in (3)
<lucian_> walterbender: this would be acceptable
<lucian_> walterbender: but it's not acceptable for when you want to tweak css
<walterbender> lucian_: I think this will work... It is essentially what I do for Turtle Art
<walterbender> lucian_: you lost me again... it is or it isn't?
<lucian_> walterbender: you'd have to (4) find the object in the Journal, open it (5) edit css, save (6), (7) switch to Browse to see results
<walterbender> lucian_: no.
<lucian_> walterbender: it's fine for when you initially add a stylesheet
<lucian_> walterbender: but if you want to tweak that css, you have to keep switching
<walterbender> lucian_: yes. but you'd be switching between the context of viewing and editing regardless
<lucian_> walterbender: not really, they'd both be visible
<walterbender> lucian_: the only difference is you always have to start tweaking by finding the style sheet in the Journal.
<walterbender> lucian_: how can they both be visible? Browse runs full screen
<lucian_> walterbender: with an internal editor, they are both visible
<lucian_> walterbender: the editor is a small window
<walterbender> lucian_: maybe we should propose an editor extension to the Frame?
<lucian_> walterbender: like having an editor box attached to the frame somewhere?
<walterbender> lucian_: yes. that you can drag in and use to edit a small amount of code/text from any activity
<walterbender> lucian_: we can add it to the feature requests for 0.86 (and drive Tomeu and Erikos crazy :)
<lucian_> walterbender: a bit like view source, but attached to the frame?
<lucian_> walterbender: i rather like that
<walterbender> lucian_: yes...
<tomeu> walterbender: just follow the process and everything_will_be_alright
<walterbender> lucian_: me too
<tomeu> but as sdziallas would say: "you cannot get always what you want"
<walterbender> tomeu: even if you wirte the patch yourself? :)
  • tomeu is now figuring out the features process
<tomeu> walterbender: yeah, depends on the patch itself :p
<daveb> tomeu: we need a way to make copy to/frm frame (clipboard) more discoverable. never knew you could drag there. very cute.
<walterbender> tomeu: of course... and we can always fork... nutrasweet
<lucian_> walterbender: so for now, i'll try to make a SourceEditor class that inherits gtk.Widget (or gtk.textview)