Not sure if I'm in the right place. If not, please direct me!
I'd like to make use of photoshop's "Smart Objects" to have an easier time managing my layers. I have about 20 layers that will be duplicated 10 times... and I'd rather manipulate them as single objects than as 20 layers each.
I created a smart object out of the 20 layers... when I duplicated the smart object, and edited to newly duplicated object... any edits also affected the original.
Is there a way to make distinct smart objects out of duplicates so they can be edited independently?
Thanks!
Duplicate the 20 layers first, then make each group into its own smart object (duplicating the smart object itself will only create another instance of the original).
You can also use smart objects within smart objects. This makes it akin to a class system or CSS styling -- each smart object can have the same general abstract template by using instances of the same internal smart objects, then they can be made different as needed by including different elements to the separate top level objects. The top level smart objects should all be created separately, not duplicated. Inner objects that stay the same should be duplicated.
If selecting all the layers is a hassle, use the "Layer Groups" (folder icon next to new layer icon at the bottom of the "layers" panel)
Select all 20 layers and drag them to the folder icon. This will group the layers.
Now duplicate the group by dragging it onto the " New Layer" icon.
Now you should have two originals to work with. Just make sure you keep track of which is which.
You can create a new smart obj via copy. That will copy the smart obj content but it will be a "new" one. So if you make any modification in the new one it will stay only there.
To do that just right click on the smart obj in layers panel and choose "New smart object via copy" :)
Related
Labview
i have one array of cluster and 1D array. i need to set tab order for combination for array of cluster elements and 1 D array.
Array of Cluster data types:string and time,1d array has only Boolean.
please see image above.
To set the tab order of the cluster, right click on the cluster and select "Reorder Controls In Cluster..." When the VI is running, if you have focus within one element of the cluster, you can tab within the cluster.
There is no built-in keyboard support in LabVIEW for tabbing between elements of an array when those elements are clusters. There is also no built-in support for tabbing out of one array into another array. You will need to add an Event structure to your block diagram and use it to watch for the Tab key being pressed and then perform your own change of focus. This example code may be useful to you.
The array control does not really work well for UI interaction. It is meant mostly as a way of displaying data and of passing data into subVIs. You may find yourself frustrated if you try to control the tabbing manually too much. It is an area where it will probably be useful to ask for help on the NI LabVIEW forum for someone who can help you step-by-step to design a UI. I've been using LV for decades, and this is an area that still frustrates me.
I'm making a Visual Basic program. I have a page where I want to be able to scale anywhere from 1 set of two textboxes and a label all the way up to 30. I'd really like to keep the display as simple as possible, So I'm trying to make buttons like add batch and remove batch that lets me adjust the boxes shown from 1 to 30.
I know that I can use a case statement or a if statement or even making a function that does one of those for me so I don't clutter up the main code, but that just seems so klunky. Any suggestions on a way that I can refer to one set at one time and another set at one time?
I ended up creating a class that and passed references ByRef to the class. Created methods of Show*( and Hide() that show and hide all objects that were passed to the class (just changing the Visible property)
Created one object of my new class for each batch set. Made an array with those objects in it, now I can call BatchGroups(3).Show() and iterate through my batches.
Still a bit of setup in my FormLoad event, but BatchGroup(txtBat1,txtBatQty1,lblBat1) and filling an array with those objects allows me to iterate through my batches whether I am adding, removing, adding 5 at a time, removing all but one... take your pick.
Could probably build an array with groupboxes as easily to refer to the whole group at once, but groupboxes would have looked somewhat tacky in this situation, I preferred to create my own object oriented groups.
I have an app that uses core data. The model of which has 3 Entities, all connected by 1-many relationships as so:
|E1|<-->>|E2|<-->>|E3|
My UI is essentially a 3-way vertical split pane, each with a tableview in. The way it works is that I have each window incrementally 1 layer down, essentially allowing the user to 'drill' down from E1 objects to E3 objects, all linked by relationships, similar to the option in OSX finder.
Each table is populated by an NSArrayController, getting it's data from the relevant Entity, and also on what is selected in the previous 'drill-down' window. This all works fine if I simply hook up a button to the addObject method of the array controller, however the new object it makes is a blank row, one that I have to fill in manually.
I have hooked up the add button to open an 'Open Dialogue', which allows the user to select files. I then iterate through the array of NSURL's returned, and add the file information to the E3 entity of the core data model. I call save, but nothing appears in the UI. I'm guessing that this is something to with the fact that the object i'm adding has no way of knowing which E2 it belongs to, and therefore isn't showing.
Is there a way to add an object to the core data model with relationships? For example, I could see what object was selected in E2, and then add the object with a relationship to this. I hope I've made this clear enough. Any ideas or suggestions are more then welcome!
I sorted this by creating an object, setting it's properties, then calling addObject:id on the array controller.
Hope this helps someone.
I am building a java3d GUI, using which users can create custom scene graphs, without needing to know the code, i want to pick specific boxes using mouse, and i want to be able to move them around.. so for that i need picking..
There are say, 2 boxes and 2 spheres in my scenegraph. I just want to pick one of them and know which one was picked. I can find out what type of object was clicked, like if i click on specific sphere, or box, i can find that out, but i dont know how can i find out which object was it, so i can process it.
Could anyone suggest me a solution to the problem? All I want is to know
which object was picked. That's all.
Ok, for now the problem has been solved.
Whenever u add a box or a sphere into scene graph, you need to add custom userData to these object.
e.g. if u are adding a Box object, then
boxOb.setUserData("box1"); //this can be any datatype
when you retrieve data from picking, you just call getUserData() method on getNode() method.
BAMM!! you will get the custom datatype which u set, you can process this further as per your application.
Cheers :)
How many times have we seen this type of selector:
List Box Selector http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/MoveItemsListBox.jpg
I was just about to start creating this in a WinForms app, when I thought that others may have some ideas for doing this better. We need it to sort - so the right hand list will need up/down buttons. But this seems so old school. I love devexpress components, and was thinking of asking them if they would consider adding a component that handles this functionality with a slick UI.
I am thinking that a graphical representation of the objects, and a graphical representation of the listboxes - that would be a more intuitive way to move items around.
Has anyone seen an open source project like this?
If a CheckListBox won't suffice (and it usually will), then the "modern" approach would be to use a ListView or similar component with a "Transfer" column. Render the button inline in that column, one for each row, so that it only takes one click to move an item from one to the other.
You see this everywhere in Vista, usually with hyperlinks as opposed to buttons. Instead of clicking on an item and then choosing an action, you click the action at the item level.
I wouldn't go overboard with slickness as it can impair functionality, but the dual-listbox screen is definitely old-school.
Also, if there's a very large amount of data to manage, it helps to provide a progressive search at the bottom of one or both lists.
I have done this type of selection using (essentially) a single CheckListBox that displays each item as an image. Part of the image looks like a LED, which is on (bright) if the item is selected or off (dark) if it is not selected.
This works well if you have a reasonable amount of data to select from, and also works well in a multi-column format if you can predict that the options will have reasonably similar lengths.
Allow users to drag items in/out of list 2, and also drag to reorder in list2.
(All items dragged out of list2, and dropped anywhere outside the list, get put back into list 1, in their correct place in the list by alphabetical or natural order.)
You can merge the two list boxes into one with the help of groups (LVGF_GROUPID flag): one group for selected and one for not selected.
You can also implement group membership changes with drag-drop between them. This way single drag-drop can move an item into the other group at the appropriate position, saving most/all of the other buttons.
Additionaly the bottom of each group can have one pseudo item with help text (i.e. "Drag items here to...") that is visible only when relevant.