[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GORM and NSCollectionView
From: |
Fred Kiefer |
Subject: |
Re: GORM and NSCollectionView |
Date: |
Sat, 7 Mar 2015 11:57:19 +0100 |
You should forget about converting your NIB file to gorm format, there is no
reason for doing so, now that GNUstep supports NIB and XIB format. Just stick
with .nib files and try to get these working with GNUstep, which will be hard
enough.
I did a few more changes and the error messages you reported as item 3. should
be resolved now. But this wont help with the fourth issue. There are a lot of
different problems here and I am not sure whether I will be able to resolve
them all.
The first is that you connect to the arranged elements of the
NSArrayController, in GNUstep we did not, up to now, prearrange the array
elements. I will have to check whether Apple does that, but have added this as
the default already. This new code will not be used for objects loaded from a
NIB file, I will have to add more code here. The next problem is that you are
using bindings heavily, the array controller is bound to the studends ivar of
the AppController and now we have an order issue. This ivar only gets set in
the awakeFromNib method and then the value gets past on over two separate
bindings, which need to be instanciated in the correct order to work. GNUstep
wont be able to send change notifications for instance variables, Apple may be
able to do so.
Another internal issue is that the content of the NSViewController now gets set
to NSNull instead of nil, which is what I would expect as long as we cannot
resolve the issue with the studends ivar. Somewhere in the depths of KVB we
seem to have a conversion going on.
As you can see, I am still on this problem but don't expect any fast solution.
Any help in working on these separate issues will be highly appreciated.
Fred
On the road
Am 06.03.2015 um 10:16 schrieb Alessandro Sangiuliano <alex22_7@hotmail.com>:
> Il 05/03/2015 22:58, Fred Kiefer ha scritto:
>> I used gdb to get the full stack trace form Gorm. The problem happens
>> when line 161 in NSCollectionView.m tries to get the item 0 while there
>> isn't any item in the subview list.
>>
>> The issue that causes this strange behaviour seem to be the MIN macro.
>> I added the following line before the loop:
>>
>> NSLog(@"first %d last %d %d %d %d", firstIndexInRect, lastIndexInRect,
>> [_items count] - 1, [self _indexAtPoint: oppositeOrigin], MIN(-1, 12));
>>
>> This prints:
>>
>> 2015-03-05 22:40:31.307 Gorm[2624:2624] first 0 last 12 -1 12 -1
>>
>> lastIndexInRect is 12 while it should be -1, but doing the same MIN call
>> with constants gives the correct result. When I extract the count to a
>> variable first and use that it also works. This definitely seems to be
>> compiler magic, most likely it gets the type of the count method as
>> NSUInteger and uses [_items count] - 1 also as unsigned.
>>
>> I fixed this and hope that your application now works on GNUstep.
>>
>> Fred
>>
>>
>>
>>> Am 03.03.2015 um 13:30 schrieb Alessandro Sangiuliano:
>>> Hello, some days ago I wrote a little App to practice with
>>> NSCollectionView.
>>> I wrote it on OS X 10.6.8 XCode 3.2.2 and the relative IB; I ported the
>>> App on GNUstep and when I try to open the nib or the xib file with GORM,
>>> it is saying that:
>>>
>>> "Problem Loading
>>> Failed to load file. Exception: Index 0 is out of range 0 (in
>>> 'objectAtIndex:')
>>> "
>>>
>>> Last GORM update from the svn: Today.
>>>
>>> I need this little App on GNUstep because I'll switch my little Calendar
>>> App to NSCollectionView as soon as I can and I'd like to have it on
>>> GNUstep, because I need specifically on GNUstep.
>>>
>>> However, if I try to run the App without modify the nib file, it runs, but:
>>>
>>> 1) If I try to resize the window, it becomes totally black and the App
>>> is not usable.
>>> 2) If i click on the button "Add Student", it adds nothing. (It should
>>> add a view)
>>>
>>> To implement the GUI, I used IB facilities for Cocoa bindings.
>>>
>>> On OS X (10.6.8 and 10.10 too) the App behaves as expected.
>>>
>>> The code is on github if you want to give a look. It's possible to try
>>> it with XCode (3.2.2, and probably it also works for XCode 6 because I
>>> have the same implementation on 10.10 and I did not remember differences
>>> on the implementation) or with GNUstep.
>>>
>>> https://github.com/AlessandroSangiuliano/NSCollectionView.git
>>>
>>> Best regards,
>>> Alex.
>>
>>
>> _______________________________________________
>> Discuss-gnustep mailing list
>> Discuss-gnustep@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>>
>>
> First thing, thanks for the fix;
> now I split the problem in 2 pieces, what fixed and and works, what still
> doesn't work.
>
> What the fix, fixed:
>
> 1) I can open the nib file with GORM regurarly now, so it works.
> 2) If I run the CollectionViewApp targetin the nib file in the GNUmakefile,
> now I can resize regurarly w/o getting the window to become black and not
> usable. So it works
>
> What still doesnt work (On all this passages I don't modify the internal nib
> elements like views and buttons):
>
> 1) If I open the nib file with GORM and then I save it as .gorm file, w/o any
> modification, when I try to open the .gorm file with GORM what I get is:
>
> "Problem Loading.
> Failed to load file. Exception: Range: (28496, 1) Size: 28496"
>
> Does GORM know about bindings?
>
> 2) If I target the .gorm file in the GNUmake file (and I do al the necessary
> configurations to get the .gorm loaded at startup) what I get is:
>
> "Is not possible to load the main model file "MainMenu" (the translation
> could be not precise)
>
> 3) If I target the nib file in the GNUmake file, what I get running the app
> is:
>
> "2015-03-06 10:09:16.487 CollectionView[7953]
> [NSConstantString-stringByAppendingPathExtension:] cannot append extension
> 'gorm' to empty string
>
> 2015-03-06 10:09:16.487 CollectionView[7953]
> [NSConstantString-stringByAppendingPathExtension:] cannot append extension
> 'gmodel' to empty string
>
> 2015-03-06 10:09:16.487 CollectionView[7953]
> [NSConstantString-stringByAppendingPathExtension:] cannot append extension
> 'nib' to empty string
>
> 2015-03-06 10:09:16.487 CollectionView[7953]
> [NSConstantString-stringByAppendingPathExtension:] cannot append extension
> 'xib' to empty string
>
> 2015-03-06 10:09:16.536 CollectionView[7953] No binding exposed on h=-&-
> v=-&- <NSCollectionView: 0x1a22e00> f={x = 0; y = 0; width = 474; height =
> 300} b={x = 0; y = 0; width = 474; height = 300} for content"
>
> Ignoring the "[NSConstantString-stringByAppendingPathExtension:]" output ,
> the interesting one is :
>
> "2015-03-06 10:09:16.536 CollectionView[7953] No binding exposed on h=-&-
> v=-&- <NSCollectionView: 0x1a22e00> f={x = 0; y = 0; width = 474; height =
> 300} b={x = 0; y = 0; width = 474; height = 300} for content"
>
> 4) While the App is running clicking on the Add Student Button, nothing
> happens, it should add an item view to the NSCollectionView, I think this is
> a consequence og the third point.
>
> Thank You again,
>
> Best Regards,
> Alex
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
- GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/03
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/05
- Re: GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/06
- Re: GORM and NSCollectionView,
Fred Kiefer <=
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/07
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/08
- Re: GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/09
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/10
- Re: GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/12
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/12
- Re: GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/16
- Re: GORM and NSCollectionView, Fred Kiefer, 2015/03/16
- Re: GORM and NSCollectionView, Riccardo Mottola, 2015/03/17
- Re: GORM and NSCollectionView, Alessandro Sangiuliano, 2015/03/17