*** derek has quit IRC *** sacha has joined #gnuenterprise *** sacha has quit IRC *** sacha has joined #gnuenterprise *** btami has joined #gnuenterprise good morning *** johannesV has joined #gnuenterprise good morning for the logs (re date/time formats) >>> locale.setlocale(locale.LC_ALL, '') 'hu_HU' >>> locale.nl_langinfo(locale.D_FMT) '%Y-%m-%d' so hardcoding separators (":" and "/") not the best choice hm, right ... :) *** reinhard has joined #gnuenterprise *** yure has joined #gnuenterprise *** yure has quit IRC *** yure has joined #gnuenterprise *** btami has quit IRC *** jamest has joined #gnuenterprise i saw btami posted what his date string looks like and it seems like I could get away with the first char not a date format character hi jamest I'm not sure if all date formats have a single date format character maybe some countries have evil formats like 2006-04/13 (not that I would know of any) jamest: I've started working on menus seems to fulfill both fuctions: menu and menuitem is that on purpose? i don't recall not a lot was done in menus beyond playing around there is a pretty complete dynamic menu system in designer fwiw that I was going to rip out and put into common to replace the stuff started there ok, I'll have a look at that it only required de-caterification :) do you remember offhand where this was in designer? let me look iirc it was in src/base in the MenuBar.py and IIRC ToolBar.py MenuBar.py? i'm svn up'n now found that that seems to deal with the UI creation for the menu the only example of how it works is in designers menus which leads to the question does the menu handling actually belong to common or to forms? i think the toolbar and menu logic for setting up menus belongs in common (or gap) as it should be the same code in all our gui apps i would think damn, it's been to long base/Document.py is setting up a menu and shows the mru adding recently used items to the file menu so exactly which part would you want to see in common? i think the addFoo methods built a in memory representation of a menu and then the finialize method mapped it to the UI widget set yeah, that's how I see it, too what I was hoping for in common was a set of classes/methods that let us build a logical menu in memory like our forms my understanding now would be that we have an xml structure representing the menu it would include methods that let us extend menus, disable items, etc all without using any UI widget specific code and then we would somehow pass a pointer to a "uimenu" implementation into those classes? so when the GCMenu is told "disable" it can call the uimenu.disable? yes, more or less or the UI would register to listen for menu update events then the virtual menu wouldn't need to know anything about the uimenu classes just emit a "disable menu uid 812" and the ui would get that event and say "ooooo" that's my save menu hmmm so we would also replace the standard menu in say forms with such classes? yes ok I see the reasoning is that if we do this then 1) a form could extend a menu or remove items or hide them via startup triggers 2) it may be possible for an application like navigator to adjust it's menu dynamically based upon the forms loaded in memory ok I think I got it more or less as to the events vs. function calls with events, we require the uimenu handler to register an event listener with function calls, we require the uimenu handler to have a function "disable" my experience so far is that events add complexity and eat performance how strong would you feel about using events here? our events definately do :) well hmmmm originally i was thinking that events would allow the toolbar to only be links to menu entries so they'd hit the same events however things like say the google search toolbar app for IE wouldn't work in that type of environment so with the toolbar being separate I have to reason to stick with events :) er, no reason *** jcater has joined #gnuenterprise but like I said, it's all jcater's fault (or derek's) I try (what did I do?) oh jcater, you're here um, we were talking about menus and I suggested reinhard look at the one in designer jamest: as to linking toolbar and menu I think that's a good idea what about adding a "enabled" property to GTrigger? then you can disable a named trigger and all menu items, toobar buttons and buttons bound to that trigger could be disabled by simply disabling the trigger? I need to read the IRC logs but that seems like it could cause confusion with (new) forms designers jcater: that == ? enabled property disabling the trigger? ah just because of the name? from the standpoint of what happens if a disabled trigger is called does it just not run? throw an exception? what would you think would be best? (not run == the calling trigger thinks it successed) well, I dunno hence the confusion :) I'd probably lean toward that being a developer error though (which would mean throwing an exception) same here but the main point was to allow for a single point of disabling right everything toolbar, button, menu if we do that with the toolbar I think maybe it souldn't be required though as originally i was of the mindset that toolbar had to link to a menu item thus the events but I think it bad form now i think the enable/disable of a trigger would be handy in more than just those cases as you could flip optional processing on/off via a checkbox on a form via a trigger disabling another named trigger but in that case an exception would be unwanted I wouldn't consider that clean style actually I'd rather check the value of the check box in the trigger code ok makes sense *** johannesV_ has joined #gnuenterprise *** johannesV has quit IRC *** yure has quit IRC *** yure has joined #gnuenterprise *** derek has joined #gnuenterprise *** yure has quit IRC *** jcater has left #gnuenterprise *** dimas has joined #gnuenterprise *** jcater has joined #gnuenterprise *** klasstek has joined #gnuenterprise *** yure has joined #gnuenterprise *** derek has quit IRC *** derek has joined #gnuenterprise *** johannesV_ has quit IRC jamest: the more I think about menus and toolbars, the more I see them bound rather tightly to triggers *** sacha has quit IRC I may have a slightly damaged mac mini soon up for grabs and by "slightly" I mean, it'll have a sledge hammer in the middle of it they will fire triggers, they will follow trigger's enabling/disabling jcater: lol ... they might even get label and help text from triggers (so a menu item and its corresponding toolbar button will get the same label/tooltip) so I'm starting to think if implementation of GMenu, GMenuItem and GToolButton would feel well in the logic/ subdirectory what do you think, jamest/jcater? fwiw, this is how designer does it and how I was moving forms to do it is the full moon night already doing harm on my brain? with it's Actions and basically is how QT does it (except they all have "Events" instead of "Triggers") yeah I think I remember good ol' Delphi having "Actions" where we have named triggers so I think having one object that represents any type of such "action" makes sense reinhard: and a form will be able to override a trigger to replace say the "commit" action but other than that, it was the same system that would be handy in my case it also handles "hot keys" so Alt-F2 or the Menu option or the Toolbar icon are all the same object my only concern is are we overloading triggers too much do we need something that is to triggers like blocks are to datasources I don't think so I'm not as convinced actually I stumble over block vs. datasources issues quite often :-) but could be swayed (i.e., I don't feel so strongly about it I'm going to argue and get in any one's way :) I see no need to add a GAction or something like that in between if that is what you mean but then I probably don't have the same experiences as you that is basically what I was meaning, yes so if you think something could be helpful for me to understand the potential issues you see mine is that it seems to not be a very clean design decision moreso than it'd be hard to implement lots of apps have triggers but only forms (and maybe navigator) would it make sense for the menu/toolbar/ui stuff to appear I'm not sure if I'm making sense hang on .... users slap 'em chilly: OSHA seems to have a problem with that unsafe environment and all I told them I would wear wrist supports if I get too sore, though lol hmmmm maybe our common handling of named and event-based triggers is the confusing thing not sure if I make sense either, but a straightforward logic might have been ... python code ... hmm, maybe we have different views of what a named trigger is... to me it's shared trigger code, but still a trigger in essence, a trigger tied to a custom event ok to me it was a random function called at different events wait going back to your example though possibly also influenced by numerous questions asked here about "how can I call a named trigger within the python code of another trigger" maybe I was misunderstanding what you were after can you add to your example how a toolbar would be defined, if you were to define it? okay, then forget I ever said anything... we are on the same wavelength sure? what I misinterpreted you to want (I made too many assuptions, I guess :) was something like:>? like: .... which is why I was arguing against overloading the "trigger" so much ah no wel well if we ditch the (which was more like a thought experiment) it would be like ... python code ... menu trigger="othertrigger" /> but then again, I think I might even feel better too if the first was instead of but that would possibly mean replacing the concept of named triggers by s could someone please slap me? also we might want simple ways of doing quick'n dirty menu items like ... python code ... ? well what I would foresee is that menu/toolbars, etc, fire an on-action trigger so ... but would be shorthand for taking that philosophy gives menus/toolbars all the same functionality/options as anything else that can have a trigger assigned to it I wanted buttons to work the same way, but not sure if it got that far in implementation and what about named triggers getting label and icon attributes? that will be "inherited" by the menu items and toobar buttons? do you think this is a good idea? I have mixed feelings it sure would simplify coding both for developers and when hand-writing XML :) hmmm.... maybe decide that later and what I originally wanted to ask would you consider it a good idea to put this menu/toolbar handling code into gnue-common/src/logic ? as the ties between menu/toolbar and triggers are rather tight *** sjc has joined #gnuenterprise okay you've gotten my mind going in 100 different directions now nice so you're finally following me ;-) what I now wish we had done (and might could still do without any breakage) any trigger should be able to be named without having to be a "named" trigger if you take that one step further and trigger that doesn't have an action is just an unbound trigger a trigger that does have an action is a bound trigger since names are supposed to be unique in any trigger I should be able to fire any other trigger with a name by that name not just by using the "fireTrigger(form.block.field,'on-new-record')" (I forget how a trigger can fire another trigger on a specific object, but I know there's a way) but as far as how this relates to what you're talking about with menus/toolbars/actions/etc I'm not sure those don't deserve their own object tag/type (action?) that subclasses the same "logic" code that a trigger uses so you would have actions, which appear at the root level of the object or triggers that are code tied to events (even if indirectly when two events need to share the same code) um I was going somewhere with all of that but I forget where but then, what would be the difference between a named trigger and an action? scope/relationship to the logical document implentation-wise? very little they'd share mostly the same code base named triggers appear at the root of the document, too yes, but they wouldn't have to (though in most cases it would make sense) let me do an example (those speak 1,000 words) ok (I'm just thinking outloud, btw... I hadn't given this a lot of thought) (writing examples is hard) :) thinking again http://www.gnuenterprise.org/~jcater/sample-trigger.txt (damn users... will explain in a second) thinking about it... separating and is actually against the concept that "action" of a menu item is nothing more than a shortcut for an "ON-ACTIVATE" trigger what is a nice umbrella term for "menus" and "toolbars"? user actions? no dunno commanders? UI action elements? cows? goats? reinhard: I get the feeling we're the only ones here crap, bbi1s user_actions I think that's best user_actions.py useractions.py actions.py hmmm..... now did we actually agree on *anything* afterall this discussion? ... reading the backlog... we agreed that we want the possibility to enable/disable triggers, which would enable/disable all buttons/toolbar buttons/menu items bound to that trigger [still pending whether that will be a trigger or an "action"] i'll try and catch the logs on this tonight *** jamest has left #gnuenterprise and we somehow run in circles around the question whether a) a menu item has an ON-ACTIVATE trigger that is fired when the item is clicked, and that trigger is just a trigger like all other triggers, or b) there are s, and a menu item is bound to an action, and gets info like icon, label, help text from that action element, and an action is, while in implementation closely related to a trigger, something completely different in philosophy the more I think about it the more it seems to me these are diametral concepts I tend to lean towards b), as there are some conceptual differences indeed, like icon/label/helptext, possibility to enable/disable and consequently buttons would be bound to an rather than having an ON-ACTIVATE trigger (which would of course be supported for compatibility) --- ok, committed what I have so far, which is not much as I spend most of the time discussing and thinking instead of coding... holy crap * jcater starts reading reinhard: b is what I was describing which, yes, is diametrically opposed to my first description of (a) (I should've said that earlier) the more I think about it the more I really like (b) it seems like a clean distiction as far as the definition of our markup ok I also lean towards b) but I would also like to see the possibility of a trigger pointing to an action and also a possibility to do "myAction.run()" in any trigger code (i.e. add actions to the global trigger namespace and give them a "run" trigger function) does this still match your concept? definitely excellent I think we are on the same page then and I will move forward in that direction reinhard: but you realize in a week I will have changed my mind again, right? :) reinhard... this is completely off the subject and I'm sure it's been discussed ad nauseum while I was preoccupied with work but how far are we featurewise from considering a 1.0 release? forms is getting a lot of work by you and johannes, so obviously that would need to happen first I only ask because I see so many projects where our 0.6 is comparable to their 1.6 or even 2.6 I'm not sure if I care if we ever make it to 1.0, since as a developer it doesn't affect me on whether I'm using it or not there is one psychological thing here for me as long as we are 0.x I feel like having the right to break compatibility as soon as we are 1.0 I think we morally have the obligation to stay compatible with every single feature or misfeature that is in the code I seriously would like to see a 0.9 or comparable being in use for > 6 months without much happening so we know it's stable enough stable as in "no bugs" and stable as in "no features about to be added that would break things" but then again, I've always taken a highly conservative approach on such things okay *** yure has quit IRC good night all *** reinhard has quit IRC *** jcater has quit IRC *** jamest has joined #gnuenterprise *** bigbrother_ has joined #gnuenterprise *** chillywilly has quit IRC *** derek has quit IRC *** klasstek has quit IRC *** ajmitch has quit IRC *** nickr has quit IRC *** bigbrother has quit IRC *** ncjp has quit IRC *** bigbrother` has quit IRC *** derek has joined #gnuenterprise *** klasstek has joined #gnuenterprise *** chillywilly has joined #gnuenterprise *** ajmitch has joined #gnuenterprise *** bigbrother has joined #gnuenterprise *** ncjp has joined #gnuenterprise *** nickr has joined #gnuenterprise *** bigbrother` has joined #gnuenterprise *** chillywilly has quit IRC *** klasstek has quit IRC *** ajmitch has quit IRC *** nickr has quit IRC *** derek has quit IRC *** bigbrother` has quit IRC *** bigbrother has quit IRC *** ncjp has quit IRC *** derek has joined #gnuenterprise *** klasstek has joined #gnuenterprise *** chillywilly has joined #gnuenterprise *** ajmitch has joined #gnuenterprise *** bigbrother has joined #gnuenterprise *** ncjp has joined #gnuenterprise *** nickr has joined #gnuenterprise *** bigbrother` has joined #gnuenterprise *** chillywilly has quit IRC *** klasstek has quit IRC *** ajmitch has quit IRC *** nickr has quit IRC *** derek has quit IRC *** bigbrother` has quit IRC *** bigbrother has quit IRC *** ncjp has quit IRC *** derek has joined #gnuenterprise *** klasstek has joined #gnuenterprise *** chillywilly has joined #gnuenterprise *** ajmitch has joined #gnuenterprise *** bigbrother has joined #gnuenterprise *** ncjp has joined #gnuenterprise *** nickr has joined #gnuenterprise *** bigbrother` has joined #gnuenterprise *** chillywilly has quit IRC *** chillywilly has joined #gnuenterprise *** sjc has quit IRC *** derek has quit IRC *** derek has joined #gnuenterprise *** klasstek has quit IRC *** jamest has quit IRC *** klasstek has joined #gnuenterprise