*** tpb has joined #tp | 00:00 | |
*** ChanServ sets mode: +o tpb | 00:00 | |
cherez | tansell: GroupProxy doesn't seem to be working. | 00:00 |
---|---|---|
tansell | oh? | 00:00 |
tansell | in what way? | 00:00 |
cherez | It's failing on an empty list. | 00:01 |
tansell | cherez, it seems like an empty list would be wrong for a standard group | 00:01 |
cherez | This is for ListStructure. | 00:02 |
tansell | got the error? | 00:02 |
cherez | ValueError: Value item was not the correct size (was 0 must be 2) | 00:03 |
cherez | Wait, not that one. | 00:04 |
cherez | IndexError: pop from empty list | 00:04 |
tansell_laptop | I need more then that :) | 00:04 |
cherez | I'll grab a pastebin, then. | 00:05 |
tansell_laptop | yes | 00:06 |
cherez | tansell_laptop: http://pastebin.com/m73348453 | 00:06 |
tpb | Title: Python pastebin - collaborative debugging tool (at pastebin.com) | 00:06 |
tansell_laptop | okay I see the problem | 00:08 |
tansell_laptop | it assumes a non-empty list | 00:08 |
tansell_laptop | cherez, well that error message should probably be better | 00:11 |
tansell_laptop | def __set__(self, obj, value): | 00:12 |
tansell_laptop | self.check(value, False) | 00:12 |
tansell_laptop | value = list(value) | 00:12 |
tansell_laptop | for structure in self.structures: | 00:12 |
tansell_laptop | structure.__set__(obj, value.pop(0)) | 00:12 |
cherez | cls.l = [['abc', '\x00']] fails as well. | 00:14 |
tansell_laptop | self.structures is longer then ['abc', '\x00']? | 00:14 |
cherez | self.structures? | 00:16 |
cherez | self.structures should be [StringStructure, CharacterStructure] | 00:16 |
tansell_laptop | the structures in the group | 00:16 |
tansell_laptop | actually | 00:16 |
tansell_laptop | it should be | 00:16 |
tansell_laptop | cls.l = ['abc', '\x00'] | 00:17 |
tansell_laptop | not the double list | 00:17 |
cherez | But the double list is what list.check takes. | 00:17 |
cherez | And what xstruct expects. | 00:17 |
tansell_laptop | cherez, yes - they are different | 00:21 |
tansell_laptop | Group expects a single list | 00:22 |
tansell_laptop | List expects a double list | 00:22 |
cherez | But this is for List. | 00:22 |
tansell_laptop | (it's a list of group) | 00:22 |
cherez | This is ListStructure that's failing, though. | 00:23 |
tansell_laptop | yeah | 00:26 |
CIA-46 | alanp tpserver-cpp-mtsec * rf6103be48e22 / (8 files in 2 dirs): Added initial XML import, I am having some problems when a player joins with WX client. The problem seems to be in tpguile when setting property values. I will investigate further. | 00:26 |
* alanp sigh | 00:27 | |
cherez | So ListStructure's __set__ method takes different objects from its check method? | 00:27 |
llnz | bbl | 00:32 |
*** llnz has quit IRC | 00:33 | |
tansell_laptop | cherez, not quite | 00:37 |
tansell_laptop | cherez, I think you need a proxy object for the list stuff | 00:37 |
cherez | Thought so. | 00:37 |
cherez | Well, I better go code that. | 00:38 |
tansell_laptop | cherez, because it's a list of groups | 00:38 |
cherez | Right. | 00:38 |
tansell_laptop | IE you want to be able to do | 00:38 |
tansell_laptop | A.mylist[0].name, A.mylist[0].description | 00:39 |
tansell_laptop | where as | 00:39 |
tansell_laptop | a group works like | 00:39 |
tansell_laptop | A.mylist.name | 00:39 |
tansell_laptop | A.mylist.description | 00:39 |
tansell_laptop | cherez, hrm | 00:40 |
tansell_laptop | just looking at your commits | 00:40 |
tansell_laptop | you have not set your email address | 00:40 |
tansell_laptop | git config --global user.email <your email address> | 00:41 |
tansell_laptop | all your commits are currently showing at | 00:41 |
tansell_laptop | cherez@localhost.(none) | 00:41 |
tansell_laptop | which is bad | 00:41 |
cherez | Oh, yikes. | 00:41 |
cherez | Alright, I fixed that. | 00:41 |
tansell_laptop | cherez, as well - what did you do with the old tests that use to be in Structures.py? | 00:42 |
tansell_laptop | as I notice that you are missing some tests which where in them | 00:43 |
tansell_laptop | such as | 00:43 |
tansell_laptop | # Check the length | 00:43 |
tansell_laptop | assert StringObject.s.length(str.s) == 8 | 00:43 |
tansell_laptop | # Check that the default value is empty | 00:43 |
tansell_laptop | try: | 00:43 |
tansell_laptop | str.s | 00:43 |
tansell_laptop | assert False | 00:43 |
tansell_laptop | except AttributeError, e: | 00:43 |
tansell_laptop | pass | 00:43 |
cherez | I'm integrating those into the test suite. | 00:45 |
cherez | First I need to figure out how to do this ListProxy. | 00:45 |
tansell_laptop | you probably want to inherit from list | 00:59 |
cherez | tansell_laptop: What do we require of structure names? | 01:02 |
tansell_laptop | what do you mean? | 01:02 |
cherez | If an object contains Structures with the same name it's possible for there to be conflicts. | 01:03 |
cherez | Should we do anything to avoid that or just let them suffer for their sins? | 01:07 |
tansell_laptop | cherez, well... up to you | 01:09 |
tansell_laptop | I think you should probably check when creating a group | 01:09 |
tansell_laptop | but remeber that | 01:10 |
tansell_laptop | a.l.p is different from a.c.p | 01:10 |
cherez | Check that there are no duplicate names? | 01:13 |
cherez | Would that also mean looking through subgroups? | 01:13 |
tansell_laptop | so you should only check the duplicate names inside a group | 01:14 |
tansell_laptop | no | 01:14 |
tansell_laptop | just one level | 01:14 |
cherez | That seems kind of arbitrary, but alright. | 01:15 |
tansell_laptop | cherez, well if you think about | 01:15 |
tansell_laptop | if a group can only contain unique names | 01:15 |
tansell_laptop | then a group of groups can only contain unique names | 01:15 |
tansell_laptop | (using the full qualified name) | 01:16 |
cherez | The full qualified names of the subgroups are naive of any parent. | 01:17 |
cherez | So a.g.g.s shares its full qualified name with a.g.s. | 01:18 |
*** reac has quit IRC | 01:22 | |
cherez | mithro: Mind if I try to reimplement the way structures bind to objects so they don't touch the original object? | 01:33 |
tansell_laptop | cherez, that is not true | 01:34 |
tansell_laptop | cherez, and you can't actually to that | 01:34 |
cherez | Empirical evidence says it is true.... | 01:35 |
tansell_laptop | then something is wrong | 01:35 |
tansell_laptop | because g has a name | 01:35 |
tansell_laptop | so a.g.s != a.g.g.s | 01:35 |
tansell_laptop | (unless of course you assign them the same thing) | 01:35 |
tansell_laptop | the code might be wrong | 01:35 |
tansell_laptop | a.g.g.s == a.__get__('g').__get__('g').__set__('s') | 01:37 |
tansell_laptop | while | 01:37 |
tansell_laptop | a.g.s == a.__get__('g').__set__('s') | 01:37 |
cherez | Actually, a.g.g has no s.... | 01:38 |
cherez | How did that happen? | 01:38 |
tansell_laptop | how are you testing? | 01:39 |
cherez | Let me pastebin it. | 01:41 |
cherez | tansell_laptop: http://pastebin.com/m53b38afd | 01:42 |
tpb | Title: Python pastebin - collaborative debugging tool (at pastebin.com) | 01:42 |
tansell | cherez, so I'm guessing thatis in the group proxy | 01:47 |
tansell | for i, structure in enumerate(self.group.structures): | 01:51 |
tansell | if structure.name == "__%s_%s" % (self.group.name, name): | 01:51 |
tansell | return self[i] | 01:51 |
tansell | raise AttributeError("No such attribute %s" % name) | 01:51 |
tansell | that is the code that is dieing | 01:51 |
cherez | Right. | 01:51 |
tansell | oh I see the problem | 01:53 |
cherez | Oh? | 01:53 |
tansell | look at the __init__ for the Group | 01:53 |
tansell | it does the rewrite of the substructure names | 01:53 |
cherez | Right. | 01:54 |
tansell | so think about how the Group initialisation works | 01:55 |
cherez | Oh! | 01:56 |
tansell | so there are a number of good and bad ways to solve this problem :P | 01:57 |
cherez | No kidding. | 01:57 |
cherez | Best one coming to mind is a rename method. | 01:58 |
Greywhind | hey tansell | 01:58 |
cherez | Not perfect, but it should get the job done. | 01:59 |
tansell | cherez, well I would do a @property on the name value | 01:59 |
tansell | which basically manipulates all it's children when it's name changes | 01:59 |
cherez | Right. | 01:59 |
tansell | it is kinda dangerous however | 01:59 |
cherez | If a structure ends up its own child? | 02:00 |
Greywhind | tansell: i figured out why the order panel wasn't immediately putting in the defaults | 02:00 |
Greywhind | tansell: in StateTracker, whenever a CacheDirty event occurred, it would ignore it unless it was a full cache update or it was for the oid currently selected | 02:01 |
Greywhind | but order queues were a different ID | 02:02 |
Greywhind | tansell: can you think of any reason why we would need to ignore events for other IDs, or can i just remove that check? | 02:02 |
tansell | yeah, because they may come in after the order queue has changed | 02:03 |
tansell | cherez, hrm? | 02:03 |
tansell | cherez, no if you change if after you have set some properties | 02:03 |
tansell | there will be a bunch of orphaned stuff on the object | 02:03 |
cherez | Mmm, right. | 02:04 |
Greywhind | tansell: but, i mean, why is it bad to process updates from other objects than the one we're selecting? it does go to the event's object, not the selected object, like it should | 02:04 |
cherez | Never touching the parent object is sounding better all the time. :P | 02:06 |
Greywhind | the code i'm looking at is line 216 of StateTracker, def OnCacheUpdate(self, evt): | 02:06 |
tansell | cherez, but you have to touch the parent object | 02:07 |
tansell | as the Structures are part of the *class* definition | 02:07 |
tansell | so any value you store on the Structure is global for all instances of the class | 02:08 |
tansell | it's the distinction I was talking about above | 02:08 |
tansell | the distinction is subtle and will bite you if you don't understand it | 02:10 |
cherez | Mmm. | 02:10 |
tansell | Greywhind, let me look at the code | 02:10 |
Greywhind | tansell: ok, thanks | 02:10 |
cherez | Well, making name a property should fix most everything. | 02:11 |
cherez | God help us if any structures have an underscore in the name. | 02:11 |
tansell | cherez, why? | 02:12 |
tansell | it'll be confusing, but still work | 02:12 |
tansell | but then, nobody should ever been looking at the actual values | 02:12 |
tansell | Greywhind, so you still need the check there | 02:13 |
Greywhind | tansell: hm. i'll need to figure out a way to check if it's the order queue instead. | 02:13 |
cherez | If we have a structure with a name like "set__", it's bad news. Less dumb uses of underscore could still make objects share names. | 02:14 |
tansell | how? | 02:15 |
tansell | oh I see | 02:15 |
tansell | Greywhind, yeah - you will have to do a little bit of footwork | 02:15 |
tansell | basically | 02:15 |
cherez | tansell: I doubt it will come up, but it does violate transparency. | 02:16 |
Greywhind | no problem. it shouldn't be that hard | 02:16 |
Greywhind | what will be hard is the switch to multiple order queues | 02:16 |
tansell | cherez, transparency? | 02:16 |
tansell | Greywhind, not really | 02:17 |
cherez | Not needing to know anything about how libtpproto2-py works to use it. | 02:17 |
tansell | TrackerOrderObject becomes TrackerOrder | 02:17 |
tansell | cherez, I guess if you use a single _ it can't class with any of the __ names | 02:18 |
tansell | Greywhind, and then things might need to inherit from both TrackerOrder and TrackerObject | 02:18 |
Greywhind | tansell: well, i need to basically make something to copy the entire order panel for each order queue, put them into notebook tabs, and then update the proper tabs | 02:19 |
Greywhind | for the switch to multiple queues i mean | 02:19 |
tansell | Nope | 02:20 |
Greywhind | but for this change, i should be able to just check if the update is for either the object or for one of its order queues, don't i? | 02:20 |
tansell | Greywhind, you just change the orderqueue id you are tracking | 02:20 |
tansell | Greywhind, I would split the two concepts | 02:20 |
Greywhind | tansell: hmm... good idea. | 02:21 |
tansell | you can be tracking an Object and/or an OrderQueue | 02:21 |
tansell | obviously it makes little sense to track an OrderQueue for an object which doesn't exist | 02:21 |
Greywhind | but if you're tracking an object, shouldn't you also want to receive updates to its order queue? | 02:21 |
tansell | Greywhind, possibly, possibly not | 02:22 |
tansell | you might also only want to check one or multiple order queues | 02:24 |
Greywhind | ok. i'll think about it. | 02:25 |
Greywhind | tansell: since there's already a TrackerObject and a TrackerObjectOrder, shouldn't that already be what we need? just use TrackerObject if they don't care about the order, use both if they care about both | 02:31 |
tansell | Greywhind, well the two are not necessarily logically connected anymore | 02:32 |
tansell | Order queue's can exist without object now | 02:33 |
Greywhind | oh, really? | 02:33 |
Greywhind | i thought they were all tied to objects | 02:33 |
Greywhind | sometimes i wonder wtf newbies are thinking | 02:37 |
Greywhind | - 5 Queue On | 02:37 |
Greywhind | sorry, mischan | 02:37 |
tansell | Greywhind, they are kinda tied to objects | 02:40 |
*** greenlion has joined #tp | 02:41 | |
tansell | but there is no longer any reason they should be | 02:41 |
tansell | so the OrderPanel should become nested | 02:42 |
tansell | the top level cares about object selection | 02:42 |
tansell | the next level cares only about order queues | 02:42 |
cherez | This name thing is way nastier than it should be. | 02:43 |
cherez | There! | 03:03 |
cherez | Nearly suffocated, but nested groups work now. | 03:03 |
*** nash_ has quit IRC | 03:27 | |
*** llnz has joined #tp | 03:39 | |
*** drukenFrog has quit IRC | 03:45 | |
*** llnz2 has joined #tp | 03:51 | |
*** llnz has quit IRC | 03:52 | |
*** llnz2 is now known as llnz | 03:52 | |
*** llnz has quit IRC | 04:02 | |
*** llnz has joined #tp | 04:03 | |
*** llnz2 has joined #tp | 04:15 | |
*** llnz has quit IRC | 04:15 | |
*** llnz2 is now known as llnz | 04:15 | |
CIA-46 | llnz tpserver-cpp-battlexml * rce59b32c82a2 /modules/games/risk/risk.cpp: | 04:27 |
CIA-46 | Fixed no universe bug when map import fails in risk. | 04:27 |
CIA-46 | Thanks Ric Cook. | 04:27 |
CIA-46 | llnz tpserver-cpp * r515f3ad61406 /tpserver/ (5 files in 2 dirs): | 04:30 |
CIA-46 | Added tinyxml to core tpserver-cpp. | 04:30 |
CIA-46 | Slightly modified version to tinyxml. | 04:30 |
CIA-46 | llnz tpserver-cpp * r0e98aca42424 /modules/games/risk/ (9 files): Removed risk tinyxml, use tpserver-cpp version. | 04:30 |
CIA-46 | llnz tpserver-cpp * rce59b32c82a2 /modules/games/risk/risk.cpp: | 04:30 |
CIA-46 | Fixed no universe bug when map import fails in risk. | 04:30 |
CIA-46 | Thanks Ric Cook. | 04:30 |
CIA-46 | llnz tpserver-cpp * rba946f3725a4 / (15 files in 3 dirs): Merge branch 'battlexml' | 04:30 |
*** Greywhind has quit IRC | 04:49 | |
*** llnz2 has joined #tp | 04:53 | |
*** llnz has quit IRC | 04:53 | |
*** llnz2 is now known as llnz | 04:53 | |
*** JLafont_ has joined #tp | 06:03 | |
*** JLafont has quit IRC | 06:03 | |
*** JLafont has joined #tp | 06:08 | |
*** llnz2 has joined #tp | 06:10 | |
*** llnz has quit IRC | 06:13 | |
*** llnz2 is now known as llnz | 06:13 | |
*** mithro_ has joined #tp | 06:15 | |
*** mithro_ has quit IRC | 06:16 | |
*** tansell_laptop has quit IRC | 06:19 | |
*** JLafont has quit IRC | 06:20 | |
*** tansell_laptop has joined #tp | 06:35 | |
*** llnz has quit IRC | 06:43 | |
*** jmtan has quit IRC | 07:10 | |
*** zzorn has quit IRC | 07:49 | |
*** epyon has joined #tp | 08:00 | |
*** zzorn has joined #tp | 08:18 | |
*** alanp_ has joined #tp | 08:38 | |
*** mithro has quit IRC | 08:49 | |
*** bddebian has joined #tp | 09:45 | |
bddebian | Hi | 09:47 |
*** Noughmad has joined #tp | 09:51 | |
*** Noughmad has quit IRC | 09:59 | |
*** Noughmad has joined #tp | 09:59 | |
*** verhoevenv has joined #tp | 10:24 | |
*** alanp_ has quit IRC | 11:32 | |
*** peres has joined #tp | 12:27 | |
*** Greywhind has joined #tp | 12:59 | |
*** peres has quit IRC | 13:35 | |
*** alanp_ has joined #tp | 13:52 | |
*** Noughmad has quit IRC | 14:08 | |
*** alanp_ has quit IRC | 14:59 | |
*** alanp_ has joined #tp | 15:23 | |
*** alanp has quit IRC | 15:39 | |
*** llnz has joined #tp | 16:06 | |
*** bddebian has quit IRC | 16:39 | |
llnz | mhilmi: it's odd that it would hang (stop responding) in that place | 17:56 |
llnz | can you provide some more details? paste into a pastebin if you need to | 17:56 |
mhilmi | okay I have a debug output | 17:57 |
mhilmi | It seems it breakdowns at the connect(TPSocket* nsock) function | 17:57 |
mhilmi | Do you think connecting to an http server would avoid the TPSocket connect function? | 18:01 |
mhilmi | I'm trying to connect to the demo1.thousandparsec.net server as guest/guest | 18:01 |
mhilmi | pastebin.com/m623aacb3 | 18:03 |
mhilmi | not much info.. | 18:04 |
*** greenlion has quit IRC | 18:04 | |
llnz | segfault? interesting | 18:08 |
llnz | mhilmi: have you set an event loop? | 18:09 |
mhilmi | I only created a GameLayer object, setClientString, SetLogger, but I didn't set an EventLoop | 18:12 |
llnz | you need to set an event loop, it will need to a subclass that connects to the correct qt event loop methods | 18:13 |
mhilmi | I'll thought I could do it after connection | 18:13 |
mhilmi | I'll try that | 18:13 |
llnz | nope, needs to be created and set before "using" the library, part of the set up (like setClientString, setlogger, etc) | 18:14 |
mhilmi | I see it in the doxygen now, "Must be set before connecting to a server." doh | 18:15 |
llnz | i should add a check for an event loop before allowing the connection (and logging the error if not set) | 18:21 |
JLP_ | ahoy everyone | 18:31 |
*** JLP_ is now known as JLP | 18:32 | |
llnz | hi JLP | 18:32 |
llnz | mhilmi: i guess i need to update the main page of the doxygen to make that clearer too | 18:32 |
*** nash has joined #tp | 18:47 | |
*** jnengland77 has joined #tp | 18:50 | |
*** jnengland77 has quit IRC | 18:50 | |
tansell_laptop | morning | 19:30 |
cherez | Morning. | 19:50 |
tansell_laptop | cherez, how does it go? | 19:51 |
cherez | tansell_laptop: New stuff for code review when you have time. http://codereview.mithis.com/1004 | 19:51 |
tpb | Title: Issue 1004: Added unit tests for structures. - Code Review (at codereview.mithis.com) | 19:51 |
tote | tansell_laptop: hi, when i use the login method on the Connection object from libtpproto, why can i enter any user and pass and still get logged in? | 19:52 |
cherez | I nearly went mad figuring out the namespace logistics. | 19:52 |
tansell_laptop | namespace logistics? | 19:52 |
tansell_laptop | tote, your doing something wrong? | 19:52 |
tote | tansell_laptop: if failed(connection.login(username, password)): | 19:53 |
tansell_laptop | why are you using libtpproto-py rather then libtpclient-py | 19:53 |
cherez | tansell_laptop: Making all the names of group members work out right. | 19:54 |
tansell_laptop | cherez, ahh | 19:54 |
llnz | tote: the demo servers have "auto add players' turned on, and creates an account for every new username | 19:55 |
tote | tansell_laptop: im doing the connect as daneel-ai does it | 19:55 |
llnz | try the same username with a different password | 19:55 |
tote | llnz: ahh, ok | 19:55 |
tote | yep, using same username with different pass makes it fail :) | 19:56 |
tansell_laptop | cherez, can you split this patch into two? | 20:00 |
cherez | I think I can? | 20:01 |
cherez | How should it be split? | 20:03 |
tansell_laptop | cherez, it would be good if you could put the simple testing for Char/String | 20:04 |
tansell_laptop | and the Group stuff | 20:06 |
CIA-46 | joelboh tpclient-pyweb * r8702738b7fb8 / (4 files in 3 dirs): | 20:09 |
CIA-46 | Backend: Added login capabilities. | 20:09 |
CIA-46 | Frontend: Added a port input field. Added better error handling code. | 20:09 |
CIA-46 | joelboh tpclient-pyweb * r3999a9497828 /app/middleman.py: Cleaned up middleman module | 20:13 |
*** verhoevenv has quit IRC | 20:38 | |
tansell | cherez, almost ready for our meeting? | 20:52 |
cherez | tansell: Writing blog updates right now. | 20:52 |
cherez | Should I be expecting to work on modules besides parser in the next week? | 20:53 |
tansell | at your current progress rate it seems unlikely | 20:56 |
*** mithro has joined #tp | 20:58 | |
*** peres has joined #tp | 21:08 | |
cherez | mithro: Ping? | 21:17 |
*** verhoevenv has joined #tp | 21:27 | |
tansell | hrm | 21:39 |
tansell | cherez, sorry about that got distracted by a work colleague | 21:39 |
cherez | No worries. | 21:40 |
tansell | cherez, so you should be aiming for a coverage of at least 90 if not closer to 95->98% | 21:41 |
Greywhind | tansell: so... i'm adding a wxChoice to PanelOrder for selecting which queue to look at | 21:42 |
tansell | (for the currently tested xstruct and structure file) | 21:42 |
tansell | Greywhind, sounds like a good idea, did you get the other problems fixed? | 21:42 |
Greywhind | tansell: but when i put it in, no matter what i set it to do (grow, not grow, etc), the list of orders takes up less than half the panel where it before took up the whole thing | 21:42 |
Greywhind | tansell: yeah, i think so | 21:43 |
tansell | Greywhind, did you add it in as a flexgrid? | 21:43 |
tansell | set the bottom row to auto-expand | 21:43 |
Greywhind | i separated the Object and Order selectors, but kept the ObjectOrder one for other classes like the Starmap to use | 21:43 |
Greywhind | so only the PanelOrder uses the separated Object and Order selection | 21:44 |
tansell | Greywhind, the ObjectOrder one is going to be a bit more complicated as you have to watch multiple order queues | 21:44 |
Greywhind | tansell: i'll have to watch multiple order queues at once? can't i just update it whenever i switch to a new queue? | 21:44 |
tansell | Greywhind, possibly, lets not worry about it for now | 21:46 |
Greywhind | ok | 21:46 |
Greywhind | anyway, back to the panel | 21:46 |
Greywhind | i added it first by itself inside the flexgridsizer that also holds the master | 21:47 |
Greywhind | i also tried putting it inside a panel and another flexgridsizer | 21:47 |
Greywhind | then when that didn't work, i moved it down into the master | 21:47 |
tansell | so you need | 21:48 |
tansell | a top level flexigridsizer | 21:48 |
Greywhind | right | 21:48 |
tansell | with a single column and two rows | 21:48 |
Greywhind | right | 21:48 |
tansell | the second row (which is row 1 - indexed from zero) should be set to "auto-expand" | 21:50 |
tansell | column 0 should be set to auto-expand | 21:50 |
tansell | Greywhind, a good way to test things are working is to set the background colors to something like Red | 21:51 |
CIA-46 | joelboh tpclient-pyweb * ra88042b75745 / (22 files in 7 dirs): | 21:51 |
CIA-46 | Renamed app to backend and www to frontend. Added beaker and simplejson | 21:51 |
CIA-46 | to requirements.py | 21:51 |
Greywhind | tansell: i tried the background color trick | 21:52 |
Greywhind | the background was mostly that of the blank panel | 21:52 |
Greywhind | not any control at all | 21:52 |
tansell | Greywhind, screenshot? | 21:53 |
Greywhind | i'll take one real quick | 21:53 |
Greywhind | http://yfrog.com/0ubrokenexpandp | 21:56 |
tpb | Title: Yfrog - brokenexpand.png (at yfrog.com) | 21:56 |
Greywhind | the blue is the "Master" wxPanel | 21:56 |
Greywhind | also, whenever i set growablerows or growablecolumns, then save, then re-select that sizer, they're back to empty | 21:57 |
tansell | Greywhind, you are modifying it in the xrced right? | 21:58 |
Greywhind | yes | 21:58 |
tansell | so does it work when you preview in the xrced? | 21:59 |
Greywhind | well, it shows up a smaller size, and it doesn't resize | 22:05 |
Greywhind | but other than that, it works | 22:05 |
tansell | so it looks like you have two problems | 22:05 |
tansell | 1) the sizer is not adjusting correctly | 22:06 |
tansell | 2) objects are not expanding to fill the boxs | 22:06 |
tansell | you need to set the wx.EXPAND property on items | 22:06 |
tansell | and set the proportion to 1 | 22:06 |
Greywhind | tansell: why would it be removing the growable rows though? | 22:06 |
tansell | removing? | 22:07 |
tansell | fix the expand problem first and it'll be easier to see what is going on with the sizer | 22:07 |
Greywhind | whenever i add growable rows to the flexgridsizer, they're no longer there when i go back to it | 22:07 |
tansell | how are you adding growable rows? | 22:09 |
Greywhind | through xrced's selection box | 22:09 |
*** verhoevenv has quit IRC | 22:10 | |
tansell | you just enter a number in it | 22:10 |
Greywhind | yeah, i just did that finally, and it worked | 22:10 |
Greywhind | i wonder why the selection wasn't working | 22:10 |
tansell | it's borked | 22:11 |
tansell | (in the tpclient-pywx version of xrced) | 22:11 |
Greywhind | ah | 22:11 |
Greywhind | ok | 22:11 |
tansell | I assuming you are using our ./xrced rather then the one which comes with the package | 22:13 |
Greywhind | i... think so. | 22:14 |
tansell | lunch time here | 22:24 |
tansell | Greywhind, did you get the expanding working? | 22:24 |
tansell | remeber to set the wx.EXPAND property and proportion stuff | 22:24 |
tansell | be back in an hour | 22:24 |
*** Erroneous has quit IRC | 22:27 | |
*** bddebian has joined #tp | 22:57 | |
tansell | back | 23:14 |
tansell | Greywhind, anyluck? | 23:15 |
tansell | cherez, just reading your latest post about how structures work | 23:25 |
cherez | Yeah? | 23:25 |
*** alanp__ has joined #tp | 23:25 | |
tansell | cherez, I think you need to add some stuff about the distinction between the Structures been class/instance members | 23:25 |
cherez | Right, since that's why they can't just store their members inside themselves. | 23:26 |
tansell | yeah | 23:28 |
tansell | also - there is something you should know about __getattr__ | 23:28 |
tansell | it only gets called if the attribute is not found on the object | 23:28 |
cherez | Mm, bad example then. | 23:29 |
tansell | cherez, bad example? | 23:29 |
tansell | the reason __getattr__ works on the GroupProxy is because it never actually contains any properties | 23:30 |
cherez | I used it as an example toward the end for why underscores in names is a problem. | 23:30 |
tansell | well, actually that example still holds | 23:30 |
tansell | as it'll basically overwrite a function with something like an integer | 23:31 |
tansell | the following is also wrong | 23:31 |
Greywhind | tansell: the expanding seems to work | 23:31 |
tansell | It's also important to use the child's original name or g.g.s's name will be "s", then prepend "g_" for "g_s", then prepend "g_g_" for "g_g_g_s". | 23:32 |
tansell | what should happen when the name changes, it should strip off the old prefix and add the new prefix | 23:32 |
tansell | so the result should be __g_g_s right? | 23:32 |
tansell | Greywhind, so is the growing now working right? | 23:33 |
Greywhind | tansell: seems so | 23:33 |
tansell | Greywhind, great! | 23:34 |
tansell | cherez, I'll be right back | 23:34 |
cherez | Alright. | 23:34 |
Greywhind | tansell: now i just have to start changing things to work with multiple queues | 23:35 |
*** alanp_ has quit IRC | 23:41 | |
Greywhind | tansell: ok, so now i'm running up against the problem of testing | 23:42 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!