Is there a way to change the message received in Outlook from Mavericks calender?
Hi there
I found a post discussing this whereby a user was advised to edit the ITIP.stings file in the contents of the iCal.app to change the standard message that states "To accept or decline this invitation, click the link below" etc message that an Outlook user received when getting a calender invite from Mavericks Calender.
The post is here:
Is there a way to change the standard email message?
Problem is, on Mavericks it does not have that string in that file - I've actually checked ALL the .strings files in that folder but to no avail. Did it move somewhere else on Mavericks?
On another note...this whole process is part in part moving from Entourage to Mac Mail and Calender due to Apple's (illogical) removal of the ability to sync with anything other than iCal / Mail / iCloud. So we manually moved everything across (thousands of mails and hundreds of folders) and hundreds and hundreds of calender events.
Now it syncing but herewith the problem...if I create an event and send it to someone, they receive it as the iCloud account email and not our work email (pop account with our own domain). Even then when I open it in Outlook, it has some horribly malformed address and when you accept, you get a delivery failure.
So we create a different Calender (On the Mac) and this sends 100% (except for the message in the body we'd like to change) but this does not sync with the Iphone or the iPad. Then we have to manually change the calender event to the iCloud calender and it brings up a message that its going to send the update to all the attendees...and you must choose between send via mail or send via server.
What do I do!?
Anyone? Just need to know where I can change that message and also how I can set up the icloud calender to send invites using my work email address (as configured in Mail)?
Similar Messages
-
Way to change the Message based on Imported IDoc
Hi,
I just want to know if there is way to change the message based on Imported IDoc?
Basically I imported an IDoc from R/3, this Imported Object would display just one of the Segment for where there are max allowable limit is n segment (the same segment), now during message mapping I need to have more than one Segment of same type...Wasn't sure how to add more segments?
Thanking in advanceHi Rajan,
If I have understood you correctly you,you mean that you have imported an Idoc with a segment with cardinality 0..unbounded(n) and you want to reproduce the segment n times in the target structure.
you need not change the cardinality.This needs to be done in the mapping itself.just map the source structure to the target segment, handling the context properly such that for every occurence of the source structure the corresponding segment is produced in the target.
Regards,
Sulakshana -
Is there any way to change the type of Transport like workbench to Customiz
Hi All,
Here we are having very silly question.
Is there any way to change the type of Transport like from
Workbench to Customize and from Customize to Workbench within the same client.
Assume that there the no object associated with the transport.
Your quick respose is highly appreciated...
Thanks in Advance!No this cannot be done.
Both work bench and custimizing are separate entites when it comes to tranport layers config.
You cannot save a report change into customizing request this will be saved into work bench request only .
In the same way table entries or some customizing tasks can be captured only into custimizing tr.
Br,
Vijay. -
Is there any way to change the default font for outgoing text-messages, in "Messages"?
I can change it for one conversation, but then it resets to the default, tiny font.
The preferences menu only lets me change the conversation font.
(OSX 10.10)Hi,
As you may remember there used to be a Messages pane to the Preferences where the Font and colour of the Balloons or background and the Font text colour could be changed.
And there was a Format Menu for character, word and Sentence changes in the current IM or iMessage.
Those have gone in Yosemite's version of Messages (Despite it retaining the designation of Messages 8 the same as Mavericks' version).
All that can be done now is set the size of the font and this has been moved to the General Section of the Preferences.
The Yosemite version has also been fixed to using the Balloons style of send and receiving any type of messages as well.
Changing the Font would involved editing the Balloon.transcript file.
10:34 pm Saturday; December 13, 2014
iMac 2.5Ghz i5 2011 (Mavericks 10.9)
G4/1GhzDual MDD (Leopard 10.5.8)
MacBookPro 2Gb (Snow Leopard 10.6.8)
Mac OS X (10.6.8),
Couple of iPhones and an iPad -
Is there a way to change the xml message generated by JDeveloper Proxy
Hi,
I have created jax-ws proxy client using JDeveloper 10g. I need to change the generated xml message tags. I need to remove the namespace prefix tags from the xml message. For ex: the current request message looks like this:
<ns0:EMPLOYEE_NAME>John</ns0:EMPLOYEE_NAME>
should be
<EMPLOYEE_NAME>John</EMPLOYEE_NAME>
without the nso prefix.
How can I do that? Please help me.
Thanks.To original poster, please just select "Problem Solved" to help any future questions about this.
Is there a way to change the text message ringer? No.
End of thread -
Is there a way to change the iMessage tone when I receive a message on my macbook?
When I receive a iMessage or text message on my macbook, the sound makes a ding. My question is can I change the tone to something other than a ding?
Hi,
In Mavericks (where you posted) > Messages App > Preferences > General Section you can set the Messages Received sound.
In Mavericks this is a sounds from the App or the System Alerts or Sounds from ~/Library/Sounds.
In Yosomite (what you say you have) you now have iOS sounds listed and these are Alerts or Ringtones on an iPhone.
Not since Mountain Lion have you been able to set specific sounds to specific actions or even specific Buddies.
7:14 pm Thursday; December 25, 2014
iMac 2.5Ghz i5 2011 (Mavericks 10.9)
G4/1GhzDual MDD (Leopard 10.5.8)
MacBookPro 2Gb (Snow Leopard 10.6.8)
Mac OS X (10.6.8),
Couple of iPhones and an iPad -
Is there a way of changing the jdevappunknown_ folder that Ant deploys to?
Using Ant DeployESBSuitcase doesn't work when deploying Projects with dependencies.
Steps to re-create error:
Create a JDeveloper ESB Project called ‘ProjectB’ and add file adapter called ‘WriteFile’ to write a file. Deploy this project using JDeveloper.
Create another JDeveloper ESB Project called ‘ProjectA’ and add a file adapter called ‘ReadFile’ to read a file.
From ProjectA’s routing service add a routing rule and use ‘Browse Target Service Operation’ (Gear wheel icon) and select the deployed ProjectB_WriteFile service.
Deploy ProjectA using JDeveloper.
Use Ant to create a deploymentplan file for both projects by running the ExtractESBDeploymentPlan target.
Note: As these projects are saved under their own directory structure
C:\Workspace\Local\ProjectA and C:\Workspace\Local\ProjectB you will need to copy the ..\ProjectB\ProjectB_WriteFile.wsdl to the ProjectA folder.
Confirm that ProjectA and ProjectB Ant build files DeployESBSuitcase properties (esbMetadataServerHost and esbMetaServerPort) point to another server other than the one you have just deployed ProjectA and ProjectB to using JDeveloper. i.e. a clean server that doesn’t know about these Projects
Deploy ProjectB using Ant’s DeployESBSuitcase target.
Deploy ProjectA using Ant’s DeployESBSuitcase target.
An error is now thrown
C:\Workspace\Local\ProjectA>ant DeployESBSuitcase
Buildfile: build.xml
DeployESBSuitcase:
[echo] Deploying ESB Project ProjectA to serverx
[deployESBSuitcase] Deployment Attempt Response :
[deployESBSuitcase] <deploymentSummary>
[deployESBSuitcase] <message>Entity Deployment Failed</message>
[deployESBSuitcase] <errors>
[deployESBSuitcase] <error code="1049" severity="5">
[deployESBSuitcase] <description>WSDL "esb:///ESB_Projects/Local_ProjectB/ProjectB_WriteFile.wsdl" of service "DefaultSystem.ProjectB_WriteFile" is invalid or unaccessible. Following error is thrown by WSDL Parser : WSDL Parsing Failed: org.apache.slide.structure.ObjectNotFoundException: No object found at /files/ESB_Projects/Local_ProjectB</description>
[deployESBSuitcase] <fix>Ensure that the WSDL is accessible and valid. If the problem persists, Contact Oracle Support.</fix>
[deployESBSuitcase] </error>
[deployESBSuitcase] </errors>
[deployESBSuitcase] </deploymentSummary>
[deployESBSuitcase]
[deployESBSuitcase] Deployment Failed ...Unhandled Exception
[deployESBSuitcase] java.lang.Exception: Deployment attempt failed, please review deployment attempt response above
[deployESBSuitcase] at oracle.tip.esb.client.anttasks.DeploymentHelper.deploy(DeploymentHelper.java:128)
[deployESBSuitcase] at oracle.tip.esb.client.anttasks.DeploymentHelper.deploy(DeploymentHelper.java:175)
[deployESBSuitcase] at oracle.tip.esb.client.anttasks.DeployESBSuitcaseTask.execute(DeployESBSuitcaseTask.java:510)
[deployESBSuitcase] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[deployESBSuitcase] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[deployESBSuitcase] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[deployESBSuitcase] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[deployESBSuitcase] at java.lang.reflect.Method.invoke(Method.java:585)
[deployESBSuitcase] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[deployESBSuitcase] at org.apache.tools.ant.Task.perform(Task.java:348)
[deployESBSuitcase] at org.apache.tools.ant.Target.execute(Target.java:357)
[deployESBSuitcase] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[deployESBSuitcase] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[deployESBSuitcase] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[deployESBSuitcase] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[deployESBSuitcase] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[deployESBSuitcase] at org.apache.tools.ant.Main.runBuild(Main.java:758)
[deployESBSuitcase] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[deployESBSuitcase] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[deployESBSuitcase] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
BUILD FAILED
java.lang.Exception: Deployment attempt failed, please review deployment attempt response above
at oracle.tip.esb.client.anttasks.DeploymentHelper.deploy(DeploymentHelper.java:128)
at oracle.tip.esb.client.anttasks.DeploymentHelper.deploy(DeploymentHelper.java:175)
at oracle.tip.esb.client.anttasks.DeployESBSuitcaseTask.execute(DeployESBSuitcaseTask.java:510)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Total time: 2 seconds
C:\Workspace\Local\ProjectA>
This error is thrown as ProjectB’s wsdl file cannot be found under esb:///ESB_Projects/Local_ProjectB/ProjectB_WriteFile.wsdl.
This is due to Ant deploying ProjectB under …\ESB_Projects\jdevappunknown_ rather than …\ESB_Projects\Local_ProjectB
When deploying ESB projects from JDeveloper they are created under the following structure: <Oracle_Home>\integration\esb\oraesb\artifacts\store\metadata\files\ESB_Projects\<JDev_Workspace>\<Project_Name>
However when using the Ant target DeployESBSuitcase ALL projects are deployed to the same folder:
<Oracle_Home>\integration\esb\oraesb\artifacts\store\metadata\files\ESB_Projects\jdevappunknown_
Is there a way of changing the jdevappunknown folder used by Ant deployments?
Edited by: user2000 on Apr 27, 2009 3:37 PMJames,
Following my steps above I don't get anything in the deploymentPlan for either ProjectA or ProjectB which includes a WSDL URL I can modify.
ProjectA includes the ProjectB_WrieFile.esbsv file which contains the following line:
<wsdlURL>esb:///ESB_Projects/Local_ProjectB/ProjectB_Write.wsdl</wsdlURL>
Is there something I can change which will mean when I regenerate the deploymentPlan it will include the WSDL location?
Thanks
Alistair
Edited by: user2000 on Apr 28, 2009 11:55 AM
I've included Both Deployment Plans:
ProjectA Deployment Plan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deploymentPlan>
<serviceDeploymentPlan qname="DefaultSystem.ProjectA_ReadFile" status="ENABLED">
<parent type="system" qname="DefaultSystem"/>
<properties>
<jcaOperation>
<property value="Read" name="LogicalDirectory"/>
<property value="oracle.tip.adapter.file.inbound.FileActivationSpec" name="ActivationSpec"/>
<property value="Archive" name="LogicalArchiveDirectory"/>
<property value="true" name="DeleteFile"/>
<property value=".*\.txt" name="IncludeFiles"/>
<property value="60" name="PollingFrequency"/>
<property value="0" name="MinimumAge"/>
<property value="true" name="OpaqueSchema"/>
</jcaOperation>
<jcaAddress>
<property value="eis/FileAdapter" name="location"/>
<property value="*.txt" name="UIincludeWildcard"/>
</jcaAddress>
</properties>
</serviceDeploymentPlan>
<serviceDeploymentPlan qname="DefaultSystem.ProjectA_ReadFile_RS" status="ENABLED">
<parent type="system" qname="DefaultSystem"/>
<properties>
<serviceDefinition>
<property value="ProjectA_ReadFile.wsdl" name="wsdlURL"/>
</serviceDefinition>
</properties>
</serviceDeploymentPlan>
<serviceDeploymentPlan qname="DefaultSystem.ProjectB_WriteFile" status="ENABLED">
<parent type="system" qname="DefaultSystem"/>
<properties>
<jcaOperation>
<property value="Write" name="LogicalDirectory"/>
<property value="oracle.tip.adapter.file.outbound.FileInteractionSpec" name="InteractionSpec"/>
<property value="ProjectB_%SEQ%.txt" name="FileNamingConvention"/>
<property value="1" name="NumberMessages"/>
<property value="true" name="OpaqueSchema"/>
</jcaOperation>
<jcaAddress>
<property value="eis/FileAdapter" name="location"/>
</jcaAddress>
</properties>
</serviceDeploymentPlan>
</deploymentPlan>
Project B Deployment Plan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deploymentPlan>
<serviceDeploymentPlan qname="DefaultSystem.ProjectB_WriteFile" status="ENABLED">
<parent type="system" qname="DefaultSystem"/>
<properties>
<jcaOperation>
<property value="Write" name="LogicalDirectory"/>
<property value="oracle.tip.adapter.file.outbound.FileInteractionSpec" name="InteractionSpec"/>
<property value="ProjectB_%SEQ%.txt" name="FileNamingConvention"/>
<property value="1" name="NumberMessages"/>
<property value="true" name="OpaqueSchema"/>
</jcaOperation>
<jcaAddress>
<property value="eis/FileAdapter" name="location"/>
</jcaAddress>
</properties>
</serviceDeploymentPlan>
</deploymentPlan> -
Is there a way to change the addresses used in an existing iMessage thread?
This is kind of a multi-part question. Let me describe my scenario.
I have many iMessage threads with other iPhone users where the "reply" addresses for one or both ends are the phone *numbers* instead of AppleID email addresses. (This could be due to a number of factors... either they had their "Start new conversations from" address set to their phone number, and/or they started a new conversation with me sending it to my phone number. How it *got* that way doesn't really matter). I want to be able to change the addresses of the conversation to AppleID's (so that I'll still get messages when I change SIM cards, among other reasons).
With iOS 8's new ability to add/remove people from conversations, I thought I would be able to add the AppleID address and remove the phone number address, but there are two problems with that: 1) iOS 8 seems to only allow this for conversations which began as multi-person conversations, and 2) it doesn't seem to want to let you add addresses for people who are already recipients via another address (in other words, if Alice is already on the conversation via her phone number, I can't add her AppleID to the conversation). I guess I could remove the person first, and then re-add them with the other address... but I'd feel safer if I could add the next one before removing the first one.
I know I could just tell the other person to delete our thread and start a new one, but I don't want to lose all of our dialogue and pictures (and I don't want to have to manually save it).
So, the questions:
Is there a way to change the address my counterparty is sending to when they make further replies to our conversation?
Is there a way to change the address I send to when I make further replies to the conversation?
Is there a way to change the default address to use when trying to send someone an iMessage? (What I'm after here is a way to craft my "contact" entry in people's phones so that, when they try to send a message to me and start typing my name, my preferred address comes up on top).
As it looks like the only way to do this might be to use iOS 8's method of adding/removing recipients, is there a way of converting a two-person conversation into a multi-person one?I think I may have solved it, actually. I find that if I switch the timecode to NDF in the source viewer, it seems to work. I have tried it on three clips and they have sync'd without problems. Hopefully this will continue to be the case.
-
Apple Mail, is there a way to change the default time-out?
This has been puzzling me for some time and I have not found a solution. The problem which I also posted in the Mail forum (though I think that if there is a positive answer it will come through here) is as follows:
I have an email account with on my company's mail server which is actually a Novell Netware server with a POP3 service. When using mail to send mail, I have no problems. When using mail to recieve mail, well, sometimes it gets the mail, and sometimes it does not. Usually, I can recieve mail for two or three weeks then it just stops working. No changes to my system, no updates or anything, I recieve email at one point in the day and then 15 minutes later - nothing. In the Activity Monitor, I see "Connecting to ..." then "Sending Password" then "Checking for Messages", then (after a while) it beeps as if it did not find any messages to download (no error!).
Some weeks later, after suffering with webmail, suddenly, it works again. This usually coincides with maintenance on the server, but not always. It also seems to correspond with a general improvement of the server performance. But eventually, the cycle starts over again with mail suddenly not able to find any new messages for that account.
I use dial-up at home, ethernet LAN at work, and DSL at our satellite offices. When it works on one it works on all. Also note that my other email accounts (not in any way connected to my company) work as they should at all times and in each setting.
Is it possible that mail simply times out before the messages are discovered. The Novell server used for mail is by no means known for its performance. If so, is there anyway to change the default timeout in mail for "Checking for Messages"?
Things I have tried:
I have dumped the "MessageUidsAlreadyDownloaded" and "MessageUidsAlreadyDownloaded2" files to no avail.
I have changed computers (I recently upgraded from a ti400), reinstalled the OS, upgraded from 10.2.8 to 10.3.x to 10.4.3, and removed and recreated the mail account (multiple times), all to no avail.
Based on the above observations, I feel that it may be that "Mail's" "Get-mail" function is timing out before new messages are discovered on a very slow server. Is there any way to change the default time-out to evaluate this hypothesis?
Any help would be appreciated.
KraigI already thought of that one. I deleted my account from there. But it didn't default to the other one. It just told me I needed to add an account. Thanks tho
-
Bcc: Is there any way to change the "undisclosed recipients" text ?
Bcc: Is there any way to change the "undisclosed recipients" text appearing on the message at destination when I used Bcc?...
Eudora offers the possibility to choose the text that appears when using Bcc.
Does Mail do the same?...
If yes, how?...
Thanks
sergioEvery message that I send with addresses ONLY in Bcc:, when is received by others, or when I receive it back from some yahoo group, has the reading: "undisclosed recipients"...which I can see either when I receive an answer from some individual or when I receive the messages from the group.
Of course, if I write any address in the "To:" space, what comes out is the address I type.
My question was something else: HOW to CHANGE what comes out.
In Eudora it is possible to have ANYTHING one wishes appearing INSTEAD of the "undisclosed recipients", it's enough to type a code inside the message once, and choose the text one wishes to appear. -
Is there a way to change the ring tone to none for one particular contact?
I see there is an option to turn the text message settings for a particular contact to 'none'. Is there a way to change the ring tone to 'none' or 'silent' for only one contact. This is a person who calls way too often and I used to turn their ringer to 'none' when I had a blackberry. This way I can talk to this person when it is convenient for me and not have to listen to the ringer everytime they call.
You need to sync a silent ringtone to your phone & then assign it to that contact. Here's one already made:
http://richardkmiller.com/702/iphone-tip-use-a-silent-ringtone-to-screen-calls-i n-your-sleep -
Is there a way to change the LUt extension form .CUBE to .cube. on export with this script in photoshop For MAC:
Chris Cox wrote:
The file extensions are written by the export plugin. (which incidentally has a comment that two studios wanted all caps extensions, but I failed to write down which ones in the comments)
To change the filenames, you'd want to add something at the end of doExportLUTs() that uses the supplied path and substitutes the desired extensions, then renames the file.
Thank you
// Export Color Lookup Tables automation in JavaScript
// IN_PROGRESS - why can't ColorSync Utility open any profile with a grid of 160 or larger?
// 150 works, 160 fails -- sent samples in email to Apple on Nov 8, 2013; they are investigating
// DEFERRED - right to left filenames (Arabic) come out wrong because of appending "RGB" and file extensions
// This seems to be a bug in JavaScript's handing of strings, not sure we can solve it easily.
// It might possibly be handled by checking bidi markers in UTF8 stream and adding custom handling for appending text/extensions.
@@@BUILDINFO@@@ ExportColorLookupTables.jsx 1.0.0.0
// BEGIN__HARVEST_EXCEPTION_ZSTRING
<javascriptresource>
<name>$$$/JavaScripts/ExportColorLookupTables/Menu=Color Lookup Tables...</name>
<menu>export</menu>
<enableinfo>true</enableinfo>
<eventid>9AA9D7D6-C209-494A-CC01-4E7D926DA642</eventid>
</javascriptresource>
// END__HARVEST_EXCEPTION_ZSTRING
#target photoshop
const appUIState = app.displayDialogs;
app.displayDialogs = DialogModes.NO; // suppress all app dialogs
app.bringToFront(); // make Photoshop the frontmost app, just in case
// on localized builds we pull the $$$/Strings from a .dat file
$.localize = true;
// from Terminology.jsx
const classApplication = app.charIDToTypeID('capp');
const classProperty = app.charIDToTypeID('Prpr');
const enumTarget = app.charIDToTypeID('Trgt');
const eventGet = app.charIDToTypeID('getd');
const eventSet = app.charIDToTypeID('setd');
const kcolorSettingsStr = app.stringIDToTypeID("colorSettings");
const kDither = app.charIDToTypeID('Dthr');
const keyTo = app.charIDToTypeID('T ');
const typeNULL = app.charIDToTypeID('null');
const typeOrdinal = app.charIDToTypeID('Ordn');
const kFloatWindowStr = app.stringIDToTypeID("floatWindow");
const typePurgeItem = app.charIDToTypeID('PrgI');
const enumClipboard = app.charIDToTypeID('Clpb');
const eventPurge = app.charIDToTypeID('Prge');
const keyExportLUT = app.charIDToTypeID( "lut " );
const keyFilePath = app.charIDToTypeID( 'fpth' );
const keyDescription = app.charIDToTypeID( 'dscr' );
const keyCopyright = app.charIDToTypeID( 'Cpyr' );
const keyDataPoints = app.charIDToTypeID( 'gPts' );
const keyWriteICC = app.charIDToTypeID( 'wICC' );
const keyWrite3DL = app.charIDToTypeID( 'w3DL' );
const keyWriteCUBE = app.charIDToTypeID( 'wCUB' );
const keyWriteCSP = app.charIDToTypeID( 'wCSP' );
const kScriptOptionsKey = "9AA9D7D6-C209-494A-CC01-4E7D926DA642"; // same as eventID above
const sGridMin = 7; // these must match the slider range defined in the dialog layout
const sGridMax = 256;
const sGridDefault = 32;
// our baseline UI configuration info
var gSaveFilePath = ""; // overwritten by document path
var gDescription = ""; // overwritten by document name
var gCopyright = ""; // "Adobe Systems Inc., All Rights Reserved";
var gGridPoints = sGridDefault;
var gDoSaveICCProfile = true;
var gDoSave3DL = true;
var gDoSaveCUBE = true;
var gDoSaveCSP = true;
gScriptResult = undefined;
// start doing the work...
main();
app.displayDialogs = appUIState; // restore original dialog state
gScriptResult; // must be the last thing - this is returned as the result of the script
function readOptionsFromDescriptor( d )
if (!d)
return;
if (d.hasKey(keyFilePath))
gSaveFilePath = d.getString( keyFilePath ); // will be overridden by UI
if (d.hasKey(keyDescription))
gDescription = d.getString( keyDescription ); // will be overridden always
if (d.hasKey(keyCopyright))
gCopyright = d.getString( keyCopyright );
if (d.hasKey(keyDataPoints))
var temp = d.getInteger( keyDataPoints );
if (temp >= sGridMin && temp <= sGridMax)
gGridPoints = temp;
if (d.hasKey(keyWriteICC))
gDoSaveICCProfile = d.getBoolean( keyWriteICC );
if (d.hasKey(keyWrite3DL))
gDoSave3DL = d.getBoolean( keyWrite3DL );
if (d.hasKey(keyWriteCUBE))
gDoSaveCUBE = d.getBoolean( keyWriteCUBE );
if (d.hasKey(keyWriteCSP))
gDoSaveCSP = d.getBoolean( keyWriteCSP );
function createDescriptorFromOptions()
var desc = new ActionDescriptor();
desc.putString( keyFilePath, gSaveFilePath ); // will be overridden by UI
desc.putString( keyDescription, gDescription ); // will always be overridden by document name
desc.putString( keyCopyright, gCopyright );
desc.putInteger( keyDataPoints, gGridPoints );
desc.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc.putBoolean( keyWrite3DL, gDoSave3DL );
desc.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc.putBoolean( keyWriteCSP, gDoSaveCSP );
return desc;
function doExportUI()
// DEFERRED - it might be nice to be able to run without UI
// Right now we can't, but someone could modify the script if they so desire
const sDescription = localize("$$$/AdobeScript/Export3DLUT/Description=Description:");
const sCopyright = localize("$$$/AdobeScript/Export3DLUT/Copyright=Copyright:");
const sQuality = localize("$$$/AdobeScript/Export3DLUT/Quality=Quality");
const sGridPoints = localize("$$$/AdobeScript/Export3DLUT/GridPoints=Grid Points:");
const sFormatsToSave = localize("$$$/AdobeScript/Export3DLUT/Formats=Formats");
const sOpenButton = localize("$$$/JavaScripts/psx/OK=OK");
const sCancelButton = localize("$$$/JavaScripts/psx/Cancel=Cancel");
const strTextInvalidType = localize("$$$/JavaScripts/Export3DLUT/InvalidType=Invalid numeric value. Default value inserted.");
const strTextInvalidNum = localize("$$$/JavaScripts/Export3DLUT/InvalidNum=A number between 7 and 256 is required. Closest value inserted.");
const strNoExportsSelected = localize("$$$/JavaScripts/Export3DLUT/NoExportTypesSelected=No export types were selected.");
const strExportPrompt = localize("$$$/JavaScripts/Export3DLUT/ExportColorLookup=Export Color Lookup");
const strUntitledLUT = localize("$$$/JavaScripts/Export3DLUT/UntitledLUTFilename=untitled.lut");
const sSaveICC = localize("$$$/AdobeScript/Export3DLUT/ICCProfile=ICC Profile");
// these are not localized, since they refer to file format extensions
const sSave3DL = "3DL";
const sSaveCUBE = "CUBE";
const sSaveCSP = "CSP";
// strings similar to JPEG quality
const sPoor = localize("$$$/AdobeScript/Export3DLUT/Poor=Poor");
const sLow = localize("$$$/AdobeScript/Export3DLUT/Low=Low");
const sMedium = localize("$$$/AdobeScript/Export3DLUT/Medium=Medium");
const sHigh = localize("$$$/AdobeScript/Export3DLUT/High=High");
const sMaximum = localize("$$$/AdobeScript/Export3DLUT/Maximum=Maximum");
const ui = // dialog resource object
"dialog { \
orientation: 'row', \
gp: Group { \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
description: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Description:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your description here>' } \
copyright: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Copyright:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your copyright here>' } \
qual: Panel { \
text: 'Quality', \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
g2: Group { \
st: StaticText { text:'Grid Points:' }, \
et: EditText { characters:4, justify:'right' } \
drp: DropDownList {alignment:'right'} \
sl: Slider { minvalue:7, maxvalue:256, value: 32 }, \
options: Panel { \
text: 'Formats', \
orientation: 'column', alignment: 'fill', alignChildren: 'left', \
ck3DL: Checkbox { text:'3DL', value:true }, \
ckCUBE: Checkbox { text:'CUBE', value:true } \
ckCSP: Checkbox { text:'CSP', value:true } \
ckICC: Checkbox { text:'ICC Profile', value:true } \
gButtons: Group { \
orientation: 'column', alignment: 'top', alignChildren: 'fill', \
okBtn: Button { text:'Ok', properties:{name:'ok'} }, \
cancelBtn: Button { text:'Cancel', properties:{name:'cancel'} } \
const titleStr = localize("$$$/AdobeScript/Export3DLUT/DialogTitle/ExportColorLookupTables=Export Color Lookup Tables");
var win = new Window (ui, titleStr ); // new window object with UI resource
// THEORETICALLY match our dialog background color to the host application
win.graphics.backgroundColor = win.graphics.newBrush (win.graphics.BrushType.THEME_COLOR, "appDialogBackground");
// poor, low, medium, high, max
var MenuQualityToGridPoints = [ 8, 16, 32, 64, 256 ];
function GridPointsToQualityMenuIndex( num )
var menu = MenuQualityToGridPoints;
var menuItems = menu.length;
if (num <= menu[0])
return 0;
if (num >= menu[ menuItems-1 ])
return (menuItems-1);
for (var i = 0; i < (menuItems-1); ++i)
if ((num >= menu[i]) && (num < menu[i+1]))
return i;
return 0; // just in case of a logic failure
// insert our localized strings
var drop = win.gp.qual.g2.drp; // for easier typing
drop.add('item', sPoor ); // 0
drop.add('item', sLow ); // 1
drop.add('item', sMedium ); // 2
drop.add('item', sHigh ); // 3
drop.add('item', sMaximum ); // 4
drop.selection = drop.items[2]; // Medium
win.gp.description.st.text = sDescription;
win.gp.copyright.st.text = sCopyright;
win.gp.qual.text = sQuality;
win.gp.qual.g2.st.text = sGridPoints;
win.gp.options.text = sFormatsToSave;
win.gp.options.ck3DL.text = sSave3DL;
win.gp.options.ckCUBE.text = sSaveCUBE;
win.gp.options.ckCSP.text = sSaveCSP;
win.gp.options.ckICC.text = sSaveICC;
win.gButtons.okBtn.text = sOpenButton;
win.gButtons.cancelBtn.text = sCancelButton;
// set starting parameters
win.gp.description.et.text = gDescription;
win.gp.copyright.et.text = gCopyright;
win.gp.options.ckICC.value = gDoSaveICCProfile;
win.gp.options.ck3DL.value = gDoSave3DL;
win.gp.options.ckCUBE.value = gDoSaveCUBE;
win.gp.options.ckCSP.value = gDoSaveCSP;
// global flag/hack to keep the UI pretty
var gGlobalPreventChanges = false;
with (win.gp.qual)
sl.value = gGridPoints;
g2.et.text = gGridPoints;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(gGridPoints) ];
// global flag is ugly, but recursive change calls are uglier
g2.et.onChange = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Number(this.text);
this.parent.parent.sl.value = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
sl.onChanging = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Math.floor(this.value);
this.parent.g2.et.text = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
// DEFERRED - we should also set the value if the same menu item is selected again (reset)
// but the JSX toolkit doesn't support that
drop.onChange = function()
if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var theSelection = this.selection.text;
if (theSelection != null) { // only change if selection made
var theSelectionIndex = this.selection.index;
var newGridPoints = MenuQualityToGridPoints[ theSelectionIndex ];
win.gp.qual.g2.et.text = newGridPoints;
win.gp.qual.sl.value = newGridPoints;
gGlobalPreventChanges = false;
win.onShow = function ()
this.qual.sl.size.width = 128;
this.layout.layout(true);
win.gButtons.cancelBtn.onClick = function () { this.window.close(2); };
// validate inputs when the user hits OK
var gInAlert = false;
win.gButtons.okBtn.onClick = function ()
if (gInAlert == true)
gInAlert = false;
return;
var gridText = win.gp.qual.g2.et.text;
var w = Number(gridText);
var inputErr = false;
if ( isNaN( w ) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidType );
gInAlert = false;
win.gp.qual.g2.et.text = sGridDefault;
win.gp.qual.sl.value = sGridDefault;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridDefault) ];
return false;
if ( (w < sGridMin) || (w > sGridMax) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidNum );
gInAlert = false;
if ( w < sGridMin)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMin) ];
win.gp.qual.g2.et.text = sGridMin;
win.gp.qual.sl.value = sGridMin;
return false;
if ( w > sGridMax)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMax) ];
win.gp.qual.g2.et.text = sGridMax;
win.gp.qual.sl.value = sGridMax;
return false;
if (inputErr == false)
win.close(true);
return;
win.center(); // move to center the dialog
var ret = win.show(); // dialog display
if (2 == ret)
return false; // user cancelled
// user hit OK, copy values from dialog
gDescription = win.gp.description.et.text;
gCopyright = win.gp.copyright.et.text;
gGridPoints = win.gp.qual.sl.value;
gDoSave3DL = win.gp.options.ck3DL.value;
gDoSaveCUBE = win.gp.options.ckCUBE.value;
gDoSaveCSP = win.gp.options.ckCSP.value;
gDoSaveICCProfile = win.gp.options.ckICC.value;
// if no files are going to be saved, then we have zero work to do
if ((false == gDoSaveICCProfile) && (false == gDoSave3DL) &&
(false == gDoSaveCUBE) && (false == gDoSaveCSP) )
// tell the user that no formats were selected
alert( strNoExportsSelected );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
// prompt user for directory and output base filename
// default to directory and filename of current document
var currentDocumentPath
try
// if the file has no path (not saved), then this throws
var documentPath = app.activeDocument.fullName.fsName; // Get the OS friendly file path and name
documentPath = documentPath.replace(/\....$/,''); // remove extension, if there is one
documentPath = documentPath + ".lut"; // add dummy extension
currentDocumentPath = File ( documentPath );
catch (e)
// if there was no document path, default to user's home directory
var defaultName = "~/" + strUntitledLUT;
currentDocumentPath = File(defaultName);
var fname = currentDocumentPath.saveDlg(strExportPrompt);
if (fname == null)
return false;
gSaveFilePath = fname.fsName;
return true;
function doExportLUTs( path )
const keyUsing = charIDToTypeID( 'Usng' );
const eventExport = charIDToTypeID( 'Expr' );
var desc = new ActionDescriptor();
var desc2 = new ActionDescriptor();
desc2.putString( keyFilePath, path );
desc2.putString( keyDescription, gDescription );
desc2.putInteger( keyDataPoints, gGridPoints );
// assemble the full copyright string, if needed
var copyrightAssembled = gCopyright;
if (gCopyright != "")
var theDate = new Date();
// the year is from 1900 ????
var theYear = (theDate.getYear() + 1900).toString();
// Localization team says to just use the year
var dateString = theYear;
copyrightAssembled = localize("$$$/JavaScripts/Export3DLUT/Copyright=(C) Copyright ") + dateString + " " + gCopyright;
desc2.putString( keyCopyright, copyrightAssembled );
// select output format
desc2.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc2.putBoolean( keyWrite3DL, gDoSave3DL );
desc2.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc2.putBoolean( keyWriteCSP, gDoSaveCSP );
desc.putObject( keyUsing, keyExportLUT, desc2 );
try
var resultDesc = executeAction( eventExport, desc, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/ExportLUTFailed=Unable to run the Export Color Lookup plugin because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function doRenderGrid( points )
// call the grid rendering plugin to do the work
const keyRenderGrid = charIDToTypeID( "3grd" );
const keyDataPoints2 = charIDToTypeID( 'grdP' );
var args = new ActionDescriptor();
args.putInteger( keyDataPoints2, points);
try
var result = executeAction( keyRenderGrid, args, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/RenderGridFailed=Unable to render color grid because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function resizeDocumentInPixels( width, height )
var myDocument = app.activeDocument;
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
myDocument.resizeCanvas( width, height, AnchorPosition.MIDDLECENTER)
app.preferences.rulerUnits = originalRulerUnits;
function GetColorSettings()
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var result = executeAction( eventGet, desc1, DialogModes.NO );
var desc2 = result.getObjectValue( kcolorSettingsStr );
return desc2;
function GetColorConversionDitherState()
var settings = GetColorSettings();
if (settings.hasKey(kDither))
return settings.getBoolean( kDither );
else
return null;
function ConvertTo16Bit()
const eventConvertMode = charIDToTypeID( 'CnvM' );
const keyDepth = charIDToTypeID( 'Dpth' );
var modeDesc16Bit = new ActionDescriptor();
modeDesc16Bit.putInteger( keyDepth, 16 );
var result = executeAction( eventConvertMode, modeDesc16Bit, DialogModes.NO );
// state = true or false
function SetColorConversionDither( state )
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var desc2 = new ActionDescriptor();
desc2.putBoolean( kDither, state );
desc1.putObject( keyTo, kcolorSettingsStr, desc2 );
executeAction( eventSet, desc1, DialogModes.NO );
function PurgeClipboard()
var desc1 = new ActionDescriptor();
desc1.putEnumerated( typeNULL, typePurgeItem, enumClipboard );
var result = executeAction( eventPurge, desc1, DialogModes.NO );
// This helps us avoid resizing existing document views in tabbed document mode.
// This is new functionality, and will not work in older Photoshop versions.
function MoveDocumentToNewWindow()
var desc1 = new ActionDescriptor();
var result = executeAction( kFloatWindowStr, desc1, DialogModes.NO );
function main()
try
var tempDoc = null;
var tempDoc2 = null;
// do basic troubleshooting first
// make sure there is a document
if (!app.activeDocument)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document mode
var mode = app.activeDocument.mode;
if (mode != DocumentMode.RGB
&& mode != DocumentMode.LAB
&& mode != DocumentMode.CMYK)
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedColorMode=Could not export Color Lookup Tables because only RGB, LAB, and CMYK color modes are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document depth, for safety
var depth = app.activeDocument.bitsPerChannel; // an object, not a number - why? I have no idea...
var bitsPerChannel = 1;
if (depth == BitsPerChannelType.EIGHT)
bitsPerChannel = 8;
else if (depth == BitsPerChannelType.SIXTEEN)
bitsPerChannel = 16;
else if (depth == BitsPerChannelType.THIRTYTWO)
bitsPerChannel = 32;
else
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedImageDepth=Could not export Color Lookup Tables because only 8, 16, and 32 bits/channel are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// Check layer types: background plus adjustments only
// For now, don't check each layer - a multiply solid layer still works as a color adjustment, as does selective blending
// Users will get odd results from other layer types (layer masks, pixel layers, etc.)
try
app.activeDocument.backgroundLayer.visible = true;
catch (e)
if (activeDocument.layers.length == 1)
alert( localize("$$$/JavaScripts/Export3DLUT/NoAdjustmentLayers=Could not export Color Lookup Tables because this document has no adjustment layers.") );
else
alert( localize("$$$/JavaScripts/Export3DLUT/NoBackground=Could not export Color Lookup Tables because this document has no background.") );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// look for last used params via Photoshop registry, getCustomOptions will throw if none exist
try
var desc = app.getCustomOptions(kScriptOptionsKey);
readOptionsFromDescriptor( desc );
catch(e)
// it's ok if we don't have any existing options, continue with defaults
// set some values from the document
gDescription = app.activeDocument.name;
// ask the user for options, bail if they cancel at any point
if ( doExportUI() == false)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// we're good to go, so save our parameters for next time
app.putCustomOptions(kScriptOptionsKey, createDescriptorFromOptions() );
// remove file extension from filePath, if there is one
gSaveFilePath = gSaveFilePath.replace(/\....$/,'');
// calculate the size of image we need
var width = gGridPoints * gGridPoints;
var height = gGridPoints;
if (mode == DocumentMode.CMYK)
height = gGridPoints*gGridPoints;
// duplicate the user document so we don't mess it up in any way
tempDoc = app.activeDocument.duplicate("temporary");
// make the temporary document active
app.activeDocument.name = tempDoc;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// convert 8 bit documents to 16 bit/channel for improved quality of merged adjustments
if (bitsPerChannel == 8)
ConvertTo16Bit();
depth = BitsPerChannelType.SIXTEEN;
// resize the temporary canvas to our target size
resizeDocumentInPixels( width, height )
// select background layer
tempDoc.activeLayer = tempDoc.backgroundLayer;
// render lookup base grid
var worked = doRenderGrid( gGridPoints );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// do not flatten here -- the export automatically gets flattened data
// and we may need layers for LAB->RGB conversion below
// export the chosen formats
worked = doExportLUTs( gSaveFilePath );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// for LAB documents to export 3DLUT (which are inherently RGB), we have to do additional work
// As a bonus, this works for CMYK as well!
if ( mode != DocumentMode.RGB )
var filePath = gSaveFilePath + "RGB";
var oldDitherState = GetColorConversionDitherState();
try
SetColorConversionDither(false);
const targetProfileName = "sRGB IEC61966-2.1";
// new document temp2 in sRGB, matching depth of original
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
tempDoc2 = app.documents.add( width, gGridPoints, 72, "temp2",
NewDocumentMode.RGB, DocumentFill.WHITE,
1.0, depth, targetProfileName );
app.preferences.rulerUnits = originalRulerUnits;
// make the new doc active
app.activeDocument.name = tempDoc2;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// insert grid
worked = doRenderGrid( gGridPoints );
if (worked == true)
tempDoc2.selection.selectAll();
tempDoc2.activeLayer = tempDoc2.backgroundLayer;
tempDoc2.selection.copy();
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
tempDoc2 = null;
// make sure temp1 is active
app.activeDocument.name = tempDoc;
// resize for RGB grid
resizeDocumentInPixels( width, gGridPoints );
tempDoc.selection.selectAll();
tempDoc.paste(true);
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
tempDoc.selection.deselect();
tempDoc.flatten();
// convert temp1 to sRGB
tempDoc.convertProfile( targetProfileName, Intent.RELATIVECOLORIMETRIC, true, false );
// export the chosen formats
worked = doExportLUTs( filePath );
// at this point we still have to clean up, even if the call failed, so fall through
else
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToConvertRGB=Unable to convert image to RGB because ");
alert( str + e + " : " + e.line );
if (tempDoc2 != null) tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
// always reset the dither state
SetColorConversionDither( oldDitherState );
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
} // if not RGB
// always close temp document without saving
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToExport=Unable to export LUT because ");
alert( str + e + " : " + e.line );
// always close temp document without saving
if (tempDoc != null) tempDoc.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our scriptHi blabla12345,
(untested and without warranty)
replace this line:
const sSaveCUBE = "CUBE";
with this:
const sSaveCUBE = "cube";
Have fun -
When I download an attachment, it doesn't open in a new window. It goes to my finder, but I must click on an email attachment at least 3 times in order to find it there. Is there a way to change the preferences to simply open attachment in a new window?
http://www.apple.com/feedback/kaywerty wrote:
A rather long winded way of asking if anybody knows if it's possible to have multi-windows open
It's not possible.
Suggestions here -> Apple Product feedback -
Is there a way to change the icon associated with icloud account?
Is there a way to change the icon associated with my iCloud account? It's currently a rose and i do not like it.
Welcome to the Apple Support Communities
Are you referring to your iCloud account picture or your user picture?
It looks like you are referring to your user picture. To change it, open System Preferences > Users & Groups, press the picture box and choose the user picture you want from the ones that came by default. If you want to select a different picture stored on your Mac, drag that photo onto the picture box.
If you want to change your iCloud account picture, open http://www.icloud.com and log in with your Apple ID. Then, press your name at the top right of the site and press the user picture. If you put the cursor on the picture box, you will see a button at the top of the box to change your picture -
Is there a way to Change the Writing Speed When Burning CD-R's?
Is there a way to change the writing speed when burning CD-R's?
I don't see any options in Disk Utility.
Rob
P.S. Since I am burning coasters lately with the Pioneer DVR-111D, I though that I might solve the problem by using a lower write speed.I dn't believe so with Disk Utility although you can with Roxio Toast Titanium. I would try another media brand, like Verbatim, as a first step and see if the coaster problem goes away.
Maybe you are looking for
-
How to install Oracle EBS R12 on Windows 7 (32-bit)?
Hi All, Does anybody have successfully installed EBS R12 on Windows 7 Professional or Home Premium (32 or 64 bit)? If the answer is yes, please share your experience. It is not important at this point whether Oracle has certified Windows 7 or not. I
-
How do i get my adobe acrobat 9 pro convert buttons on browser so i can convert a webpage to pdf
need toolbar for adobe pro
-
Unable to create a page under particular page/node
Hi, I have deployed some contents from some other CQ server to my local. I am not able to create pages under lot of page/ nodes though I have all permission(admin). The options for creating a new page are read-only and when i open that page , the pag
-
Remove Attachments fails to leave notation of attachment removed
In most e-mail programs, if you remove an attachment from any e-mail, in your Sent box, in your In box, wherever, the file or image is replaced with a notation: "appletree.jpg removed by John Smith at 8:30 a.m. on 9/25/09" It seems like under Snow Le
-
Equipment specific contract determination in notification
Hi Guys, Superior equipment is assign in contract. Superior equipment's contract auto determine when I am creating service notification for sub equipment. I do not wants auto determination of Superior equipment's contract while creating service notif