[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GORM and NSCollectionView

From: Alessandro Sangiuliano
Subject: Re: GORM and NSCollectionView
Date: Mon, 9 Mar 2015 13:51:56 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0

Hello, I just saw the emails because I wasn't at home this week.

Thanks for all the fixes I'll try them In about 1 hour, then I'l report the situation.

You also spoken about contribution. I'd like to contribute directly to gnustep, but there are some problems:

1) I study Cocoa/GNUstep in my free time, that's few and sporadic; think that I started to do some work on étoilé in 2011 and I started to study AppKit/-gui (the internals, and how it is structured) about 3-4 weeks ago. The rik.theme I'm working on helped too.

2) To speed up knowlegdes about gnustep I need a mentor, that corrects me when I do/say stupid or non sense things, and has patience when I start to do a lot of questions.

However, if you need fast communication about NSCollectionView little app we are talking/fixing/working on, you can find me on the etoile irc channel on efnet, just send me a mail to decide the day to meet on the channel. I know there is also a gnustep channel on freenode, by the few times I got online, I never got a reply, but if you prefer the gnustep channel one, for me there is no problem.


Il 08/03/2015 23:23, Fred Kiefer ha scritto:
OK, this time my changes should bring you a lot closer to what you are
expecting. The two important changes where some clean up in
NSArrayController to update the arranged objects in many cases (some are
still missing and the others are rather inefficient). And to get the
NSCollectionViewItem to display something. For this I hacked together a
-view method. This will need a lot of rework, but at least now you
should see something.

I also had to make a few changes to your source code, you will find the
new files attached. This is mostly about having proper access methods.

It will be some time until I work again on this issue as I am away for a
few days next week.


Am 07.03.2015 um 11:57 schrieb Fred Kiefer:
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 

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.


On the road

Am 06.03.2015 um 10:16 schrieb Alessandro Sangiuliano <address@hidden>:

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.


Am 03.03.2015 um 13:30 schrieb Alessandro Sangiuliano:
Hello, some days ago I wrote a little App to practice with
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

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.


Best regards,
Discuss-gnustep mailing list

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,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]