Hi, I notice in IC6 its possible to initiate the copy command in the layout editor
even though the cellview is in read-only mode, whereas the stretch or
move commands sound a warning when executed in read-only mode. I am
finding this troublesome as when have copied a large array and go to
paste, its results in having to cancel the command, excape out of the
copy command, make the cell editable and start over. Is it possible to
make the copy command non-executable in read-only mode?
The reason why you can do this in readonly mode is because you might want to copy to a different cellView.
However, there's no need to cancel the command, escape out of copy. If you're in the middle of the copy command and it won't let you click to paste the results because it's not editable, you can just do File->Make Editable whilst in the middle of the copy command - and then you can paste.
Isn't that simpler than trying to disable the copy command in readonly mode?
In reply to Andrew Beckett:
Yes, it makes sense in that you need it to copy to another cellview.
But if there was an option of making the cellview editable while you
were trying to paste. Say you have your copy items hovering, you go to
paste but the cell-view is readonly, so instead of cancelling and using
spacebar to make editable, and grabbing the copy items again, a pop up
window would appear, giving you the option to make directly editable?
Would this be doable?
I tried the File->Make Editable route, but you lose the copy hover
and have to grab the copy again, can be strenuous if your items are in
a distant area of the design.
In reply to blankman:
What precise subversion are you using? I can do Make Editable without it losing anything... (whether I pre-select or post-select in the copy).
Of course the tool could be enhanced to prompt you to make it editable if the destination cellView (where you click to paste) was readonly (this would really need to be an enhancement CCR though), but I think that would be overkill - better just to figure out why the Make Editable approach is not working for you first (otherwise the exact same problem might occur when the tool itself does a make editable having prompted you).
One situation I can imagine where it might discard your select is when the data on disk is different from the readonly copy you have in memory. In that situation, doing a Make Editable does a refresh from disk (which it must, because otherwise you could clobber data carefully saved by the last person who edited the cellView) - and then any selection in memory would also have to be discarded because the objects in the original cellView have been discarded (even if the actual shapes which were selected are still in the same place when refreshed, the tool has no idea that they're actually the same shapes because the database objects get recreated). I just tried this and it does indeed throw away the selection in that case. Even if the tool prompted you during copy, you'd hit exactly the same problem.
Perhaps that was your problem?
In IC616 you will be able to use the yank and paste commands with pre-selection - so you can pre-select shapes, yank them (into a memory buffer) and then paste them - (a bit like a ctrl-C/ctrl-V combo in tools on Windows). A different paradigm, but that might solve your problem going forward.
To prevent Copy altogether when readonly would need you to wrap the command in another function which checked if the cellView was readonly before you started - you'd then have to change your bindkeys (and probably the menus/toolbars if you cared that much) so that they called this new wrapper. Not sure it's worth it.
Andrew, im on IC18.104.22.1680.132
What you say makes sense. On IC5 which I still use regularly enough, I
don't have this problem. I can make the cellview editable and still
hold the copy. I'm only seeing the issue on IC6, and also where I have
Make Editable command assigned to spacebar, the spacebar doesnt have an
effect when pressed while in copy command. So as I say, I have to
Escape out of the copy command before I can execute spacebar to make
editable, and then re-initiate the copy command. I notice that a few
other keys also don't execute while in certain commands, and only in
IC6. If I could find the reason behind this, it would surely resolve
the issue. As I say no problem in IC5, only experiencing in IC6.
If you look in Options->Bindkey (in CIW), select Layout and Search for "Space", does the bindkey for Editor have a command set in the "Enter Function Command" column? The chances are that it does, because by default Space is used to change vias during Create Wire, and a few other commands use it to (implemented via leSpaceBarFunc()). Normally it wouldn't do anything when in the middle of a Copy enterFunction though. You potentially could wrap that command by doing something like:
procedure(CCFspaceBarFunc(@optional win useDefault shift) case(hiGetCurrentCmd(win) ("Copy" geChangeEditMode("a" win)) (t leSpaceBarFunc(win useDefault shift)) ))
And then change the leSpaceBarFunc calls in your bindkeys to use this (note, I did not exhaustively test this!).
Thanks again Andrew, the spacebar function is assigned similarly in IC5, and works fine. It must be an IC6 issue, or how its configured here. ill look into it more and see possibly if our CAD team can source the issue.
That's a bit odd - I can't really see how Space would work in IC5141 when in the middle of an enterFunction if it had the same bindkey setting.
For me, in IC5141 it doesn't use my non-EF bindkey setting for space if I hit space during the middle of a copy - it just ignores it, in the same way as in IC615.
Anyway, let's see what your CAD team find.