Files
2025-02-06 20:33:26 +02:00

2.4 MiB

1issuekeytitledescriptionstorypoint
2TISTUD-6Add CA against object literals in function invocations{html}<div><p>The idea here is that if our metadata captures a type as function arg, we should be able to create an instance of that type as an object literal as an arg to a function invocation. For example:</p> <pre> <code>Ti.UI.createLabel( { &lt;property-ca-here&gt; } );</code> </pre></div>{html}1
3TISTUD-9Update branding for Appcelerator plugin to Appcelerator logo {html}<div><p>At least fix feature icons, associated natures. Perhaps other screens as well.</p></div>{html}1
4TISTUD-11Create new JSON schema for SDK team{html}<div><p>Create JSON schema containing properties required for proper CA. Hand schema to Platform team to output new docs/JSON files as part of new SDK releases. It may be that instead we can use the vsdoc format, in which case we will need to indicate to the SDK team additional items to be added to the docs.</p></div>{html}1
5TISTUD-13Create Project References Property Page{html}<div><p>Create property page for project which allows manipulation of embedded references. User can add or remove references from the filesystem or URL (if possible).</p> <p>There may well be an established metaphor or existing page in PHP, PDT, JSDT or elsewhere. Investigate reusing this page is possible or appropriate.</p></div>{html}1
6TISTUD-16New Desktop Project Wizard{html}<div><p>Desktop (need to convert existing project creation code to Java). Some items here: <a href= "https://github.com/appcelerator/titanium_developer/blob/master/Resources/js/project.js#L551"> https://github.com/appcelerator/titanium_developer/blob/master/Reso...</a>. Others here: <a href= "https://github.com/appcelerator/titanium_developer/blob/master/Resources/perspectives/projects/js/projects.js"> https://github.com/appcelerator/titanium_developer/blob/master/Reso...</a>.</p></div>{html}1
7TISTUD-21Launch application on Blackberry emulator{html}<div><p>Note that some emulators are platform-specific, so we need to restrict usage as appropriate. Create launch configuration to run the application on the appropriate device emulator. Copy options from TiDev 1 as appropriate</p></div>{html}1
8TISTUD-22Launch application on iOS device (tethered){html}<div><p>Replicate experience from TiDev 1, creating a launch configuration as appropriate.</p></div>{html}1
9TISTUD-23Launch application on Android device (tethered){html}<div><p>Check for items below as part of launch configuration, but if not correct, we would open preference page</p></div>{html}1
10TISTUD-24Create packager for Desktop project{html}<div><p>Desktop, send ZIP file to web service to package, poll to see if process completed. Embed web page with links to completed build.</p></div>{html}1
11TISTUD-25Create packager for Mobile/iOS project{html}<div><p>Follow existing screens/workflow as appropriate. Launch wizard from right-click menu in App Explorer and button on App Explorer top bar.</p></div>{html}1
12TISTUD-28Show remote samples in Samples View{html}<div><p>Allow alternate list of samples pulled from remote server. Others would be cloned from github repo on demand using code from rubles.</p></div>{html}1
13TISTUD-29Add Titanium Samples{html}<div><p>Short list of pre-packaged samples included with Titanium Developer plugin. Kitchen Sink is the obvious one.</p></div>{html}1
14TISTUD-30Convert Titanium Ruble and package with Titanium Plugin{html}<div><p>Convert existing Titanium Mobile Ruble to Aptana format. <a href="https://github.com/subtleGradient/JavaScript-Appcelerator-Titanium-Mobile.tmbundle"> https://github.com/subtleGradient/JavaScript-Appcelerator-Titanium-...</a>. Have to double-check license--may need to ask for permission.</p></div>{html}1
15TISTUD-31Add Sample Titanium templates{html}<div><p>Add in template directory, add some sample templates per Titanium projects. No specific suggestions, but perhaps there is something the SDK team could suggest, at least a placeholder to the ruble so more can be added later by others.</p></div>{html}1
16TISTUD-32Auto-update of Titanium SDK{html}<div><p>Ping web service for newer versions of SDK. If present, download and unzip into proper directory, Shalom suggests reusing parts of portal code.</p></div>{html}1
17TISTUD-36Launch debugger against emulators{html}<div><p>Add button to App Explorer to help in debugging the current project. Similar to launching against Firefox debugger, so screens are similar.</p></div>{html}1
18TISTUD-37Launch debuggers against device (tethered){html}<div><p>Similar to other debugging options.</p></div>{html}1
19TISTUD-40Add iframe for Ad Content to Welcome/Dashboard screenRetrieve content for frame from similar location as in TiDev. Assume some static content for offline mode.1
20TISTUD-44Create new Titanium Studio Splash ScreenThere is a placeholder image for now (titanium_studio/plugins/com.appcelerator.titanium.rcp/splash.bmp) but needs replacement. We can replace the existing size, or use a new different size, but we'll just need to configure a few new options: http://www.vogella.de/articles/EclipseRCP/article.html#product_splash1
21TISTUD-54Allow users to install new Mobile/Desktop/etc SDKs{html}<div><p>Let users easily grab the latest mobile or Desktop SDK, install it into their machine, etc.</p></div>{html}1
22TISTUD-62Make App Explorer the active view by default in TiDev 2{html}<div><p>Currently, Project Explorer is in front. Switch that to App Explorer.</p></div>{html}1
23TISTUD-64Implement tiapp.xml validation{html}<div><p>As an example, see <a href= "http://developer.appcelerator.com/question/114521/error-error-generating-rjava-from-manifest"> http://developer.appcelerator.com/question/114521/error-error-gener...</a></p></div>{html}1
24TISTUD-65"Run on Device" for Android{html}<div><p>Add a "Run on Device" entry for Android as we have for iOS.</p></div>{html}1
25TISTUD-66Add pings to Iphone events{html}<div><p>Mobile Install on Device event:</p> <p>The method sendInstallEvent() in MobileUsageUtils should be used for this.</p></div>{html}1
26TISTUD-67Add pings to Android Events{html}<div><p>Mobile Distribute App event: Use sendDistributeEvent() from MobileUsageUtils<br> Mobile Install on Device event: use sendInstallEvent() from MobileUsageUtils</p></div>{html}1
27TISTUD-68Add pings to Blackberry Events{html}<div><p>Mobile Distribute App event: Use sendDistributeEvent() from MobileUsageUtils</p> <p>Mobile Install on Device event: use sendInstallEvent() from MobileUsageUtils</p> <p>Blackberry does not have devName / sdk fields for those methods. Those fields should have null passed in.</p></div>{html}1
28TISTUD-69Add pings to Desktop events{html}<div><p>Desktop Launch: use sendLaunchEvent() from DesktopUsageUtils</p> <p>Desktop Package: use sendPackageEvent() from DesktopUsageUtils</p></div>{html}1
29TISTUD-71Create JSCA readerOnce the JSCA schema schema has been defined, we need to create code to can read schemas following that format. The reader will require the schema schema to be modified to support event handlers as types, properties, etc. are consumed by the reader.1
30TISTUD-72Store Analytic ping events in databaseWe want to store the events in a database in case the user is offline.1
31TISTUD-73Context info popup blocks code when using mutli-line function invocationsThis is showing up particularly when using object literals inside method invocations. It looks like the popup itself needs to follow the row of the current offset; whereas, right now it basically places itself one line below the function invocation start1
32TISTUD-85Prompt for perspective reset if perspective layout/information has changedWe can pull this code from Studio 2. Allow us to version the perspective, and if we up the perspective version, prompt the user if they would like to reset the perspective to a new version.1
33TISTUD-86Close Studio or force update if user attempts to use product past pre-set expiration dateHardcode in date of June 1, 2011. If the user reaches that date and attempts to use the product, force them to update to a new version, or shut the product down (standalone), or disabled the plugin (if used inside Eclipse)1
34TISTUD-87Refactor all ping related methods to a utility classFor example in newmobileprojectwizard.java. we can extract sendCreateProjectEvent to a utility class1
35TISTUD-101Add preferences for Titanium Desktop and Mobile SDKsWe currently don't have a way for users to adjust where their titanium desktop and mobile sdks are installed. We will want to initialize them to Mac: /Library/Application Support/Titanium/ Linux: ~/.titanium/ Win32: %ProgramData%\\Titanium\\1
36TISTUD-106Download latest SDK on initial Titanium StartupIf a user starts Titanium Studio, and does not have a SDK installed, we need to ensure they have one ready. This might be done already--if so, great. Otherwise, let's automatically download and install the latest desktop and mobile SDKs.1
37TISTUD-112Clean doesn't actually clean a mobile projectWe need to make "Clean" actually remove the contents of both the build/iphone and build/android directories (but not the directory itself). This will cause a real clean when you build the project and regenerate compiled files. 1
38TISTUD-115Upgrade packaged JRuby to 1.6.0 RC3They've just released JRuby 1.6.0 RC3, which fixes a bug we saw with some users on Windows with funky default charsets. we should upgrade when possible.1
39TISTUD-121Allow users to download older versions of Mobile SDKChange "Install Titanium SDK From URL..." to "Install Specific Titanium SDK..." Add radio button: * Install from URL: Top text box will stay as before, allowing people to paste in. Add browse button to surf to local location on disk * Install from Update stream: Cascading drop-downs ** Contributed via extension point. Two default streams contributed ** "release" stream: https://api.appcelerator.net/p/v2/release-list?name=mobilesdk (filter on OS) ** "continuous integration master" stream: http://builds.appcelerator.com.s3.amazonaws.com/mobile/master/index.json (we may need to work with platform to either a) regularize the format or b) allow for the extension point to apply some regex/xpath to the JSON to grab build info)13
40TISTUD-123Exclude build folder from AppExplorerWhen an application is building, you could see constant workspace updating in Progress view.1
41TISTUD-124Keep user signed in for 24 hours since last sign in if offlineBasically, if user goes offline, he currently still could continue to use TiStudio features, but until Studio restart. It would be better to have some grace period if offline.1
42TISTUD-125Splash/Login Screen looks empty if user is already logged inScreenshot attached. it may be that the page should just be condensed somewhat, since I don't think we need that much space for the username/password fields. Otherwise, can we place something in the blank area that would look fine if the fields are pasted over the top?1
43TISTUD-127Hook up language modules to be exported in timanifest file during Desktop packagingThe code for dealing with modules was commented out by me in porting over the Ti Dev 1 packager for Desktop, since we didn't have this in our metadata or anything. We need to re-implement this now that we are keeping track of this.1
44TISTUD-130Enter/Return doesn't being Login on login splash screenWhen you first start TI Studio, it brings up a login screen. I entered my credentials, hit Return and... nothing. It should invoke the login button.1
45TISTUD-131Change "username" label to "email address" in splash screen loginThe username label is mis-leading. I believe we're always looking for the user's email address they used to register with.1
46TISTUD-136Add user-agent icons for iPhone, iPad, AndroidNULL1
47TISTUD-138Add Portal Dispatcher to Launch Specific WizardCould be done through a link. Suggestion is to allow the user to pass in a specific ID, i.e. com.appcelerator.titanium.ui.import.wizard1
48TISTUD-139Add Portal Dispatcher to Run Specific CommandAdd a way for a link to trigger a specific command in Studio, i.e. "com.appcelerator.titanium.ui.ide.update.command.updateTitanium"1
49TISTUD-140Add Portal Dispatcher to Open Specific ViewAdd a way for a link to open a specific view in the user interface, by passing the view's ID: "com.aptana.explorer.view"1
50TISTUD-141Add Portal "Recently Opened Files" FeatureI'm assuming there is some what for portal to communicate and get a list of recently opened files from Eclipse (since Eclipse itself shows such a list), and return it as a JSON array of links that a developer could turn into clickable links on the portal page.1
51TISTUD-143Fix error message when user cannot login due network issuesUser always gets incorrect login/password message.1
52TISTUD-144Fix error message when user cannot login due network issuesUser always gets incorrect login/password message.1
53TISTUD-166Desktop Package/Distribute Wizard UI is ugly and has wrapping issuesI created the Desktop packaging wizard to mimic what was in Titanium Developer, but I had trouble getting it to look "pretty". Michael, you did a nice job fixing up my other nasty Ui work on wizards, maybe you can take a look?1
54TISTUD-167Add links to Mobile preference screen to direct user where to download Android SDKWe indicate we can't find the SDK, but let's add a link directing the user where to download it (if they don't have it already)1
55TISTUD-174Login between ScreensWhile using two screens the login form ist displayed between the screens. Screenshot attached1
56TISTUD-176Update the verified publisher in Windows installer to Appcelerator It currently shows Aptana, Inc when hovering over the installer image. Would be 5 points if it is already in correct format.8
57TISTUD-178Auto-wire up CA in Titanium projectsUser should not have to drop jsca file into Titanium project to get CA.1
58TISTUD-184Add command to install beta releases of Mobile/Desktop SDKs based on URLWe need a command (probably under help) to install beta versions of Titanium Mobile/Desktop SDKs via specific URLS. Something like the urls found at http://builds.appcelerator.com.s3.amazonaws.com/index.html We need to be able to recognize the difference between a mobilesdk and desktop sdk download.1
59TISTUD-195Update Samples view to include some sort of descriptive text and platform specificationsLooking at the samples view, it should have a few extra items: 1) A description of the sample in question. 2) Allow the sample to be "tagged" with a variety of text phrases. We could use that for sorting/filtering. 1
60TISTUD-200Tiapp: surface errors/warnings in Overview Editor to Problem view and as project file decoratorsSteps to Reproduce: 1. Create a new project from tiDev 2. Import the project to tiStudio 3. open tiapp.xml Actual: there are errors that the user need to resolve, but they do not see that indication until file is open Expected: To indicate to the user that there is an error on the project when they import 20
61TISTUD-201Allow importing of existing projects without user modificationsIn an ideal world, no user modifications would be required for a project creating in TiDev and brought into tiStudio. Not sure if thats possible or a goal, but we wanted to log it. the issues we have encountered: TISTUD-198 TISTUD-199 1
62TISTUD-204Save parameters in Android Distribute dialog for later reuseCurrently user has to reenter all fields in Android Distribute dialog. It would be more convenient to save and reuse them.1
63TISTUD-209Running project on iOS device gives an itunes errorSteps to Reproduce: 1. Create a new iOS project 2. Run as iOS device 3. See the console Actual: /Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/itunes_sync.scpt: execution error: iTunes got an error: Can't continue update. (-1708) Expected: No error1
64TISTUD-212Add deploy-targets validation when importing existing Mobile projectWhen importing a previously created titanium mobile project, the deploy-targets that were set for that project may not be compatible with the importing environment for various reasons like - missing SDKs or unsupported operating system. The import project wizard should display to the user any detected issues before creating the project, and perhaps offer to fix them in some cases (such as grabbing a missing SDK). 1
65TISTUD-213Disable or hide any deploy-targets that are not available in the project's resources directoryCurrently, the deploy targets resources are only created when a project is created. There is no scripting support for updating the resources directory by a new set of targets. To avoid any user confusion, we should probably hide those targets or gray them out with some info about the problem. 1
66TISTUD-215App Explorer view should transition to the Debug perspectiveWhen the user opens a debugging session, and switches to the debug perspective, only the Eclipse Debug button is left for re-launching the application while still in the Debug perspective. This makes the user experience somewhat inconsistent because (presumably) they will be launching from the Debug button inside the App Explorer ("Titanium" perspective). If we have the App Explorer itself exist in both perspectives, it should give the same interface for launching to the user.1
67TISTUD-216Remember last folder imported project fromWould be great if when importing a project, it remembered the last folder you imported from and showed the Finder/Explorer starting there. (Like Eclipse does). I imagine people tuck their Ti projects away in a special folder, so having it default to the last project's folder makes it just one step away from the folder containing all their projects.1
68TISTUD-232Update JSCA top-level metadata for better version trackingFollowing the JFF schema as a model, we should add "name" and "description" properties to the top-level object. "version" should be changed from a Number to a String. Schema changes will also require code changes to update the model and the processing of those properties in the JSCA files.13
69TISTUD-234Must be able to set your own Default Project LocationMost developers I know have their own path for their development projects, often which they have been using for many years. The Ti Studio needs the ability to change the default location to be whatever the end-developer wants. 1
70TISTUD-253Show progress when importing sample projectGit clone for kitchen sink takes around 3-4 minutes and the progress is stuck at 4%. It's somewhat confusing since I don't know whether something went wrong or it's just taking a while. Some type of progress indicator would be nice1
71TISTUD-255Ability to check the build number for tiDesktop and tiMobile SDK in the about pageWe should have the ability to check the build number of the SDK that we are running in tiStudio. All the information is written to a text file called version.txt in the SDK folder 1
72TISTUD-260Once a user has updated the SDK manually, alert the user that installation has completed successfullyUsing *Help > Install Titanium SDK from URL* a user can install a SDK from a URL. However, once the installation has been completed, we should pop a toast to indicate that the installation process has completed.1
73TISTUD-267Re-arrange Help menu optionsSee attached image. Suggest the following: ---------- Titanium Studio > Check for Titanium SDK Updates Install Titanium SDK from URL...1
74TISTUD-268Add templates to Titanium project creationSimilar to how web projects work. We have templates in the Titanium ruble. On project creation, once we have run the scripts, we then copy in the template files. We only have one titanium ruble at the moment--if necessary, we can create two, or somehow indicate the samples apply to mobile or desktop projects.1
75TISTUD-273Allow selection by CamelCaseIn another I-can't-name-it Eclipse based IDE, there's a feature where you can select things based on CamelCase, instead of by word, which is very handy. Example: If I have code like this: /pintley/ui/components/MoreRow.js On OS X, if I put my cursor between "Row" and ".js", hold down option-shift, and hit the left arrow, it would highlight "Row" instead of "MoreRow". It's a huge timesaver, but I can see that not everyone would like it. I just want the option.8
76TISTUD-280Add domain and login to cloud app wizardNULL1
77TISTUD-285Remove auto-setting of workspace directory in Titanium StudioInstead, let the user pick a default workspace on first launch.1
78TISTUD-288Notify user when mobile project creation failsOrdinarily, we shouldn't allow the user to get this far in the process, but if they somehow manage to get here, we should alert the user to the error.1
79TISTUD-525Replace colons in project names with underscore charactersI tried creating a mobile project through developer with a colon in the name and got the following in the console. Just create a project with a colon in the name to reproduce. We should instead replace the colon with an underscore. {panel} <p><a href="/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> Compiling JavaScript...one moment <a href="/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> Simulator is exiting <a href= "/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> No JavaScript errors detected. <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> executing command: /usr/bin/killall iPhone Simulator <a href="/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> One moment, building ... <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copy resources from /Users/kevin/Name: Lite/Resources to /Users/kevin/Name: Lite/build/iphone/tmp <a href="/projects/32238/changesets/DEBUG" title="Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/about.html to /Users/kevin/Name: Lite/build/iphone/tmp/about.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.css to /Users/kevin/Name: Lite/build/iphone/tmp/index.css <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.html to /Users/kevin/Name: Lite/build/iphone/tmp/index.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.js to /Users/kevin/Name: Lite/build/iphone/tmp/index.js <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/about.html to /Users/kevin/Name: Lite/build/iphone/tmp/about.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.css to /Users/kevin/Name: Lite/build/iphone/tmp/index.css <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.html to /Users/kevin/Name: Lite/build/iphone/tmp/index.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.js to /Users/kevin/Name: Lite/build/iphone/tmp/index.js <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/about.html to /Users/kevin/Name: Lite/build/iphone/tmp/about.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.css to /Users/kevin/Name: Lite/build/iphone/tmp/index.css <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.html to /Users/kevin/Name: Lite/build/iphone/tmp/index.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.js to /Users/kevin/Name: Lite/build/iphone/tmp/index.js <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/about.html to /Users/kevin/Name: Lite/build/iphone/tmp/about.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.css to /Users/kevin/Name: Lite/build/iphone/tmp/index.css <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.html to /Users/kevin/Name: Lite/build/iphone/tmp/index.html <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/index.js to /Users/kevin/Name: Lite/build/iphone/tmp/index.js <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/default.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/default.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/default.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/android/default.png to /Users/kevin/Name: Lite/build/iphone/tmp/android/default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/iphone/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copy resources from /Users/kevin/Name: Lite/Resources/iphone to /Users/kevin/Name: Lite/build/iphone/tmp <a href="/projects/32238/changesets/DEBUG" title="Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/appicon.png to /Users/kevin/Name: Lite/build/iphone/tmp/appicon.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/closebox.png to /Users/kevin/Name: Lite/build/iphone/tmp/closebox.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> copying: /Users/kevin/Name: Lite/Resources/iphone/Default.png to /Users/kevin/Name: Lite/build/iphone/tmp/Default.png <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.App <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.API <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.Network <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.Platform <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.Analytics <a href="/projects/32238/changesets/DEBUG" title="Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.Media <a href="/projects/32238/changesets/DEBUG" title="Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.Gesture <a href= "/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> module library dependency detected Titanium.UI <a href="/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> Executing XCode build... <a href= "/projects/32238/changesets/INFO" title= "Changeset [INFO]">[INFO]</a> Executing XCode Compiler [toggle output] <a href="/projects/32238/changesets/DEBUG" title= "Changeset [DEBUG]">[DEBUG]</a> executing command: xcodebuild -configuration Debug -sdk iphonesimulator3.1.2 WEB_SRC_ROOT=/Users/kevin/Name: Lite/build/iphone/tmp GCC_PREPROCESSOR_DEFINITIONS=<strong>LOG</strong>ID<strong>=d7b66483-2558-4df7-9701-dfe81c20550d DEPLOYTYPE=development DEBUG=1 Traceback (most recent call last):<br> File "/Library/Application Support/Titanium/mobilesdk/osx/0.8.1/iphone/builder.py", line 544, in<br> main(sys.argv)<br> File "/Library/Application Support/Titanium/mobilesdk/osx/0.8.1/iphone/builder.py", line 359, in main<br> "GCC_PREPROCESSOR_DEFINITIONS=</strong>LOG<strong>ID</strong>=%s DEPLOYTYPE=development DEBUG=1" % log_id File "/Library/Application Support/Titanium/mobilesdk/osx/0.8.1/iphone/run.py", line 7, in run<br> (so,se) = subprocess.Popen(args, stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate() File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/subprocess.py", line 667, in communicate<br> return self.<em>communicate(input)<br> File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/subprocess.py", line 1138, in</em> communicate<br> rlist, wlist, xlist = select.select(read_set, write_set, [])<br> KeyboardInterrupt</p></div> {panel}5
80TISTUD-297Ability to hide hidden files from App Explorer ViewI'm using external app for SVN versioning and .svn directories are visible. Also .settings directory from Eclipse should be hidden I think :-)1
81TISTUD-298Android: Fastdev Server SupportWe've recently implemented a new feature in Android called "Fastdev" that serves up Javascript and other files from the project's "Resources" folder directly to the app as it's running. The server itself is long running, and supports several launches of the app. Currently I'm spawning this as subprocess from builder.py, which seems to work from command line, but Eclipse still sees the "Application installer" script as running (I'm guessing because it is actually a subprocess). The solution would probably be to have the IDE run it directly if/when it isn't already running. The syntax for starting and stopping the server is pretty straight forward: $MOBILESDK/android/fastdev.py start <path/to/project> $MOBILESDK/android/fastdev.py stop <path/to/project> You can check if the server is running by looking for an existing lock file in: <path/to/project>/.fastdev.lock1
82TISTUD-300Allow for override of Titanium SDK update check URLCurrently we check for http://api.appcelerator.net/p/v1/release-list. Allow the user to specify a new location to check. Suggest adding a preference to the Titanium pref page to allow a user to plug in a new URL.1
83TISTUD-302Build error when using external moduleWhen I try to include an external module (SMSDialog Module from https://github.com/omorandi/TiSMSDialog/tree/) and compile my app to run on the iPhone simulator I get the following error: [ERROR] Error: Traceback (most recent call last): File "/Library/Application Support/Titanium/mobilesdk/osx/1.6.1/iphone/builder.py", line 1091, in main execute_xcode("iphonesimulator%s" % link_version,["GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s" % (log_id,sdk_version)],False) File "/Library/Application Support/Titanium/mobilesdk/osx/1.6.1/iphone/builder.py", line 1012, in execute_xcode output = run.run(args,False,False,o) File "/Library/Application Support/Titanium/mobilesdk/osx/1.6.1/iphone/run.py", line 39, in run sys.exit(rc) SystemExit: 65 This same code compiles correctly using Titanium Developer version 1.2.2. 1
84TISTUD-310Add ability to run a project without importing it firstI'd like to be able to run a project (in the simulator/emulator at least) without having to import the project. This would be especially useful in a learning or training environment where we're working with many different projects. It would be helpful when users try out code from github, etc. Seems like tiapp.xml would give you all the info you need.1
85TISTUD-317Confirm BlackBerry Tooling can install on top of Titanium StudioConfirm that the BlackBerry tooling here can be installed on top of Titanium Studio: http://na.blackberry.com/eng/developers/javaappdev/javaplugin.jsp If it cannot, we need to figure out what packaging changes to make to Titanium Studio in order for it to be able to work. If it turns out that it requires a whole bunch of things, like the Java editor, then we may want to consider requiring those who wish to do BlackBerry development to install Eclipse and use TiStudio as a plugin.1
86TISTUD-318Add BlackBerry option to Titanium Mobile New Project WizardSimilar to Android, there will be a checkbox on the "Create new project" wizard in the "Deployment Options" section. # User must have the BlackBerry tools installed, and be using a version of the TiMobile SDK that supports BlackBerry # The BlackBerry tools only work on Windows, so the option would be grayed out on other platforms, indicating why it is grayed out.1
87TISTUD-319Add BlackBerry "Run on Emulator"Running the BlackBerry emulator is similar to running the Android Emulator. The option is launched from the "play" menu in App Explorer and Project Explorer, and automatically appears for all projects with BlackBerry as a deploy target, The following options need to exist for the launch configuration: * Simulator: This dropdown selects the simulator which will run your application. We've selected the 9550 simulator by default, as it has a touch interface, and is the easiest to drive with a mouse and keyboard * Filter: This filters the amount of log output in the developer window based on the level selected. Info is default, Debug shows more than Info, and Trace shows more than Debug. With Blackberry Debug is normally as low as you need to go, Trace will have a lot of simulator messages that won't be useful in normal circumstances. * Launch button: click this button to launch the selected Blackberry Simulator. * Clear SDCard: Clear the sdcard on the next simulator launch. If you receive a "ControlledAccessException" while launching your app, you should stop the simulator, and click this on the next launch. One the emulator launches, suggest showing a pop-up (which may be dismissed in future runs) that shows the user how to start their app: "Locate your application in the "Downloads" section of the main Blackberry menu. You can do this by hitting the Blackberry key on the simulator, selecting the "Downloads" folder, and selecting your application."1
88TISTUD-320Make "Run on Device" iOS dialog prettierAt the very least, some more padding around the individual steps would be good, though perhaps using icons to indicate state might look good too.1
89TISTUD-321Add options to configure BlackBerry signing keys in PreferencesSuggest having this information on the Titanium Preference page, and if a user needs to configure it, send them there. Text: RIM requires that all applications sent to a device must be signed with their 3 keys and the user's private key. [Get Keys] links to https://www.blackberry.com/SignedKeys/. Remember your PIN, as you'll need it the first time you generate the private key when you sign the application. Form Field: BlackBerry Key Directory: Allows the user to browse to the folder on disk containing the three signing keys. Passphrase: ? Unsure if we need a passphrase text box Add help link to Titanium Studio Wiki with additional install instructions, as shown here: http://developer.appcelerator.com/doc/blackberry/getting-started-beta-preview1
90TISTUD-322Add option to configure BlackBerry SDK in preferencesSimilar to Android, BlackBerry needs to point to an installed version of the blackberry SDK. By default, this will be Titanium Studio, so we can pre-fill the value. However, the user should be allowed the option to configure this value if it happens to be something other than the default (i.e. they have installed the tools in a different version of Eclipse). This might be necessary as the BlackBerry tools require a 32-bit JRE, and a user might be using Eclipse 64-bit.1
91TISTUD-323Add BlackBerry "Install To Device"# Check to see that the user has installed the three Blackberry keys. If not, direct them to the preference page where they can set that up (TISTUD-321) # If you haven't created a private key yet, SignatureTool will appear and ask to create a private key # If the user has created a private key, the wizard may ask for a passphrase before installing to device We may need to prompt the user as for emulation too. One the emulator launches, suggest showing a pop-up (which may be dismissed in future runs) that shows the user how to start their app: "Locate your application in the "Downloads" section of the main Blackberry menu. You can do this by hitting the Blackberry key on the device, selecting the "Downloads" folder, and selecting your application."1
92TISTUD-324Add BlackBerry "Package for Distribution" wizardPackaging scripts similar to Android and iPhone workflow, and will appear under the "packaging" button in App Explorer/Project Explorer. # Check that signing keys exist (both Blackberry and user's. If not, direct them to Preference page) # Set save location for final packaged file via Browse... button. # Run builder.py script with appropriate arguments to complete packaging process 1
93TISTUD-325Create Blackberry icon for run/deploy/packagingSimilar to Android. A little icon (16px x 16px) to display in the various menus that indicates run/deploy/packaging1
94TISTUD-327Add BlackBerry Debug on EmulatorSimilar to Android support, add the option to launch a debugger on the emulated device. See "run on emulator" for relevant device configuration options. Ticket is for integrating the run/debug configurations into Studio. Actual debugger work would be handled by BlackBerry team.1
95TISTUD-335Command + Click method, var, etc. jump to sourceIn most eclipse based IDE's you can command + click a method, var, property, etc. and it will jump to the source. If the source is in another file it will open the file and go to the source. This actually works right now in PHP with TiStudio. Having this for the javascript context would be wonderful.1
96TISTUD-336Outline window doesn't always show javascript object outlines for self-invoking functionsWhen using self-invoking functions, sometimes the outline view doesn't show the break down of what is inside. Here is a good example: https://img.skitch.com/20110426-t2xyeearhr1hkg4xbhpc82jbqs.jpg {code} var SomeTest = { test: function(arg) { var test = arg; return test; }, selfInvoked: (function() { var api = {}; api.test = 'test'; api.someMethod = function() { var blah = 'test'; return blah; }; return api; })() }; var someOtherTest = (function() { var api = {}; api.test = 'test'; api.someMethod = function() { var blah = 'test'; return blah; }; return api; })(); {code}8
97TISTUD-339Enable importing breakpoint files1. Click the debug view 2. Debug perspective > Breakpoints tab > right click > import breakpoints Actual Result: Does nothing Expected Result: Allow the user to import breakpoint files 1
98TISTUD-346Titanium Studio downloads SDK updates again after workspace switchAfter a workspace switch, TiStudio downloads SDKs again, what is a lengthy and annoying task.1
99TISTUD-348Add pings to HTML5 eventsSend analytic pings for project creation, launch simulator, packaging etc...1
100TISTUD-355Loading bar displaces Login / Cancel buttons and Email / Password fieldsAfter clicking Login, the Loading bar bumps both buttons and the Email and Password fields up a few pixels. 5
101TISTUD-357Splash screen jumpsWhen you first boot Titanium Studio, there is an introductory splash screen, then a screen with the loading bar. The location of the screen jumps a couple of pixels in the transition from the first to the second. 5
102TISTUD-358Code-assist icons should not be IE and Firefox on mobile projects (or at all)The code-assist show icons that are active or grayed in order to inform the developer if a property (or function) is supported on a specific browser. While this is useful when developing web pages, it has no added value on mobile applications. There are however android and iPhone (which is very ugly by the way) icons. But those must be activated in the *Editors* Preference window. (see screenshot) * The default setting should be (Android and iPhone) for Mobile projects. * And no icons for Desktop projects.1
103TISTUD-373Label adjustment for deploy targets in new mobile project wizardI'm not sure how this looks on other platforms, but on Ubuntu 9.10, the "Deployment Targets" label is centered vertically with all of the deploy targets. This makes the first item look like it is associated with the previous item in the dialog (see attached). Older screenshots show the deploy targets running horizontally. If these are supposed to be vertical, then I would justify the label to the top instead of centering it.1
104TISTUD-380Request for "Install Titanium SDK from URL" to install Continuous Builds under directories reflecting their dates, to distinguish them from major releases in the TiApp editorWhen testing Continuous Builds, it is very useful to be able to easily differentiate between each day's release, and also the official releases. Currently, however, only one version of each SDK can exist for TiStudio at one time using the "Install Titanium SDK from URL" feature. The workaround is to download and extract the packages to the SDK directory manually. The suggestion is to append the date to the end of the SDK version number (most likely by simply naming the SDK directory to reflect this format). Thus, the package: http://builds.appcelerator.com.s3.amazonaws.com/mobile/1_6_X/mobilesdk-1.6.3-20110418162355-linux.zip would be shown in the TiApp editor as: 1.6.3-20110418 To add weight to the argument for this feature, Marshall has also agreed that it would be extremely useful.1
105TISTUD-383Help menu not showing in Ubuntu 11.04Only the "Window"-menu is available, the "Help"-menu is not showing, which makes it impossible to update to a newer SDK.8
106TISTUD-415App ID with dash/hyphen - Malformed App Id errorIf I try to create a new project and the App ID contains a dash character like this: {{net.example.project-hd}} ... Titanium Studio RC1 reports an error: {color:red}Malformed App Id (example: com.companyname.appname){color} But the dash character *is allowed* in the App ID. It works also in previous versions of Titanium Developer and Apple accepts apps with this App IDs. This is an big show stopper because I'm not able to import my old projects with dash characters in the App ID.3
107TISTUD-400Color code console output for Ti.API.info, debug, warn and console filteringIn Titanium Developer the console output color codes the info, debug, and warn logging functions. It's very handy when scrolling through to see what is what. You can also filter out the 3 types of logging if you just want to see, info, or info + debug, or info + warn.1
108TISTUD-406Use mobile project's active SDK api.jsca fileWhen creating and importing a titanium mobile project, we should copy the api.jsca file for the SDK being used by that project. If the api.jsca file does not exist, then we should fall back to the api.jsca in the timobile plugin. Also, if the SDK version is changed while editing a tiapp.xml file, we should update the api.jsca, if necessary, when the tiapp.xml file is saved.1
109TISTUD-407Confirm TiStudio default update set is set to "stable" not "beta"NULL1
110TISTUD-421Hide user email address at bottom right hand corner of IDENote: discussed with Ingo today by email. Currently, TiStudio shows the user's email address in the bottom right hand corner of the IDE. This may not be good for users wishing to publish public demo or training videos, as it reveals their email address to everyone. Consider either replacing this with their devcenter display name (this may be desirable, as it links the video to their devcenter identity, which will possibly be useful later on when the developer marketplace goes live), or replacing it with a "logged in" or "logged out" message/indicator. 1
111TISTUD-428Allow a ruble to contribute the image for a templateallow a ruble to contributing the image for a template see attached picture1
112TISTUD-434Support specifying the density of the emulatorh1. Feature Support specifying the "Abstracted LCD density" of an Android Virtual Device in the "Debug Configuration" in Titanium Studio. Also add the field to the Titanium preference page to support a default value. Right now, only the API, Screen, and Log level can be changed. By adding this additional field, it would be easier for developers to test multiple densities. h2. Associated Helpdesk Ticket http://appc.me/c/APP-692888 13
113TISTUD-448Allow users to add new platform targets after project creation Description: While testing studio, it was noted that new deployment targets could not be added to an existing project. For example, a project created for an Android deployment had the iOS targets grayed out. It is possible to manually edit TiApp.xml to set targets to true. This enables the "run on simulator" for iOS, and in my test was able to launch the project in the simulator. Steps to reproduce: 1) Create a new Titanium Mobile project in Studio 2) Select "Android" as the only deployment target 3) When the project is created, open TiApp.xml and note that only Android is available to select/deselect 4) Open the pure xml tab of TiApp.xml and set deploy target for iOS to "true" Result: Your project can be launched in the simulator, but installed on device will launch then quit and has no icon. Expected: Either no ability to add or remove targets after project creation or the ability to add with the same default structure as during project creation. Suggested solution: * user checks platform option in tiapp.xml * Call platform script to initialize new platform. This would (most likely) add another build folder, and copy several resources into a specific location * Update tiapp.xml with reference to new platform * Validate project specifics as per what we would do in the new project wizard * Suggest we don't _remove_ platform support...alerting the user we can't remove platform support for a project if they try to uncheck a box.13
114TISTUD-454We want interface Builder integrated with the Titanium studio next release.We want interface Builder integrated with the Titanium studio next release.1
115TISTUD-474Add unit tests for TiAppModel and TiManifestModelAdd unit tests for both classes.1
116TISTUD-475Add unit tests for TiAppModelUtilNULL1
117TISTUD-476Add unit tests for TitaniumUpdaterUtilNULL1
118TISTUD-477Add unit tests for MobileUsageUtilNULL1
119TISTUD-478Add unit tests for DesktopUsageUtilNULL1
120TISTUD-479Add unit tests for SDKLocator, SDKManager, SDKEntity classesNULL1
121TISTUD-480Add unit tests for login/logout logicThis might also test Studio capabilities (i.e. debugging on/off)1
122TISTUD-481Rename "*Utils" classes to "*Util"In order to be consistent across products, we should rename instances of *Utils classes to drop the 's,' i.e. MobileUsageUtils -> MobileUsageUtil1
123TISTUD-483Linux: Adding new expresssions name is not readable, the background and text color is too similarSteps to Reproduce: 1. Create a new application on tiStudio 2. Go to the Expressions Pane and add new expressions 3. Type anything in for the name Actual Result: Text color and background color too similar hard to read Expected Result: Should be readable Note: Duplicate of bug Ti-Stud 426 that was against the Win platform8
124TISTUD-486Cannot right-click on a folder in project explorerSteps to Reproduce: 1. Launch Ti Studio 2. Select the Project Explorer tab 3. Click the triangle to expand the project 4. Right click on the Resources folder Actual Result: Nothing happens Expected Result: Should display the context menu Note: It is the area that makes item not selectable, if there are two projects and both not expanded, the 2nd project will not have a context menu8
125TISTUD-492Create feature and builder for TiStudio unit testsNULL1
126TISTUD-499Increment Titanium Studio Master version # to 1.0.2Details on attached wiki page: http://wiki.appcelerator.org/display/tools/Update+Studio+Versions1
127TISTUD-501Add Support for debugging on Android devices (tethered)we have the following issues open for ios and android to add debugging support for device Enhancement request - Add Support for debugging on device http://jira.appcelerator.org/browse/TIMOB-4626 http://jira.appcelerator.org/browse/TIMOB-4625 once these are addressed studio would need to add UI to support the features. This ticket is only for the Android side of the equation. The task here is to agree on a discovery mechanism with platform. It might be that we pass the IP address Studio is listening on to the device, or we might have the device broadcast and Studio would listen. After that, the rest of the process is identical to the current mechanism. Additional ADB info: http://developer.android.com/tools/help/adb.html13
128TISTUD-504Convert Aptana And Titanium Studio plugins to use ISO 8601 format for build qualifierCurrently, the build uses Unix timestamps for most features and plugins, i.e.: com.appcelerator.titanium.aptana.ui.override_1.0.0.1306280624.jar A much nicer presentation would be: com.appcelerator.titanium.aptana.ui.override_1.0.0.20110524_234344.jar YYYYMMDD_HHMMSS It may be that we can do this incrementally, as the build qualifier I believe is an alphabetical sort, and 2 > 1, so any renumbered plugins would show as newer.8
129TISTUD-505Add build qualifier to *.override pluginsPlugins: com.appcelerator.titanium.aptana.editor.findbar.override_1.0.0.jar com.appcelerator.titanium.aptana.git.ui.override_1.0.0.jar com.appcelerator.titanium.aptana.scripting.ui.override_1.0.0.jar All are missing the build qualifier (the segment after the point version).1
130TISTUD-506Path to BlackBerry sdk directory does not fill with correct locationWhen you download the BlackBerry SDK by clicking on the link "Update SDK..." it automatically changes the "BlackBerry SDK Directory" path to "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Appcelerator" and not the location of the newly installed BBsdk. 1
131TISTUD-509Revamp error messages when user is unable to log inCurrently, we default to "incorrect user name or password" as the most common error message. This appears to be causing confusion with some users. In this situation: # If server is completely offline or unreachable, indicate "The login server is currently unreachable. Please try again in a few minutes" # If server returns specifically an error with username or password, indicate "The specified username and/or password is incorrect. Please try again" # In all other cases (assuming server error, malformed request, etc), indicate the server returned an error, and direct the user to consult the web page at: http://aptana.com/r/titrouble (but obfuscate the URL so as to reduce confusion about the redirect)8
132TISTUD-1166Setting Log Level in Console view has no effect on the console logThere is no way to filter the console log based on event type such as "debug", "info", "error", etc. Changing the Log Level has not affect. This is the same for both iOS and Android. Is there another way to filter the log based on the level of the event? Step 1: run the example app below Step 2: Open "Run Configurations..." Step 3: Change "Log Level" Step 4: Test the log levels with the the app. {code:title=app.js} var win = Titanium.UI.createWindow({ title : 'Test', backgroundColor : '#fff', layout : 'vertical' }); var errorButton = Titanium.UI.createButton({ top : 20, left : 10, right : 10, height : 35, title : 'error' }); win.add(errorButton); var warnButton = Titanium.UI.createButton({ top : 20, left : 10, right : 10, height : 35, title : 'warn' }); win.add(warnButton); var infoButton = Titanium.UI.createButton({ top : 20, left : 10, right : 10, height : 35, title : 'info' }); win.add(infoButton); var debugButton = Titanium.UI.createButton({ top : 20, left : 10, right : 10, height : 35, title : 'debug' }); win.add(debugButton); var traceButton = Titanium.UI.createButton({ top : 20, left : 10, right : 10, height : 35, title : 'trace' }); win.add(traceButton); errorButton.addEventListener('click', function() { Ti.API.error('##### ERROR !!!'); }); warnButton.addEventListener('click', function() { Ti.API.warn('##### WARN !!!'); }); infoButton.addEventListener('click', function() { Ti.API.info('##### INFO !!!'); }); debugButton.addEventListener('click', function() { Ti.API.debug('##### DEBUG !!!'); }); traceButton.addEventListener('click', function() { Ti.API.trace('##### TRACE !!!'); }); win.open(); {code} h3. Associated Helpdesk Ticket http://appc.me/c/APP-19244813
133TISTUD-518Look into adding unit tests for packagingNULL1
134TISTUD-537Increment Titanium Studio to 1.0.4Update the version # to 1.0.41
135TISTUD-564Chromium: Ctrl+Shift+W does not close other open editors when focus is on the embedded browserPressing Ctrl+W does not close Dashboard pane. Ctrl+W will close other panes. If there are multiple panes open, Ctrl+Shift+W does not close any windows when focus is on the Dashboard pane. If the focus is not on the Dashboard pane, Ctrl+Shift+W will work as expected and close all panes. 3
136TISTUD-570Create initial configuration processWhen first starting Titanium Studio a user may not have properly configured their SDKs Individual processes should be allowed to contribute to the configuration screen. Some may be automatic processes (i.e. they need no user interaction, but need to alert the user), and some require user feedback or choice. Current processes: * iOS SDK installation * Android SDK installation * BlackBerry SDK installation * Firefox Browser location * Git install (windows only): Choose Portable Git? * Python: Auto-configure interpreters1
137TISTUD-572Enable creation of module projectsAllow for the creation of mobile module projects. This is an umbrella ticket to be split into smaller tasks. * Android steps: http://wiki.appcelerator.org/display/guides/Module+Developer+Guide+for+Android#ModuleDeveloperGuideforAndroid-Creatingamodule * iOS Steps: http://wiki.appcelerator.org/display/guides/Module+Developer+Guide+for+iOS#ModuleDeveloperGuideforiOS-Step1%3ACreatingyourFirstModule We need the following: # New Titanium Module wizard (allowing user to choose iOS/Android or both) # Import an existing module project # During wizard, ask user if they wish to create a shell test project to act as a test harness for testing the module # Steps/Launchers to compile the module and deploy it (this would mean deploying it to the root titanium install directory on disk so that other apps can use it) # Ability in other tiapp.xml editors to include modules in your project (these could be already installed ones, or ones from your workspace) # Create documentation for module (tidocs to JSCA file) # Upload finished module project to marketplace 1
138TISTUD-582Windows: Pressing Cancel on installer does not stop installation process1) Launch installer 2) Press Cancel Results: Prompt appears - "You are about to quit setup. If you quit now, Titanium Studio will not be installed. Do you want to continue?" 3) Press Yes Expected: Installer quits. Actual: Installation proceeds to the "Choose File Associations" page. Notes: Pressing Next will lead to the "Installation Incomplete" page. Pressing Cancel then Yes on a second time (on the "Choose File Associations" page) will go to "Installation Incomplete" page. 5
139TISTUD-584Importing project causes a "'Building workspace' has encountered a problem" error1) Copy uatest2 to you Titanium Studio Workspace (uatest2 is attached) 2) Import project into TiStudio Results: A "Problem Occurred" error message appears (see screenshot and attached log files)21
140TISTUD-589new mobile projects can't find appicon.jpg resulting in "1 error detected" shown on TiApp paneDescription: When creating a new Studio Mobile project, the TiApp.xml editor is shown. On this pane, the default app icon field contains appicon.jpg. For new mobile projects, the field is marked with a red "x" and "1 error detected" is shown at the top of the window. This does not occur on Win7 or any other system tested. (Mac OS X 10.7 and 10.6.8, Ubuntu 10.04) Note: Navigating to the .jpg file does not remove the error flag. Steps to reproduce: 1) Install Titanium Studio, build: 1.0.4.201108101535 on windows XP 2) Create a new mobile project 3) Examine TiApp.xml Result: appicon.jpg in the field, but red x and error shown. Expected: No problem with appicon8
141TISTUD-592Titanium Studio should support the -n flag to tibuild.pyWhen packaging, the -n will not show the install splash screen by putting a .installed file in the Contents directory. When this file exists, Titanium Desktop Apps will not show the install splash screen the first time the app runs. A customer was asking for this on developer.appcelerator.com: http://developer.appcelerator.com/question/124142/how-to-test-titanium-desktop-app-how-to-get-rid-of-titanium-installer-screen1
142TISTUD-600Add preference for default settings on android run/debug configurations (API & Screen size)h5.Feature Request Enable Studio to change the default settings used when it creates an Android Run or Debug Configuration for the first time on a project. E.g. Currently, Studio installation creates new Android configurations using API: 2.3.1 and Screen: WVGA854. This is an inconvenient that emulator screen size is too big for laptop screens, taking up over half the display, so this change the default to something smaller. Also be able to control which API is used by default. h5.Additional info To customize device resolution / density from command line: >emulator -avd HVGA800 -scale 96dpi -dpi-device 160 http://developer.android.com/guide/developing/devices/managing-avds-cmdline.html Further info can be found here as well: http://developer.android.com/guide/developing/tools/emulator.html http://developer.android.com/guide/developing/devices/emulator.html Suggest creating a child page of the titanium preference page to hold that information and allow the user to set it.13
143TISTUD-623Need to be able to pass additional emulator arguments from run/debug configurationsWhen a run/debug configuration is created, we need the ability to pass additional command-line arguments to the android emulator. As an example, the -scale argument in order to use skins whose full scale causes them to be larger than the screen you are running on. For example, I am using the Motorola MD860 skin for the Atrix 4G whose screen is 960 pixels high. The resulting emulator window is some 1200 pixels high but my screen is only 900 pixels high. If you run the AVD from the AVD Manager, it offers the option to run with a particular screen size which uses the -scale argument. We need the capability to do this in Studio. I would recommend simply adding an extensible option to specify any additional command line arguments. The standard Eclipse launch configurator allows this on the configuration's Target tab but that appears to be disabled in Studio. Please re-add the tab and allow those arguments to be passed to the emulator. Note: This can only be allowed on SDK versions that support the feature...i.e this won't work on 1.8, but should work on 2.0 8
144TISTUD-605Epsilon (Show Match Count) option from the search tab does not update on a new search, need to retoggle to check to get the updated valueSteps to Reproduce 1. Menu Edit -> Find 2. Type something that can be found in the .js file 3. Check the Epsilon sign 4. Create a new search Actual: The epsilon value is not updated Expected: The value to be updated with the new search result Workaround: Toggle the check mark to get the new value5
145TISTUD-651Add Browse button to Save As dialog boxSee the attached screen...request is to add a Browse button so that you can select the path in which to save the file rather than having to type the path.1
146TISTUD-656Change the Log File Locationh3. Problem The log file created by Titanium is being saved in the Documents folder of the app. The main problem is that the Documents folder gets backed up by iCloud, and it would be better not to include logs in the user backups. h3. Expected behavior Customer wants to change the location of the logs in somewhere else like in the Application Support/Logs. h3. Additional Information: http://www.apple.com/icloud/what-is.html h3. Associated HD Ticket: http://appc.me/c/APP-5251611
147TISTUD-675Add snippets based on Kitchen Sink API examplesInspired by Motorola's Motodev, let's add a set of snippets of drag&drop code to Studio. We could add such snippets for common functions. Or, as Tony G suggested, this could be the evolution of Kitchen Sink. We'd rip out all its API demo code and make each a snippet that could be dropped into a project. See http://developer.motorola.com/docstools/motodevstudio/images/feature_snippets_lg.jpg/ for their UI. We should use a similar categorized arrangement of snippets, but one based on common use cases within our APIs. Prof Support, Dev Relations, and Training could collaborate to create the snippets to be added. 1
148TISTUD-687Open timodule.xml file in editor for user after generating mobile module projectWe should be opening the timobile.xml file after we generate a mobile module project, as a means of getting users started more easily.5
149TISTUD-713Windows 7 Installer "Choose Install Location" defaults to Administrator's profileIf the TiStudio installer is executed while logged in as a non-administrative user, just as when any new software is installed, the user is prompted to provide the administrator's password. At the "Choose Install Location" stage, a path within the administrator's profile, of {{C:\Users\Administrator\AppData\Local\Titanium Studio}}, is populated by default: !http://img812.imageshack.us/img812/50/screenshot356c.png! Obviously standard users do not have write-access to this directory. We should populate this field with a directory under the user's profile, rather than the administrator's.13
150TISTUD-990Console: Norwegian characters not correctly displayedh2. Problem Console doesn't display Norwegian characters correctly. h2. Test case {{Ti.API.log('Jeg kan løpe')}} produces a console output in unicode "Jeg kan l\U00f8pe"8
151TISTUD-714Add support for listing and importing sample projects through the DashboardAdd a controller-action that will return a list of available sample projects. That list should contain the following information for each sample: * Sample name * Sample ID * Description * Screenshot-image path (can be empty, for now) The Dashboard will create sample-items using this information and will trigger the Samples import handler when a specific sample is clicked on.1
152TISTUD-715Compute the status of the installed SDK asynchronously At the moment, the call to compute the installed SDKs status is done synchronously, which causes for delays when the Dashboard loads. We need to change that call to start an asynchronous job and report with an event when the results are ready to be rendered. 1
153TISTUD-718Create a controller-action that returns the logged-in Titanium user informationThe action should return, at least, the logged-in user name (email) and the MD5 hash of his/her email.1
154TISTUD-734Change "Deploy" tool tip to "Publish"For clarity of terminology, please change the tool tip for the "deploy" menu to be "publish". This better fits with the current usage of that menu and the items inside. * Update root label in App/Project Explorer * Correct references to "Deploy" in wiki documentation5
155TISTUD-744Sometimes git managed projects can open with no deployment targets in Tiapp.xml detail but the Overview shows targets selected.Description: While evaluating the impact of using git-managed projects in Studio, I encountered a situation where the git project's Tiapp.xml was missing the deployment targets in the xml view. The targets were checked in the "overview" view however. A quit and relaunch of studio then populated the deployment targets in the xml view, and removed the checkmarks in the "overview" view. Before studio quit and relaunch: {code} <?xml version="1.0" encoding="UTF-8"?> <ti:app xmlns:ti="http://ti.appcelerator.org"> <id>com.nolanwright.kitchensinkipad</id> <name>KitchenSink-iPad</name> <version>1.0</version> <publisher>nwright</publisher> <url>appcelerator.com</url> <description>No description provided</description> <copyright>2010 by nwright</copyright> <icon>default_app_logo.png</icon> <persistent-wifi>false</persistent-wifi> <prerendered-icon>false</prerendered-icon> <statusbar-style>default</statusbar-style> <statusbar-hidden>false</statusbar-hidden> <fullscreen>false</fullscreen> <navbar-hidden>false</navbar-hidden> <analytics>true</analytics> <guid>1000da51-9909-4a9e-a82f-52de59746d37</guid> </ti:app> {code} After relaunch: {code} <?xml version="1.0" encoding="UTF-8"?> <ti:app xmlns:ti="http://ti.appcelerator.org"> <deployment-targets> <target device="mobileweb">true</target> <target device="iphone">true</target> <target device="ipad">true</target> <target device="blackberry">false</target> <target device="android">false</target> </deployment-targets> <id>com.nolanwright.kitchensinkipad</id> <name>KitchenSink-iPad</name> <version>1.0</version> <publisher>nwright</publisher> <url>appcelerator.com</url> <description>No description provided</description> <copyright>2010 by nwright</copyright> <icon>default_app_logo.png</icon> <persistent-wifi>false</persistent-wifi> <prerendered-icon>false</prerendered-icon> <statusbar-style>default</statusbar-style> <statusbar-hidden>false</statusbar-hidden> <fullscreen>false</fullscreen> <navbar-hidden>false</navbar-hidden> <analytics>true</analytics> <guid>1000da51-9909-4a9e-a82f-52de59746d37</guid> </ti:app> {code} Steps to reproduce: 1) Import KS-iPad from titanium_mobile 1.7.X 2) Build from device to populate build folder 3) In terminal, switch branches to master with git checkout -f master 4) Switch back to 1.7.X with "git checkout 1_7_X" 5) Examine TiApp.xml Result: The Tiapp.xml does not have the <deployment-targets></deployment-targets> Expected: TiApp.xml overview matches xml detail and deployment targets are selected and "true" 8
156TISTUD-746Add GIT configuration to the DashboardAdd dashboard support for checking GIT (windows only). Configuring GIT should be allowed on a Windows OS through the installation of Portable GIT. * Remove current dialog popup on startup * Add check for git configuration to current dashboard check * If check fails, add button that pops up the same dialog as shown now (which ultimately does the installation) Note that for Aptana Studio, this would require us implementing a similar dashboard as Titanium Studio so that we may perform the same checks there.40
157TISTUD-747Add Python configuration through the DashboardCurrently, when Studio first runs, a "configuring python interpreters" dialog comes up. Instead, we should integrate this dialog withe the current dashboard configuration process. It would allow for checking and configuring Python interpreters through the Dashboard configuration actions. * Remove current dialog popup on startup * Add check for python configuration to current dashboard check * If check fails, add button that pops up the same dialog as shown now. Note that for Aptana Studio, this would require us implementing a similar dashboard as Titanium Studio so that we may perform the same checks there.20
158TISTUD-754Manage the 'modules' for a specific Mobile project through the TiApp editorCreate a section in the TiApp editor for manipulating the modules in the tiapp.xml for a Mobile project. 1
159TISTUD-755Allow "pre-selection" of template in project wizardsApologies for the last minute note on this, but it appears we need a new feature for the dashboard implementation. Basically, we need to be able to "pre-select" a template on popping up the new project wizard. The rationale is that we will have a number of buttons to invoke "New From Template" in the dashboard, but our current project wizard does not support this. Suggest having a short description or preview of the selected template at the bottom to indicate which one was selected. If you choose "finish" it uses that template, otherwise, you could choose a different template if you went to the next screen (though the pre-selected template should show as the chosen item). It's likely we will want to reconfigure the presentation of platform options in the Titanium wizards to create some extra space. There may need to be a little dashboard work done to enable a button to make this happen. If so, please create a subtask and work with Shalom on this.1
160TISTUD-757Comment the com.appcelerator.titanium.core.user packageThis package is sparse on comments. Please add comments to elucidate the classes and methods.1
161TISTUD-760Add launch configuration option to run iPhone/iPad simulator with retina displaySteps To Reproduce: 1. Create a titanium mobile project 2. Run as only gives the user ipad/iphone simulator 3. Select any one and go to Hardware menu under iOS Simulator 4. See iPhone (Retina) Actual: Cannot set studio to run in retina Expected: To give the user the option to simulate on retina display8
162TISTUD-761Titanium Studio: Android reserved namespace is not resulting in a malformed app id errorWhen creating a new project in Titanium Studio (or editing the tiapp.xml), Application ID tokens (tok1.tok2.tok3) containing invalid java namespace identifiers do not generate an error. Steps to Reproduce: 1. Open Titanium Studio. 2. Create a new project. Make sure the project supports Android. 3. Make one of the tokens in the Application ID an invalid java identifier (see below). Expected Result: An error message should appear and the project can't be created or an error message remains (if editing tiapp.xml). Actual Result: No error message appears. The project can be created. tiapp.xml shows no errors when viewed in the editor. The project can build to iOS, but the Android build fails with an error such as: [ERROR] Error(s) compiling generated Java code [ERROR] /Users/dhyde/Documents/Titanium Studio Workspace/helloworld/build/android/gen/com/appcelerator/123/ApplicationStylesheet.java:5: ';' expected package com.appcelerator.123; ^ Note: Below is the Java documentation regarding valid identifiers. Java Documentation (excerpt follows): http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625 Excerpt: An identifier is an unlimited-length sequence of Java letters and Java digits, the first of which must be a Java letter. An identifier cannot have the same spelling (Unicode character sequence) as a keyword (§3.9), boolean literal (§3.10.3), or the null literal (§3.10.7). Keywords: abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch continue goto package synchronized Boolean Literals: true false Null Literal: null5
163TISTUD-764Create a dropdown in the tiapp.xml form editor to select an Android runtimeWe need to support switching Javascript runtimes with a dropdown in the tiapp.xml form editor for Android apps. This is controlled via a simple property: <property name="ti.android.runtime">v8</property> Valid values are "rhino" and "v8"1
164TISTUD-766Rework info message for 'native' and 'implements' from Mozilla JS validatorIn my JavaScript source code when editing in Titanium Studio, if you use the words 'native' and 'implements' as function names, it gives me a warning of a syntax error in the syntax highlighting, but everything compiles and runs fine. This is because those items are future reserved words. We should rework the messages as [INFO], and say something like "Native is a future JavaScript reserved word. Its usage may not be compatible with all JavaScript runtimes"5
165TISTUD-769Automatically scan for i18n filesWe had a neat script created in the community to automate the finding and creating of strings.xml entries: https://gist.github.com/1341925 Would be good to get this translated into a ruble and integrated into Titanium Studio. Or configured to be a compiler plugin, which already has Python hooks. Original author has been contacted and is supportive of the effort.13
166TISTUD-775Disable the V8 option in the TiApp editor when the Android SDK version is incompatibleNULL1
167TISTUD-787As a Titanium Developer, I want to view and inspect all available snippets, to determine which snippets I want to insert into my sourceInspired by Motorola's Motodev, let's add a set of snippets of drag&drop code to Studio. We could add such snippets for common functions. Or, as Tony G suggested, this could be the evolution of Kitchen Sink. We'd rip out all its API demo code and make each a snippet that could be dropped into a project. See http://developer.motorola.com/docstools/motodevstudio/images/feature_snippets_lg.jpg/ for their UI. We should use a similar categorized arrangement of snippets, but one based on common use cases within our APIs. Prof Support, Dev Relations, and Training could collaborate to create the snippets to be added. 34
168TISTUD-788Studio: Lion - When first launching studio, it is not possible to expand the contents of the last project in project explorerDescription: When you first launch Studio and then attempt to expand the disclosure triangle for the last project in project explorer, nothing happens. The triangle rotates, but no project content is displayed below the project name, and the scroll bar does not adjust for the new content. Since this is on Mac, it is possible to pull the project explorer window content up enough to see that there is indeed nothing there. Please see attached image with the window pulled up to show the lack of content. This does not occur on 10.6.8. Steps to reproduce: 1) Quit studio if it is open 2) Relaunch studio (be sure you have enough projects to fill your project explorer) 3) Open project explorer if it is not already 4) Scroll to the last project in the list 5) Click the disclosure triangle Result: The triangle rotates, but no content is displayed. Expected result: The triangle rotates, project content is displayed, scrollbar is adjusted to match new window size8
169TISTUD-791Content assist - context info popup does not appear in parameters if there are values present in the parameters.1. Create a new project 2. Create a new JS file in the project 3. Place the following content into the JS file {code} /** * @param {String} a * This is the first parameter * @param {Object} b * The second parameter * @param {Number} c * Last one */ function testing(a, b, c) {} {code} 4. Type testing( Results: context info popup appears and that it displays all three parameters with their names and their descriptions 5. Place the cursor between the parenthesis and force the context info popup to appear using shift-ctrl-space Results: context info popup appears and that it displays all three parameters with their names and their descriptions 6. Change testing() to testing(10, 20, 30) 7. Place the cursor between the parenthesis and force the context info popup to appear using shift-ctrl-space Expected results: context info popup appears and that it displays all three parameters with their names and their descriptions Actual results: Nothing appears3
170TISTUD-794Auto-lock the console if you scroll away from the bottom - like the terminalRequesting the ability to auto-lock the console if you scroll away from the bottom and then unlock when you scroll back to the bottom. Would like it to function like the terminal does. I have attached a screencast to demonstrate the difference in behavior between the Studio Console and the Terminal. (Terminal on the left, Studio Console on the right). http://screencast.com/t/plTURcRFB 20
171TISTUD-804Add current locale to Dashboard URLWe need to send the user's currently requested Java locale on the query string so that we can send back localized versions of the Dashboard in the future. Suggested URL is &nl=ISOCode, as passed in to the Java executable.1
172TISTUD-806Show Indicator during Run on Emulator that tells the user that the app is still loadingWhen running an app on an emulator, there is no indication that an app is finished loading. This indication will tell the user that they can now mess around with the emulator. We can show a progress dialog/bar during the Loading process, which finishes when the loading process is complete. 8
173TISTUD-809Titanium Studio: Installer - Titanium Studio needs a shortcut to the uninstaller in the Windows start menu folderThere is no explicit uninstaller for Titanium Studio in both Windows 7 and Windows XP. Currently uninstallation must be done through Control Panel > Programs > Uninstall. Current wiki entry on uninstallation (excerpt below): http://wiki.appcelerator.org/display/tis/Uninstalling+Studio Windows Using the Add or Remove Programs applet on Control Panel to uninstall Studio. If Studio is not listed in your "Add or Remove Programs", it may be because you chose to install Studio with a zip. You will have to determine where you installed it (hopefully in your Program Files) and manually delete it. Delete the remaining application folder off the hard drive (we do not automatically delete this as some users have complained). If you did not change your installation location on disj=k during the install, it is likely in: Windows Vista/7: C:\Users\username\AppData\Local\Aptana Studio or Titanium Studio) Windows XP: C:\Program Files\Aptana Studio or Titanium Studio1
174TISTUD-810Remove html5 references inside mobile web platformLinks and references to the "html5" naming for mobile web can be removed.1
175TISTUD-811Create XSD for tiapp.xml and timodule.xml files to provide validationIn order to create a better validation experience for tiapp.xml and timodule.xml files suggestion is to create a XSD for them. Note that tiapp.xml spans both mobile and desktop applications. I don't know if it's feasible to create a XSD that spans both cases, or if it should be split into two.13
176TISTUD-818Studio: Dashboard - clicking navigation items ("configure" "learn" etc) repositions the window1.open dashboard if need 2.scroll down a bit 3.click "configure" "learn" etc results: window repositions itself expected: no such repositioning. see screen vid cap8
177TISTUD-820Titanium Studio: Validation - TiApp Editor allows invalid android runtime to be selected with incompatible SDKsTiApp Editor allows invalid android runtime to be selected with pre-1.8.0 SDKs. Steps to Reproduce: 1. Create a new project using 1.8.0.1. 2. Open tiapp.xml in the TiApp Editor. 3. Change the runtime to Rhino (this creates an entry in the xml where there was none before: <property name="ti.android.runtime">rhino</property>). 4. Change the runtime to V8 (this changes the contents of the xml property line). 5. Change the SDK version (in TiApp Editor) to pre-1.8.0.1 (e.g., 1.7.5). Expected Result: Rhino should be the default runtime. Actual Result: V8 is the default runtime (invalid). Note: If you select a pre-1.8.0.1 SDK without first selecting a different runtime (thus adding the property line to the xml), the default runtime is correctly changed to Rhino in the TiApp Editor.8
178TISTUD-822Add message for pre-1.0.7 dashboard users that they must update to 1.0.7 to get Mobile SDK 1.8.01.0.7 users will get the new dashboard, whereas pre-1.0.7 users will get the old dashboard. Add messaging to the existing dashboard to indicate that they must upgrade to 1.0.7 to get the new 1.8.0 mobile SDK.1
179TISTUD-835Shortcut created for Install to Android Device does not work when focusing on the editorSee attached picture for shortcut config. Step 1: hit command+shift+L 2x to bring up the shortcut preferences Step 2: search for android Step 3: set 'Install to Android Device' to work with command+shift+f9 and when = In Window Step 4: hit ok Step 5: open a .js file Step 6: click on the editor Step 7: hit command+shift+f9 Step 8: notice that 'Install to Android Device' does not run. Step 9: click in App Explorer and hit the shortcut and it will work fine. Step 9: repeat the same steps but set the shortcut to open About and it will work fine in the editor.8
180TISTUD-993Unicode Code Points from the SMP are encoded according to CESU-8 rather than the expected UTF-8h2. Problem Titanium Studio doesn't convert to UTF-8 correctly in case of Unicode code points starting at U+10000. When I copy-and-paste a symbol located in the SMP (supplementary multilingual plane) from Safari/Chrome into Titanium Studio and try to save the file, the output is not UTF-8, but CESU-8. h2. Steps to reproduce {code} Code Point: U+1D6FB Unichar: (Due to TC-421, I cannot paste the character here. Please take it from: http://www.unicode.org/charts/PDF/U1D400.pdf) UTF-8: 0xF0 0x9D 0x9B 0xBB Name: MATHEMATICAL ITALIC NABLA UTF-16: 0xD835 0xDEFB CESU-8: 0xED 0xA0 0xB5 0xED 0xBB 0xBB {code} http://www.decodeunicode.org/de/u+1d6fb/properties http://www.decodeunicode.org/de/u+d835/properties http://www.decodeunicode.org/de/u+defb/properties You can read the output file like this in the terminal: {code} hexdump -C <file> {code} You will see two byte sequences (representing the high and low surrogate from UTF-16, Java's native character format) consisting of three bytes, that are encoded according to UTF-8. However, expected output is one four-byte sequence.8
181TISTUD-844New Project Wizard: auto-generate app id based on company id and project nameAn auto-generated company id prefix during project creation (i.e., Xcode) would be helpful. Xcode has this feature. Titanium and Eclipse do not. As of now, I do not believe there is a conflict of interest. Screenshot attached comparing Titanium, Eclipse and Xcode, highlighting the auto company-prefix feature.8
182TISTUD-869Run git clean on build subfolders during project cleanAnytime you do a *clean* on a Titanium mobile project, the *build/android* and *build/iphone* directories have any existing *.gitignore* files deleted. This is bothersome when those files are the easiest way to ensure that the *build/iphone* and *build/android* paths exist when storing a project on git. If they don't exist, a user attempting to build the project will get an error on their first attempt. It would be ideal if, when a *clean* is performed on a project, that any existing *.gitignore* files were left untouched in those directories. Running a git clean should restore the project to the state it was check in with.8
183TISTUD-875TiApp Editor: add Edit > Undo and Redo functionalityEdit > Undo and Redo are not selectable when using the TiApp editor, nor do the Undo/Redo keyboard shortcuts work. As an outlier, the Undo (cntrl + z) keyboard shortcut happens to work in Windows 7. Steps to Reproduce: 1. Create a new project. 2. Open tiapp.xml in the TiApp Editor. 3. Change text in a field (such as Application ID). 4. Try the following commands: Edit > Undo. Edit > Redo. Undo Keyboard Shortcut: (OS X: cmd + z), (Windows 7: cntrl + z). Redo Keyboard Shortcut: (OS X: shift + cmd + z), (Windows 7: cntrl + y). Expected Result: Menu options should be selectable and work. Keyboard shortcuts should work. Actual Result: Undo/Redo menu options and keyboard shortcuts do not work, with the exception of the Undo keyboard shortcut in Windows 7.8
184TISTUD-878Show error in problems view if a project has an incorrect configuration# Create a new Ruby project # Assign the Titanium Mobile nature to the project # View your log file, note a number of errors, but nothing the user would ever see (unless they went looking) In this case, we should show an error in the problems view (and also an X on the project) to indicate that something is wrong (in this case, that the project is missing a tiapp.xml file and a manifest and that users should check their project settings)13
185TISTUD-882Rename installation packages so that filenames no longer contain spacesAs demonstrated in [this twitter conversation|http://www.exquisitetweets.com/tweets?eids=kHGGcM2MyP.kHIZakiQH6.kHJrXixufs.kHJUriL39N.kHLycersB2], for some reason some browsers, in certain circumstances, will not download files with filenames that contain spaces. Please consider renaming the Windows and OSX install packages in [resources|https://my.appcelerator.com/resources] to *TitaniumStudio + extension* * Fix the installer process to generate the new names for Titanium Studio on OS X and Windows * Update preview.appcelerator.com to respect the new names 8
186TISTUD-886invalid button name in "uninstall studio" dialog# Have Studio installed # download newer version # Install new version # it asks to uninstall previously installed version # dialog says "click Next" when button is called "Uninstall"2
187TISTUD-887display background from PSD fileNULL1
188TISTUD-891Titanium Studio: Projects - File > New > <project type> list is not alphabetically sortedFile > New > <project type> list is not alphabetically sorted. The context menu version of this list is sorted. Screenshot attached. Steps to Reproduce: 1. Open Titanium Studio. 2. Click File > New. Expected Result: Project types should be alphabetically sorted in ascending order. Actual Result: Project types are not alphabetically sorted (included in screenshot). Note: Project Explorer > context click > New is sorted in alphabetical ascending order (included in screenshot). 8
189TISTUD-894V8 Proxy: Filter stack variables by regular expression from the Mobile SDKThe format we chose was a file with a variable regular expressions delimited by newlines. Verify that filtered variables from <tisdk>/android/variable_filters.txt (per TIMOB-6549) are not displayed in Variables view.1
190TISTUD-905Add right-click option to open analytics for a specific applicationIn project explorer (not sure where to put this in App Explorer--might be a custom button off by default that can get added to the menu bar in Customize View) we have a button that launches the analytics page for that application.8
191TISTUD-907Modules UI - Restrict the modules to an API-LevelWe need to restrict the modules selection in the TiApp UI to an API-Level that is enforced on a module. The platform team adds an api-level value into the module's manifest, and will add a modules-api-level into the 'version.txt' file of the Titanium SDK. We'll need to read both to find an API level match, and do whatever needs to be done in the UI in order to allow selecting only valid modules, and display warnings when incompatible modules exist in the tiapp. To test: # Create a new Titanium Mobile project # Open up tiapp.xml and add a module to the project using the modules panel (I used ti.greystripe). Note the module appears active # Edit the module manifest file to raise the apiversion to something like "3" (current maximum version is 2 for 1.8/2.0) # Save tapp.xml and restart Studio. Note that the module now appears still available, but should appear greyed out Note that this change is only relevant to Android. iOS does not care about apiversions 13
192TISTUD-909Android: V8: evaluate Ti.API.terminate() to signal application to terminate immediately.Send an evaluation request to call "Ti.API.terminate()". This will cause the application to terminate immediately.1
193TISTUD-913Titanium Studio: Content Assist - content assist menu persistent in the OS if it has focusContent Assist menu is persistent in the OS if the assist menu has focus (i.e., by clicking on it). Other OS program windows are now obfuscated by the content assist menu until the focus is shifted back to Titanium Studio proper. Screenshot attached. Steps to Reproduce: 1. Open Studio and create a new project (or open an existing project). 2. Click in the text editor of app.js (or any .js file). 3. Press control + space to bring up the content assist menu. 4. Select any item from the suggestion list by clicking on it (the menu as-is will not exhibit this behavior). 5. Open any other program (such as Chrome) and move the other program window over the content assist menu. Expected Result: The content assist menu should disappear behind the other program window, as it should have the same OS hierarchy as Titanium Studio. Actual Result: The content assist menu persists and obfuscates the other program window until the focus shifts back to Studio.8
194TISTUD-919Add mobileweb user agent for content assistWhen a user uses content assist, we need to include "mobile web" as a platform choice. # Add a mobile web user agent (key 'mobileweb') # Add it to the default list of user agents selected for the mobile nature Icons are attached.1
195TISTUD-946Entering PHP variables in multi-line string causes titanium studio to completely hangOpen the test.php file in Titanium Studio. The crash can be reproduced by typing: $url on line 11 of test.php. I have to alt-option-esc to get out of Titanium. I've included the crash log. {code:title=crash log} Date/Time: 2011-12-14 10:54:59 -0800 OS Version: 10.6.8 (Build 10K549) Architecture: x86_64 Report Version: 7 Command: TitaniumStudio Path: /Applications/Titanium Studio/TitaniumStudio.app/Contents/MacOS/TitaniumStudio Version: 3.0 (3.0) Parent: launchd [226] PID: 20845 Event: hang Duration: 5.84s (sampling started after 2 seconds) Steps: 18 (100ms sampling interval) Pageins: 0 Pageouts: 0 Process: TitaniumStudio [20845] Path: /Applications/Titanium Studio/TitaniumStudio.app/Contents/MacOS/TitaniumStudio UID: 501 Thread 91d3 DispatchQueue 100 User stack: 18 start + 41 (in TitaniumStudio) [0x2781] 18 _start + 209 (in TitaniumStudio) [0x2853] 18 main + 1518 (in TitaniumStudio) [0x37e5] 18 original_main + 1782 (in TitaniumStudio) [0x30f8] 18 run + 4687 (in eclipse_1310.so) [0x75956] 18 startJavaVM + 120 (in eclipse_1310.so) [0x77492] 18 startJavaJNI + 1991 (in eclipse_1310.so) [0x7878d] 18 JVM_GetClassInterfaces + 7118 (in libjvm.dylib) [0x126443c6] 18 JVM_MonitorWait + 9994 (in libjvm.dylib) [0x12603267] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x14001374] 18 ??? [0x14003e31] 18 ??? [0x14003e31] 18 ??? [0x14003f97] 18 ??? [0x14004473] 18 ??? [0x14003f97] 18 ??? [0x14003f97] 18 ??? [0x1400b9d9] 18 Java_sun_reflect_NativeMethodAccessorImpl_invoke0 + 38 (in libjava.jnilib) [0x6390fe] 18 JVM_InvokeMethod + 79 (in libjvmlinkage.dylib) [0xf174f] 18 JVM_InvokeMethod + 370 (in libjvm.dylib) [0x1260def4] 18 JVM_InvokeMethod + 1046 (in libjvm.dylib) [0x1260e198] 18 JVM_NewInstanceFromConstructor + 3585 (in libjvm.dylib) [0x1260ce21] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x14001374] 18 ??? [0x14003f97] 18 ??? [0x14003f97] 18 ??? [0x14003f97] 18 ??? [0x14004473] 18 ??? [0x14004473] 18 ??? [0x14003f55] 18 ??? [0x14003f55] 18 ??? [0x14003e31] 18 ??? [0x1400430d] 18 ??? [0x14003f55] 18 ??? [0x14003f55] 18 ??? [0x14003e31] 18 ??? [0x147b0370] 18 ??? [0x14258ce6] 18 Java_org_eclipse_swt_internal_cocoa_OS_objc_1msgSend__III + 194 (in libswt-pi-cocoa-3659.jnilib) [0x6ae411c8] 18 ??? [0x6ace9058] 18 callback + 835 (in libswt-cocoa-3659.jnilib) [0x6aba0da0] 18 JVM_IsSameClassPackage + 1404 (in libjvm.dylib) [0x12648e82] 18 JVM_FindLoadedClass + 3478 (in libjvm.dylib) [0x126192d5] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x14001374] 18 ??? [0x14003e31] 18 ??? [0x14003f55] 18 ??? [0x147a75f9] 18 Java_org_eclipse_swt_internal_cocoa_OS_objc_1msgSendSuper__Lorg_eclipse_swt_internal_cocoa_objc_1super_2II + 249 (in libswt-pi-cocoa-3659.jnilib) [0x6ae48458] 18 -[NSApplication sendEvent:] + 6431 (in AppKit) [0x9803b60b] 18 ??? [0x6ace91d8] 18 callback + 835 (in libswt-cocoa-3659.jnilib) [0x6aba0da0] 18 JVM_IsSameClassPackage + 1404 (in libjvm.dylib) [0x12648e82] 18 JVM_FindLoadedClass + 3478 (in libjvm.dylib) [0x126192d5] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x1434f810] 18 ??? [0x14003e31] 18 ??? [0x147a7ad4] 18 ??? [0x147a75f9] 18 Java_org_eclipse_swt_internal_cocoa_OS_objc_1msgSendSuper__Lorg_eclipse_swt_internal_cocoa_objc_1super_2II + 249 (in libswt-pi-cocoa-3659.jnilib) [0x6ae48458] 18 -[NSWindow sendEvent:] + 5757 (in AppKit) [0x98122b28] 18 ??? [0x6ace91d8] 18 callback + 835 (in libswt-cocoa-3659.jnilib) [0x6aba0da0] 18 JVM_IsSameClassPackage + 1404 (in libjvm.dylib) [0x12648e82] 18 JVM_FindLoadedClass + 3478 (in libjvm.dylib) [0x126192d5] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x1434fd20] 18 ??? [0x14003e31] 18 ??? [0x14003f55] 18 ??? [0x14258ce6] 18 Java_org_eclipse_swt_internal_cocoa_OS_objc_1msgSend__III + 194 (in libswt-pi-cocoa-3659.jnilib) [0x6ae411c8] 18 -[NSView interpretKeyEvents:] + 209 (in AppKit) [0x981eded1] 18 -[NSTextInputContext handleEvent:] + 1453 (in AppKit) [0x981f2084] 18 TSMProcessRawKeyEvent + 2515 (in HIToolbox) [0x9a3f7e32] 18 TSMKeyEvent + 998 (in HIToolbox) [0x9a406f65] 18 SendUnicodeTextAEToUnicodeDoc + 700 (in HIToolbox) [0x9a40735b] 18 SendTSMEvent + 82 (in HIToolbox) [0x9a4079de] 18 SendEventToEventTarget + 52 (in HIToolbox) [0x9a3a57f3] 18 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411 (in HIToolbox) [0x9a382ef6] 18 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1567 (in HIToolbox) [0x9a383c2f] 18 _NSTSMEventHandler + 209 (in AppKit) [0x981f27a5] 18 -[NSTextInputContext handleTSMEvent:] + 2657 (in AppKit) [0x981f3217] 18 -[NSTextInputContext insertText:replacementRange:] + 421 (in AppKit) [0x981f527a] 18 ??? [0x6ace91d8] 18 callback + 835 (in libswt-cocoa-3659.jnilib) [0x6aba0da0] 18 JVM_IsSameClassPackage + 1404 (in libjvm.dylib) [0x12648e82] 18 JVM_FindLoadedClass + 3478 (in libjvm.dylib) [0x126192d5] 18 JVM_Lseek + 162116 (in libjvm.dylib) [0x125f4547] 18 JVM_Lseek + 162160 (in libjvm.dylib) [0x125f4573] 18 JVM_Lseek + 162812 (in libjvm.dylib) [0x125f47ff] 18 ??? [0x1434f5fc] 18 ??? [0x1400405d] 18 ??? [0x1400405d] 18 ??? [0x14003e31] 18 ??? [0x14592380] 18 ??? [0x143e0060] 18 ??? [0x14003e31] 18 ??? [0x14003e31] 18 ??? [0x14003e31] 18 ??? [0x14003e31] 18 ??? [0x14003e31] 18 ??? [0x1400430d] 18 ??? [0x1400430d] 18 ??? [0x14003e31] 18 ??? [0x14003e31] ...5
196TISTUD-929Dashboard SDK install use case should allow users to specify desired installation directoryThe way the Dashboard installs Titanium/Mobile SDKs, it requires the SDK paths to be set in the preferences. In the case where the default SDK paths don't exist or invalid (ie, the user doesn't have permission), you will not be able to change the SDK paths to a desired location. To reproduce: 1. Have a valid Ti SDK setup 2. Export the all the preferences via File->Export->General->Preferences 3. Edit the exported preference entry: /instance/com.appcelerator.titanium.core/TITANIUM_SDK_PATH with an invalid path. I used a path that the user does not have permissions, /Users/invalidUser/xxx Save the file 4. Launch Ti Studio 5. Import the preferences via File->Import>General->Preferences 6. Restart Ti Studio Expected: Ti SDK installation starts and prompts for a new location for installation Actual: Ti SDK installation starts and fails The same issue is exhibited with the Android SDK as well. The preferences for them are: /instance/com.appcelerator.titanium.mobile/ANDROID_SDK_PATH The installation is triggered via the configuration in the Dashboard The installation should validate the SDK location to ensure it is valid (exists/write permission), if it is not the user is prompted for a new location5
197TISTUD-933Rename imported projectsCurrently, when importing a project in Studio, you aren't given the option to rename it. This could be useful - I can provide a test if one is requested. 1
198TISTUD-952Force installation of Android NDK if user is doing Android module developmentUnsure how to have a conditional install, however, the user does need to have the Android NDK installed before proceeding with building an Android module. Suggest the following: # Add the NDK to the sdk_info.json file. Locations are available from http://developer.android.com/sdk/ndk/index.html # Download from that website # Perhaps install the NDK _under_ the chosen SDK directory, i.e. /android/ndk? # Create a Android NDK Home preference in Preferences > Titanium Studio > Titanium # Test for this preference being set when creating an Android module. # Update dashboard with new tests # Add NDK line in Titanium preferences40
199TISTUD-953Pass Android NDK location to Titanium Module build scriptsWhen developing an Android module, you either need to set the ANDROID_NDK environment variable, or set android.ndk in the build.properties of the module Marshall suggested instead that when packaging we call ANT directly (instead of the module build scripts) and pass "-Dandroid.ndk=.." to the scripts. We can get the preference from TISTUD-952. To test: # Create a new Android modules # Set the NDK location # Package the module. If it succeeds, the test is successful. Incorrect packaging would result in the build failing and prompting a user to specify the NDK path manually.5
200TISTUD-954Update Snippet Elements in Rubles to support Description, Category, Icon and TagsThe following attributes were added to a snippet element: description (String) - description of the snippet category (String) - category for the snippet icon_path (String) - path to icon file tags (list of strings) - tags for the snippet 13
201TISTUD-957Implement Snippet Popup PreviewSnippet Preview Popup display information about a snippet: Snippet name, scope, and triggers - honors theme colors Snippet expansion contents - Colorized/Formatted based on content-type settings Toolbar to perform additional actions - Navigate to source action (opens the contributing ruby file for modification of the snippet)40
202TISTUD-958Implement Snippet Drag and DropSupport dragging a snippet from the snippets view and dropping into a source editor. The snippet is inserted at the drop location, and tabstops and cursor locations are honored13
203TISTUD-959Implement Snippet FilteringNULL13
204TISTUD-960Add Studio Listeners to Snippets ViewAdd appropriate listeners so the snippets view displays the appropriate contents A selection listener will listen to cursor location changes, and updates the snippet contents to match the cursor context. If there is a mismatch, the snippet is shown with greyed out colors A Bundle listener will listen to bundle loading/changes, to keep the snippets view contents in sync.13
205TISTUD-961Implement Theming and Request Images/Icons for Snippets viewSnippets view should honor the theme settings. This applies to theme colors, invasive themes and invasive fonts Snippets view requires two new images - Insert snippet and Navigate to snippet source. These will be provided by our creativity engineer13
206TISTUD-971Release Checklist: 1.0.7 StudioRelease checklist for 1.0.7 (v2)1
207TISTUD-989Manually-installed Android SDKs should be available from Run Configuration dialog without having to restart Studioh3. Expected Behavior All available Android SDKs/APIs should be available when the 'Run Configurations' dialog is opened. h3. Actual Behavior Custom Android APIs copied into the {{\{android-sdk\}/add-ons}} folder from outside Studio are only available after closing and restarting Studio h3. Reproduce # Start Titanium Studio # Copy over a vendor android API addon (available from {{http://developer.motorola.com/docstools/tools/}} or {{http://innovator.samsungmobile.com/down/cnts/toolSDK.list.do?platformId=1}}) # From the app explorer pane, choose 'Run Configurations' from the 'Run' drop down menu. # Your new API is not available. # Restart Studio. # Open 'Run Configurations' # New API is now available.5
208TISTUD-1002Warn before launching in simulator/emulator/packager if there are errors in the projectIf i type bad javascript and compile, it's not always apparent from the logging what the heck is the issue. We show parse errors in the gutter of the editor and in the problems view. If the project has errors, we pop up a dialog as shown (similar to JDT) warning the user of the error and confirming they wish to continue. There also needs to be a way for the user to reset the preference warning (suggest a single button to reset all checkbox preferences, not one per preference)8
209TISTUD-1003Debug: Variable View: the last pixel of variables is cut offSteps to reproduce: 1. Create the default Titanium project 2. Add a break point any where in app.js 3. Debug the project as Android Emulator (in V8 or Rhino) 4. In the Debug perspective, navigate to the variables tab Actual: The end of variable names are being cut off. See attachment. Expected: Variable names should not be cut off.13
210TISTUD-1006Add Snippet Category RubleImplement the new SnippetCategoryElement in Rubles: snippet_category 'UI Elements' do |s| s.icon_path = 'snippets/icons/category_ui_elements.png' end Update bundle view to display categories13
211TISTUD-1009Rss Reader sample shows as connected to Git# Click on the dashboard > develop tab. # Import the RSS Reader sample # Note that it thinks it's still connected to HEAD, even though it should be disconnected from git8
212TISTUD-1015Studio: Attempting to reimport a sample when an older version exists in the workspace (but not project explorer) fails with errorDescription: I attempted to import a sample (KitchenSink) and got an error. The cause of this turned out to be I already had KS installed, then deleted it, but did not remove it from my workspace. When the folder is deleted from the hard disk, the import completes as expected. Steps to reproduce: 1) Install and launch Studio 1.0.8 2) Import KS sample 3) Delete KS sample but do not check the "remove for hard disk" option 4) Attempt to import KS sample again Result: The sample import will fail with the attached dialog Expected: A prompt stating the sample was there and an option to overcome this situation without having to use the finder to remove the old sample3
213TISTUD-1016Studio: Kitchen Sink iPad included with Linux and windows samplesDescription: The sample Kitchen Sink iPad is available but unusable on Windows and Linux systems. Steps to reproduce: 1) Install Titanium Studio, build: 1.0.8.201201101928 on a linux or windows system 2) Navigate to the samples Result: Kitchen Sink iPad is available but unusable Expected: Only usable templates available on Linux or Windows5
214TISTUD-1021Catch browser exception in Git commit dialogInspired by this ticket: http://developer.appcelerator.com/question/130627/git-commit-doesnt-work-on-titanium-studio We should provide the user with a better error experience if they run into this issue on Linux, where the browser is not configured correctly.5
215TISTUD-1274When deleting a project, associated run configurations should be deleted as wellI noticed when I previewed a TiMobile web project, that we auto-create a run configuration. When I delete the project; however, the run configuration still remains. I did a quick test in JDT and found that when I deleted a Java Project, the run configurations associated with that project were deleted as well. We should probably do the same5
216TISTUD-1023Kernel panic in Titanium StudioFrom the user: "Today I've been working on my laptop here all day (as usual) with Ti Studio open with several projects (as usual) and several other applications open (as usual). I was last working on a Mail Note... walked away from my laptop for ~5 min and came back with a message indicating I needed to shut down my computer with instructions in several languages. I was unable to access anything, no keyboard key combinations seemed to do anything. The message was "modal" in that it was over the desktop with slightly transparent look so I could see the apps behind it slightly but not access them. This is what I might call a slightly nicer display of a OS crash than a full BSOD (blue screen of death) on a windows machine. When I shutdown and restarted the computer, the system notified me of the crash report and that the core cause of the failure being the Titanium Studio thread. Attached is the crash report." How to read a panic log: http://developer.apple.com/library/mac/#technotes/tn2063/_index.html {code} Interval Since Last Panic Report: 11603879 sec Panics Since Last Report: 1 Anonymous UUID: 6F53AEDA-DEAB-42C9-B86B-75756346052C Sat Jan 14 22:38:45 2012 panic(cpu 1 caller 0x2abf6a): Kernel trap at 0x006ab22a, type 14=page fault, registers: CR0: 0x8001003b, CR2: 0x10004003, CR3: 0x00100000, CR4: 0x00000660 EAX: 0x10004003, EBX: 0x006ab22a, ECX: 0x01000000, EDX: 0x0bc660a8 CR2: 0x10004003, EBP: 0x7e3e3fc8, ESI: 0x09a773f0, EDI: 0x0a045000 EFL: 0x00010206, EIP: 0x006ab22a, CS: 0x00000008, DS: 0x0bc60010 Error code: 0x00000002 Backtrace (CPU 1), Frame : Return Address (4 potential args on stack) 0x7e3e3dc8 : 0x21b837 (0x5dd7fc 0x7e3e3dfc 0x223ce1 0x0) 0x7e3e3e18 : 0x2abf6a (0x59e3d0 0x6ab22a 0xe 0x59e59a) 0x7e3e3ef8 : 0x2a1a78 (0x7e3e3f10 0x18bea2a0 0x7e3e3fc8 0x6ab22a) 0x7e3e3f08 : 0x6ab22a (0xe 0x48 0x7e3e0010 0x210010) 0x7e3e3fc8 : 0x2a179c (0x0 0x1 0x10 0xb7b56c0) BSD process name corresponding to current thread: TitaniumStudio Mac OS version: 10K549 Kernel version: Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 System model name: MacBookPro3,1 (Mac-F4238BC8) System uptime in nanoseconds: 386543916616184 unloaded kexts: com.vmware.kext.vmx86 0053.60.16 (addr 0x7fe54000, size 0x65536) - last unloaded 339536331775578 loaded kexts: com.logmein.hamachi 1.0 com.bresink.driver.BRESINKx86Monitoring 4.0 com.iospirit.driver.rbiokithelper 1.8.0 com.keyspan.iokit.KeyspanNHCI 2.1b4 com.apple.filesystems.afpfs 9.7.1 com.apple.nke.asp_tcp 5.0 com.apple.driver.AppleHWSensor 1.9.3d0 com.apple.filesystems.autofs 2.1.0 com.apple.driver.InternalModemSupport 2.6.2 com.apple.driver.AudioAUUC 1.57 com.apple.driver.AppleTyMCEDriver 1.0.2d2 com.apple.Dont_Steal_Mac_OS_X 7.0.0 com.apple.iokit.CHUDUtils 364 com.apple.driver.AppleIntelYonahProfile 76 com.apple.iokit.CHUDProf 366 com.apple.driver.AppleUpstreamUserClient 3.5.7 com.apple.driver.AppleIntelPenrynProfile 76 com.apple.driver.AppleMCCSControl 1.0.20 com.apple.driver.AppleGraphicsControl 2.10.6 com.apple.driver.AppleIntelNehalemProfile 76 com.apple.driver.AirPort.Atheros 423.19.10 com.apple.driver.AppleHDA 2.0.5f14 com.apple.driver.AudioIPCDriver 1.1.6 com.apple.GeForce 6.3.6 com.apple.driver.AppleBacklight 170.0.46 com.apple.iokit.AppleYukon2 3.2.1b1 com.apple.driver.AppleIntelMeromProfile 76 com.apple.driver.AirPort.Atheros21 425.14.7 com.apple.driver.ACPI_SMC_PlatformPlugin 4.7.0a1 com.apple.driver.AppleLPC 1.5.1 com.apple.kext.AppleSMCLMU 1.5.2d10 com.apple.driver.SMCMotionSensor 3.0.1d2 com.apple.driver.AppleUSBTrackpad 201.6 com.apple.driver.AppleUSBTCKeyEventDriver 201.6 com.apple.driver.AppleUSBTCKeyboard 201.6 com.apple.driver.AppleIRController 303.8 com.apple.driver.CSRHIDTransitionDriver 2.4.5f3 com.apple.iokit.SCSITaskUserClient 2.6.8 com.apple.BootCache 31.1 com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0d1 com.apple.driver.AppleFWOHCI 4.7.3 com.apple.driver.AppleIntelPIIXATA 2.5.1 com.apple.iokit.IOAHCIBlockStorage 1.6.4 com.apple.driver.AppleEFINVRAM 1.4.0 com.apple.driver.AppleUSBHub 4.2.4 com.apple.driver.AppleUSBUHCI 4.2.0 com.apple.driver.AppleUSBEHCI 4.2.4 com.apple.driver.AppleAHCIPort 2.1.7 com.apple.driver.AppleHPET 1.5 com.apple.driver.AppleSmartBatteryManager 160.0.0 com.apple.driver.AppleRTC 1.3.1 com.apple.driver.AppleACPIButtons 1.3.6 com.apple.driver.AppleSMBIOS 1.7 com.apple.driver.AppleACPIEC 1.3.6 com.apple.driver.AppleAPIC 1.4 com.apple.driver.AppleIntelCPUPowerManagementClient 142.6.0 com.apple.driver.AppleIntelCPUPowerManagement 142.6.0 com.apple.security.sandbox 1 com.apple.security.quarantine 0 com.apple.nke.applicationfirewall 2.1.14 com.apple.iokit.IOSCSIBlockCommandsDevice 2.6.8 - last loaded 310101164987901 com.apple.iokit.IOUSBMassStorageClass 2.6.7 com.apple.driver.AppleUSBAudio 2.7.6f6 com.apple.driver.AppleHIDKeyboard 141.5 com.apple.driver.AppleBluetoothHIDMouse 162 com.apple.driver.AppleHIDMouse 162 com.apple.driver.IOBluetoothHIDDriver 2.4.5f3 com.apple.driver.AppleProfileReadCounterAction 76 com.apple.driver.AppleProfileTimestampAction 76 com.apple.driver.AppleProfileThreadInfoAction 76 com.apple.driver.AppleProfileRegisterStateAction 76 com.apple.driver.AppleProfileKEventAction 76 com.apple.driver.AppleProfileCallstackAction 76 com.apple.iokit.IOSurface 74.2 com.apple.iokit.IOBluetoothSerialManager 2.4.5f3 com.apple.iokit.IOSerialFamily 10.0.3 com.apple.driver.AppleHDAHardwareConfigDriver 2.0.5f14 com.apple.iokit.CHUDKernLib 365 com.apple.driver.DspFuncLib 2.0.5f14 com.apple.iokit.IOAudioFamily 1.8.3fc2 com.apple.kext.OSvKernDSPLib 1.3 com.apple.driver.AppleBacklightExpert 1.0.1 com.apple.iokit.IOFireWireIP 2.0.3 com.apple.iokit.IO80211Family 320.1 com.apple.iokit.IONetworkingFamily 1.10 com.apple.iokit.AppleProfileFamily 76 com.apple.driver.AppleHDAController 2.0.5f14 com.apple.iokit.IOHDAFamily 2.0.5f14 com.apple.driver.IOPlatformPluginFamily 4.7.0a1 com.apple.driver.AppleSMBusPCI 1.0.10d0 com.apple.nvidia.nv50hal 6.3.6 com.apple.NVDAResman 6.3.6 com.apple.iokit.IONDRVSupport 2.2.1 com.apple.iokit.IOGraphicsFamily 2.2.1 com.apple.driver.AppleSMC 3.1.0d5 com.apple.driver.CSRUSBBluetoothHCIController 2.4.5f3 com.apple.driver.AppleUSBBluetoothHCIController 2.4.5f3 com.apple.iokit.IOBluetoothFamily 2.4.5f3 com.apple.iokit.IOUSBHIDDriver 4.2.0 com.apple.driver.AppleUSBMergeNub 4.2.4 com.apple.driver.AppleUSBComposite 3.9.0 com.apple.iokit.IOSCSIMultimediaCommandsDevice 2.6.8 com.apple.iokit.IOBDStorageFamily 1.6 com.apple.iokit.IODVDStorageFamily 1.6 com.apple.iokit.IOCDStorageFamily 1.6.1 com.apple.driver.XsanFilter 402.1 com.apple.iokit.IOATAPIProtocolTransport 2.5.1 com.apple.iokit.IOSCSIArchitectureModelFamily 2.6.8 com.apple.driver.AppleFileSystemDriver 2.0 com.apple.iokit.IOFireWireFamily 4.2.6 com.apple.iokit.IOATAFamily 2.5.1 com.apple.iokit.IOUSBUserClient 4.2.4 com.apple.iokit.IOUSBFamily 4.2.4 com.apple.iokit.IOAHCIFamily 2.0.6 com.apple.driver.AppleEFIRuntime 1.4.0 com.apple.iokit.IOHIDFamily 1.6.6 com.apple.iokit.IOSMBusFamily 1.1 com.apple.driver.DiskImages 289 com.apple.iokit.IOStorageFamily 1.6.3 com.apple.security.TMSafetyNet 6 com.apple.kext.AppleMatch 1.0.0d1 com.apple.driver.AppleACPIPlatform 1.3.6 com.apple.iokit.IOPCIFamily 2.6.5 com.apple.iokit.IOACPIFamily 1.3.0 Model: MacBookPro3,1, BootROM MBP31.0070.B07, 2 processors, Intel Core 2 Duo, 2.4 GHz, 6 GB, SMC 1.16f11 Graphics: NVIDIA GeForce 8600M GT, GeForce 8600M GT, PCIe, 256 MB Memory Module: global_name AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x87), Atheros 5416: 2.1.14.6 Bluetooth: Version 2.4.5f3, 2 service, 19 devices, 1 incoming serial ports Network Service: AirPort, AirPort, en1 PCI Card: pci168c,24, sppci_othernetwork, PCI Slot 5 Serial ATA Device: ST95005620AS, 465.76 GB Parallel ATA Device: MATSHITADVD-R UJ-857R USB Device: Built-in iSight, 0x05ac (Apple Inc.), 0x8502, 0xfd400000 / 2 USB Device: Bluetooth USB Host Controller, 0x05ac (Apple Inc.), 0x8205, 0x1a100000 / 2 USB Device: IR Receiver, 0x05ac (Apple Inc.), 0x8242, 0x5d100000 / 2 USB Device: Apple Internal Keyboard / Trackpad, 0x05ac (Apple Inc.), 0x021a, 0x5d200000 / 3 {code}13
217TISTUD-1028Studio: Mobile Web should be supported as target for studio templatesDescription: Currently, Studio templates can't be utilized with mobile web. The templates are coded to produce a dialog stating "Mobile web is not yet supported by this template". This does not occur with the default template. Steps to reproduce: 1) Install Titanium Studio, build: 1.0.8.201201131907 2) Select Mobile Web as a target 3) Create a new project and select one of the templates 4) Attempt to preview in browser Result: A dialog stating the template is not supported Expected: The template launches in the browser8
218TISTUD-1032After importing samples from dashboard, some display that they are from [HEAD] and some display nothing, need to be consistentSteps to Reproduce: 1. Launch Dashboard in Studio 2. Click on the Develop tab 3. Click to import Kitchen Sink 4. Click to import Kitchen Sink Nook 5. Click to import Kitchen Sink iPad 6. Click to import Todo List 7. Click to import Geocoder 8. Click to import RSS Reader Actual Result: Some display [HEAD] Expected Result: Should be consistent, they should either all display it or not21
219TISTUD-1036TiStudio: Mobile Web - After deleting a packaged Mobile Web project, a noticable performance degradation occurs in TiStudioSteps to reproduce: 1. Package default Titanium project for Mobile Web 2. Select "Create a new project for the Mobile Web app" 3. Open the index.html in the newly created Mobile Web project 4. Press preview button 5. Select all projects in Project Explorer and delete them Actual: * Deleting selected projects takes a long time * After projects are deleted, TiStudio becomes sluggish e.g. opening context menu in project explorer is slow * See attachment for TiStudio's log file Expected: Performance degradation should not occur. Note: Performance degradation does not occur on Mac OS X Lion (10.7.1) or Windows XP 8
220TISTUD-1037Mobile Web in emulator does not refresh the index.html after it is recompiledSteps to Reproduce: 1. Create a default application for mobile web 2. Run "Mobile Web Preview in Emulator" 3. Make changes to the app.js and save the file 4. Run "Mobile Web Preview in Emulator" again Actual: The index.html file on the emulator is not refreshed Expected: The index.html file should refresh to show the updated content8
221TISTUD-1038Openshift: PHP Wizard Account information page should request "Domain" in the "Already have an account" radioThis is related to TISTUD-1000. Currently the domain information is only needed during login, so it makes sense to add the domain field to the "Already have an account radio". The default gray text should be something like "Specify domain if desired". If the login fails because the domain isn't satisfied, then the domain field is required.8
222TISTUD-1039OpenShift: the creation of ssh key would fail if .ssh directory doesn't exist in user's home directoryFollows the steps in https://wiki.appcelerator.org/display/tis/OpenShift+Deployment, and ~/.ssh directory doesn't exist yet, an error status would show when the domain is being created (see screenshot). The log shows the following: {code} !ENTRY com.appcelerator.titanium.deploy.openshift 4 0 2012-01-17 17:54:51.092 !MESSAGE Could not create new rsa key !STACK 0 com.openshift.express.client.OpenShiftException: Could not create new rsa key com.openshift.express.client.SSHKeyPair.create(SSHKeyPair.java:67) com.appcelerator.titanium.deploy.openshift.OpenShiftUserManager.loadSshKey(OpenShiftUserManager.java:405) com.appcelerator.titanium.deploy.openshift.OpenShiftUserManager.createDomain(OpenShiftUserManager.java:167) com.appcelerator.titanium.deploy.openshift.ui.wizard.RedHatSignupWizardPage$8.run(RedHatSignupWizardPage.java:478) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) Caused by: java.io.FileNotFoundException: /Users/mxia/.ssh/libra_id_rsa.pub (No such file or directory) java.io.FileOutputStream.open(Native Method) java.io.FileOutputStream.<init>(FileOutputStream.java:194) java.io.FileOutputStream.<init>(FileOutputStream.java:84) com.jcraft.jsch.KeyPair.writePublicKey(KeyPair.java:144) com.openshift.express.client.SSHKeyPair.create(SSHKeyPair.java:63) ... 4 more {code} 8
223TISTUD-1048The ios-sim process is not killed when user re-launches iPhone simulator from Studio without first quitting the previous oneSteps to reproduce: 1. Create a Titanium Mobile project; 2. Click on Run > iPhone Simulator in App or Project Explorer toolbar to launch the iPhone simulator; 3. After the simulator successfully appears, click on Run > iPhone Simulator again; 4. The existing simulator will disappear and then re-appear, and that is good; now types "top" in a terminal outside Studio to check the running process. Expected Result: only one "ios-sim" process is running. Actual Result: two "ios-sim" processes are running. 5
224TISTUD-1051Externalize UI strings in Titanium Desktop rubleNULL2
225TISTUD-1052Externalize UI strings in Titanium Mobile rubleNULL2
226TISTUD-1053Test build participant infrastructureThis involves taking the current built participant infrastructure, reviewing the test plans and unit tests, and performing the tests. Current wiki: https://wiki.appcelerator.org/display/tp/TiStudio+Build+Participant+Test+Plan Suggested approach: * Review the above test plan. The list of test cases is incomplete. Don't worry about fleshing them out fully. Instead, take Chris's feedback and Thomas's feedback (shown below) to create a set of test scenarios at the top of the file and run through those. We will leave the creation of exhaustive test cases to later when we have more QA resources. * Review the unit tests. See if they exercise the functionality. Run them through Emma to check for code coverage * Run the test scenarios and file any bugs found. To Test: Checkout the "participant" branch of studio3, studio3-ruby and studio3-php Thomas's feedback: * All tests are marked as full. The point of a test plan is to break functionality into smoke, acceptance and full levels of test. If the tester can't figure out these coverage levels, they need to work with dev to figure it out. * Resource requirements are not filled out - now way of knowing from this plan what Os are being tested or targeted * An actual description of what "Build Participant functionality" is would be helpful if the test plan is going to be run by anyone other than the author. There seems to be multiple features in the test cases * No risks or assumptions are filled out * Often missing set up steps - For the PHP and Ruby specific test cases, how do we setup our environment to test those test cases? * Under genericized tests, it says "Applicable to all languages." Which programming languages is being tested: JS, Java, Objective C? * Unclear if it applies to Aptana or Tistudio. * Not seeing links to any dev specs: http://wiki.appcelerator.org/display/tis/Participating+in+the+build+and+reconcile+process Ignore for now: * Overall, the test cases should be more detailed since the test plan seems to be dealing with different programatic syntax and the test plan needs to clearly define what it is testing. (ignore for now) * Not sure of why the tests at the top are repeated from 1012 on with a "syntactically sound" js file. Is there a target for this specific set of tests? * In the "Declarations and documentation" tests, need specific examples for the programatic syntax (e.g. Document a class, declare a class, declare a function etc.) * 1112 - 1115 refer to Aptana Studio. Also the location is Mac-only for the preferences. Unless the testing is Mac only either leave out the menu path or put Linux and Win info too. 21
227TISTUD-1055Create test plan for Snippets viewNULL8
228TISTUD-1058Titanium Studio: Improved error reporting in preferences window for invalid Android SDKI had a bad Titanium SDK install. Not entirely sure how it happened, but the end result was some files were missing or corrupt. The end result was that, in the Titanium Preferences, I was getting an error saying that no Android SDK was found at my android sdk path. Upon much hand-wringing, eventually I was told to look at the Titanium log, which had an error "!MESSAGE (Build 1.0.0.1326828513) [ERROR] /usr/bin/python: can't open file '/Users/shan/Library/Application Support/Titanium/mobilesdk/osx/1.8.1.v20120123161633/android/avd.py': [Errno 2] No such file or directory", which made the problem pretty obvious. It would be great if: 1. Titanium Studio would have alerted me that there was an error, instead of saying that my Android SDK could not be found. 2. If that can't easily be accomplished, the error text displayed on the Preferences screen should have "Check the Titanium Studio log for more information." appended to it.13
229TISTUD-1067Interpret kernel panic log fileFrom the parent ticket, it's yet unknown how long it will take to fix this issue, since we have yet to determine the root cause. This ticket is just to read the attached kernel panic log file to decipher what the stack trace entails.5
230TISTUD-1068Allow snippets to be scoped by project typeHave this code in a JS file: {code} function Coffee (type,roast) { this.type = type; this.roast = roast; } Coffee.prototype.describe = function() { return this.roast + ' ' + this.type + ' coffee'; }; var sumatra = Coffee("Sumatra", "Light"); sumatra.d| <<< Content Assist here {code} The result of this CA is: {code} sumatra.Ti.API.debug(}) {code} In this case, the Titanium Mobile ruble is contributing a snippet which does not apply inside a regular JS project. Suggest is we have some way to allow snippets to be scoped based on project natures (i.e. titanium mobile), or perhaps a more generic mechanism (i.e. jquery snippets enabled in a "jquery" project, where there is no corresponding nature) Suggestion is to add a meta scope of: meta.project.<nature>20
231TISTUD-1073Improve performance when the Snippets view is initially loadedI profiled the performance issue. The root cause is creation of all the snippets when the view is loaded. A solution would be to lazy load the creation of the snippets until they are shown. This requires an introduction of a UI model for the snippet element, which would store the state of the snippet (visually disabled/enabled and filtered). The UI model is taken into account when the Snippet UI is actually created8
232TISTUD-1076Need to pass in "mobileweb" to project.py when creating new projectsWhen Studio creates a new project, it runs a python script called "project.py" where the arguments may contain "iphone", "android", and "mobileweb". The call should like this: {code} "/usr/bin/python" "/Library/Application Support/Titanium/mobilesdk/osx/1.9.0/project.py" "MyProject" "com.appcelerator.myproject" "~/workspace" "iphone" "android" "mobileweb" "~/android-sdk-mac_x86" {code} You can pass in "iphone", "android", and "mobileweb" in any order. Just need to make sure "mobileweb" is added to the call if the mobile web checkbox is checked. Side effects of not specifying this argument today is that the mobileweb resources folder will not get copied into the project's resources folder and then the appicon, favicon, apple touch icons, and apple startup images won't be displayed in the app. Undoubtedly there will be more logic performed during project creation in the future, so we need to have this argument added. 8
233TISTUD-1077Indicates the outline is out of date when there is syntax error in the codePlease see capture at http://www.screencast.com/t/qOsLUmhehKA. The JSON Outline does not clear if you replace all current content by pasting in syntactically erroneous content. Steps to Replicate : 1) Open Aptana Studio 2) Open JSON file 3) Add content that will register in the Outline 4) Select the entire file and paste in syntactically erroneous content Actual Results : The Outline freezes in its initial state. Expected Results : The Outline should clear when this happens. Proposed solution: Display a message (similar to a status message) inside the outline view with the message "The outline view is out-of-date due to syntax errors in the document". suggestion is that the message is noticeable, but not obtrusive, as it may appear during normal editing.13
234TISTUD-1078OpenShift: allow user to be able to delete an OpenShift app from StudioCurrently there isn't an way to delete an OpenShift app from within Studio once it is created, and if user runs into issues with creating a new app, e.g. exceeding the limit for the number of apps per namespace or trying to create one with one that already exists, and would need to delete an app, they would have to go back to command line with gem to resolve it. * If a user creates a new project, add right-click menu to delete * Perhaps add a command (using Rubles) for OpenShift to delete an app (by typing in the app name)20
235TISTUD-1079Exclude build folder from text search made in AppExplorerNULL8
236TISTUD-1091TiStudio: Samples - Project clean does not recognize Geocoder, RSS Reader, and Todo List samplesSteps to reproduce: 1. In the Samples pane, import Geocoder or RSS Reader or Todo List 2. Go to Project > Clean Actual: Clean option does not recognize these samples. The clean option recognizes only the Kitchen Sink samples (iPad and Nook) and other projects created by the user. Expected: Clean option should recognize all projects.13
237TISTUD-1093Titanium Studio: mobileweb is selected as a deployment target when a new project without mobileweb support is imported into studio after being generated by titanium.py createWhen an iOS or Android project is created using 'titanium.py create', and imported into studio, mobileweb is always selected as a deployment target. Steps to Reproduce: 1. Generate a new project using titanium.py create, such as: {code:title=OSX Terminal} dhydeMBPLion:~ dhyde$ /Users/dhyde/Library/Application\ Support/Titanium/mobilesdk/osx/1.8.1.v20120123161633/titanium.py create --platform=iphone --type=project --dir=/Users/dhyde/Downloads --name=iPhoneProject --id=com.appcelerator.iphoneproject {code} . . .Project will be created, and there will be no deployment target tags in tiapp.xml, as expected. 2. Import the project into studio. 3. Look at tiapp.xml. Expected Result: Only iPhone (and iPad, incidentally) should be selected as a deployment target. Actual Result: MobileWeb is additionally set as a deployment target.13
238TISTUD-1094Inconsistent mobile project name passed to iOS builder.py scripts1. Import KS from Samples 2. Compile to device 3. Without cleaning compile to iphone simulator We semi-solved this with TISTUD-697, but we missed a case.5
239TISTUD-1105The project builders get overwritten when importing a sample from a remote url that already contains .project fileThe issue is discovered while debugging TISTUD-1091. What we saw is that when importing a sample from a git repo that already has .project file defined, we would end up overwriting the .profile after the project is created. For example, the original .project file in the remote repo is this: {code} <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>Sample.RSS</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>com.appcelerator.titanium.core.builder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.aptana.ide.core.unifiedBuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>com.appcelerator.titanium.mobile.nature</nature> <nature>com.aptana.projects.webnature</nature> </natures> </projectDescription> {code} and afterward, it becomes the following: {code} <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>Sample.RSS</name> <comment></comment> <projects> </projects> <buildSpec> </buildSpec> <natures> <nature>com.appcelerator.titanium.mobile.nature</nature> <nature>com.aptana.projects.webnature</nature> </natures> </projectDescription> {code} 8
240TISTUD-1107Update Titanium Mobile Snippets contributions to provide more context and improve discoverability With the introduction of the Snippets View (https://wiki.appcelerator.org/display/tools/Snippets+View), we need update the existing snippets to add more context and improve discoverability. This is accomplished by adding the following fields to Snippets (https://wiki.appcelerator.org/display/tis/Snippets): * description: A descriptive text about the snippet. Optional * category: A name of a category used to group the snippet with other similar snippets. Optional * icon_path: the path to an icon that represents the snippet. Optional * tags: keywords that describe the snippet. Used as means to easily filter snippets. Optional Example: {code} snippet "My create map Snippet" do |snip| snip.trigger = "foo" snip.expansion = "my_map_snippet" snip.description = "Creates a map object and adds the following annotations: current location, paris, and ontario" snip.tags = ['UI','map','annotation'] snip.category = "Maps and Annotations" snip.icon_path = "icons/my_map_icon.png" end {code} In addition is the snippet_category entry that defines a grouping for snippets: {code} snippet_category "my_category" do |category| category.icon_path = "icons/my_category.png" end {code} These additions will make working with snippets much easier for user via the Snippets view The changes are also outlined here (towards the bottom): https://wiki.appcelerator.org/display/tis/Creating+a+New+Snippet 13
241TISTUD-1108Studio: Sort project list using natural rather than alphabetical sortingExpected: the list of projects in App Explorer view would be sorted naturally -- project1, Project2, project3, Project4, etc. Actual: projects are sorted alphabetically (all the capitalized project names sort higher than lower-case names: Project2, Project4, project1, project3) See the attached screen shot. This would be better sorted naturally, as is done in the Project Explorer view. A quick google shows that this is perhaps easier said than done. There are a couple of how-tos linked to from this article in case they help: http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html3
242TISTUD-1114Titanium Studio: Projects: new project with same name overwrites existing filesCreating a new project overwrites existing files. OSX: If a new project is created with the same name as an existing project in the workspace, all default files are overwritten. OSX-specific: If a new project is created with the same name, but different capitalization, the original files are all overwritten, but the project folder retains the original capitalization, and the studio interface shows the new project name as it was overwritten in the new project settings file. Linux: If a new project is created with the same name as an existing project in the workspace, all default files are overwritten. Steps to Reproduce: 1. Create a new project called MyProject. 2. Edit the app.js file to make a meaningful change. 2. Delete the project from studio without removing it from disk. 3. Create a new project called MyProject. Expected Result: Studio should show an error message indicating the project already exists. Actual Result: The new project is created and any default files are overwritten. An OSX-specific issue occurs when the new project has the same name with different capitalization. When the new project is created, the original files are overwritten and the original folder keeps it's old capitalization, but the studio ui representation of the project shows the new capitalization.8
243TISTUD-1115Studio: Android SDK detection relies on script in latest Titanium SDK in mobilesdk folder, giving misleading info during failureDescription: To determine if the Android SDK is properly configured, Studio relies on a script (avd.py I believe) in the latest Titanium SDK in the Titanium SDK folder. This is problematic in some circumstances including when a developer installs a development Titanium SDK. Studio will automatically defer to this new version for verification of the correct configuration of the Android SDK. If there is an issue with the script or some other problem with the folder structure of the development Titanium SDK, it will disable the ability of Studio to use Android projects. Since it is not possible for QE to verify every development release has the correct structure and that the and.py script is present and functional, this is a potential risk area. Steps to reproduce: 1) Configure studio to have 1.8.0.1 GA as the latest SDK 2) Install an SDK from master branch (1.9.0) 3) navigate to the folder for the 1.9.0 SDK and remove SDK FOLDER/android/avd.py 4) In studio, select the titanium preference pane or click "configure..." from the TIapp.xml overview Result: Android preference states "Could not locate the Android SDK at the given path" Expected: Android SDK configuration verification based on method that is independent of Titanium SDK13
244TISTUD-1116Titanium Studio: Editor: closing or deleting project intermittently fails to close all open related project files When a project is deleted from disk in studio, all open related project files intermittently fail to close. The file tab reads: Could not open the editor: An unexpected exception was thrown. Steps to Reproduce: 1. Create a new project. 2. Delete the project, removing from disk. Expected Result: All open associated project files in studio should close. Actual Results: Files stay open and an error message is generated.5
245TISTUD-1118JavaScript validation continues to report a syntax error, even after error is correctedThe JavaScript parser will report a syntax error in code that functions properly. Steps to Replicate : 1) Open Titanium Studio 2) Open an empty HTML file and add the content : {noformat} <html> <head> <script type="text/javascript"> function alertMsg{alert("Popup");} </script> </head> <body> <form> <input type="button" value="Show alert box" onclick="alertMsg()" /> </form> </body> </html> {noformat} 3) Note the syntax error on line 4 and add parameter parentheses after "alertMsg" to correct the error 4) Note the editor continues to report a syntax error, save and preview the file Actual Results : The code functions successfully however is marked as syntactically erroneous. Expected Results : The editor should not report errors in valid code. 13
246TISTUD-1125Error in log file: "Was unable to add folding position"The JSON editor writes warnings to the log upon deleting then backspacing the contents of a file. Steps to Replicate : 1) Open Titanium Studio 2) Open a saved empty JSON file and add the content : {noformat} { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } {noformat} 3) Erase approximately the first half of the file with the delete key 4) Place the caret at the end of the file and erase the rest with the backspace key Actual Results : Studio will write this to the log : !ENTRY com.aptana.editor.common 2 0 2012-01-25 20:41:57.730 !MESSAGE (Build 3.0.3.1325798464) [WARNING] Was unable to add folding position. Start: 253, end: 206 !ENTRY com.aptana.editor.common 2 0 2012-01-25 20:41:57.730 !MESSAGE (Build 3.0.3.1325798464) [WARNING] Was unable to add folding position. Start: 264, end: 206 !ENTRY com.aptana.editor.common 2 0 2012-01-25 20:41:57.730 !MESSAGE (Build 3.0.3.1325798464) [WARNING] Was unable to add folding position. Start: 350, end: 206 Expected Results : These keys are expected to function with no errors or warnings. 5
247TISTUD-1133CSS "Add Color" Command places the caret before, not after the inserted colorPlease see capture at : http://www.screencast.com/t/p8PMAm0sC. Upon invoking the CSS Add Color command, the editor places the caret after the new color code. Steps to Replicate : 1) Open Titanium Studio 2) Open a CSS file 3) Select Color > CSS > Add Color Actual Results : The caret precedes the new color. Expected Results : The caret should be after the new color. 3
248TISTUD-1134HTML Template IndentationPlease see capture at http://www.screencast.com/t/3eloNGUR. The File menu and Project Explorer menu have differing template indentation. Steps to Replicate : 1) Open Titanium Studio 2) Select an HTML project with the default formatter profile selected 3) From the context menu select New From Template > HTML > HTML 5 Template 4) Select File > New From Template > HTML > HTML 5 Actual Results : The templates have differing indentation. Expected Results : The templates should have the same indentation. 8
249TISTUD-1136FileNotFoundException: .../manifestMinor issue, but completely filling up the log files: {code} !ENTRY com.appcelerator.titanium.core 4 0 2012-02-01 12:51:54.982 !MESSAGE (Build 1.0.7.1327097522) [ERROR] /Users/fusion94/Documents/Titanium Studio Workspace/zzzzz/manifest (No such file or directory) !STACK 0 java.io.FileNotFoundException: /Users/fusion94/Documents/Titanium Studio Workspace/zzzzz/manifest (No such file or directory) java.io.FileInputStream.open(Native Method) java.io.FileInputStream.<init>(FileInputStream.java:120) com.appcelerator.titanium.core.tiapp.TiManifestModel.<init>(TiManifestModel.java:181) com.appcelerator.titanium.core.TiModelFactory.createTiManifestModel(TiModelFactory.java:92) com.appcelerator.titanium.core.TitaniumProject.loadManifest(TitaniumProject.java:248) com.appcelerator.titanium.core.TitaniumProject.lazyLoad(TitaniumProject.java:232) com.appcelerator.titanium.core.TitaniumProject.isIPadDeployTarget(TitaniumProject.java:181) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.appcelerator.titanium.core.TitaniumProjectPropertyTester.test(TitaniumProjectPropertyTester.java:27) org.eclipse.core.internal.expressions.Property.test(Property.java:58) org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:99) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:189) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:72) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:29) org.eclipse.core.internal.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:70) org.eclipse.core.internal.expressions.CompositeExpression.evaluateOr(CompositeExpression.java:68) org.eclipse.core.internal.expressions.OrExpression.evaluate(OrExpression.java:21) org.eclipse.ui.internal.services.EvaluationResultCache.evaluate(EvaluationResultCache.java:74) org.eclipse.ui.internal.WorkbenchWindow.liftRestrictions(WorkbenchWindow.java:3062) org.eclipse.ui.internal.WorkbenchWindow$28.shellActivated(WorkbenchWindow.java:3112) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:88) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1379) org.eclipse.swt.widgets.Shell.windowDidBecomeKey(Shell.java:1892) org.eclipse.swt.widgets.Display.windowProc(Display.java:5031) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Widget.callSuper(Widget.java:213) org.eclipse.swt.widgets.Widget.becomeKeyWindow(Widget.java:324) org.eclipse.swt.widgets.Shell.becomeKeyWindow(Shell.java:478) org.eclipse.swt.widgets.Display.windowProc(Display.java:4863) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSWindow.becomeKeyWindow(NSWindow.java:40) org.eclipse.swt.widgets.Control.fixFocus(Control.java:1246) org.eclipse.swt.widgets.Control.setEnabled(Control.java:3319) org.eclipse.swt.widgets.Shell.setEnabled(Shell.java:1452) org.eclipse.ui.internal.progress.ProgressManager.setUserInterfaceActive(ProgressManager.java:1265) org.eclipse.ui.internal.progress.ProgressManager.access$4(ProgressManager.java:1252) org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:959) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:995) org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:970) org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.checkInitialConditions(RefactoringWizardOpenOperation.java:205) org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.access$0(RefactoringWizardOpenOperation.java:200) org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:163) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(DeleteResourcesHandler.java:40) org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommandInContext(HandlerService.java:270) org.eclipse.ui.internal.ide.actions.LTKLauncher.runCommand(LTKLauncher.java:95) org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(LTKLauncher.java:47) org.eclipse.ui.actions.DeleteResourceAction.run(DeleteResourceAction.java:481) org.python.pydev.navigator.actions.PyDeleteResourceAction.run(PyDeleteResourceAction.java:101) org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:168) org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) org.eclipse.equinox.launcher.Main.run(Main.java:1408) {code}3
250TISTUD-1137Console: High water mark must be greater than low water markFound in a log file: {code} !ENTRY org.eclipse.ui.console 4 120 2012-01-23 14:10:15.147 !MESSAGE An exception occurred during console notification !STACK 0 java.lang.IllegalArgumentException: High water mark must be greater than low water mark org.eclipse.ui.console.IOConsole.setWaterMarks(IOConsole.java:204) org.eclipse.debug.internal.ui.views.console.ProcessConsole.init(ProcessConsole.java:416) org.eclipse.ui.console.AbstractConsole.initialize(AbstractConsole.java:258) org.eclipse.ui.console.AbstractConsole$Lifecycle.consolesAdded(AbstractConsole.java:64) org.eclipse.ui.internal.console.ConsoleManager$ConsoleNotifier.run(ConsoleManager.java:152) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.ui.internal.console.ConsoleManager$ConsoleNotifier.notify(ConsoleManager.java:175) org.eclipse.ui.internal.console.ConsoleManager.fireUpdate(ConsoleManager.java:269) org.eclipse.ui.internal.console.ConsoleManager.addConsoles(ConsoleManager.java:231) org.eclipse.debug.internal.ui.views.console.ProcessConsoleManager.launchChanged(ProcessConsoleManager.java:149) org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.run(LaunchManager.java:447) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.notify(LaunchManager.java:428) org.eclipse.debug.internal.core.LaunchManager.fireUpdate(LaunchManager.java:990) org.eclipse.debug.core.Launch.fireChanged(Launch.java:388) org.eclipse.debug.core.Launch.addProcess(Launch.java:351) org.eclipse.debug.core.model.RuntimeProcess.<init>(RuntimeProcess.java:125) com.aptana.console.process.TTYConsoleProcess.<init>(TTYConsoleProcess.java:33) com.aptana.console.process.ConsoleProcessFactory.newProcess(ConsoleProcessFactory.java:32) org.eclipse.debug.core.DebugPlugin.newProcess(DebugPlugin.java:750) com.aptana.git.internal.core.launching.GitLaunchDelegate.launch(GitLaunchDelegate.java:66) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:696) com.aptana.git.ui.internal.Launcher.launch(Launcher.java:59) com.aptana.git.ui.internal.actions.AbstractSimpleGitCommandHandler$1.run(AbstractSimpleGitCommandHandler.java:81) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}8
251TISTUD-1139Should check and load the existing .project file before setting our required natures/builders when creating or importing a project we supportCurrently in our project creation or import wizards, we always create a new project description using IWorkspace.newProjectDescription() and then set nature ids and builders on it, but there is a possibility that the directory we're creating the project in or importing from already has a .project file. The correct way would be: 1. Check if a .project file exists in the specified directory; 2. Load project description from the .project file using IWorkspace.loadProjectDescription(); 3. Check if the project description already contains the natures and builders that we need and only add the missing ones; 4. If the project description isn't modified because it already includes the natures and builders we need, there will not be a need to call IProject.setDescription(); otherwise, call the method to update the .project file. We should be able to capture most of the steps in an utility method. 13
252TISTUD-1152Add XSD-based Validation for tiapp.xml and timodule.xml editorsOnce we have a XSD for tiapp.xml, we need to validate against it. Doing so requires: * XSD * build participant to wrap calling the XSD 8
253TISTUD-1156Project creation needs to check for app id segments that start with a numberAndroid requires that all namespaces in a package not start with a number, but studio only checks the first namespace currently. Example invalid package name: com.test.1235
254TISTUD-1158Multiple instances of the same process showing up in the console view# Clone the Kitchen Sink sample into your workspace # Clear all terminated launches in the Studio console # Run the Kitchen Sink sample in the Android emulator Note the duplication of launch processes, in particular, FastDev and the Android Emulator Process13
255TISTUD-1162Research support ScriptDoc'ing of CommonJS ModulesResearch what changes will be needed in the JS inferencing, indexing, and content assist to add support for CommonJS modules to JS content assist13
256TISTUD-1163Make IOS Package/Run on Device launch configuration publicRefactor the existing wizard page contents so they can be re-used in the Launch configuration tabs. Expose the Launch configurations so they are public. Launch the "full" wizard if the launch configuration is initiated for the first time20
257TISTUD-1164Make Android Package launch configuration visible to usersRefactor the Android wizard page contents so it can be reused in the Launch configuration tab. Add a launch configuration for "Install on Android Device", which allows users to specify a android sdk20
258TISTUD-1165Add MobileWeb Distribute operation as a Launch configurationRefactor the wizard page contents so it can be re-used in a new Mobile Web Launch configuration20
259TISTUD-1167Investigate ability to auto-scroll lock the consoleNULL8
260TISTUD-1168Add Common Interface for consolidating UI errors and notifying listeners when status changesNULL5
261TISTUD-1169Write a document on Ruble localizationWe now allow Rubles to be localized. Add a document to the Wiki covering the following topics (might be two, depending on the amount of content): * How the architecture works * How to externalize strings * How to contribute a new localization The document should have a few short examples to illustrate the concepts.3
262TISTUD-1171Upgrade Run/Debug/Deploy iconsWe have a a few icons (as detailed in the attached document) that need upgrading as they are not in keeping with they rest of the Studio UI. In general, they should be a bit more three-dimensional and colorful. * Run icon * Debug Icon * Distribute/Deploy icon5
263TISTUD-1175JavaScript externalizations are not evident in commands menuPlease see capture at http://www.screencast.com/t/ZGzGqfaZfq0w. The string externalizations in the JavaScript ruble are not evident in the Commands menu. Furthermore, the list of keys in the en.yml do not match the drop down menu list. Steps to Replicate : 1) Open Titanium Studio 2) Clone the JavaScript ruble and select the development branch 3) Edit the en.yml file, save and cycle Studio Actual Results : The cache.en_US.yml file contains the edited values, however the JavaScript drop down menu has not changed. Expected Results : The commands menu should contain the new values. 8
264TISTUD-1179Titanium Studio: titanium.py create: iphone project imported into studio does not include ipad as a selected targetWhen an iphone project is created using 'titanium.py create', and imported into studio, ipad is not selected as a deployment target. This is relevant because projects imported into studio after being created by 'titanium.py create' do not initially contain tiapp.xml deployment target tags. The tags are created on import based on the presence of a respective platform folder (i.e., NewProject/iphone). Because iPad and iPhone use the same folder, they should both be selected as targets when imported to studio for the first time. Steps to Reproduce: 1. Generate a new iphone project using titanium.py create, such as: {code:title=} // dhydeMBPLion:~ dhyde$ /Users/dhyde/Library/Application\ Support/Titanium/mobilesdk/osx/1.8.1/titanium.py create --platform=iphone --type=project --dir=/Users/dhyde/Downloads --name=NewProject --id=com.appcelerator.project // {code} 2. Import the project into studio. 3. Open tiapp.xml and observe the deployment targets. Expected Result: iPhone and iPad should be selected as targets. Actual Result: Only iPhone is selected.8
265TISTUD-1180MobileWeb : Selecting to clean a mobile web project does not remove the contents of the build folderSteps to reproduce: 1. Create a default Titanium project and be sure to have mobile web selected as a target 2. Run the project as a preview in the browser 3. In Ti Studio select Project > Clean... Actual result: The contents of the build folder persist Expected result: The contents of the build folder are removed5
266TISTUD-1182Create ACS Overview PageWhen a user wishes to learn more about Appcelerator Cloud Services from inside Studio, they are directed to this page here: https://wiki.appcelerator.org/display/tis/Appcelerator+Cloud+Services It needs to be filled with appropriate content. Some of that will be instructions on how to use the functionality, and some of it how to enable it inside Studio. I would imagine this top-level page could be a landing area, and specific sub-pages could be created as necessary.8
267TISTUD-1183Add "release notes" overview to Titanium SDK update dialogsAs in Studio 1.5, we previously prompted for user updates with a custom dialog box containing a browser pointing to a remote URL containing the latest set of release notes, similar to this: http://developer.appcelerator.com/apidoc/mobile/1.8.1/changelog.html, but formatted differently. I've attached a screenshot of how 1Password does it, which seems fine. Ideally, this dialog would _follow_ clicking on the yellow toast (though note the case where we had both a SDK and a Studio simultaneous update--we should handle that gracefully) The SDK and Studio dialogs will be identical, save the URL in the middle. However, we only do the SDK update dialog right now, as we completely control that process.20
268TISTUD-1184MobileWeb : Remove the "Beta" tag from mobile web for Ti Studio 2.0 releaseAs per Ingo, this ticket is for ensuring the removal of the beta tag in Ti Studio 2.0 There are two main places this needs to occur: 1. In tiapp.xml overview view 2. In the new project wizard2
269TISTUD-1185Only check ACS checkbox if cloud services will actually be addedIn the attached image, I am not using an ACS-compatible SDK version, so the control is greyed out. However, the checkbox is still checked, making me think that it _will_ use cloud services, even though I can't change that option. Instead, in this case, the checkbox should be unchecked.3
270TISTUD-1186Add Label for "More Info" to ACS cloud areaFrom the demo, Jo ann had asked for the Info (?) link to be brought back even after a user has selected to enable cloud services.5
271TISTUD-1187Move SDK check for cloud services back to 2.0We moved the SDK check to 1.9 for demo purposes. Revert this back to 2.0 by Titanium Studio GA1
272TISTUD-1188Dashboard : After logging into Ti Studio for the first time an error is presented and dashboard content fails to load until one refreshes the pageSteps to reproduce: 1. Make sure you are not currently logged in to Ti Studio 2. Login to Ti Studio and wait for the dashboard pane to appear Expected result: The dashboard page loads without error Actual result: An error dialog is presented *see attached screenshots* and dashboard content doesn't load *Note a workaround is to just reload/refresh the page, however if one closes the dashboard the same issue persists*8
273TISTUD-1193"window" hover has description twice# Open a new .JS document # Type "window" (no quotes) # Hover over the item. Note it says "Reference to the current Window. Reference to the current Window."5
274TISTUD-1194Type names missing from JavaScript hover# Create a new Titanium Mobile project # Open up app.js # Hover over a call to "createWindow" # Note the incomplete text: "Create and return an instance of ." Looking at the JSCA file, the type is denoted by <>: "description": "<p>(Optional) A dictionary object with properties as defined in <Titanium.UI.Window>.</p>" Ideally, we pre-process those tags so that we might create a link to the remote type that users can click on. Alternately, we could have the JSCA file generated with a proper enclosing tag (but links might be very difficult)8
275TISTUD-1196Add support for new Xcode 4.3 install locationIt appears Xcode 4.3 has changed the location of developer tools. In particularly, it's packaged as a single application, with the platforms and command-line tools installed underneath. Homebrew has a function that finds the proper path prefix: https://github.com/mxcl/homebrew/blob/master/Library/Homebrew/utils.rb Note...xcode-select no longer seems to be installed by default, so note that we have to have a fallback here * Check /usr/bin/xcode-select -print-path to see if it exists and is an absolute path. if so, use that * Else check if /Developer exists. If so, use that. * Else check if /Applications/Xcode.app/Contents/Developer exists. If so, use that. * Else ask spotlight where Xcode is (mdfind "kMDItemDisplayName==Xcode&&kMDItemKind==Application). if that succeeds, append /Contents/Developer to that location5
276TISTUD-1198Merge multiple update dialogs into a single dialogIf there are multiple product updates (i.e. Studio and a SDK), we should pop up a single yellow toast, and a "release notes" dialog that allows you to switch between the currently active product release notes. Suggestion is we do something similar to apple...we have a set of checkboxes at the top for all products being updated, and then clicking on a product shows the release notes below13
277TISTUD-1199Use pre-configured web servers to launch Mobile Web previewThe Mobile Web "browser preview" launch configuration uses some separate settings for determining which browser to launch. Instead, we should have a drop down respecting the current browser settings in preferences: * Have a radio button for "Global settings" or "Specific choose:". * If user selects to specifically choose a different option than the global settings, have a drop down with the following options: ** Internal browser ** System browser ** Browser 1 ** Browser 2 * Have a link to open the preference page for users to manage the settings. If any launch configuration fails because a browser setting has been removed, fall back to an external browser using the system default.13
278TISTUD-1200Exclude derived resources from validation# Create a new Mobile Web project # Run a browser preview # Note the litany of errors in /build/mobileweb. All of those are derived resources, and as such, should not show errors.5
279TISTUD-1204Create test plan for tiapp.xml module additionsThe new additions to the tiapp.xml need formal testing. We need a test plan.13
280TISTUD-1217Use "TestFlight" logo on relevant dialogs and wizardsAdd the TestFlight logo to at least the following screens: # Register existing # Publish wizard8
281TISTUD-1218Add a "TestFlight" description to Register Existing and Publish screensAt the top of the "Register Existing" and right below the "Publish" screen dropdown, add the following text: "TestFlight allows developers to publish beta builds of applications to a group of users organized into a team." This might need to be contributed as part of an extension point or interface.2
282TISTUD-1219Minor tweaks of "Publish" screen and menu*Menu* # The menu item seems to be writing out the name improperly (see image) *Publish Screen* # Rename the wizard to "Publish _AppName_ to _TeamAlias_" # The Manage... button needs to go to the Studio TestFlight preferences # Don't show the error message if there are no registered teams on dialog open. Instead, add a description of "Choose the platform to which you wish to publish, and the publication target" # Add a label below the platform choice with "Platform choice is determined by the platforms this provider supports and the deployment targets for this project." # Add a label below the dropdown as shown in TISTUD-1218. # Disable the dropdown until is has something to select # If choosing "Publish...", auto-select the first item in the list if there is one8
283TISTUD-1221OpenShift: surface the root cause to the error dialog when creating an application failedCurrently, when creating an OpenShift application failed, the project creation wizard will show an error dialog as attached, but it doesn't contain the actual root cause that made the creation fail. User would have to go to Help > Titanium Studio > View Log File... to see the full response. We should change the behavior to surface the cause in the details section of the error dialog.5
284TISTUD-1222Parameter content assist showing HTML tags# Create a new Titanium Mobile project # Open the app.js file, if it is not open already # Type the following on an empty line in that file: Ti.UI.createWindow( # If you do not get context information after typing the open parenthesis, type ctrl-shift-space h3. Expected behavior: No tags should appear in the parameter description and types indicated via < and > should appear in the text with the brackets stripped. h3. Actual behavior: The <p> tag appears in the description.5
285TISTUD-1223OpenShift: creating an OpenShift PHP project failedFollowed the steps at https://wiki.appcelerator.org/display/tis/OpenShift+Deployment to create an OpenShift PHP project, and when the wizard finishes, an error is generated as shown in the attached screenshot. Then when checking Help > Titanium Studio > Run Diagnostic Log..., I do see the new OpenShift app, so it looks like it's a problem with cloning the repo.5
286TISTUD-1224Add ACS module XML to tiapp.xml when cloud-enabling a projectBoth when creating a new project with cloud enablement, and upgrading an existing one, we need to add the ID for the cloud module into the tiapp.xml The module id is "ti.cloud"5
287TISTUD-1226Create test plan for TestFlight integrationA test plan needs to be created for TestFlight integration.13
288TISTUD-1227Incorrect JSCA file selected for content assist when creating new Titanium Mobile project1. Create new Titanium Mobile Project 2. Choose an SDK, but _not_ the latest one (i.e. choose 1.8.1 when 1.9 is installed) 3. See 1.8.1 selected in the tiapp.xml, but right-click on the project > build path, and notice the latest JSCA file (i.e. 1.9) is selected8
289TISTUD-1229"Mobile Web" action icons should use HTML5 icon, not the "server" oneThe icons in "preview" and "package" should be the HTML5 icon used for content assist, not the server icon3
290TISTUD-1230Update project-specific run/debug/package menus with favorites and recent historySimilar to the global run/debug menus, add run/debug/package history to bottom of App Explorer and Project Explorer menus (perhaps show favorites, then separator, then last five, per project) * Run ** Emulator/Simulator options ** -------------------------- ** Device options ** -------------------------- ** Favorite configuration 1 ** -------------------------- ** Recent configuration 1 ** Recent configuration 220
291TISTUD-1231Add MobileWeb platform to SDK dashboard configuration screen# Add a new platform to the dashboard (add an icon with and without a questionmark) # Mobile web will show a question mark on first launch, or first time it appears # Clicking on the question mark will show the information in the following panels (based on # There will be a link which opens Preferences > General > Web Browser, and another link which opens https://wiki.appcelerator.org/display/tis/Mobile+Web+Support {panel} Mobile Web previewing works best in modern HTML 5-compliant browsers. We recommend you configure your Studio browsers before working on mobile web projects: 1) Click [here] to open browser preferences. 2) Add one or more entries for <OS-X specific choice here>. Alternately, if your default system browser meets one these requirements, you can leave the preference alone. 3) Save and close the preference. {panel} Text to replace for *<OS-X specific choice here>*: * OS X: Safari 5+, Chrome 10+, or Firefox 10+ * Windows: Chrome 10+, Firefox 10+, or IE 10 * Linux: Chrome 10+ or Firefox 10+ 20
292TISTUD-1236Show text hovers on variable/identifiers in declaration statementsWhen hovering over the name of the identifier/variable in an assignment/declaration we don't get hovers as we do when hovering over the exact same variable in a reference.3
293TISTUD-1237Text hovers not showing on rhs of variable assignmentsIf we hover over the rhs of an assignment where it is a function call, we don't get hovers for the method we're invoking.5
294TISTUD-1257Kitchen Sink : Importing Kitchen Sink from the samples area sometimes produces an error and doesn't allow the sample to be importedSteps to reproduce: 1. Launch Studio 2. Ensure you do not have Kitchen Sink as a project in Studio or your workspace 3. Import Kitchen Sink from the Studio samples Actual result: An error dialog is displayed and Kitchen Sink is not imported Expected result: Kitchen Sink is imported without error *Note since this error does not occur every time I was unable to capture the error dialog, but I attached the log*8
295TISTUD-1259Studio installer for Windows: Install screen has rendering and refresh issues during installDescription: While testing the installer for Windows, we noted that the border around the detail field, and the border around the progress bar were not initially drawn. When another window is placed over the installer window and then closed, the borders appear. Please see screenshots for more information Steps to reproduce: 1) If studio is installed, uninstall it 2) Download the installer from my.appcelerator.com 3) Run the installer and examine the window 4) Open the detail view 5) PLace a window over the installer window and then close it Results: The borders around the detail field and the progress bar are not drawn, placing a window over the installer window then closing it causes them to appear. Expected: No rendering issues on the installation window. Note: We also saw text overwriting itself in the detail field on one out of three attempts, but have been unable to reproduce it thus far.Image "badRefresh" shows this behavior.5
296TISTUD-1260Titanium Studio: MobileWeb: Preferences need MobileWeb default run configuration menuThe Titanium preferences menu needs a default run configurations sub-menu for MobileWeb. Android has a default run configuration menu. Parity issue and basic functionality. The MobileWeb sub-menu (default browser, etc.) would be in the preferences menu below the Android default configuration settings. Screenshots attached. 8
297TISTUD-1261Snippets view color scheme on Windows is not consistent with other viewsCurrently the color scheme for the snippets view on Windows (tested on XP specifically) is not consistent with the other Studio views. See attached screenshots Background colors need updating Disabled tag buttons are not painted properly Hover over the tag buttons has an outline Snippet popup toolbar bg color has incorrect border colors13
298TISTUD-1266TiStudio: Projects - Cannot import a project when project is copied from a GitHub repository folderSteps to reproduce: 1. Import a project from a GitHub repository folder 2. Delete project from Studio; do not select *Delete project contents on disk* 3. Copy project from GitHub repository folder into workspace folder 4. Import project from workspace Actual: Get a *Invalid project description* error. See attachment. Expected: Should be able to import copied projects Note: No logs were generated.8
299TISTUD-1268Titanium Studio: Content Assist: assist menu intermittently fails to close at allIn addition to being persistent as a stand-alone window when focused (related issue), the content assist menu intermittently fails to close at all until studio closes. Pressing escape, clicking away, etc. do not close the content assist menu. Steps to Reproduce: 1. Create a default project. 2. Open content assist within the app.js editor. 3. Click the content assist menu to give it focus. 4. Close the content assist menu (e.g., 'escape', click away, etc.). Expected Result: Content Assist menu should close. Actual Result: Content Assist menu intermittently does not close at all until studio is closed.8
300TISTUD-1269Titanium Studio: Content Assist: content assist results in no proposals if code file contains syntax error warningsIf a code file contains syntax error warnings, and content assist is called, no proposals will be generated. This interferes with development. Steps to Reproduce: 1. Create a new project. 2. Insert the following code: {code:title=app.js} switch() { case Ti. } {code} 3. Move the cursor to the right of "Ti.". 4. Active content assist (cntrl + space). Expected Result: Content Assist should be invoked with proposals. Actual Result: No proposals.8
301TISTUD-1271iOS: Xcode 4.3 - Dashboard link to install Xcode failsDescription: While testing the Xcode 4.3 capabilities, I started with a clean system and installed studio. On the dashboard an option is given to install Xcode. When clicking on this link, the Appstore opens, but reports a failure. See attached image for details. Steps to reproduce: 1) Install Studio 1.0.9 2) Launch studio and on the dashboard, select "let's get started" 3) Select the iOS SDK button and the install link Result: The Mac app store opens but the request fails Expected: The Mac app store opens to a supported Xcode version page8
302TISTUD-1272iOS: Xcode 4.3 - Dashboard tooltip for iOS SDK, showing supported Xcode versions, needs to be updatedDescription: While testing Xcode 4.3, and prior to setting the Xcode-select to point to the correct location, the iOS SDK icon in the dashboard shows setup is needed. When hovering over the icon, a tooltip appears. WHile mostly accurate, some details need updating. Specifically, Xcode 3.2.6 is not supported but is mentioned on the tooltip. Another is the mention of Xcode 4.0+. Currently we do not fully support 4.3, so based on the schedule for this, it can remain as-is or must be limited to pre-4.3 versions. Steps to reproduce: 1) Install and launch studio 2) Open the dashboard and navigate to the sdk setup page 3) Hover over the iOS SDK button Result: The tooltip comes up and has some inconsistencies Expected: The tooltip accurately describes the supported Xcode versions required 8
303TISTUD-1273TiStudio: Console - Console view does not refresh properly when installing or running app on emulator/simulatorSteps to reproduce: 1. Create the default TiMob project 2. Install project to device or run project in simulator/emulator Actual: Console view does not refresh properly. See attachments Expected: Console view should refresh properly.5
304TISTUD-1275JS documentation hover displays a huge header# Import the Kitchen Sink project into the workspace (set the Titanium Mobile and the Web Natures in case they are missing after the import). # Open android_menues.js, for example, and hover over the 'tableview' keyword. A documentation hover appears. However, a huge file locations header appears on the top. 5
305TISTUD-1276Studio: Configuration utility maximum for support iOS SDK must be updatedDescription: Currently the configuration utility performs a check of iOS platforms to see if 4.2-5.1 is available. From what I've been told this is non-exclusive, meaning 4.2-5.0 would be shown to satisfy this check, but with 5.1 coming out, the upper bound needs to be corrected. 1) Evaluate the logic here: http://preview.appcelerator.com/dashboard/sdk_info.json 2) Note the iOS platform check as including >= 4.2 and < 5.1 Result: Only iOS SDKs 4.2-5.0.1 would meet with success Expected: Logic evaluates based on target supported iOS SDKs (i.e. [4.2, 5.2))5
306TISTUD-1277The error from generating mobile web app should be surfaced to the userWhen I created a Titanium mobile web project and ran "Mobile Web Preview in Browser", the process failed, and I see an error status dialog saying "Unable to generate Mobile Web App", but there is no additional details on what caused the issue; checking the log shows nothing either. When I step through to debug, it shows that the script returns the following: {code} Status ERROR: com.appcelerator.titanium.core code=0 ERROR: Unabled to import module "Image" Run `sudo easy_install pil` to install the 'Image' module or download from http://www.pythonware.com/products/pil/ null {code} We should surface the cause in the dialog so that user could diagnose and correct the problem. 5
307TISTUD-1278Studio: Studio requires restart if open during Xcode install even though configuration utility reports correctly configured for iOSDescription: While testing Xcode 4.3, I had an existing Studio install that could no longer detect the iOS SDK. The workaround for this was when I changed workspace to a new empty workspace. This fixed the problem. Please note, I did check the Xcode-select -print-path which showed the correct location. I tried it again anyhow. It was only when I quit Studio and relaunched, selecting a blank folder for my new workspace that the iOS SDK was recognized. Steps to reproduce: 1) Install Xcode 4.3 on a system with no Xcode install (delete 4.2 prior to 4.3 install) but with an existing Studio installation 2) Ensure that you have some projects that exist in the Studio workspace 3) Launch Studio and check the dashboard to ensure it reports your setup is incorrect (since Xcode 4.3 is not in the /Developer folder) 4) Use "xcode-select -switch" to set the location of your Xcode install to "/Applications/Xcode.app/Contents/Developer" this should fix your installation 5) Check that the Dashboard now reports iOS is configured correctly 6) Try to create a new project with iOS targets Result: iOS can't be selected, but Dashboard shows iOS SDK correctly configured You must restart Studio for the ability to create iOS projects Expected: Dashboard and Studio both able to verify configuration is correct without restart (or with appropriate messaging) 8
308TISTUD-1280Studio: TiApp editor module section - Platform icons could use some improvementDescription: The QE team like the new TiApp editor features. The icons however seem to have some room for improvement. There are two main areas for evaluation: 1) The iOS icons seem to generate confusion for two reasons: First, the Apple icon is cropped to the point that it is difficult to recognize it as an apple. Second, the three letters used to signify iPad and iPhone are difficult to decipher: "iPa" and "iPh". 2) While most OSes have the header in white, Linux is grey, making the Android icon difficult to make out as the contrast is too low. An additional concern may be the sourcing of the icons Steps to reproduce: 1) Install Studio 2.0 on any system (linux for Android icon contrast evaluation) 2) Create a new project 3) Edit the TiApp.xml 4) Note the Module section in the editor overview Result: Icons less than ideal Expected: Icons are beautiful5
309TISTUD-1281Research what is causing errors to be generated in JS when semicolons are not used to end statementsWe need to determine what is generating the parse errors in JS. Turning off the all validation and forcing a clean build does not remove the errors and associated markers8
310TISTUD-1282Do not show JS parse errors when optional semicolons are excludedWhen we made the change to build participants, we lost the ability to turn on/off parse errors. We should treat those "validators" the same as other validators. This should be applied to HTML, CSS, and JS. However, the JS validator should not generate errors when optional semicolons are excluded. Beaver reports a syntax error before trying to recover from the error. We should add a case where errors are not added (or they are deleted) if we're able to fix the parse by adding the optional semicolon to the parse stream.13
311TISTUD-1283OpenShift: should surface the root error when failed to deploy existing project to OpenShiftWe are surfacing the error in the status dialog for creating new OpenShift project, but not for deploying existing ones. 5
312TISTUD-1284Distribute - Google has announced that the Android Marketplace will be renamed as "Google Play", which may warrant an update to the language used in the distribute menu of Titanium StudioGoogle changing their Android Marketplace to be named "Google Play" warrants a discussion about updating the language used in future versions of Titanium Studio to be inline with this change. This is a link to the official announcement from Google http://googleblog.blogspot.com/2012/03/introducing-google-play-all-your.html3
313TISTUD-1285Titanium Studio: 2.0.0: Dashboard: Samples: samples do not populate from staged dashboard urlSamples do not populate when beta dashboard is loaded from studio 2.0.0. Steps to Reproduce: 1. Edit TitaniumStudio.ini (2.0.0) file (OS X: TitaniumStudio > Show Package Contents). Add two lines: -Dtitanium.dashboardUrl=http://preview.appcelerator.com/dashboard/index.php -Dtitanium.sdkRequirementsUrl=http://preview.appcelerator.com/dashboard/sdk_info.json 2. Restart Studio 2.0.0, load dashboard, click 'Develop' tab. Expected Result: Samples should populate. Actual Result: Samples section is blank. Screenshot attached.5
314TISTUD-1286MobileWeb: "File /index.html not found" error when loading into browserWhen I run "Mobile Web Preview in Browser" from TiStudio and the app opens in FireFox, I get a white screen that says: **File /index.html not found** and nothing else. If I then reload the page with the very same URL, everything works fine. But almost everytime I launch from the button with TiStudio, I get the above error. This is the case with all apps I attempt to build for mobile web. 5
315TISTUD-1287Titanium Studio: Content Assist: no Titanium SDK proposals are generatedContent Assist fails to generate Titanium SDK proposals. Regression. Steps to Reproduce: 1. Open studio 2.0. 2. Edit app.js. Type 'Ti.'. Look at Content Assist suggestions (cntrl + space to force CA window). Expected Result: Titanium SDK proposals should appear. Actual Result: No proposals.8
316TISTUD-1292Clarify wording on iOS configuration screenThe current iOS dashboard configuration screen is a confusing regarding min/max versions of SDKs. So lets display which iOS versions are compatible with this and below that have a link that points to here : https://wiki.appcelerator.org/display/guides/Titanium+Compatibility+Matrix#TitaniumCompatibilityMatrix-iOSSDK%2FTargetiOSPlatform. Regarding the actual text, here is a proposal: An iOS SDK is missing. Titanium supports the following range of iOS versions: Min iOS version: ... Max iOS version: ... Algorithm to calculate this: if inclusive '[', leave the versions as is. if exclusive '(', subtract .1 from the last position, and add .X to the end, i.e. 5.2) => 5.1.X. 5.1.0) => 5.0.9.X (We can ignore the exclusive lower bound case at the moment: https://mail.osgi.org/pipermail/osgi-dev/2008-July/001330.html...It's unlikely we'll need it) Button ('install or update iOS SDK") Note: If you intend to develop mobile applications using an earlier version of the Titanium Mobile SDK , please consult the Titanium Compatibility Matrix. (this is the link shown above)8
317TISTUD-1294App Id causing "[ERROR] Error generating R.java from manifest"Same issues as referenced in [TIDEV-115|https://jira.appcelerator.org/browse/TIDEV-115] If you specify an app id as simply a single word, as opposed to a reverse domain format, you get an error when building for android (but not ios): {code} [ERROR] Error generating R.java from manifest {code} It's a very cryptic error and really hard to track down. If this type of app id is illegal for Android, the user needs to be notified by Titanium Studio that this is the case. Also, in case a user manually changes the app id and runs into the above error, it would be a lot more useful if the error message actually indicated that the app id was the problem. It's near impossible to figure out that the app id is the issue from that error message alone.3
318TISTUD-1295Convert wiki.appcelerator.org URLs inside Studio into redirects off studio.appcelerator.comThere are approximately 22 links inside Studio that need to be redirectable, since the exact endpoint is not known at this time. Instead, let's create a PHP page off of studio.appcelerator.com to redirect to the current location, and then we can change it as necessary.8
319TISTUD-1296Add an Android NDK path field in the Titanium PreferencesAdd a preference key, and a field editor, for the Andriod NDK path into the Android group at the Titanium preference page. 8
320TISTUD-1297Titanium MobileWeb when previewed against an internal browser shows empty content[This one happens on Windows] Create a mobile-web project (with Titanium SDK 2.0). Right click to run the 'Titanium Mobile Web Previewer'. An internal browser is opened, but the page is blank. Right-clicking and viewing the source shows lot of code there, so we have the content, yet it's not rendering. Selecting the launch (via the Run configurations) and editing it to run on external browser works fine.8
321TISTUD-1299Extra space in "Import Existing Titanium Project" error messageThis is very minor, but I noticed that the warning message in the Import Existing Titanium Project dialog appears to have an extra space (see attached).1
322TISTUD-1301Update Studio Dashboard to adjust to packaging changes for 2.0 launch The available packages in 2.0 will change names and pricing of those will be on a per-app basis. Hence a paid subscriber might have more than one package, so we can no longer display the user's plan level on the dashboard. Instead we should just display the following: * a link labeled "My Apps" pointing to the site where the user's can view his Apps * a link labeled "My Account" pointing to the user's account5
323TISTUD-1304Add DEVELOPER_DIR to environment variables when launching iOS scriptsAny time we interact with an iOS script, we need to set the DEVELOPER_DIR environment variable equal to the current Xcode location (i.e. what you would normally get from xcode-select -print-path)8
324TISTUD-1306Add support for the @module sdoc tagFollowing JSDoc as a guide, we need to add support for an @module tag. The syntax would be: {code} /** * @module {dir1/dir2/myModuleName} */ {code} This will require us to: # Add support for @module and its parameters to the SDoc parser # Add a module element to the SDoc model # Possibly store a reference of the module name to the document defining it in the JS index13
325TISTUD-1307Create sample documentation of an SDoc'ed CommonJS moduleUsing the sample snippets in the Epic containing this ticket, we will need to create documentation that shows that code being scriptdoc'ed for use as a module. We need to update the wiki pages here: * https://wiki.appcelerator.org/display/guides2/ScriptDoc+%28SDOC%29+2.0+Specification * https://wiki.appcelerator.org/display/guides2/Documenting+Your+Code+Using+ScriptDoc * https://wiki.appcelerator.org/display/guides2/ScriptDoc+tag+quick+reference 13
326TISTUD-1308Only show content assist from the current JS file and JS files it has requiredOur current JS CA implementation queries the index file for the entire project. This means that we show content assist for all JS files in a project when bringing up CA in a JS file. We now detect "require" invocations and store the required module name in the index. We also have the ability to filter index query results by a list of documents. Using these two items together, we should be able to filter JS CA by required files only. Note, that we may not want this as a default behavior for web projects. So, for the time being, we should implement this for the TiMobile nature only.20
327TISTUD-1309Change Studio to reference new platform -clean optionOnce TIMOB-7652 is complete, we'll need to switch to using that mechanism over the current one. Note, this only will work on SDKs above 2.0.1+, so if the SDK is less than that version, we need to use the old system for now.8
328TISTUD-1310Treat CommonJS modules specially when showing JS CA in a file that includes itCommonJS modules make use of a "module" object that has an "exports" property. Also, there is an "exports" global that can be used similarly to "module.exports". There are rules in how these two items influence one another as is covered in http://www.hacksparrow.com/node-js-exports-vs-module-exports.html. So, whenever we include CA from a "require"d module, we need to grab properties from the "module.exports/exports" type instead of grabbing items from its global scope.13
329TISTUD-1312TiStudio: Mobile Web - index.html file is not generated when packaging for Mobile WebSteps to reproduce: 1. Package default Titanium project for Mobile Web 2. Select "Create a new project for the Mobile Web app" 3. Open newly created Mobile Web project Actual: index.html does not appear in the packaged mobile web. See attachment for log. Expected: The packaged mobile web should contain the index.html in order to preview the app. Note: If ti.cloud module exists in the TiApp Editor, remove it from the project.5
330TISTUD-1313Comments are removed when formatting JS codeFormat the following code: {code} function uploadImage() { if(Titanium.Platform.name == 'android') { req.send({ 'aToken' : Titanium.Locale.getString('app_token_only'), 'uToken' : Titanium.App.Properties.getString('uToken'), 'fileType' : '2'}) // Only Change, Added single quote for Android 'fileObject' : blob }); } else { req.send({ 'aToken' : Titanium.Locale.getString('app_token_only'), 'uToken' : Titanium.App.Properties.getString('uToken'), 'fileType' : 2}) // Only Change, No change needed for IPhone 'fileObject' : blob }); } } {code} Expected result: Code formats with all the comments included Actual results: The '// Only Change' comments are removed during the formatting process.5
331TISTUD-1314Titanium Studio: TiApp Editor: Build Properties: Titanium SDK: if no sdk's exist, sdk list not clearedIf all SDKs are removed from the SDK folder, they remain in the TiApp Editor SDK list. Note: They are later correctly removed when the tiapp.xml file is reloaded. The tiapp.xml SDK version remains as the last available version (expected). Steps to Reproduce: 1. Create a new project. 2. Remove all SDK's from the SDK folder (i.e., Application Support/Titanium/mobilesdk/osx/2.0.0.v20120312104735). Expected Result: TiApp Editor SDK list should be cleared and the tiapp.xml SDK version should be the last available version. Actual Result: The TiApp Editor SDK list is full, and any selected versions do not change the tiapp.xml (because they do not exist). However, the list is properly cleared on tiapp.xml reload.3
332TISTUD-1315Titanium Studio: TiApp Editor: Build Properties: Titanium SDK: if sdk field is set after being blank, tiapp.xml not updatedIn the TiApp Editor, if another SDK is selected in the TiApp Editor SDK field when the field was previously blank (linked issue), the respective tiapp.xml is not updated, resulting in an invalid configuration. Steps to Reproduce: 1. Create new project. 2. Remove current SDK from SDK folder (i.e., Application Support/Titanium/mobilesdk/osx/2.0.0.v20120312104735). The TiApp Editor SDK field should be blank. 3. Select another available SDK from the TiApp Editor SDK list. 4. View the tiapp.xml. Expected Result: The SDK version in the tiapp.xml should reflect the version selected in the TiApp Editor SDK drop-down list. Actual Result: The SDK version in the tiapp.xml is whatever was last set, resulting in an invalid configuration. Note: The tiapp.xml SDK version is correctly updated if the tiapp.xml file is reloaded.2
333TISTUD-1316Titanium Studio: TiApp Editor: Build Properties: Titanium SDK: if current sdk removed from filesystem, tiapp not updatedWhen an SDK folder (i.e., Application Support/Titanium/mobilesdk/osx/2.0.0.v20120312104735) is removed from the filesystem (moved or deleted), the TiApp Editor SDK field for any open projects is set to nothing, and the tiapp.xml remains as the deleted SDK version. It is expected that the SDK field in the TiApp Editor would immediately be updated to the latest SDK, as well as the tiapp.xml. This expectation is reinforced by the fact that when the tiapp.xml file is re-opened in Studio, the TiApp Editor SDK field is set to the latest existing version of the SDK, and the tiapp.xml is updated to the latest SDK. Note: As a related consequence (linked issue), when another SDK is selected in the TiApp Editor SDK field (when the field was previously blank), the respective tiapp.xml is not updated, resulting in an invalid configuration. Note: As an edge case (linked issue), if all SDKs are removed from the SDK folder, they remain in the TiApp Editor SDK list, but they are later correctly removed when the tiapp.xml file is reloaded. The tiapp.xml SDK version remains as the last available version (expected). Steps to Reproduce: 1. Create a new project. 2. Move the selected SDK version folder from it's directory to another location. Expected Result: The TiApp Editor SDK should immediately update to the highest available SDK version, and the tiapp.xml should be updated. This would occur anyway if the tiapp.xml file were re-opened in Studio. Actual Result: The TiApp Editor SDK field is blank, the tiapp.xml SDK version remains as the one removed.5
334TISTUD-1318Filter out CommonJS modules from the tiapp.xml editor screenWe have implemented ACS module as a CommonJS module and bundled it with the Mobile SDK. We are not officially supporting CommonJS modules (yet) and we have added this support to Mobile SDK just for ACS module. Please filter out CommonJS modules from Studio UI and other tools.8
335TISTUD-1320Tabbed Template is giving a runtime error on Android Steps To Reproduce: 1. Create a new TiMob project with the Tabbed Template 2. Run on Device/Emulator 3. Click on Open New Window Actual: Runtime Error (See attachment) Expected: To open a new window3
336TISTUD-1322Confim links as part of Studio 2.0 release.Before release, we need to confirm the links listed on TISTUD-1295 are still correct.5
337TISTUD-1323Studio: Collapsing Javascript outline node crashes Ti Studio.While testing APSTUD-4178, I had Studio crash while trying to collapse a node on a Javascript outline. Nothing is reported to the log file but Lion generates the attached crash report. Steps to reproduce: 1. Open TIStudio. 2. Open the js.js file. 3. Open the html.html file. 4. Use the outline windows to expand all on the Javascript file. 5. Close the iadt function in the Javascript file. 6. Use the outline window to expand all on the HTML file. 7. Close the iadt function in the HTML file. Actual Results: Collapsing one of the two functions will cause the program to hang and then crash. Expected Results: Both outlines should collapse the function and the program should respond normally. 13
338TISTUD-1325Update dashboard to remove warning about Xcode 4.3Currently, we warn users about _not_ installing Xcode 4.3. Once that support is in, we'll need to remove that warning: {code} <h3>Note:</h3> <p>Xcode 4.3 (the most recent version which is downloadable in the Mac App Store) is not yet supported by Titanium Studio or the Mobile SDK.</p> <h3>Lion and Snow Leopard:</h3> <ol> <li>Visit developer.apple.com/downloads</li> <li>Search for Xcode 4.2</li> <li>Download and install Xcode 4.2 for your OS version:</li> </ol> <br /> <p>Once finished, return here.</p> {code} new text: {code} <h3>Lion:</h3> <ol> <li>Click the "Install" button, or open the Mac App Store application</li> <li>Search for Xcode</li> <li>Download and install Xcode 4.2</li> </ol> <h3>Snow Leopard:</h3> <ol> <li>Visit developer.apple.com/downloads (paid account required)</li> <li>Search for Xcode 4.2</li> <li>Download and install Xcode 4.2</li> </ol> <br /> <p>Once finished, return here.</p> {code} We also need to update the sdk_info links for the Xcode download to http://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=125
339TISTUD-1327Add Titanium platform support info in CA for Titanium namespacesI invoked CA on "Titanium." using Titanium 1.8.2. The results for what show up as supported platforms is pretty spotty. Most just show none. A few functions show Android, ipad and iphone. The "sub-classes' (i.e. API, Buffer) show none. Android doesn't show as only available on Android.13
340TISTUD-1329Auto-detect and set up CA platform filters for Titanium projectsWe should set up the CA platform list on Titanium mobile projects based on the deployment targets specified in the tiapp.xml itself.8
341TISTUD-1330Default the CA user-agent list to Android, iPhone, iPad and Mobileweb for Titanium Mobile natureBy default, the Titanium platforms are not set up as the default to show for Titanium Mobile project nature projects.8
342TISTUD-1332MobileWeb launches are never removed from the Debug viewLaunch a MobileWeb preview in a browser. A launch is added to the Debug view, and it's there to stay. The only way to remove it is to click it and hit 'delete'.5
343TISTUD-1333Seeing error on unrecognized type name with JSMetadataWhen running Titanium Studio 2.0.0.201203121914, I saw many entries of the following in the log: {code} !ENTRY com.aptana.editor.js 4 0 2012-03-13 16:57:37.690 !MESSAGE (Build 3.0.3.1331566826) [ERROR] Unrecognized type name in JSCAHandler#createType: JSMetadata {code} 2
344TISTUD-1334An empty version in the modules section of the tiapp.xml prevents the TiApp editor from being opened 1. Have a module directive in the tiapp.xml without a 'version=...' attribute. 2. Open the TiApp editor Result: A null pointer exception prevents it from getting opened. 3
345TISTUD-1335Content Assist: JavaScript class objects generate non-static proposalsJavaScript objects such as Array, Boolean, Date, Number, and RegExp generate Content Assist proposals that are not static methods. The methods are generated correctly in Eclipse. Screenshot attached. For instance, String.charCodeAt is proposed when it is an instance method, and will not work on the String object. Steps to Reproduce: 1. Create a new project. 2. In app.js, type a JavaScript class object followed by a dot, activate Content Assist. Expected Result: Static methods and/or methods that work should be proposed. Actual Result: Instance methods are proposed (which will not work), along with many other generic properties which are questionable.8
346TISTUD-1336Content Assist: String.fromCharCode: no proposal generatedUsing Content Assist, 'String.' does not propose the method 'fromCharCode' (though it does work when run). However, the method is proposed in Eclipse. The method is also erroneously proposed in string instances (and the method does not work, as expected) (linked issue). Steps to Reproduce: 1. Create a new project. 2. In app.js, type String. and activate Content Assist. Expected Result: String.fromCharCode should be proposed. Actual Result: Method is not proposed.5
347TISTUD-1337Content Assist: string instance.fromCharCode: static proposal erroneously generatedWhen a String instance invokes Content Assist, 'fromCharCode' is proposed when it is a static method and will not work on an instance. Steps to Reproduce: 1. Create a new project. 2. Type: {code:title=app.js} // var x = "xxx".; // {code} 3. Place the cursor after the dot and activate Content Assist. Expected Result: "xxx".fromCharCode should not be proposed. Actual Result: fromCharCode is proposed, though it will not work, and is a static String method.5
348TISTUD-1338Content Assist: string instance.charCodeAt: proposal missingString instance method: charCodeAt not proposed in Content Assist, though it works at runtime. Steps to Reproduce: 1. Create a new project, type: {code:title=app.js} // var x = "xxx".; // {code} 2. Activate Content Assist after the string instance to generate proposals for "xxx".-> Expected Result: charCodeAt should be proposed. Actual Result: charCodeAt not proposed, but does run correctly.5
349TISTUD-1339Tititanium Studio: Mobile Web module supportTitantium Studio needs to support creating and compiling Mobile Web modules. Creating a new Mobile Web module is identical to iphone and android, except you specify --platform=mobileweb and you don't need to specific the androidsdk. {code} python /Library/Application\ Support/Titanium/mobilesdk/osx/2.0.0/titanium.py create --platform=mobileweb --type=module --dir=. --name=mymodule --id=mymodule {code} Inside the generated module directory is the {{build.py}}. Simply run that and it'll generate a {{mymodule-mobileweb-0.1.zip}} file. During compilation, it will create a {{build}} directory. This directory can be nuked when doing a clean. Mobile Web module configuration is set in the timodule.xml (similar to Android). We are still nailing down the various settings that will be available in the timodule.xml. 8
350TISTUD-1341Studio: SDK Update release note view has no "back" capability Description: While testing the new feature that provides users with a view of the release notes, I clicked a link which opened JIRA in the same view. There was no option to return to the release notes, so I was forced to close the view. Steps to reproduce: 1) Install the latest Studio 2.0 version 2) Remove SDK version 1.8.2 if you have it installed (and any later versions) from your Titanium folder 3) Launch Studio and click the yellow "updates available" box or use the help>Check for titanium SDK updates option 4) When the "Titanium SDK Upgrade Available" window appears, click one of the JIRA ticket links Result: JIRA displayed, with no way to return to release notes Expected: Link opens in new window or method of navigation available3
351TISTUD-1342Studio: SDK Update release note view link for "Titanium mobile reference documentation for 1.8.2" fails with errorDescription: While testing the new feature that provides users with a view of the release notes, I clicked the link for "Titanium mobile reference documentation for 1.8.2". This failed with an error. Steps to reproduce: 1) Install the latest Studio 2.0 version 2) Remove SDK version 1.8.2 if you have it installed (and any later versions) from your Titanium folder 3) Launch Studio and click the yellow "updates available" box or use the help>Check for titanium SDK updates option 4) When the "Titanium SDK Upgrade Available" window appears, click the "Titanium mobile reference documentation for 1.8.2" link Result: Failure with an error, see attached image Expected: Link opens3
352TISTUD-1343Studio: SDK Update release note view will not come up if dismissed and then help>Check for titanium sdk updates option is usedDescription: While testing the new feature that provides users with a view of the release notes, I clicked a link which opened JIRA in the same view. There was no option to return to the release notes, so I was forced to close the view. Steps to reproduce: 1) Install the latest Studio 2.0 version 2) Remove SDK version 1.8.2 if you have it installed (and any later versions) from your Titanium folder 3) Launch Studio and click the yellow "updates available" box 4) When the "Titanium SDK Upgrade Available" window appears, select "remind me later" 5) Use the help>Check for titanium SDK updates option Result: SDK install begin with no preview of the release notes Expected: Release notes view always presented when installing SDK update5
353TISTUD-1345Remove 2.1 as Android SDKs requirement for Android developmentDescription: On one of our newer installations of Studio, the Android SDK is properly configured to support 1.8.0+ SDKs. The Dashboard configuration page shows an incorrectly configured Android SDK. In comparing the listed text to the actual configuration: {code} Android configuration details. One or more pieces are missing from the Android SDK. It may be that the Android SDK is already installed and Titanium Studio cannot locate the directory, or it may be that some additional components need to be installed. Items required: An Android SDK is missing. Titanium requires Android platforms 2.1.* and 2.2.* Add-Ons Google APIs 7, Google APIs 8 {code} We were missing the 2.1 SDK. The result is that imported samples could be run as expected in the emulator, but no project could have the deployment target set during creation of afterward. The tooltip text lists similar requirements, see attached image. Steps to reproduce: 1) Configure a system with ANY supported SDK 1.8.0+ Android SDK (Android 2.2 - 4.0) 2) Launch Studio, add the Android SDK path in the studio preferences 3) On the dashboard, check the configuration utility's report on the usability of the Android SDK Result: If you don't have both 2.1 and 2.2 SDKs, the configuration is determined to be incorrect Expected: Only 2.2 is installed (and required) by default5
354TISTUD-1346Studio: Edit this bundle from Commands/Titanium Mobile gives an ErrorEdit this bundle from Commands/Titanium Mobile gives an Error "Grabbing bundle Titanium Mobile..has encountered a problem Git Clone failed. screen shot is attached log file is attached Steps to reproduce : 1: click on Commands 2: Click on Titanium Mobile 3: Click on Edit the bundle Actual result : Error Message Grabbing bundle Titanium Mobile ..has encountered a problem Expected results : should be able to Edit the bundle 3
355TISTUD-1347Titanium Studio: Clean fails when iPhone Simulator is still runningWhen doing a clean on a mac when the iPhone simulator is running causes this: {code} !ENTRY org.eclipse.core.resources 4 566 2012-03-14 17:52:23.632 !MESSAGE Errors occurred during the build. !SUBENTRY 1 com.appcelerator.titanium.core 4 75 2012-03-14 17:52:23.632 !MESSAGE Errors running builder 'Titanium Builder' on project 'timob-5698-maps'. !STACK 1 org.eclipse.core.internal.resources.ResourceException: A resource already exists on disk '/Volumes/ultima/projects/titanium/timob-5698-maps/build'. org.eclipse.core.internal.resources.Folder.assertCreateRequirements(Folder.java:47) org.eclipse.core.internal.resources.Folder.create(Folder.java:95) org.eclipse.core.internal.resources.Folder.create(Folder.java:125) com.appcelerator.titanium.core.TitaniumProjectBuilder.clean(TitaniumProjectBuilder.java:51) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:730) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:394) org.eclipse.core.internal.resources.Project$1.run(Project.java:618) org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597) org.eclipse.core.internal.resources.Project.build(Project.java:114) org.eclipse.ui.internal.ide.dialogs.CleanDialog.doClean(CleanDialog.java:310) org.eclipse.ui.internal.ide.dialogs.CleanDialog$1.runInWorkspace(CleanDialog.java:151) org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) !SUBENTRY 2 org.eclipse.core.resources 4 272 2012-03-14 17:52:23.632 !MESSAGE A resource already exists on disk '/Volumes/ultima/projects/titanium/timob-5698-maps/build'. !SUBENTRY 1 org.eclipse.core.resources 4 272 2012-03-14 17:52:23.632 !MESSAGE A resource already exists on disk '/Volumes/ultima/projects/titanium/timob-5698-maps/build'. {code}5
356TISTUD-1348Studio: Cannot open tiapp.xml from FTP source.Trying to open the Tiapp.xml from an FTP server returns this error: {noformat} "Could not open the editor: Expected a tiapp.xml path and got '/var/folders/yl/gg2bc1h9767cchr1wrmrhkjr0000gp/T/aptanavfs706594519621445678tiapp.xml' {noformat} This caused the attached logfile to be generated in the Titanium log. Steps to reproduce: 1. Create a Titainum Mobile project. 2. Upload the Mobile project to an FTP server. 3. Attempt to open the tiapp.xml Actual result: An editor opens showing the above error. Expected result: You should be able to open the tiapp.xml, but it will be treated as an "external" tiapp.xml, so some editing options are disabled.5
357TISTUD-1350Read Titanium Mobile SDK dependencies file to determine which Android SDKs need to be installedSince 1.8.0.1, the android platform now has a dependency file that shows which Android platform versions need to be installed: {code} $ cat mobilesdk/osx/2.0.0/android/dependency.json { "min_api_level": "8", "dependencies": { "accelerometer":[], "analytics":[], "android":[], "app":[], "calendar":["android"], "contacts":[], "database":[], "facebook":[], "filesystem":[], "gesture":["ui"], "geolocation":[], "locale":[], "map":[], "media":["filesystem"], "network":["xml"], "platform":[], "ui":["filesystem","media"], "utils":[], "xml":[] }, "required": ["analytics","android","app","ui","locale"], "libraries": { "android":["jaxen-1.1.1.jar","ti-commons-codec-1.3.jar","kroll-common.jar","titanium.jar"], "xml":["jaxen-1.1.1.jar"], "ui":["android-support-v4.jar"], "network":["thirdparty.jar"] }, "runtimes": { "v8":["kroll-v8.jar"], "rhino":["kroll-rhino.jar","js.jar"], "defaultRuntime":"v8" } } {code} Suggest we use this alongside the requirements in the sdk_info.json. The sdk_info suggests a default set of SDKs we encourage all users to install, and we use the dependencies file to confirm we aren't missing something.13
358TISTUD-1351Update Titanium Studio Run/Debug/Publish wizard/dialog bannersThe wizard banners should be consistent with the action icons * Run on iOS Device Wizard * iOS Distribution Wizard * Android Distribution Wizard * Mobile Web packaging Wizard See attached request document5
359TISTUD-1352Studio: Insert line below current returned divide by zero error.While testing APSTUD-3553 I went to edit an file that I had opened from the FTP server. When I tried to add a second line, the machine hung and gave me a / by zero error and told me to check the log. Attached is the photo of the error and below is the event from the log. {noformat} !ENTRY org.eclipse.ui 4 4 2012-03-14 13:15:36.553 !MESSAGE "Insert Line Below Current Line" did not complete normally. Please see the log for more information. !ENTRY org.eclipse.ui 4 0 2012-03-14 13:15:36.554 !MESSAGE / by zero !STACK 0 java.lang.ArithmeticException: / by zero com.aptana.editor.php.internal.ui.editor.formatting.AbstractPHPAutoEditStrategy.getIndentationString(AbstractPHPAutoEditStrategy.java:690) com.aptana.editor.php.internal.ui.editor.formatting.AbstractPHPAutoEditStrategy.getIndentationAtOffset(AbstractPHPAutoEditStrategy.java:607) com.aptana.editor.php.internal.ui.editor.formatting.PHPAutoIndentStrategy.customizeCloseCurly(PHPAutoIndentStrategy.java:405) com.aptana.editor.php.internal.ui.editor.formatting.PHPAutoIndentStrategy.innerCustomizeDocumentCommand(PHPAutoIndentStrategy.java:194) com.aptana.editor.php.internal.ui.editor.formatting.PHPAutoIndentStrategy.customizeDocumentCommand(PHPAutoIndentStrategy.java:58) org.eclipse.jface.text.TextViewer.customizeDocumentCommand(TextViewer.java:3745) org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3782) org.eclipse.jface.text.source.projection.ProjectionViewer.handleVerifyEvent(ProjectionViewer.java:1277) org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:435) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:265) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7148) org.eclipse.swt.custom.StyledText.replaceTextRange(StyledText.java:7762) org.eclipse.ui.texteditor.InsertLineAction.run(InsertLineAction.java:144) org.eclipse.jface.action.Action.runWithEvent(Action.java:498) org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) org.eclipse.swt.widgets.Control.traverse(Control.java:4858) org.eclipse.swt.widgets.Control.translateTraversal(Control.java:4836) org.eclipse.swt.widgets.Composite.translateTraversal(Composite.java:1542) org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3016) org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734) org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743) org.eclipse.swt.widgets.Control.windowProc(Control.java:5016) org.eclipse.swt.widgets.Display.windowProc(Display.java:4408) org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422) org.eclipse.swt.widgets.Display.eventProc(Display.java:1245) org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) {noformat}5
360TISTUD-1353iOS: Clean needs to call `xcodebuild clean` to remove stale filesThe {{Project->Clean}} command in Studio needs to call out to {{xcodebuild}} when cleaning iOS targets in order to ensure that stale information is removed. The exact command that needs to be performed is: {code} xcodebuild -project $\{PROJECT_DIR\}/build/iphone/$\{PROJECT_NAME\}.xcodeproj -sdk iphoneos -alltargets clean xcodebuild -project $\{PROJECT_DIR\}/build/iphone/$\{PROJECT_NAME\}.xcodeproj -sdk iphonesimulator -alltargets clean {code} We need to call this _before_ deleting the iPhone folder. This bug is the Studio version of TIMOB-8025. Please get cbarber to test and resolve that ticket when complete.5
361TISTUD-1354Newly created apps are not appearing on the Apps page.New apps are not appearing on the https://my.appcelerator.com/apps/ page. I'm currently using Titanium Studio, build: 2.0.0.201203152033. The account I've discovered this on is phillis@shastaqa.com and the app guid of one of the missing apps is 75629f0e-def5-45f3-b8be-92b840eec93d (CFish4). I've checked the admin system and the app is not associated with the account.3
362TISTUD-1357app-track called thousands of times (started today)We're getting thousands of repeated calls to app-track from Titanium Studion 2.0 and Aptana 3.1. This started today, and his happening sporadically (once an hour or so) so it maybe a newly introduced bug. Looking at our logs, it looks like repeated calls for portal.samples.getSamples. Below is one mid that made the same call over 6000 times in the last hour. % grep e5254afa-f674-ea48-e1c7-69b86c6a62be des* | grep getSamples | wc -l 6831 {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"17ef49c6-52ea-f56a-4248-603f-ae0ad370","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"45e6f73a-9238-30aa-2bdf-60a7-931fd787","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"08597ce2-defe-5631-5671-1ac2-d5a2cd79","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"fba34374-83b6-6e1c-4f06-3011-d2551211","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"e1261085-61ce-b302-5cfe-f846-94c0a68a","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"f47c30f9-37b7-eeaa-090a-3fc0-c71047cf","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"a0e66d11-60d8-fb5a-315f-33cc-84a9bdc3","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"91ede117-b2fb-35a6-77b6-6ec3-40dc5580","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"fe19d99e-542e-5d26-5ca0-5dbc-d49bc060","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"06dca5b8-9a0e-e606-780f-73a9-46a27b71","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"fb019521-7af3-43f5-84b6-e5f6-a4ae2e8e","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"218e2fcb-3ca4-a4ab-d5b0-c9c9-5ee494a5","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540","ip":"10.0.1.3","id":"1fa0b6bb-d023-34c0-f6b7-2b5d-c8a7ba93","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} {"event":"portal.samples.getSamples","type":"portal","sid":"69d66b6f3be7ca8bde1f1567ed63f4368e67846c","guid":"9f5c585e-b9e6-40b4-8ae9-c9d75cf32884","mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be","app_id":"com.appcelerator.titanium_developer_2","app_name":"Titanium Studio","app_version":"2.0.0.1327441212","mac_addr":"00:23:32:de:0f:a8","platform":"osx","version":"1.1.0","os":"Mac OS X","ostype":"32bit","osver":"10.7.3","osarch":"i386","oscpu":"2","un":"gw2001jp@gmail.com","ver":"2","tz":"-540"^C,"ip":"10.0.1.3","id":"aad3e846-8987-7f6d-a81b-6d8d-70914595","server_ts":"2012-03-19T10:21:34-07:00","server_mid":"e5254afa-f674-ea48-e1c7-69b86c6a62be"} 8
363TISTUD-1358iOS Preference page should utilize vertical scroll bars on tablesIf you have a long list of certificates or provisioning profiles, the preference dialog gets very tall. We need to specify a standard height for the table so the vertical scroll bars are utilized3
364TISTUD-1363Application "null" has been packaged message when starting a serverStumbled into this one when validating APSTUD-3664. # Create a new Server. # Insert the start and stop commands into the server-dialog. In my case, I tried that with both xampp commands, and with apache commands (same result). # Start the server from the Servers view. A message appears and inform you that the server is running, and press any key to continue. Press a key... # A message dialog appears and notify something about packaging. # The servers view displays the server as stopped, while it's still running. # When staring the server again, you get a message that says that the server is running, and press any key to continue. Do that, and you get the packaging dialog again. 5
365TISTUD-1365"Source not found" while iOS debugging Steps to reproduce: # Create a new Titanium Mobile project # Put a breakpoint on one of the "var" declarations in app.js # Launch the iOS simulator # When debugging stops on the breakpoint, note the error as shown in the screenshot8
366TISTUD-1366Only check apiversion tag in manifest for Android modulesiPhone modules are displayed as not supported when the Titanium SDK version is set to version 1.8.0.1 or newer. This appears to be due to the fact that the manifest file for iPhone modules currently do not include the 'apiversion: 2' entry. The 'apiversion' entry was added for Android modules in Titanium SDK version 1.8.0.1 to indicate that the internal module API had changed. This change only impacted Android modules and it should be checked for Android modules because older versions of Android modules will not work with Titanium SDK version 1.8.0.1 or newer (and vice-versa). This is not the case for iPhone modules (currently). The check for the 'apiversion' tag should ONLY be done for Android modules. It should be ignored for iPhone modules. To test: # Create a new Titanium Mobile project # Open up tiapp.xml and add a module to the project using the modules panel (I used ti.greystripe). Note the module appears active # Edit the module manifest file to raise the apiversion to something like "3" in the iOS and Android (current maximum version is 2 for 1.8/2.0) # Save tapp.xml and restart Studio. Note that the module now appears greyed out, but should be available for iOS 5
367TISTUD-1367Studio: Clean single project does not clean, does not log any errors when Mobile Web folder is emptyDescription: While testing, we tried to clean a project using the single project clean option. Nothing happened, both the Android and iPhone folder contents were untouched. Nothing was logged even when I included the debug single component setting. Only when I previewed in browser for mobile web, and then cleaned did the project actually clean Steps to reproduce: 1) Create a project with studio using all deployment targets 2) Build the project for iOS and Android to get some content in the build folders 3) Choose Project > Clean and select only the project you created 4) Check the contents of the build folders Result: The contents of the build folders remain - no clean occurred Expected: The project build folders are emptied Note: I was able to clean only after launching a mobile web preview in Browser. Then the clean functioned as expected.8
368TISTUD-1368Studio: Kitchen Sink Nook not available in samplesDescription: The sample Kitchen Sink Nook is not available on Linux systems. Steps to reproduce: 1) Install Titanium Studio, build: 2.0.0.v20120320000301 on a linux system 2) Navigate to the samples Result: Kitchen Sink Nook is not available Expected: The sample for Kitchen Sink Nook should be available on Linux3
369TISTUD-1369Studio: Titanium Studio Samples: Incorrect message shown at top of the New sample project window while importing the sampleDescription: While importing a sample application, an incorrect message is shown at the top of New Sample Project pop up window that Files already exist in your destination directory. They will be deleted if you continue. Steps to Reproduce: 1. Open Titanium Studio 2. Use a workspace that does not have the folder for the sample to be imported 3. Go to samples section/dashboard, select a sample and import sample as project 4. A pop window for New Sample Project opens up Actual: A message is shown at the top as "Files already exist in your destination directory. They will be deleted if you continue." Expected: The message should not be shown as there does not already exist files for the sample being imported 5
370TISTUD-1370Remove extraneous "No file system is defined for scheme: git" messages# Create a new rubbly file with a link like git:// in it (could be a github repo URL) # Hold down the Ctrl key and hover over the link # See the item below in the log file Suggest just not writing out the message for protocols we don't understand or handle. {code} (Build 3.0.3.qualifier) [ERROR] No file system is defined for scheme: git org.eclipse.core.runtime.CoreException: No file system is defined for scheme: git org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) org.eclipse.core.internal.filesystem.Policy.error(Policy.java:50) org.eclipse.core.internal.filesystem.InternalFileSystemCore.getFileSystem(InternalFileSystemCore.java:65) org.eclipse.core.filesystem.EFS.getFileSystem(EFS.java:430) com.aptana.editor.common.resolver.URIResolver.getFileStore(URIResolver.java:76) com.aptana.editor.common.resolver.URIResolver.resolveURI(URIResolver.java:119) com.aptana.editor.common.text.hyperlink.HyperlinkDetector.detectHyperlinks(HyperlinkDetector.java:81) org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:80) org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:286) org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:258) org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:462) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:211) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3971) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.aptana.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) org.eclipse.equinox.launcher.Main.main(Main.java:1386) {code}3
371TISTUD-1373ModulesTable - Replace the iPhone and iPad columns with a single iOS columnThe Modules table in the TiApp editor should not display two platforms for iPhone and iPad. It should only display one column for iOS.8
372TISTUD-1376Titanium Studio: Samples: RSS Reader and Geocoder: reimported projects rename and disappear on second installWhen RSS Reader or Geocoder are installed from the dashboard/samples pane, deleted (without filesystem removal), and reimported into studio, the projects import with a different project name: Sample.Mapping and Sample.RSS instead of Geocoder and RSS Reader. If the user attempts to reinstall the sample from the dashboard/samples pane, there will be a fatal git dialog box and the project will disappear from the filesystem. Steps to Reproduce: 1. Install RSS Reader or Geocoder from the samples pane or dashboard links. 2. Delete project from workspace without removing it from the filesystem. 3. Re-import project back into studio from workspace. Expected Result: Project should have same name as before. Actual Result: Project has different name. 4. Install the project again from the samples pane or dashboard links. 5. Press ok, accept the install. Expected Result: Project should be overwritten and a new version of the sample should take its place. Actual Result: Git warning dialog, followed by automatic deletion of project from the OS.8
373TISTUD-1377Unable to locate module ti.cloud when launching Mobile Web applicationSummary: When a single window template application is selected to be run on Mobile Web Preview on Browser and Mobile Web Preview on Emulator, an error is shown Steps to Reproduce: 1. Create a new app, with template as Single Windows 2. Click on the run button and select the option for Mobile Web Preview on Browser or Mobile Web Preview on Emulator An error is shown Unable to generate Mobile Web App. Error: [INFO] Titanium Mobile Web Compiler v2.0.0.v20120320000301 [INFO] Compiling Mobile Web project "SingleWindow" [development] [INFO] Copying /Library/Application Support/Titanium/mobilesdk/osx/2.0.0.v20120320000301/mobileweb/themes... [INFO] Copying /Users/ingo/Documents/Aptana Studio 3 Workspace/SingleWindow/Resources... [INFO] Copying /Users/ingo/Documents/Aptana Studio 3 Workspace/SingleWindow/Resources/mobileweb... [INFO] Copying /Library/Application Support/Titanium/mobilesdk/osx/2.0.0.v20120320000301/mobileweb/titanium... [INFO] Scanning project for dependencies... [INFO] Searching for all required modules... [INFO] Locating Ti+ modules... [ERROR] Unable to find Ti+ module "ti.cloud", v2.0 It appears that the platform="commonjs" is being left off the module definition, which then causes this issue.5
374TISTUD-1378Add iOS Ad Hoc package launch configuration that produces an ipa/appCurrently, production builds of iOS targeted projects produce an archived XCode project. For ad hoc distribution, users are expected to take the generated ipa/app and distribute it accordingly, so they would have to go into XCode to generate the output. To simplify the distribution process and reduce the need for users to mess with XCode, we should provide a separate Ad Hoc distribution launch configuration and wizard The Ad hoc distribution process with be similar to the app store distribution with the following differences: -Only ad hoc distribution certificates/profiles are displayed -Specify either app or ipa output -Specify a location for the output 8
375TISTUD-1380Studio: Tiapp.xml editor gets out of sync and warns of changes in filesystem.Description: WHile testing, Natalie noticed that her changes to Tiapp (for the SDK version) were not being reflected, and subsequent builds were still using the previous SDK setting. We investigated, and noted that manipulating the pop-up for the SDK version would warn that the file had changed on the file system,and did she want to sync. With Shalom running us through some tests we determined a few things, most disconcerting is the fact that the Tiapp XML view had a different SDK listed than showed in the Overview. This explained the issue with building with the wrong SDK. We still are investigating why the TiApp.xml is showing as out of sync from the file system perspective. Steps to reproduce: 1) Install and run Studio 2) Create a project and build for device 3) Open TiApp.xml editor and change SDK then save 4) Continue to change SDK and save until you get warned about file system sync Result: After a few moments you should see the sync warning. You may also notice if you examine the XML that the SDK setting is not matching. Expected: No sync warnings simply manipulating the tiapp. No SDK setting mismatch.8
376TISTUD-1381Unable to preview mobile web application when launching preview of index.html pageSteps to reproduce: 1. Create a Single Window project from template wizard 2. Select the application in Project Explorer 3. Choose Publish > Package - Mobile Web 4. Select "Create a new Project" and give the project a unique name 5. Complete the wizard 6. Find the new project in the workspace 7. Double-click on the index.html file to open up the main page 8. Click on the preview button in the header Actual: The app is stuck at the splash screen Expected: The mobile web app should work like a regular Single Window app on the phone. Note: The default TiMob project packaged for mobile web works as expected i.e. it does not get stuck at the splash screen. I believe the issue here is that we are launching the preview for the mobile web application from a file URL, and evidently it does not work that way. It is probably easier to extend Studio than to fix this behavior in Mobile Web. Suggested fix: * When creating a new project as part of the mobile web packaging wizard, create a new default server for use in preview and associate it with that project.8
377TISTUD-1382Titanium Studio: Samples: samples pane and samples dashboard links intermittently disappearWhen using studio, the samples pane and samples dashboard links intermittently disappear. They exist on launch, disappear once in a while, then re-appear on studio restart. Has occurred twice in a few hours. Studio log attached. Steps to Reproduce: 1. Start studio. 2. Use studio for hours. Expected Result: Samples pane should contain samples, dashboard samples links should exist. Actual Result: Once in a while, the samples disappear.3
378TISTUD-1383Widget is disposed related to SamplesView.run()Noticed this in a log file. Add reproduction steps if you can figure them out {code} !ENTRY org.eclipse.jface 4 0 2012-03-16 10:59:55.337 !MESSAGE Unhandled event loop exception during blocked modal context. !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed) org.eclipse.swt.SWT.error(SWT.java:4282) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173) org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388) org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507) org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275) com.appcelerator.titanium.rcp.IDEWorkbenchAdvisor.disconnectFromWorkspace(IDEWorkbenchAdvisor.java:499) com.appcelerator.titanium.rcp.IDEWorkbenchAdvisor.postShutdown(IDEWorkbenchAdvisor.java:407) org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:3023) org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1118) org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1035) org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1279) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.ui.internal.Workbench.close(Workbench.java:1277) org.eclipse.ui.internal.Workbench.close(Workbench.java:1249) com.appcelerator.titanium.core.TitaniumUserManager.signOut(TitaniumUserManager.java:172) com.appcelerator.titanium.ui.internal.TitaniumHomeControlContribution.signOut(TitaniumHomeControlContribution.java:110) com.appcelerator.titanium.ui.internal.TitaniumHomeControlContribution.access$2(TitaniumHomeControlContribution.java:104) com.appcelerator.titanium.ui.internal.TitaniumHomeControlContribution$2.widgetSelected(TitaniumHomeControlContribution.java:86) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) org.eclipse.swt.widgets.Widget.sendSelectionEvent(Widget.java:1094) org.eclipse.swt.widgets.Link.wmNotifyChild(Link.java:1071) org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534) org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896) org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086) org.eclipse.swt.widgets.Control.windowProc(Control.java:4584) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2425) org.eclipse.swt.widgets.Link.callWindowProc(Link.java:172) org.eclipse.swt.widgets.Widget.wmLButtonUp(Widget.java:2057) org.eclipse.swt.widgets.Control.WM_LBUTTONUP(Control.java:4912) org.eclipse.swt.widgets.Link.WM_LBUTTONUP(Link.java:909) org.eclipse.swt.widgets.Control.windowProc(Control.java:4565) org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2531) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: org.eclipse.swt.SWTException: Widget is disposed org.eclipse.swt.SWT.error(SWT.java:4282) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.SWT.error(SWT.java:4168) org.eclipse.swt.widgets.Widget.error(Widget.java:468) org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340) org.eclipse.swt.widgets.Tree.getSelection(Tree.java:3402) org.eclipse.jface.viewers.TreeViewer.getSelection(TreeViewer.java:256) org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:344) org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2521) org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2944) org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1450) org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403) org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404) org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1506) org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537) org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1465) com.aptana.samples.ui.views.SamplesView$1$1.run(SamplesView.java:63) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) ... 61 more {code}2
379TISTUD-1384Clicking "Publish" multiple times when package application for distribution on Mobile Web results in an errorSummary: When an application is selected to be packaged for distribution on Mobile Web, an error is shown Steps to Reproduce: 1. Create a new project 2. Click on the Publish button and select the option for Package Mobile Web 3. In the pop up window, select the third option for Create a new project for the new mobile web app 4. Put in a project name and click on Publish (do it at least 2x quickly) A packaging error is shown with the message "Failed to package project" 8
380TISTUD-1392Unable to package mobile web to a project with a space in the name# Create a new project # Click on the Publish button and select the option for Package Mobile Web # In the pop up window, select the third option for Create a new project for the new mobile web app # Put in a project name with a space (I used "test 4" and click on Publish It appears to work, but ultimately fails, as shown in attached screenshot See this in details view: {code} Creation Problems Invalid project description. OK /Users/ingo/Documents/Titanium Studio Workspace 3/test overlaps the location of another project: 'test ' {code}5
381TISTUD-1393Launching a mobile web preview resets the default web server root# Create a new Mobile Web project # Launch it in the browser preview # Package it into a new project # Press the Firefox - Internal Server Run configuration # Get "Launch URL is not defined" as a popup error Looking into the code, it appears that the currently running internal server now has a project root under /build/mobileweb for the last project, for the URL mapping fails.13
382TISTUD-1395Running package operations (on multiple platforms) on the same project multiple times causes errorsSince package operations are now public launch configurations, you can run multiple configurations in quick succession. This will cause errors since the package operations operate on the build directory. We should queue up the launch configurations so they are sequential, scheduling launches based on the project. Steps: 1. Create a mobile project with iOS, Android and mobile web deployment targets 2. Perform project package for iOS 3. Perform project package for android 4. Perform project package for mobile web 5. From the run shortcut, re-run 2/3/4 operations multiple times Expected: Each package operation completes successfully Actual: Error occurs8
383TISTUD-1396Auto-select API version of Android SDK if availableWhen the Android SDK is installed, auto-select (in Preferences > Titanium > Default Android SDK) the "Google APIs..." version of the correct Android SDK version for the installed Titanium SDK version. This will make it easier for new users installing Titanium for the first time, who are unaware of the difference between the standard and enhanced Android SDK versions. Note that this request may be somewhat related to TISTUD-1350 when implemented.5
384TISTUD-1401Add Xcode Version ManagerCurrently, if a user has both Xcode 4.2 and Xcode 4.3 installed, they would have to manually execute xcode-select to switch the Xcode version used for iOS operations. I propose we do the following -Update the Titanium preferences for IOS SDK home to be a combo box -The combo box contains a list of detected Xcode locations -Upon applying the changes, we call the sudo xcode-select -switch command 13
385TISTUD-1402ACS keys cut off when generated in TiApp EditorWhen enabling the ACS on Windows, the ACS labels at the TiApp cloud section get cut off from the bottom. (see screenshot) It's visible only when enabling ACS. When re-opening the TiApp editor, it looks fine.3
386TISTUD-1404Add description to iOS SDK location to describe how to run with different Xcode versionsFor Xcode4.3, the xcode-select command must be run to ensure properly function of the iOS platform scripts. Running the command can be foreign and difficult for some users. We should display a informative description and link on how to run xcode-select. There should be a linked wiki/doc page that describes in further detail on how to run the command. The description should be included in the iOS section of the Titanium preferences. It should state: "If the desired Xcode installation is not displayed, you will need to run "sudo xcode-select <xcode_folder_path>" to target a specific installation. <a>More details</a>"8
387TISTUD-1407Add platform attribute to module element(s)When a module that supports only a single platform is added to a project using the new modules table, the module element is added to tiapp.xml but it is missing the platform tag. Steps to reproduce: 1. Create a new mobile application project -- use defaults of all application target types 2. Click on the button to add a new module (+) 3. Select a module that is only available on one platform (e.g. ti.push) 4. Save the project 5. Attempt to run the application in the iPhone simulator 6. Build should fail with an error indicating that the ti.push module is missing Without the 'platform' tag on the module entry, the build script will attempt to locate the module for all application targets. The module element needs to include the 'platform' tag so that the module is only searched for when building for that target. For example, 'platform="android"'. Also, without the 'platform' tag the module displays in the Modules table with its version number available on all platforms -- which is incorrect since it is only available on the single platform. 8
388TISTUD-1508Console view doesn't use background color when already open and a new process is launchedSee screencast at: http://dl.dropbox.com/u/11524266/tistudio.mov He has the console open with some prior output from a previous run of an app (properly colored), then he launches a new run from the App Explorer, a new console page is added that has the theme fg colors, but stays with a white bg. When he clicks on the console to focus it, it gets the black bg applied.8
389TISTUD-1410Add URL bar to integrated mobileweb previewThe integrated web preview in TiStudio does not expose the local URL to which the preview pane is connected. You can see it in the title bar of TiStudio itself, but its not copyable. It would be helpful to have the URL bar shown above mobileweb preview panes. 3
390TISTUD-1412Add ability to read packaged rubles from the Titanium SDK directoryAs we move towards having per-SDK-version samples and templates, it makes sense that those items would be contributed from the platform itself. Propose a file structure like: /Application/Library Support/titanium/mobilesdk/<platform>/<version>/studio or we could put them in modules: /Application/Library Support/titanium/modules/studio/<version> Studio would need to inspect the SDK directory and read from a crafted set of directories for Rubles in specific locations.13
391TISTUD-1414Auto-configure browser list to contain all installed browsers on WindowsDescription: While attempting to set a browser before running a mobile web preview, I noticed that the list of browsers did not include any specific browsers except firefox. It would be ideal to populate the list of installed browsers rather than have the user populate the list manually. Steps to reproduce: 1) Install Studio 2) Create project with mobile web target 3) Run in browser 4) Select "run configurations" and use the browser selection section Result: Firefox is the only 3rd-party browser listed although I have Chrome, Firefox, and Safari Expected: Firefox not displayed, or all installed browsers displayed 20
392TISTUD-1415Update Studio to ship with Android tools r17 by defaultUpdate the sdk_info file to point to the newest r17 version of the tools. To test, remove your Android folder and start the configuration process on Window, Linux and mac. It should install r17 of the tooling.3
393TISTUD-1416Titanium Mobile Module project wizard overwrites default manifest contentClose to a blocker, but you can get around it # Create a new mobile module project for iOS. Fill in any default values # Go through the wizard # Attempt to package the project. You will get an error of "missing required manifest key 'name'" Inspecting the manifest file, you should have something like: {code} # # this is your module manifest and used by Titanium # during compilation, packaging, distribution, etc. # version: 0.1 apiversion: 2 description: My module author: Your Name license: Specify your license copyright: Copyright (c) 2012 by Your Company # these should not be edited name: testmodule4 moduleid: asdasd.asdas guid: 60a2774b-54c6-47d2-9889-d38698d3c0d3 platform: iphone minsdk: 2.0.0.v20120322190311 {code} but instead, you get: {code} #appname: testModule #publisher: ingo #url: #image: appicon.png #appid: com.test #desc: undefined #type: module #guid: e292c47a-1210-46e9-9721-4444553793dd {code} We need to preserve the contents of the manifest file and only change elements as necessary. BasicNewTitaniumProject.generateInitialManifest() is not useful in the context of module generation. It may also cause problems with other templates too, as it seems we are completely overwriting the original manifest. We should append/modify as necessary. 8
394TISTUD-1417Convert release notes to use new URLOnce the release notes are in the new location, we may need to update the code that parses them, and modify the redirect off of studio.appcelerator.com. See TitaniumSDKReleaseNotesDialog.5
395TISTUD-1419"Installed JREs" page missing# Create a new Android Mobile Module project # It should create the project, but have the warning "Unbound classpath container: 'Default System Library' in project 'testAndroid'" # Attempting to fix that, it seems you should edit your Installed JREs preference page. However, the Standalone version of Studio doesn't have it, unlike the version of Eclipse (see screenshots). # Attempting to install the JDT tools via the notes on this page (though substituting Indigo as a version) does not appear to work as you get conflicting dependency errors. It seems we either need to remove the JDT items, or we're not fully shipping the full set. Suggested fixes: * Do not ship optional components (i.e. JDT) * Remove the django templates from Pydev, and allow users to install them optionally.13
396TISTUD-1420Open-source Titanium Desktop Studio integrationWe'd like to make it easier for users to extend and contribute to the Titanium Desktop (TIDe) project. # Refactor the current Titanium Desktop plugin(s) into a new repo ## We can remove references in the *.update plugin, since the update process will likely be much different in the future ## Do we need to create the concept of a Titanium <Platform> type (i.e. desktop, mobile, ?) that would contribute a few things into the system # Add a feature enabling users to install the plugin separately on top of Studio # Create a hudson build to build this plugin and push it to a deployment site # Change the license of the plugin to Apache 2 See attached image for dependencies.20
397TISTUD-1421Titanium Studio: MobileWeb: Preview in Emulator conditionally fails with: Launch url is not definedWhen deploying a second mobile web project to preview in emulator browser, studio fails with error: Launch url is not defined. Studio log identical to dialog box screenshot. Found in Windows 7, but not Snow Leopard. Steps to Reproduce: 1. Create two projects. 2. Preview first project in emulator browser. 3. Preview second project in emulator browser. Expected Result: Second project should deploy. Actual Result: Deployment fails in studio. Note: Relaunching the first project works as expected. 8
398TISTUD-1422Titanium Studio: MobileWeb: cannot re-deploy app in Firefox on OSXWhen re-deploying a mobile web app to firefox, the app is launched in a new window, instead of a new tab. Firefox on Snow Leopard can only have one instance, so the deployment fails and the new window is closed. MobileWeb Firefox preview should be deployed to a new tab. Does not occur on Windows 7 (app is opened in new tab). Steps to Reproduce: 1. Create project. 2. Preview in browser to firefox. 3. Preview again in browser to firefox. Expected Result: App should open in new tab. Actual Result: App opens in new window, which is automatically closed due to firefox single instance policy on Snow Leopard.8
399TISTUD-1426Remove option to launch Mobile Web Preview in internal browserThe studio internal browser may not fire touch events to mobile web apps. Steps to Reproduce: 1. Create default app. 2. Preview in internal browser. 3. Click on buttons. Expected Result: The app should respond to click events. Actual Result: No response. Works on the other external browsers. It apparently sometimes works on some machines and not on others. Based on feedback, it appears there is some conflict between Mobile Web and the internal browser. Thus, the best option is to remove the ability to use the internal browser.5
400TISTUD-1424Titanium Studio: MobileWeb: Packaging: allow packaging to non-existent directoryWhen packaging to a non-existent directory, an error is presented and the user cannot package. Steps to Reproduce: 1. Create a new project. 2. Package for mobile web. 3. Create a path using a new sub-directory hand-typed. Expected Result: Should be able to package app and new directory is created. Actual Result: Warning prevents app from packaging. Suggested solution: * Create directory * Don't show warning * Pop up error if issue creating dir5
401TISTUD-1428Studio preferences > titanium General - an error is shown if desktop sdk is not installed (may no longer be appropriate and cause unnecessary alarm)h2. Problem # Do not have the desktop sdk installed # Titanium studio menu item > preferences > titanium studio > titanium # check the window for errors {noformat} An error was detected with the SDKs configuration. Reason: [Titanium SDK Home] Could not locate a Titanium Desktop SDK at the given path {noformat} Note that Ti Desktop is no longer officially supported, so this validation should be removed, or result in a warning rather than error. results: https://skitch.com/thomashue/8ch87/preferences. the user is shown an error. Being that we have put the desktop out to pasture, it might cause unnecessary alarm to user h2. Workaround Install Desktop SDK from [Continuous Builds|https://wiki.appcelerator.org/display/guides/Installing+Titanium+SDK+Continuous+Builds] site3
402TISTUD-1431Studio: Launching debugger successfully produces unexpected log entries.Description: After a debugger session launch I noted that the log contained an entry repeated many times that was unexpected. This occurs when the debugger launch is working as expected and in cases where the debugger fails to connect. The log from a good debugger launch: {code:title=.log} !ENTRY com.aptana.js.debug.core 1 0 2012-03-26 13:55:51.772 !MESSAGE Extension version: 3.0.0.1329178773; protocol v1 !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:54.394 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:55.395 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:56.397 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:57.398 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:58.400 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:55:59.401 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:00.403 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:01.405 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:02.406 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:03.407 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:04.408 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:05.410 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:06.411 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:07.412 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:08.413 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:09.414 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:10.416 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:11.417 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:12.418 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:13.420 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:14.421 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:15.423 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:16.424 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:17.425 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read timed out java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107) sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93) java.io.InputStreamReader.read(InputStreamReader.java:151) com.aptana.js.debug.core.internal.model.DebugConnection.readMessage(DebugConnection.java:271) com.aptana.js.debug.core.internal.model.DebugConnection$1.run(DebugConnection.java:94) !ENTRY com.aptana.js.debug.core 4 4 2012-03-26 13:56:18.427 !MESSAGE Read timed out !STACK 0 java.net.SocketTimeoutException: Read ti...8
403TISTUD-1432Titanium Studio: Preferences: Titanium: cannot save Titanium SDK home pathWhen editing the titanium sdk home path, cannot save changes. The workaround is to click 'restore defaults', make the changes, then save. Steps to Reproduce: 1. Copy Application Support/Titanium (the sdk super-folder) to another location. 2. In studio, preferences, change the titanium sdk home to this new location. Expected Result: Should be able to save changes. Actual Result: Cannot save changes. Must restore defaults, then edit and save changes.5
404TISTUD-1435Android module projects should have better validation for name and idWhen creating a mobile module project, we should be more strict about the name validation and the module-id validation. * Names should not contain any hyphens (and other special characters that can 'kill' the generated JavaScript example, or the packaging). Suggest we use the javascript identifier rules here. * module-id should follow the Java conventions for package names (just like we do with Android).8
405TISTUD-1436Packaging of Android module fails to copy built module to destination# Create a new Android mobile module project # Attempt to package it for a project or a folder on disk (it probably also fails for the Titanium SDK) # It appears to work, but fails to copy the file to the destination, with the following error: {code} (Build 1.0.0.qualifier) [ERROR] Could not move: /Users/ingo/Documents/Aptana_Studio_3_Workspace/asdasd/dist/app.bapp-android-0.1.zip. org.eclipse.core.runtime.CoreException: Could not move: /Users/ingo/Documents/Aptana_Studio_3_Workspace/asdasd/dist/app.bapp-android-0.1.zip. org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) org.eclipse.core.filesystem.provider.FileStore.move(FileStore.java:415) org.eclipse.core.internal.filesystem.local.LocalFile.move(LocalFile.java:352) com.appcelerator.titanium.mobile.module.launching.ModulePackagerUtil.processModule(ModulePackagerUtil.java:75) com.appcelerator.titanium.mobile.module.launching.AndroidModulePackageLaunchConfigurationDelegate$1.run(AndroidModulePackageLaunchConfigurationDelegate.java:104) java.lang.Thread.run(Thread.java:680) Caused by: org.eclipse.core.runtime.CoreException: Could not write file: /Users/ingo/Documents/Aptana_Studio_3_Workspace/testMobile/dist/app.bapp-android-0.1.zip. org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:391) org.eclipse.core.filesystem.provider.FileStore.copyFile(FileStore.java:221) org.eclipse.core.filesystem.provider.FileStore.copy(FileStore.java:143) org.eclipse.core.internal.filesystem.local.LocalFile.copy(LocalFile.java:111) org.eclipse.core.filesystem.provider.FileStore.move(FileStore.java:410) ... 4 more Caused by: java.io.FileNotFoundException: /Users/ingo/Documents/Aptana_Studio_3_Workspace/testMobile/dist/app.bapp-android-0.1.zip (No such file or directory) java.io.FileOutputStream.open(Native Method) java.io.FileOutputStream.<init>(FileOutputStream.java:194) org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:382) ... 8 more {code} The issue appears to be the fact it's copying it from inside /dest, but that it attempts to copy it into a /dest subfolder as well, which doesn't exist.5
406TISTUD-1442Prevent an Android Mobile Module project creation when JDT is not installedAndroid mobile-module project should not be created unless the JDT plugins (feature) are installed. Right now, a created project on an environment without JDT is not usable.5
407TISTUD-1443Studio: Build Participation: Windows does not update content assist for new class methods in JavascriptFailed test case BP1009. Javascript: New class methods do not appear in content assist before saving. Steps to reproduce: 1. Define a class. 2. Add a method to the class definition. 3. Create a new instance of the variable. 4. On a new line type the name of the instance identifier with the member selection operator. Expected result: The declared class method will appear in the content assist list. Actual result: The new method does not show up in content assist.5
408TISTUD-1445Project fails to build, launch emulator with Android R17 tools & Ti2.0h5. Actual Behavior All projects fail to build to the emulator under the environment listed above. I get the error shown in the attached screen. Eventually, I get the message that the build script has timed out waiting for the emulator to launch -- restarting ADB has no effect. Via twitter, some have suggested that you need to disable FastDev with the R17 tools & Titanium. You can see from the attached screen that I tried that. But it had no effect. Neither did specifying an older Android tool level. h5. Work around I can reset the project to use the Titanium 1.8.2 SDK. The project will build & the emulator will launch as expected. Then, I can rebuild the project using any of the 2.0x CI builds I have on my system and they'll all work just fine. h5. Expected behavior I can build with Ti2.0 and the R17 tools without implementing the Work around. 8
409TISTUD-1447Run preference page platform loading using a jobCurrently when the preference page is opened, it takes some time for the dialog to appear, resulting in a wait cursor to appear. This is very confusing for users. The proposed solution is: -When the preference page is opened, run the loading of platform information in a background job -While the platform information is loaded, the corresponding platform UI is disabled and the value of "Loading..." is displayed. We should do this for the two main platforms, iOS and Android, since they require the most processing time.13
410TISTUD-1450Studio: Updated modules delivered via CI builds are not replacing existing modules if they share the same nameWhile evaluating ACS features, we encountered an Android issue that was supposed to have been fixed in the latest ti.cloud module. Upon further investigation we determined that the module was in fact included with the latest CI build. We conducted a few experiments and determined that although the module was updated, the name was the same so during the unzipping process, the module was not replacing the existing older module. Steps to reproduce: 1) Delete your existing common JS module folder from the Titanium folder 2) install a CI build from 3/24 or before 3) Check the contents of the module folder 4) install a CI build from 3/27 or later 5) Check the contents of the module folder Results: The ti.cloud module is the older broken module, not the newer fixed module Expected: The module is overwritten by the newer module with the same name. Note: There is no relevant content in the log8
411TISTUD-1452Simplify initial Studio UI and perspectiveAn exercise in simplifying the new user experience: * Rename Web perspective to "Studio (extended)" * Create new "Studio" perspective ** remove top level toolbar ** add keyboard shortcuts commands for "occurrences", "block selection", "show whitespace characters" ** remove samples view ** remove outline view ** remove snippets view ** remove servers, problems, terminal, console view ** keep console view hidden unless an error comes up13
412TISTUD-1456Add default UI configuration options to dashboard * Remove Welcome page * Replace with accordion. Initially open a section to configure TISTUD-1456 ** Light/dark theme ** Simple/advanced perspective ** See APSTUD-4798 and APSTUD-4799 for actions to call The bottom half of the accordion is similar to what we have currently If we reduce or remove the top toolbar, we may wish to surface some common initial configuration options to the first tab of the dashboard--something equivalent to an initial questionnaire. It could be perhaps in some normally "hidden" area for "advanced configuration" if we determine it's useful but is confusing on first run.20
413TISTUD-1464Inform users they need to switch to a workspace without spaces if doing Android Module developmentWhen using the Android NDK, if you have spaces in your path (i.e. /Users/username/Documents/Titanium Studio Workspace), Studio will fail to be able to build an Android module project. Suggest putting up a warning when creating a mobile module project warning users about the issue and informing them how to solve it (direct them to the wiki page on how to move/switch their workspace: http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/Switching_your_Workspace).5
414TISTUD-1466Use built-in ANT when packaging Android modules# Created a new Android mobile module project # Attempt to package the project # Run into this error: {code} Caused by: java.lang.NullPointerException com.appcelerator.titanium.mobile.module.launching.AndroidModulePackageLaunchConfigurationDelegate.launch(AndroidModulePackageLaunchConfigurationDelegate.java:83) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:937) org.eclipse.debug.internal.ui.DebugUIPlugin$7.run(DebugUIPlugin.java:1023) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) Root exception: java.lang.NullPointerException com.appcelerator.titanium.mobile.module.launching.AndroidModulePackageLaunchConfigurationDelegate.launch(AndroidModulePackageLaunchConfigurationDelegate.java:83) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:937) org.eclipse.debug.internal.ui.DebugUIPlugin$7.run(DebugUIPlugin.java:1023) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) {code} snippet of code: final Process osProcess = ProcessUtil.run(antPath.toOSString(), project.getLocation()); It appears it can't find ANT. We package ANT as part of Studio, so we should instead use the built-in ANT rather than calling it on the command line. Workaround: Right-click on build.xml. Click *Run As* > *Ant Build* (the first option)5
415TISTUD-1468Add Titanium Project GUID to ACS application creation callWhen creating an application in ACS, we need to pass the GUID along with the call. The format will be: ti_guid=<Project GUID>, passed to the create.json call.3
416TISTUD-1469Studio: HTML Template selection does not load correctly.After first loading Titanium Studio the template selection for the New from template > HTML has the wrong selection (see screen shot). If I load a template for HTML this fixes the template selection found in the menu. Steps to reproduce: 1. Open Titanium Studio. 2. Click File > New From Template > HTML Expected results: Should see a list of all available templates for HTML files. Actual results: Only a strange entry and the HTML 5 template appear.8
417TISTUD-1474Titanium Studio: Installer - On Windows 7, when installing Titanium Studio, the License Agreement has a bad refresh screenSteps to reproduce: 1. Get Titanium Studio 2.0.0 installer for Windows 2. Hit next until you see the License Agreement screen Actual: The License Agreement has a bad refresh screen. See attachment Expected: Should be able to see the License Agreement. Note: Does not occur with the Titanium Studio 1.0.9 installer.5
418TISTUD-1476NPE in TitaniumUpdateStartup.run()Found in my log file. To replicate (my be intermittent), try shutting down Studio right in the middle of the "log in" process {code} !ENTRY org.eclipse.core.jobs 4 2 2012-03-31 07:44:07.268 !MESSAGE An internal error occurred during: "Checking for new Titanium SDK Updates...". !STACK 0 java.lang.NullPointerException com.appcelerator.titanium.update.TitaniumUpdateStartup$1.run(TitaniumUpdateStartup.java:79) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}3
419TISTUD-1477Make Titanium SDK release-notes grabbing more robustIf the current set of release notes is from a full HTML page that _does not_ contain a <div class="apidoc">, the release noes will launch in a new browser window. # Allow for override of TitaniumSDKReleaseNotesDialog.RELEASE_NOTES_URL as a command-line option to make testing this easier. # First try to grab apidiv. # Then try to grab interior of body node, or if no body node, then whole content. If either work then replace release_notes template with new content. # If all else fails, use whole content and don't use the template. Notes: * Be careful of nulls * Anchor links didn't appear to work (might need to be munged?) 8
420TISTUD-1479Allow selecting a non-existing directory as the Titanium SDK directoryWhen a user selects a Titanium SDK path in the preference page, we don't allow a path that has no Titanium SDK in it. A better behavior would be: # Allow an arbitrary directory selection. # Prompt the user that the Titanium SDK will be downloaded into the new location (in case it's missing an SDK). # In case a directory creation is needed, we'll do that *before* the preference dialog is closed (on apply/ok). This will clear any permission issues with the selected path before the SDK is downloaded. # If everything is OK with the new location, start the SDK update process into the new path. 8
421TISTUD-1481Studio: Install site will not allow for software to be installed.When trying to install the TestFlight software plugin following the steps below I found that I can not proceed to the licence page in the installation. Steps to reproduce: 1. From the Help menu, select Install New Software... to open an Install pop-up window. 2. In the Work with: text box of the Install window, type the URL http://ec2-50-16-19-245.compute-1.amazonaws.com/appcelerator/studio/testflight/update/release/ for the update site, and hit the Enter key. 3. In the populated table below, check the box next to the name of the plug-in, and click the Next button. 4. Click the Next button to go to the license page. Expected result: The licence page is displayed and the installation can be completed. Actual result: The next button does not become active and there is no way to continue to the next part of the installation. 5
422TISTUD-1488ACS Keys not copy-ableI enabled ACS for one of my apps using early access 2.0 Studio, and it shows the production and development keys, but you can't copy it, if we need to use HTTP access or test using other software - we would have to manually type this out, or go to the ACS website, can the keys in Studio be copy-able?5
423TISTUD-1482NPE in Log when Studio is shutdownFound in my log file. To replicate (my be intermittent): 1. Start up Studio 2. Open the Progress View 3. Restart Studio 4. When Studio is started, take note of the items in the Progress view 5. When there are items running int he progress view, close Studio I repeated this 4 times, with different tasks in the progress view running, and saw the NPE twice !MESSAGE Errors running builder 'Studio Unified Builder' on project 'testMe'. !STACK 0 java.lang.NullPointerException com.aptana.core.build.UnifiedBuilder.getIndexManager(UnifiedBuilder.java:367) com.aptana.core.build.UnifiedBuilder.filterFiles(UnifiedBuilder.java:471) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:400) com.aptana.core.build.UnifiedBuilder.fullBuild(UnifiedBuilder.java:302) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:148) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) 3
424TISTUD-1485Update sites for Openshift/TestFlight should not contain both plugin and feature nodeWhen we install from an update site using the result from the TestFlight and Openshift builds, the categorized nodes are the plugin and the feature nodes. Typically it should just contain the Feature install, which would pull in the plugin as part of it. In this case, if we check just the feature and not the plugin, the install is an invalid one, resulting in an invalid install. 8
425TISTUD-1489Update IPublishType.publish() method to explicitly pass in PlatformType, output location and publish targetFor clarity, we should pass in the parameters we know about explicitly - Publish target, platform type, and output location. 5
426TISTUD-1490Titanium Studio: SDK: updating to readonly sdk folder gives no such directory errorWhen updating SDK to an SDK folder with readonly access, a directory not found error is presented (instead of invalid permissions). Steps to Reproduce: 1. Change the permissions of the Titanium SDK folder to readonly (e.g., folder right click -> properties -> permissions, etc.). 2. Update the SDK to a different version. Update Option 1: Go to http://builds.appcelerator.com.s3.amazonaws.com/index.html, copy an SDK location. Go to Studio: Help -> Install Titanium SDK From URL, paste the link, update. Update Option 2: Remove the last live version of the SDK from the SDK folder. Go to Studio: Help -> Check For Titanium SDK Updates. Expected Result: There should be an error indicating the SDK folder does not have write permissions. Actual Result: Directory not found error.5
427TISTUD-1494Building for iOS device in Studio 2.0 against SDK 2.0.0GA (Ad-Hoc certs and PUSH issues)when I build for an iOS Device Xcode bounces in the dock for nearly a minute before it will unlock beachball and allow me to make a selection, it happens once before the first window shows and then once again before build. If I select Manage option - this whole Xcode bouncing in the dock repeatedly (like its loading and quitting again and again) happens ... its very slow. Compared to 1.x Studio which is much faster. The preselected provisioning profiles is not clear, and somehow I managed to build against an ad-hoc certificate, i did not consciously choose this) but it caused my Push Notification Process to throw up errors. I tried 2 possible certs that were available to me and both times it must have used an ad-hoc certificate. I went back to 1.x and rebuilt it. I preferred the ability to remove and add certificates manually at this stage. Always avoided confusion for me. 8
428TISTUD-1496Trailing semicolon after curly brace in conditional causes error in JS formattingSteps to reproduce: 1. Create a new .js file in a project 2. Copy the following code and paste it into the .js file {code} if ( i == _i) {} else {}; {code} 3. Press command+shift+f on mac to format the pasted code Actual result: The following error is generated in the log file: !ENTRY com.aptana.formatter.epl 4 0 2012-04-05 11:14:39.664 !MESSAGE (Build 3.0.0.1332346356) [ERROR] com.aptana.formatter.epl/debug Error while formatting the code in your editor. Please submit a bug report through Studio's support and include the relevant code which triggered this error. Expected result: The code is formatted correctly. It appears to be that last trailing semicolon. Delete that, and it works.5
429TISTUD-1497Studio displays iOS ad hoc provisioning profiles as "development" when it should be "distribution"Studio displays Ad hoc provisioning profiles incorrectly as "development". This causes confusion in the following areas: -Preferences displays the displays the type incorrectly -The iOS distribution wizard displays Apple iTunes, Ad hoc, and development profiles (should only display Apple iTunes and Ad hoc profiles) -The iOS Run on device wizard displays Apple iTunes, Ad hoc, and development profiles (should only display development profiles) Special attention must be made to the way we cache provisioning profiles, since a fix to the SDK will not update the "type" of the cached provisioning profiles. We have to trigger a flush of the cache if there is a presence of SDK 2.2.0, where previously there wasn't. This is blocked by an SDK bug8
430TISTUD-1503Fix padding on release notes dialogThe current release notes template is very specific about what content it expects to style. However, this can lead to release notes not having any padding around the edge of the content. Recommend adjusting the styling slightly to accommodate.3
431TISTUD-1506Titanium Studio: Configuration: Preferences > Titanium Studio > Titanium freezes studioNavigating to Preferences > Titanium Studio > Titanium freezes studio. This does not occur in the last studio build. Regression. Steps to Reproduce: 1. Open Studio. 2. Navigate to Preferences > Titanium Studio > Titanium. Expected Result: Titanium Preferences should open. Actual Result: Studio freezes, need to force-close.8
432TISTUD-1507Error opening the Titanium preferences when the Desktop SDK is incompleteAn attached log to TISTUD-1506 revealed this problem. {code} !ENTRY org.eclipse.jface 4 2 2012-04-10 12:55:28.904\ !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".\ !STACK 0\ java.lang.NullPointerException\ com.appcelerator.titanium.desktop.DesktopSDKEntity.setModules(DesktopSDKEntity.java:54)\ com.appcelerator.titanium.desktop.DesktopSDKEntity.<init>(DesktopSDKEntity.java:39)\ com.appcelerator.titanium.desktop.TitaniumDesktopSDKLocator.initialize(TitaniumDesktopSDKLocator.java:169)\ com.appcelerator.titanium.desktop.TitaniumDesktopSDKLocator.<init>(TitaniumDesktopSDKLocator.java:52)\ com.appcelerator.titanium.ui.preferences.TitaniumSDKDirectoryFieldEditor.doCheckState(TitaniumSDKDirectoryFieldEditor.java:94)\ org.eclipse.jface.preference.StringFieldEditor.checkState(StringFieldEditor.java:193)\ org.eclipse.jface.preference.StringFieldEditor.refreshValidState(StringFieldEditor.java:409)\ org.eclipse.jface.preference.FieldEditor.load(FieldEditor.java:501)\ org.eclipse.jface.preference.FieldEditorPreferencePage.initialize(FieldEditorPreferencePage.java:307)\ org.eclipse.jface.preference.FieldEditorPreferencePage.createContents(FieldEditorPreferencePage.java:233)\ org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:232)\ org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1501)\ org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.java:1258)\ org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\ org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)\ org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)\ org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1252)\ org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:674)\ org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:708)\ org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)\ org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:704)\ org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888)\ org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)\ org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)\ org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)\ org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886)\ org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1226)\ org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1251)\ org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:262)\ org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:256)\ org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:433)\ org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)\ org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)\ org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938)\ org.eclipse.swt.widgets.Display.observerProc(Display.java:3525)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)\ org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4879)\ org.eclipse.swt.widgets.Display.applicationProc(Display.java:5226)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)\ org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)\ org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1092)\ org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:2052)\ org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1084)\ org.eclipse.swt.widgets.Control.mouseDown(Control.java:2528)\ org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:2007)\ org.eclipse.swt.widgets.Display.windowProc(Display.java:5471)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)\ org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)\ org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2095)\ org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2253)\ org.eclipse.swt.widgets.Display.windowProc(Display.java:5535)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)\ org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989)\ org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)\ org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128)\ org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)\ org.eclipse.jface.window.Window.runEventLoop(Window.java:825)\ org.eclipse.jface.window.Window.open(Window.java:801)\ org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:215)\ org.eclipse.ui.internal.handlers.ShowPreferencePageHandler.execute(ShowPreferencePageHandler.java:54)\ org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)\ org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)\ org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:178)\ org.eclipse.ui.internal.cocoa.CocoaUIEnhancer.runCommand(CocoaUIEnhancer.java:393)\ org.eclipse.ui.internal.cocoa.CocoaUIEnhancer.actionProc(CocoaUIEnhancer.java:535)\ org.eclipse.ui.internal.cocoa.CocoaUIEnhancer.actionProc(CocoaUIEnhancer.java:520)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)\ org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4879)\ org.eclipse.swt.widgets.Display.applicationProc(Display.java:5226)\ org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)\ org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:94)\ org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3607)\ org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)\ org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)\ org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)\ org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)\ org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)\ org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)\ org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)\ com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125)\ org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)\ org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)\ org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)\ org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)\ org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)\ sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\ sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\ java.lang.reflect.Method.invoke(Method.java:597)\ org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)\ org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)\ org.eclipse.equinox.launcher.Main.run(Main.java:1410)\ {code} 3
433TISTUD-1510Run iOS preference page loading in the backgroundSee parent8
434TISTUD-1511Run Android preference page loading in the backgroundNULL8
435TISTUD-1513TiStudio: Mobile Projects - When creating mobile projects offline, two projects with same guid will sporadically be created in my.appcelerator.com/apps siteSteps to reproduce: 1. Launch Studio with internet connection disabled 2. Create a TiMobile project 3. Relaunch Studio with internet connection enabled 4. Check https://my.appcelerator.com/apps *May need to repeat steps 1 - 4 a couple of times* Actual: Two projects with the same guid are created in my.appcelerator.com/apps site. See attachments. Expected: One project should be created at my.appcelerator.com/apps site *Note:* * Bug not reproducible on Titanium Studio, build: 2.0.0 and 1.0.9 * Bug not reproducible on Windows 7 machine * Bug not reproducible when working from home8
436TISTUD-1514TiStud: Workspace - When switching workspaces from within TiStudio, TiStudio will not launchSteps to reproduce: 1. Launch TiStudio 2. Go to File > Switch Workspace 3. Select a different workspace Actual: TiStudio will stay stuck at the log in/splash screen. See attachments. Expected: Should be able to launch TiStudio after switching to different workspace Note: Bug does *not* occur on Windows 7 and Lion (10.7.3)13
437TISTUD-1515Blocker: Android : Templates : SingleWindow - After creating an Android only single window template a null pointer exception occurred when launching to the emulatorSteps to reproduce: 1. Create a Android only single window application 2. Launch on the Emulator Actual result: A null pointer error occurs *Note* This occurred consistently, then I cleared out my avds and sdcards and the issue went away Here is the output to the log {code} !ENTRY org.eclipse.core.jobs 4 2 2012-04-11 16:45:17.583 !MESSAGE An internal error occurred during: "Launching Titanium Android Emulator - singleAnd". !STACK 0 java.lang.NullPointerException com.appcelerator.titanium.mobile.launching.FastDevLaunchConfigurationDelegate$1.terminate(FastDevLaunchConfigurationDelegate.java:56) org.eclipse.debug.core.Launch.terminate(Launch.java:252) com.appcelerator.titanium.core.launching.AbstractSharedProcessLaunch.findOrLaunch(AbstractSharedProcessLaunch.java:170) com.appcelerator.titanium.core.launching.AbstractSharedProcessLaunch.launch(AbstractSharedProcessLaunch.java:92) com.appcelerator.titanium.mobile.android.launching.AndroidSimulatorLaunchConfigurationDelegate.launch(AndroidSimulatorLaunchConfigurationDelegate.java:182) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854) org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703) org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:937) org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1141) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code} *Screenshot attached* Expected result: The app is launched to the simulator 5
438TISTUD-1516Titanium Studio RCP contains JDT pluginsI was trying to verify TISTUD-1442 and found out that I do have JDT plugins in my standalone by default. This is almost a clone of APSTUD-1378 (but this is for Titanium standalone).13
439TISTUD-1517ClassCastException when opening the index.html of a packaged mobile web projectRunning from a dev workspace with latest code in the release branch: 1. Created a Titanium Mobile project with Mobile Web selected as one of the deployment targets; 2. Run Publish > Package Mobile Web and select to create a new project for the Mobile Web app; 3. Open the index.html file from the packaged mobile web project. Actual result: the following exception is generated in the console: {code} Exception in thread "com.aptana.editor.common.text.reconciler.CommonReconciler" java.lang.ClassCastException: com.aptana.editor.js.parsing.ast.JSAssignmentNode cannot be cast to com.aptana.editor.html.parsing.ast.HTMLElementNode com.aptana.editor.html.validator.HTMLTidyValidator.handleNode(HTMLTidyValidator.java:400) com.aptana.editor.html.validator.HTMLTidyValidator.access$0(HTMLTidyValidator.java:394) com.aptana.editor.html.validator.HTMLTidyValidator$1.include(HTMLTidyValidator.java:386) com.aptana.editor.html.validator.HTMLTidyValidator$1.include(HTMLTidyValidator.java:1) com.aptana.parsing.util.ParseUtil.treeApply(ParseUtil.java:155) com.aptana.parsing.util.ParseUtil.treeApply(ParseUtil.java:121) com.aptana.editor.html.validator.HTMLTidyValidator.validateAST(HTMLTidyValidator.java:382) com.aptana.editor.html.validator.HTMLTidyValidator.buildFile(HTMLTidyValidator.java:164) com.aptana.core.internal.build.LazyBuildParticipant.buildFile(LazyBuildParticipant.java:72) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.runParticipants(CommonReconcilingStrategy.java:277) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:238) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.reconcile(CommonReconcilingStrategy.java:205) com.aptana.editor.common.text.reconciler.CommonReconcilingStrategy.initialReconcile(CommonReconcilingStrategy.java:137) com.aptana.editor.common.text.reconciler.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:113) com.aptana.editor.common.text.reconciler.CommonReconciler.initialProcess(CommonReconciler.java:188) org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173) {code} Expected result: no exception occurs. 3
440TISTUD-1518TiStudio: Dashboard - Drop down does not refresh properly when trying to "Create new project" templateSteps to reproduce: 1. Launch TiStudio 2. In Dashboard, go to Develop tab 3. Under Templates, find *Create new project* 4. Hover above drop down Actual: Drop down does not appear. Need to move mouse down to refresh properly. See no_drop_down.png Expected: Drop down should immediately display *Desktop* and *Mobile*. See drop_down.png Notes: Bug does *not* appear on Lion (10.7.3) and Windows 78
441TISTUD-1522Android and iOS module packagers have launch configuration types but no tab group definedWhen opening "Run Configuration..." dialog, we see Android Module Packager and iOS Module Packager in the list, but double-clicking on them causes an error showing there is no corresponding tab group defined. 13
442TISTUD-1523Fail Jenkins build if Studio contains JDT pluginsAs a way of keeping ourselves from accidentally releasing JDT into the wild as part of Studio, we need to fail the Aptana Studio and Titanium Studio builds if either the plugin or standalone versions come packaged with the JDT plugins. This prevents half-baked JDT installs which hen keep a user from later installing the whole JDT proper for module development.8
443TISTUD-1525Unable to click on anchor links in release notes# Delete SDK 2.0.1.GA. # Prompt for SDK updates # When the release notes pop up, click on an anchor # View the log file. You'll see a set of errors like: {code} !ENTRY com.aptana.ui 4 0 2012-04-16 23:23:49.344 !MESSAGE (Build 3.0.3.1331579821) [ERROR] unknown protocol: about !STACK 0 java.net.MalformedURLException: unknown protocol: about java.net.URL.<init>(URL.java:574) java.net.URL.<init>(URL.java:464) java.net.URL.<init>(URL.java:413) com.aptana.ui.util.WorkbenchBrowserUtil.launchExternalBrowser(WorkbenchBrowserUtil.java:35) com.appcelerator.titanium.update.ui.TitaniumSDKReleaseNotesDialog$2.changing(TitaniumSDKReleaseNotesDialog.java:191) org.eclipse.swt.browser.WebKit.webView_decidePolicyForNavigationAction_request_frame_decisionListener(WebKit.java:1493) org.eclipse.swt.browser.WebKit.browserProc(WebKit.java:423) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220) org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2095) org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2253) org.eclipse.swt.widgets.Display.windowProc(Display.java:5535) org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989) org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138) org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610) org.eclipse.jface.window.Window.runEventLoop(Window.java:825) org.eclipse.jface.window.Window.open(Window.java:801) org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334) com.appcelerator.titanium.update.handler.TitaniumUpdateHandler.execute(TitaniumUpdateHandler.java:30) org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829) org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815) org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) {code} It appears that the anchors are showing as file:///#viewtypes5
444TISTUD-1528TiStudio: Preview Site - At Titanium Studio preview site, the builds are skewed to the rightEnvironment: FireFox, Chrome, and Safari Steps to reproduce: 1. Go to http://preview.appcelerator.com/studio/ Actual: Notice the Studio builds are skewed to the right. See attachment. Expected: The Studio builds should be properly aligned.3
445TISTUD-1527Titanium Studio: Dashboard: Search and Top Ad open in generic browser with no controlsUsing the dashboard search bar or the top ad link ("Reach 1.5 Million Appcelerator Developers") launches in a generic browser with no controls, providing difficult navigation. To address this, we'll need to switch the code that launches the browser in this case to be the same as the other cases on the dashboard (all other links open an external browser, and that appears to work correctly). it's a matter of triggering a portal action instead of using target="_new" as part of the href.8
446TISTUD-1529Studio will start updating the SDK automatically upon launch without showing there is an update available firstTo reproduce: 1. Remove the latest SDK from the mobile SDK directory if it is already downloaded; 2. Start Studio. Expected result: Studio will show a popup on the lower right corner indicating there is an update available, and clicking on it will show a release note dialog and then start downloading the latest SDK. Actual result: Studio will start downloading the latest SDK right away after launching without any user interaction, and no release note dialog is shown. 8
447TISTUD-1530Success dialog closes immediately after Titanium SDK updateSteps to repro: 1. Launch studio, and update to the latest sdk (remove the latest sdk if necessary first) 2. Wait for the sdk to download and unzip. Expected result: There should be a success dialog at the end of the unzip process which stays on the screen until the user presses OK Actual result: The success dialog quickly appears and then disappears with the progress bar.3
448TISTUD-1534Titanium Studio: Configuration: Preferences > Titanium Studio > Titanium > Default Android SDK inconsistently sortedThe Android APIs listed in the preferences are not sorted as they are in the run configurations. Screenshots attached. Steps to Reproduce: 1. In Studio, navigate to Preferences > Titanium Studio > Titanium > Default Android SDK. 2. View the sorting of the Android APIs. Expected: The APIs in the preferences are expected to look as they do in the run configurations, as the run configuration sorting looks more orderly. Actual: The preferences APIs are sorted in a way that is inconsistent with the run configurations and is visually confusing.3
449TISTUD-1537Every time you click 'Enable' for 'Enable Cloud Services' a new app gets createdIn TiStudio open the tiapp.xml file of an app with the 2.0.1 GA, and click 'Enable'. An app is created in the cloud services. Click it again and another app is created... Suggested fix: # Check to see if the file is dirty. If yes, alert the user that enabling cloud services will save the file. They can then choose to proceed, or click cancel. # Enable cloud services. # Save the file. 5
450TISTUD-1539Dashboard's "Develop" tab missing contentAfter upgrading to version 2.0.2.201204171552 from version 2.0.1.201204132053 the develop tab on the dashboard no longer has any samples listed and only one template option. This does not occur in 2.0.1. Regression. Steps to reproduce: 1. Load Titanium Studio. 2. Load the Dashboard. 3. Click the develop tab. Expected Result: The develop page of the dashboard should contain links to samples and templates for developers. Actual Results: The develop page contains only a single template and no samples.8
451TISTUD-1540Titanium API not showing up at all in CA of a newly created project if "Build Automatically" is turned offIf I create a new mobile project, I don't get Titanium or Ti in my CA at all. I need to right-click on project, go to Prioperties > Project Build Path, change the Titanium API, then change back to the original one I wanted (say from 2.0.1GA2 to 1.8.2, click Ok, then go back and change back to 2.0.1GA2).8
452TISTUD-1541CA popup shifts between proposalsSee the attached images # Open a new JS file # Type 'a'. See popup for alert # arrow down to "Array" # Note the popup shift Neither is correct. I believe it should have the horizontal spacing of the "alert()" case, but the vertical alignment of the "Array" case8
453TISTUD-1543TiStudio: Dashboard - "API Docs" does not take you to the API documentation siteSteps to reproduce: 1. Open TiStudio 2. In the dashboard, click on *API Docs* Actual: Link takes you to http://docs.appcelerator.com/titanium/2.0/index.html Expected: Link should take you to http://docs.appcelerator.com/titanium/2.0/index.html#!/api Note: Not a regression. 8
454TISTUD-1545Fail Titanium Studio build if titanium.core plugin is missing rublesbased on TISTUD-1539, we should fail the build if the Titanium Rubles fail to package. One suggested approach is to copy the plugin, unzip it and manually check for the bundles and fail if they're not there.8
455TISTUD-1546Installer: The link to the software licence agreement does not work.The link to the Software licence agreement does not open the licence agreement when clicked. This did not happen in the 2.0.0 installer. Not regression as this functionality is new. Steps to reproduce: 1. Download and run the installer. 2. When prompted for the licence agreement click the link. Expected Results: The licence agreement will open in another window for reading. Actual Results: Nothing happens.8
456TISTUD-1549Titanium Studio: Content Assist - content assist menu persistent in the OS if popup info has focusContent Assist menu is persistent in the OS if the assist popup info menu has focus (i.e., by clicking on it). Other OS program windows are now obfuscated by the content assist menu until the focus is shifted back to Titanium Studio proper or the regular content assist menu. Screenshot attached. Note: This is a lesser behavior of the fixed TISTUD-913. Steps to Reproduce: 1. Open Studio and create a new project (or open an existing project). 2. Click in the text editor of app.js (or any .js file). 3. Press control + space to bring up the content assist menu. 4. Select any item from the suggestion list by clicking on it. 5. Click on the secondary popup that appears for that particular content assist item. 6. Open any other program (such as Chrome) and move the other program window over the content assist menu. Expected Result: The content assist menu should disappear behind the other program window, as it should have the same OS hierarchy as Titanium Studio. Actual Result: The content assist menu persists and obfuscates the other program window until the focus shifts back to Studio or a regular content assist item.8
457TISTUD-1550Titanium Studio: Content Assist: assist menu intermittently fails to change focusThe content assist menu will not close at all if the user clicks away. This is intermittent. This is a lesser behavior of TISTUD-1268, which is fixed. Summary of TISTUD-1268: Content assist would intermittently stay open as a stand-alone window until studio was restarted. The TISTUD-1268 fix: If the content assist menu is up, and studio minimizes, the content assist menu will minimize as well. Current Issue: Steps to Reproduce: 1. Open studio, create a new project, or open an existing javascript file. 2. Open content assist. 3. Click away from content assist. Expected Result: Content assist should close. Actual Result: Content assist intermittently stays open and will not close. This window is also persistent in the OS, though that related issue was fixed (TISTUD-913). When studio is minimized, content assist will minimize as well. When studio is maximized, the content assist menu is still there. The only way I could close content assist window was by opening a new content assist window (cntrl + space), which would close the old one, and open a new one which behaves properly.13
458TISTUD-1551CLONE - Unable to correctly parse git versionFound in Eric's log file. I though this was a duplicate of another ticket, but I can't find the first version. {code} !ENTRY com.aptana.git.core 4 0 2012-03-30 11:52:03.083 !MESSAGE (Build 3.0.0.1332346356) [ERROR] com.aptana.git.core/debug Unable to correctly parse git version 1.7.7.5 (Apple Git-26) !STACK 0 java.lang.IllegalArgumentException: invalid qualifier: 5 (Apple Git-26) at org.osgi.framework.Version.validate(Version.java:195) at org.osgi.framework.Version.<init>(Version.java:161) at org.osgi.framework.Version.parseVersion(Version.java:225) at com.aptana.git.core.model.GitExecutable.version(GitExecutable.java:399) at com.aptana.git.core.model.GitExecutable.clone(GitExecutable.java:431) at com.aptana.git.ui.CloneJob.run(CloneJob.java:86) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}5
459TISTUD-1572Unable to format titanium.js file generated by Titanium Mobile Web projectThe file is generated when you package a Titanium mobile web project as a new project in the workspace. The generated project should have a titanium.js file. When I try to format the file I get the following error: !ENTRY com.aptana.editor.js.formatter 4 0 2012-04-19 15:36:03.866 !MESSAGE (Build 3.0.3.1334796284) [ERROR] com.aptana.formatter.epl/debug Cannot recover from the syntax error !STACK 0 beaver.Parser$Exception: Cannot recover from the syntax error beaver.Parser.recoverFromError(Parser.java:697) com.aptana.editor.js.parsing.JSParser.recoverFromError(JSParser.java:623) beaver.Parser.parse(Parser.java:498) beaver.Parser.parse(Parser.java:439) com.aptana.editor.js.parsing.JSParser.parse(JSParser.java:447) com.aptana.editor.js.formatter.JSFormatter.equalContent(JSFormatter.java:295) com.aptana.editor.js.formatter.JSFormatter.format(JSFormatter.java:246) com.aptana.formatter.ScriptFormattingStrategy.doFormat(ScriptFormattingStrategy.java:185) com.aptana.formatter.ScriptFormattingStrategy$1.run(ScriptFormattingStrategy.java:115) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) com.aptana.formatter.ScriptFormattingStrategy.format(ScriptFormattingStrategy.java:111) org.eclipse.jface.text.formatter.MultiPassContentFormatter.formatMaster(MultiPassContentFormatter.java:193) org.eclipse.jface.text.formatter.MultiPassContentFormatter.format(MultiPassContentFormatter.java:135) !ENTRY com.aptana.formatter.epl 4 0 2012-04-19 15:36:03.870 !MESSAGE (Build 3.0.0.1332346421) [ERROR] com.aptana.formatter.epl/debug Error while formatting the code in your editor. Please submit a bug report through Studio's support and include the relevant code which triggered this error. 8
460TISTUD-1556Titanium Studio: Cloud: enabling app cloud services when offline causes partially blank and inconsistent error messagesIf the user enables cloud services for an app while offline, one of the error messages is blank, and the others does not explicitly notify that studio is offline. There is also an inconsistency between popup errors generated by the tiapp.xml, and the new project wizard. However, the log messages are (correctly) the same for both enablement methods (tiapp.xml and new project wizard). Screenshots attached. Log attached. Steps to Reproduce: 1. Go offline. 2. Create a new project with cloud services enabled. Expected Result: A standard popup should appear indicating studio is offline and cloud services could not be activated. An error should be logged. Actual Result: A new-project-wizard-specific error popup appears indicating cloud services could not be activated. There is no mention of being offline. An error message is (correctly) logged to the console indicating an http failure. 3. Dismiss the popup and enable cloud services using the tiapp.xml overview. Expected Result: A standard popup should appear indicating studio is offline and cloud services could not be activated. An error should be logged. Actual Result: A different error popup appears with blank text in the "Reason" section. The same console error from before is (correctly) logged.8
461TISTUD-1557Editor: JavaScript Comment Auto-Complete indentation is inconsistentIf a javascript comment is auto-completed from a closed pair of parenthesis or a closed pair of curly braces, the indentation of the cursor is farther than usual. Screenshots attached. This is a new fail case, as this feature was not implemented in 2.0.1. Steps to Reproduce: 1. Enter javascript code below in editor. {code} function(){} {code} 2. Insert the cursor between the parenthesis and type "/*" and press "enter". For example: {code} function(/*){} {code} Expected Result: Cursor indentation should be one space away from the asterisk to the left. Actual Result: Cursor indentation is a few spaces away from the asterisk.8
462TISTUD-1558Titanium Studio: JavaScript Comment Auto-Complete fails if on same line as end of previous commentIf a javascript comment is auto-completed from a line that contains the end of another auto-completed comment, the new completion will fail to complete the comment. Screenshots attached. Steps to Reproduce: 1. Enter javascript code in editor: {code} function(){} {code} 2. Insert cursor at the beginning of the line, type "/*", and press enter. For example: {code} /* * */function(){} {code} 3. Insert cursor at the end of the line, type "/*", and press enter. For example: {code} /* * */function(){}/* {code} Expected Result: Auto-completion should succeed, for example: {code} /* * */function(){}/* * */ {code} Actual Result: Auto-complete fails, for example: {code} /* * */function(){}/* * {code}5
463TISTUD-1559Titanium Studio: Snow Leopard: Toggle Full Screen menu item exists but is not supportedIn Titanium Studio, the top menu, Window > Toggle Full Screen exists, but is grey-ed out and non-selectable. Full Screen is not supported on Snow Leopard, only on Lion. Steps to Reproduce: 1. Open Titanium Studio. 2. In the top menu, navigate to the Window drop-down menu. Expected Result: Window > Toggle Full Screen should not exist in the menu on Snow Leopard. Actual Result: Window > Toggle Full Screen exists and is grey/not selectable. Full Screen is not supported on Snow Leopard at this time.3
464TISTUD-1571Titanium Studio: Dashboard: Generic External Browser Crashes Studio on CloseIn the dashboard, when the ad link at the top is clicked ("Forging Titanium"), and the generic external browser is closed, studio will crash. Log attached. Also occurs in 2.0.1. This has only occurred using the "Forging Titanium" ad. You must refresh the dashboard until this ad appears. This issue is consistently reproducible. This issue affects Windows and Ubuntu, but I could not reproduce on OS X Snow Leopard. Steps to Reproduce: 1. Open Studio. 2. Open the dashboard. 3. Refresh the dashboard (red appcelerator logo) until the "Forging Titanium" ad appears at the top of the dashboard. 4. Click on the link to open a new generic browser with the ad content. 5. Close the browser. Expected Result: The browser should close. Actual Result: Studio hard crashes.13
465TISTUD-1574Titanium Studio: Configuration: Ubuntu 11.10: top menu items intermittenly have random orderThe top menu (File, Edit, Window, etc.) has randomly ordered elements on Ubuntu 11.10 intermittently. This does not occur on Ubuntu 10.04, Snow Leopard, or Windows 7. Screenshots attached. No log. Steps to Reproduce: 1. Open studio. 2. Look at the top menu. Expected Result: Menu items should be consistent. Actual Result: Intermittently, menu items are random, but do change to the correct configuration on a second check.3
466TISTUD-1576Unable to package Android module on OSXPrereqs Install Android SDK Install Android NDK Update settings in Titanium preferences Steps: 1. Create an android module project 2. Package the module Expected results Module is packaged Actual results: NPE in the AntRunner and this following error (Build 1.0.0.qualifier) [ERROR] /Users/nle/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.v20120410131722/module/android/build.xml:228: exec returned: 2 org.eclipse.core.runtime.CoreException: /Users/nle/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.v20120410131722/module/android/build.xml:228: exec returned: 2 org.eclipse.ant.core.AntRunner.handleInvocationTargetException(AntRunner.java:452) org.eclipse.ant.core.AntRunner.run(AntRunner.java:384) com.appcelerator.titanium.mobile.module.launching.AndroidModulePackageLaunchConfigurationDelegate$PackagingProcess$1.run(AndroidModulePackageLaunchConfigurationDelegate.java:241) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: /Users/nle/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.v20120410131722/module/android/build.xml:228: exec returned: 2 org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:636) org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:662) org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:487) org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) org.apache.tools.ant.Task.perform(Task.java:348) org.apache.tools.ant.Target.execute(Target.java:357) org.apache.tools.ant.Target.performTasks(Target.java:385) org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) org.apache.tools.ant.Project.executeTarget(Project.java:1306) org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) org.apache.tools.ant.Project.executeTargets(Project.java:1189) org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:662) org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:495) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.ant.core.AntRunner.run(AntRunner.java:378)13
467TISTUD-1579Given a URL to a module ZIP file, install the newer versionAdd a dashboard controller when given the URL to a module .zip file, installs the module to the SDK location on disk. * Allow the user to choose either a global install, or a per-project install. * If for a specific project, update the tiapp.xml file (equivalent to what we do now when packaging a module for local distribution)13
468TISTUD-1581Add support for launching BlackBerry debuggerThe new Blackberry simulator utilizes a VMWare appliance. We'll need to launch against that. Improvements: # Add IP address override to launch configuration (see TISTUD-1597 for root IP specification) # Add password override to launch configuration (see TISTUD-1597 as well) Steps to use the integration: # Launch VMWare Device # Find out IP of device. User enters this in the main preference page, or in the launch configuration # Run launch script, passing in IP address, password as arguments: {panel} --ip_address=<address> # required --device_password=<password> # optional, for password-protected devices {panel}20
469TISTUD-1588Create Mockup of new Studio DashboardThis incorporates the new configuration tab, allowing users to choose between a "simple" and "advanced" perspective.8
470TISTUD-1590Split titanium mobile plugin into ui and core pluginsNULL8
471TISTUD-1594Upgrade Module wizard to support BlackBerry projectsSimilar to other platforms, support the creation of BlackBerry modules. We don't yet know exactly the steps involved. 8
472TISTUD-1605Javascript preview code doesn't include "other parentheses" example code1. Open Preferences > Studio > Formatter 2. Select javascript on the left of the pref page 3. Click the pencil icon to edit the profile 4. Select the "Spaces" tab The preview block of code doesn't seem to have any examples of the "Other parentheses" code, since changing those values don't seem to have any effect.2
473TISTUD-1610Add a Preference page to manage Keystore certificatesWe should adopt the Adobe AIR certificate management UI. See attached for Adobe AIR cert. management UI in Studio 1.5 (we can probably reuse this code) There should be a new Android preference page (similar to iOS), that contains a table of current keystore certificates, and an Add and Remove buttons13
474TISTUD-1611Update the existing keystore dialog to allow users to either specify an existing keystore or create a new oneAdd radio buttons to the dialog that allows the user to specify either an existing keystore from the disk or adding a new one. If an existing one is selected, we need to have a password field but not others.8
475TISTUD-1612Update the Android distribution wizard/launch configuration to allow user to pick from the existing list of certificates (combo box), or to create a new one-Replace the textbox with a combo box that contains the list of keystore certificates -The certificate added from the Browse button should automatically add the certificate to the list -New button will trigger the same keystore dialog as before8
476TISTUD-1613Allow user to register their GitHub account inside StudioI would like to be able to log in to my Github account and save my account information, possibly in our new "Accounts" preference page. Store: * Username * Password Additional buttons/links: * Test (to test the login credentials) * Sign up (to sign up for Github, which directs to the website) 13
477TISTUD-1614When importing a Git project, add available GitHub repos to the optionsUpdate the Git import dialog: # Add a radio button in front of the existing URI option # Add another radio button with "Github" below. When the radio button is selected, it shows a list of repos in a dropdown via the Github REST API http://developer.github.com/v3/repos/ ## The destination field is shared between the two fields # If I have not logged into Github, show a message with "Add Github Account". Clicking on the link either pops up a u/p field in place, or directs me to the preference page to add the items # Once I've added the u/p, the page refreshes to show my repos. # If I select a Github repo, it then clones it into my local workspace13
478TISTUD-1615Allow a user to upload a new project to GitHubThis assumes that the project has not created a local repo or the local repo has no remote. # Right click on a project # Team > Create on GitHub... ## Name of repo ## Description of repo ## Organization you wish to publish to ## Public/Private radio button See http://developer.github.com/v3/repos/ for information on publishing a new repo We should be proactive about seeing if we can test if a user has rights to create a repo within an organization, and if they have rights to make a repo private so we can alert them before the creation process. 13
479TISTUD-1616Add ability to log out of Jira account for "Submit a ticket"Once logged into Jira inside Titanium Studio you cannot seem to log out and your name is retained between user logins. Steps to reproduce: 1. Log into Titanium Studio using one account. 2. Open Jira through the Help > Titanium Studio > Submit a ticket 3. Log into Jira via the top of the form and the validate button. 4. Log out of Titanium Studio. 5. Log into Titanium Studio using a second account. 6. Open Jira through the Help > Titanium Studio > Submit a ticket. Expected Result: Previous users Jira account should be cleared and the user should be prompted for username and password. Actual Result: The first user is still logged in with no way to log out.8
480TISTUD-1617Submit a ticket wizard only submits the first line of the "Steps to reproduce" field.When a user submits a ticket using the Submit a ticket Jira wizard only the first line of the steps to reproduce is passed into the Jira. Steps to reproduce: 1. Submit a ticket with multiple lines in the steps to reproduce field. Expected results: All lines will appear in the Jira ticket on the web site. Actual results: Only the first line is passed into the Jira.5
481TISTUD-1622Need to be able to configure ACS url for staging testing purposeRight now studio has hard coded api.cloud.appcelerator.com, in order to test in staging environment, we need to be able to change it to point to api.staging.cloud.appcelerator.com instead5
482TISTUD-1626CLONE - Need to be able to select javascript modules from TiStudio Modules panelWith support for JavaScript (commonJS and MobileWeb) modules being added, we now need the ability to display and select javascript modules in the TiStudio Modules panel. # Show the (currently-hidden) modules # In the popup to select per-platform versions, for commonjs modules, only show a single drop down for selecting a version which will apply across all platforms.8
483TISTUD-1627Add support for creating javascript modules to TiStudioAdd the ability to create a javascript module (commonJS or MobileWeb, depending on implementation of MOD-701).8
484TISTUD-1630"Aptana" is shown under the main Help menu on Titanium Studio standalone installationNot necessarily reproduceble, but on a brand new Titanium Studio installation on a Mac 10.7.2 machine, "Aptana" instead of "Titanium Studio" is displayed under Help. Also the preference page node has Aptana Studio instead Titanium Studio as well, so look like one or more overriding plugins didn't get loaded. Here is how I got into this state: 1. Download Titanium Studio 2.0.1 Mac zip from preview.appcelerator.com/studio; 2. Add http://preview.appcelerator.com/appcelerator/studio/standalone/update/beta/ update site and update to the latest 2.0.2 beta. 8
485TISTUD-1631File JIRA tickets for Titanium Studio in the "Titanium Community" projectWhen filing a ticket inside Titanium Studio using the new JIRA integration (APSTUD-2916), we need to file the ticket in APSTUD if it came from Aptana Studio, and TC if it came from Titanium community8
486TISTUD-1632Re-configure JIRA ticket submission fields to better match current ticket guidelines When filing a ticket in JIRA, we need to reconfigure the current fields ever so slightly. Instead of a single "Steps to Reproduce" we need three fields: * Steps to Reproduce* * Actual Result* * Expected Result (*d fields are required) From a space perspective, "Steps" should be 2X the height of the other two. When the ticket is filed, replace any empty fields with "N/A", and use the following template: {code} h3. Steps to Reproduce [Steps] h3. Actual Result [Actual] h3. Expected Result [Expected/N/A] {code}8
487TISTUD-1633Titanium Studio: android module fails to create with internal errorWhen creating a module in studio, the creation fails with internal error: could not move file. Screenshot and log attached. This only occurs with android modules. However, android modules can be created from the command line. Steps to Reproduce: 1. Create new android module from studio. Expected Result: Module creates. Actual Result: Module fails to create.8
488TISTUD-1640Titanium Studio: MobileWeb: preview in emulator/browser fails with NPEWhen a mobileweb project is previewed in emulator or browser, there is a silent failure in the UI, and an NPE error in the log. Log attached. This does not occur in Studio 2.0.1. Steps to Reproduce: 1. Create a new mobileweb project. 2. Preview in Browser and Preview in Emulator. Expected Result: App should preview in browser or emulator. Actual Result: Silent UI failure (no popup, no visual response), null pointer exception logged to studio log.5
489TISTUD-1642Titanium Studio: Login: studio does not auto-login on LinuxWhen studio launches, the user always has to enter login information (i.e., the auto-login never occurs). Steps to Reproduce: 1. Run studio on Linux. 2. Enter appcelerator login information. 3. Close and relaunch studio. Expected Result: Studio should auto-login. Actual Result: The user is prompted to enter studio login information every time.13
490TISTUD-1643Remove the text in Windows installer about restarting the machine after uninstallation since it is not necessaryWhen studio is installed using the installer and the machine is rebooted after prompt, the installer does not relaunch on machine reboot. The installer must be manually run to continue the installation. Steps to Reproduce: 1. Run the studio installer on Windows. 2. Reboot the machine on prompt. Expected Result: Installer should relaunch after machine reboot. Actual Result: Installer does not relaunch. It must be manually relaunched to continue installation.8
491TISTUD-1645Titanium Studio: Titanium Preferences: Default Android SDK changed if not saved and sdk path is reloadedIn Preferences > Titanium Studio > Titanium, if the Default Android SDK is changed and the user clicks on the Android SDK Home text field, then clicks in a different text field (e.g., Android NDK Home), the Default Android SDK change will be undone if it was not previously saved. This is a usability issue because the user's edits are automatically undone. Steps to Reproduce: 1. Go to Preferences > Titanium Studio > Titanium. 2. In the Default Android SDK drop-menu, change the SDK to a different version (but do not save the changes). 3. Click in the Android SDK Home text field. 4. Click in the Android NDK Home text field. Expected Result: The changes made to the Default Android SDK should remain. Actual Result: The old Default Android SDK is automatically selected.5
492TISTUD-1664TiStudio: Encoding problem with Git Commit MessageSame problem on Ti Studio. https://jira.appcelerator.org/browse/APSTUD-4043 (Aptana bug) -------- The problem is that when i git commit with comments in Japanese(or Korean), i get unreadable by git log on terminal(utf-8). (I can read in Titanium studio history window. but unreadable by other tools) by the way, One repository that was make another machine (ex:ubuntsu) and it has commit message in UTF-8(Japanese). I Pull to Titanium Studio. The history is unreadable.8
493TISTUD-1647Titanium Studio: MobileWeb: preview in android emulator initially fails with server errors when AVD is first createdWhen deploying from studio, or manually running a mobileweb app in the android emulator browser, the app will not run and server related errors log to the console when a new AVD is created. Logs attached. This is not a regression, as it does occur in Studio 2.0.1. Steps to Reproduce: 1. Delete .android/avd/ 2. Create a default mobileweb project. 3. MobileWeb Preview in Emulator. Expected Result: Emulator should launch, emulator browser should load, app should run. Actual Result: Emulator launches, emulator browser does not load. Manually opening the browser and navigating to the app url results in a failed app load.8
494TISTUD-1648Titanium Studio: Modules: android modules created on command line cannot be packaged in studioAndroid modules created from command line cannot be packaged in studio. There is no package option in the UI. Note: Android modules created in studio, and iPhone modules created from the command line, work as expected. Steps to Reproduce: 1. Create an android module from the command line. 2. Import the module into studio. 3. Attempt to package the module (i.e., box icon > Package Android Module). Expected Result: Package option should be available. Actual Result: Package option is not available. h3. Suggested solution When importing an existing Titanium project, check for the existence of a timodule.xml file, and set the builders/natures appropriately.8
495TISTUD-1649Titanium Studio: MobileWeb: no option to package mobileweb modulesMobileWeb modules do not have the option to package from studio. Note: MobileWeb modules cannot be created in studio 2.0.1, so this feature cannot be tested in studio 2.0.1. This is a new fail case. Steps to Reproduce: 1. Create a mobileweb module. 2. Attempt to package the module (box icon > Package MobileWeb Module). Expected Result: The package option should be available in the packaging drop-down menu. Actual Result: There is no mobileweb module packaging option. MobileWeb projects can be created in studio, but not packaged.13
496TISTUD-1650Titanium Studio: change default workspace to one without spaces to support module developmentCurrently, the default studio workspace is Titanium Studio Workspace. Because the workspace contains spaces, Android modules cannot be packaged. One suggestion is to change the default workspace to one without spaces to facilitate module development. As per discussion, it was suggested to use: Titanium_Studio_Workspace5
497TISTUD-1666Restart of Titanium Studio Required for the tiapp editor to display modules added after Studio was launchedh3.Experience Currently, the list of modules appears to only be loaded into Titanium Studio at startup. Modules added to the Library folder after Titanium Studio has launched are not seen in the Modules pane of the tiapp editor. This requires a restart of Titanium Studio. h3.Expectation When the tiapp editor is opened that all modules are available for inclusion. h3. Solution Modules folder(s) needs to be rescanned when the tiapp editor is opened.8
498TISTUD-1656App is created with NULL creator_user_id.h4. Problem Description I published an App to the App Store and Google Play but the app never appeared on "My Apps". The original guid was: 2c9e1129-86d4-4f9d-9f0d-4d7bd0cd764a Because I noticed new projects showed up on "My Apps" I've created a new project and transplanted the guid to the tiapp.xml of my app. Released it to the Play Store and this enabled the app to show on "My Apps" where it says "122 analytics events were processed for this application since May 1, 2012" but it still shows 0 users, 0 sessions and "There were no events logged during between 5/7 and 5/13." The new guid is: 473b9203-836a-4d48-ac13-2993873efa2c I wrote more about this in http://developer.appcelerator.com/question/136456/my-app-doesnt-show-in-analytics but haven't received any feedback. Can you take a look?5
499TISTUD-1662Editor: JavaScript Comment Auto-Complete initially fails to recognize preexisting blocks and cursor is incorrectly positionedJavaScript Comment Auto-Complete initially fails to recognize preexisting blocks and cursor is incorrectly positioned. I am marking this as a bug because the auto-comment partially works, and I can get into this bad state. Screenshot attached. The auto-complete kicks in after pressing enter twice, but the cursor is on the wrong line. Steps to Reproduce: 1. Enter code in JS file: {code} /**/ {code} 2. Insert cursor between the two asterisks (in the middle of the block comment) and press enter. Note: A vertical bar character is used to simulate the resulting position of the cursor. Expected Result: {code} /* * | * */ {code} Actual Result: {code} /* |*/ {code} 3. Press enter again. Expected Result: {code} /* * * | */ {code} Actual Result: {code} /* *|*/ {code} 4. Press enter again. Expected Result: {code} /* * * * | */ {code} Actual Result: {code} /* * *|*/ {code}8
500TISTUD-1669Titanium Studio: Preferences: cannot edit or leave titanium preferences menu with invalid values errorIf the titanium preferences menu is opened, the user cannot navigate to a different menu. There is a pop-up with an invalid values error. Screenshot attached. Also, if individual titanium preferences are edited, the changes cannot be applied. The only way to leave the menu is to press cancel or close the entire preferences window. Screenshot attached. There are no log entries. This does not occur in 2.0.1 (regression). I do not believe this occurred in yesterday's build. Steps to Reproduce: 1. Open studio, navigate to the titanium preferences menu (Preferences > Titanium Studio > Titanium). 2. Attempt to navigate to a different menu (e.g., press General). Expected Result: The menu should change. Actual Result: Pop-up error indicating invalid values. Menu does not change. 3. Change the Android SDK version (or any setting in the titanium preferences menu). 4. Apply the changes (press Apply). Expected Result: The changes should be saved. Actual Result: Apply is not selectable. Note: The titanium preferences menu can only be exited by pressing Cancel or closing the entire preferences menu (press the window X).5
501TISTUD-1671Titanium Studio: Multiline Search: enter newline keyboard shortcuts edit the wrong text areaWhen the multiline search box is up, and the enter new line keyboard shortcuts are used, the characters are entered in the active .js file instead of the search field. Screenshot attached. No log files. Not testable in studio 2.0.1 (new fail case). Command + Enter will add new lines to the .js file. Control + Enter will add visible '\n' characters to the end of the first line in the .js file. Steps to Reproduce: 1. Open studio, open a .js file (create a new project if necessary). 2. Open multiline search (Command + f in osx). 3. Click in the search box to give it focus and place the cursor inside the search box. 4. Press Command + Enter a few times (on osx only). 5. Press Control + Enter a few times. Expected Result: New lines should be added to the search box. Actual Result: New lines and visible '\n' characters are added to the active .js file.8
502TISTUD-1672Titanium Studio: Multiline Search: history and scope icons are inactive, only down arrow displays drop-down listSearch history icon does not function when clicked. Only the small down arrow next to the icon will display the search history drop-down menu. Screenshot attached. This is a valid issue, as this is how the run configuration icons function, in addition to basic usability. This also affects the scope icon. Note: There are two history icons, one for search and one for replace (both fail). Steps to Reproduce: 1. Open studio, open js file (create new project as needed). 2. Activate search (command + f on osx). 3. Click on the history icon (flashlight) or the scope icon. Expected Result: A search history drop-down list should display. Actual Result: The icon blinks. However, the small down arrow next to the icon functions correctly.5
503TISTUD-1673Titanium Studio: Multiline Search: enable horizontal scrolling in search and replace boxesIn the search and find text areas, vertical scrolling (i.e., by mouse scroll) is enabled, but not horizontal scrolling. This impairs the functionality of the fields because longer text lines cannot be easily navigated. The only way to scroll horizontally is to use the highlight functionality of the cursor (not ideal). Screenshot attached. Steps to Reproduce: 1. Open studio, open a js file. 2. Open search bar (command + f on osx). 3. Enter long line of text (longer than the search field itself) into search field. 4. Attempt to scroll horizontally. Expected Result: Search field (and replace field) should scroll horizontally to easily view the entire line of text. Actual Result: Nothing happens. The workaround is to use the highlight or left/right arrow functionality of the cursor to drag/move left and right.2
504TISTUD-1674Titanium Studio: Multiline Search: add "Select All" command to select all to search and replace boxesWhen clicking on text in the search or replace boxes, it is difficult to select all the text. Steps to Reproduce: 1. Open studio, create a new project, open the app.js file. 2. Open search bar (command + f on osx). 3. Copy/paste a larger block of code in the search box. 4. Attempt to use the "Select All" command to select all the text Expected Result: All text in the box highlights. Actual Result: Select all doesn't work.5
505TISTUD-1677Multiline Search: find should jump to string matches when scope is set to open filesWhen two js files are open, each containing a particular string, and that string is searched-for from the search bar using the scope setting: open files, the find button does not jump the cursor to the matching string instances. The matches are recognized and highlighted when find is pressed, but the specific matches are not iterated using the find button. Steps to Reproduce: 1. Open studio, create a new project. 2. Add a new js file to the project. 3. Add any string (e.g., xxx) to both app.js and the other .js file. 4. Make sure both files are open in the editor. 5. Open the search bar (command + f in osx). 6. Click on Scope (the down arrow next to it) and set it to Open Files. 7. Enter the string that exists in both files (e.g., xxx) into the search field. 8. Click find a few times. Expected Result: The cursor should iterate through the instances of the matching string. Actual Result: All instances highlight, but the cursor does not iterate, and the second file never gets focus (to view it's string match). The cursor8
506TISTUD-1678Android: allow users to launch x86 emulatorh2. Description Developers need to be able to leverage the Android x86 emulator that was made available with Android SDK r17. It claims to have performance increases beyond the standard emulator making for a better development experience. h2. Proposed Solution(s) It would be good if you could specify by default whether you want to use the x86 or standard emulator for all projects, perhaps in {{Preferences -> Titanium Studio -> Titanium}}. It should be the standard emulator by default as the x86 emulator currently does not include the Google APIs (which would prevent the KitchenSink from running) and it does not support V8, as detailed in the linked ticket. Also, it should be configurable on a per-project basis as well, for the same reasons I listed in the above paragraph. So: # We need to upgrade our AVI detection to show the available ABIs per device # For devices with multiple ABIs we need to allow the user to select which one to use as part of the launch configuration, and that is passed as the first argument to the SDK for SDKs 2.1+. For < 2.1, we only pass the device argument # We could add a preference in Titanium Preferences to default to x86 or standard emulator (were available). This would se the default ABI selection in the launch configuration. 13
507TISTUD-1680Better error hinting with regard to non-UTF-8 characters for androidh2. Problem When a non-UTF-8 character is found in a Titanium editor window, TiStudio will mark the file containing it with an error in the gutter. Doing a mouse over on this error reveals the following error message. {code:lang=none} File needs to be in UTF-8 encoding for Android. Decoding failed near byte 0. {code} Unfortunately for me, the non-UTF-8 character was no where near byte 0. It was actually at byte 1193 as shown in the Android error log when attempting to ignore TiStudio's error and run the application anyway: {code:lang=none} [ERROR] Exception occured while building Android project: [ERROR] Traceback (most recent call last): [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/builder.py", line 2125, in <module> [ERROR] s.build_and_run(True, avd_id, device_args=device_args) [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/builder.py", line 1867, in build_and_run [ERROR] True, project_dir = self.top_dir, include_all_ti_modules=include_all_ti_modules) [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/android.py", line 301, in create [ERROR] self.build_modules_info(resource_dir, app_bin_dir, include_all_ti_modules=include_all_ti_modules) [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/android.py", line 170, in build_modules_info [ERROR] compiler.compile(compile_bytecode=False, info_message=None) [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/compiler.py", line 250, in compile [ERROR] js_contents = self.make_function_from_file(fullpath) [ERROR] File "/Users/tlukasavage/Library/Application Support/Titanium/mobilesdk/osx/2.0.1.GA2/android/compiler.py", line 209, in make_function_from_file [ERROR] file_contents = codecs.open(path,'r',encoding='utf-8').read() [ERROR] File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py", line 671, in read [ERROR] return self.reader.read(size) [ERROR] File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py", line 477, in read [ERROR] newchars, decodedbytes = self.decode(data, self.errors) [ERROR] UnicodeDecodeError: 'utf8' codec can't decode byte 0xa9 in position 1311: invalid start byte {code} h2. Proposed Solution Return a byte position that more closely represents the location of the offending non-UTF-8 character. Also, if possible, move the error marker in the gutter from the first line of the file to the appropriate line in the file. h2. Test Case The following comments should be enough to show what I mean. The character after the word "Copyright" is the one causing the error, but TiStudio reports the error at byte 0. {code:javascript} // ========================================================================= // // xmlw3cdom.js - a W3C compliant DOM parser for XML for <SCRIPT> // // version 3.1 // // ========================================================================= // // Copyright (C) 2002, 2003, 2004 Jon van Noort (jon@webarcana.com.au), David Joham (djoham@yahoo.com) and Scott Severtson // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // visit the XML for <SCRIPT> home page at xmljs.sourceforge.net // // Contains text (used within comments to methods) from the // XML Path Language (XPath) Version 1.0 W3C Recommendation // Copyright � 16 November 1999 World Wide Web Consortium, // (Massachusetts Institute of Technology, // European Research Consortium for Informatics and Mathematics, Keio University). // All Rights Reserved. // (see: http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/) {code}8
508TISTUD-1685Allow users to tab between fields in JIRA "Submit Ticket" dialogh3. Steps to Reproduce # Choose Help > Titanium Studio > Submit Ticket... # Attempt to tab betwen fields # It instead inserts a tab into the current field h3. Actual Result Inserts a tab into the current field h3. Expected Result Tabs between fields3
509TISTUD-1681Dashboard's Configure page has two platform "spinners" that never get replaced by contentWhen I load the Dashboard on my Win7 VM and then click the "Configure" tab, MobileWeb appears, but there are two spinner placeholders (for IOS and Android?) that never get replaced by content.8
510TISTUD-1682Studio: Local variables do not appear in content assistLocal variables do not appear in content assist. This is a regression issue (did not appear in 1.0.9). Steps to reproduce: 1. In a JavaScript file enter: {code} function myFunction(myParam){ var newLocal = my } {code} 2. Invoke content assist after the my on the unfinished line. Expected results: Content assist should suggest myFunction and myParam as options. Actual results: Content assist shows only myFunction as an option. First reported in [this post|http://developer.appcelerator.com/question/137164/titanium-studio-20-autocomplete---local-variables].13
511TISTUD-1683Out of Memory error indexing ti.jira moduleWhen I was testing module installation in TISTUD-1579, I ran into this issue after the module got unzipped to a project. The module involved was ti.jira 1.2.1 ("JIRA Module" in the marketplace). {code} !ENTRY org.eclipse.core.jobs 4 2 2012-05-21 13:36:05.558 !MESSAGE An internal error occurred during: "Building workspace". !STACK 0 java.lang.OutOfMemoryError: Java heap space java.util.HashMap.<init>(HashMap.java:187) java.util.HashMap.<init>(HashMap.java:199) com.aptana.internal.index.core.DiskIndex.readCategoryTable(DiskIndex.java:1099) com.aptana.internal.index.core.DiskIndex.addQueryResults(DiskIndex.java:303) com.aptana.index.core.Index.query(Index.java:547) com.aptana.editor.js.contentassist.index.JSIndexReader.getFunctions(JSIndexReader.java:306) com.aptana.editor.js.contentassist.JSIndexQueryHelper.getFunctions(JSIndexQueryHelper.java:84) com.aptana.editor.js.contentassist.JSIndexQueryHelper.getMembers(JSIndexQueryHelper.java:192) com.aptana.editor.js.contentassist.JSIndexQueryHelper.getGlobals(JSIndexQueryHelper.java:124) com.aptana.editor.js.inferencing.JSNodeTypeInferrer.visit(JSNodeTypeInferrer.java:641) com.aptana.editor.js.parsing.ast.JSIdentifierNode.accept(JSIdentifierNode.java:33) com.aptana.editor.js.parsing.ast.JSTreeWalker.visit(JSTreeWalker.java:176) com.aptana.editor.js.inferencing.JSNodeTypeInferrer.getTypes(JSNodeTypeInferrer.java:260) com.aptana.editor.js.inferencing.JSNodeTypeInferrer.visit(JSNodeTypeInferrer.java:491) com.aptana.editor.js.parsing.ast.JSFunctionNode.accept(JSFunctionNode.java:46) com.aptana.editor.js.parsing.ast.JSTreeWalker.visit(JSTreeWalker.java:176) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.processValues(JSSymbolTypeInferrer.java:560) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getSymbolPropertyElement(JSSymbolTypeInferrer.java:352) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getSymbolPropertyElement(JSSymbolTypeInferrer.java:389) com.aptana.editor.js.inferencing.JSSymbolTypeInferrer.getScopeProperties(JSSymbolTypeInferrer.java:292) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.processParseResults(JSFileIndexingParticipant.java:216) com.aptana.editor.js.contentassist.index.JSFileIndexingParticipant.index(JSFileIndexingParticipant.java:104) com.aptana.core.internal.build.IndexBuildParticipant.buildFile(IndexBuildParticipant.java:104) com.aptana.core.internal.build.LazyBuildParticipant.buildFile(LazyBuildParticipant.java:72) com.aptana.core.build.UnifiedBuilder.buildFile(UnifiedBuilder.java:520) com.aptana.core.build.UnifiedBuilder.doBuildFiles(UnifiedBuilder.java:432) com.aptana.core.build.UnifiedBuilder.buildFiles(UnifiedBuilder.java:409) com.aptana.core.build.UnifiedBuilder.incrementalBuild(UnifiedBuilder.java:232) com.aptana.core.build.UnifiedBuilder.build(UnifiedBuilder.java:168) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) {code}8
512TISTUD-1694TestFlight Publish confirmation dialog is missing contentWhen a TestFlight publish is complete, the confirmation dialog has yes/no buttons, but does not pose a question. This may apply to the entire publish extension, so the fix may be in the default implementation5
513TISTUD-1695Titanium Studio: Project Explorer: Close Project and Open Project not updated until re-click on projectProject > Open, and Project > Close command availability are not updated in real time for projects in the Project Explorer. The old project options are still available (e.g., Close is available if the project is already closed). Re-clicking the project in the explorer will update the Project menu options. This is not a regression. There is no log info. Fail Cases: 1. Project Explorer: Cannot open a newly closed project. 2. Project Explorer: Cannot close a newly opened project. Note: Project Explorer: Cannot close a freshly created project. - This is an invalid case as tiapp.xml has focus. Steps to Reproduce: 1. Click a project in Project Explorer to manually refresh Project menu options. 2. Click Project > Close to close project. 3. Click Project. Expected Result: Project > Open should be available. Actual Result: Open is not available. If the project is re-clicked, it will become available. 4. Re-Click project in Project Explorer to manually refresh Project menu options. 5. Click Project > Open to open project. 6. Click Project. Expected Result: Project > Close should be available. Actual Result: Close is not available. If the project is re-clicked, it will become available.8
514TISTUD-1697Titanium Studio: App Explorer: opening a project in Project Explorer changes selected project in App ExplorerWhen a project is opened after being closed in the Project Explorer, the App Explorer selected project is updated to the recently opened project. It is expected the selected project in the App Explorer would only change if it is deleted or manually changed. However, the App Explorer selected project is not updated (correctly) if a new project is created. This is not a regression. There is no log info. Steps to Reproduce: 1. Create two projects. 2. In the App Explorer, select the first project. 3. In the Project Explorer, select the second project. 4. Close the second project using Project > Close. 5. Open the project using Project > Open (reselect project if Project menu commands do not update). 6. Navigate to the App Explorer. Expected Result: The first project should be selected (the first one that was selected). Actual Result: The second project is selected (the one that was recently opened).8
515TISTUD-1698Titanium Studio: Editor: reopening open project file via Project Explorer Local Filesystem results in duplicate mirror file in editorIf a file that is open in the editor is opened again using the Project Explorer Filesystem, there is a resulting mirror copy of the file in the studio editor. This is not a regression. There is no log info. Steps to Reproduce: 1. Create a new project. 2. Open app.js if it isn't open already from the Project Explorer project folder. 3. Go to Project Explorer > Local Filesystem, navigate to app.js (the same file) and open it. Expected Result: The original open version of the file should gain focus. Actual Result: Another copy of the same file will open in the editor resulting in two duplicate open files. Edits to one file are mirrored in real-time to edits in the other file.8
516TISTUD-1700"Search > Search" and "Search > File" bring up same menuSearch > Search and Search > File bring up the same menu. Alternately, PyDev is missing from the Search drop down (e.g., Search > PyDev...). Titanium Behavior: In the Search drop-down, there are two options (Search, and File...). Search > Search brings up the search menu. Search > File... brings up the search menu with identical settings. There is a second tab in the search menu for PyDev that is not selectable from the command drop-down list. Eclipse Behavior: In Eclipse, there are three search options (Search, File..., and JavaScript...). Search > Search brings up the search menu with the JavaScript tab selected. Search > File... brings up the search menu with the File tab selected. Search > JavaScript... brings up the search menu with the JavaScript tab selected. There is a third Java tab that exists in the menu, but is not accesible from a drop-down command. The issue is Titanium should either remove Search > File... because it brings up a duplicate menu, or add Search > PyDev... to access the PyDev tab in the search menu. This is not a regression. There is no log info. Steps to Reproduce: 1. Open Studio. 2. Go to the Search drop-down menu at the top. Expected Result: Search > File... should not exist, or Search > PyDev... should exist. Actual Result: Search > Search and Search > File... bring up identical menus.8
517TISTUD-1701Editor: changing file type then reopening does not reflect new file typeIf a file is open in the editor, and the file type is edited in the project explorer, the open file in the editor is not fully updated. See info in Expected/Actual Result below. The file will only update if it is closed and reopened. Clicking on the file will not update it. Relaunching studio will not update it. This is not a regression. There is no log info. Steps to Reproduce: 1. Create a new project. 2. Add a generic typeless file to the project. 3. Add JavaScript code to the file. Verify lack of syntax highlighting. 4. While project is open in editor, change the filetype of the file in the project explorer to .js. Expected Result: 1. The filename should change in the project explorer. 2. The icon for the file in the project explorer should update. 3. The filename should change in the open file editor. 4. The icon for the file in the open file editor should update. 5. The syntax highlighting in the open file should update. 6. The error info in the open file should update. Actual Result: 1. The filename should change in the project explorer. - YES 2. The icon for the file in the project explorer should update. - YES 3. The filename should change in the open file editor. - YES 4. The icon for the file in the open file editor should update. - NO 5. The syntax highlighting in the open file should update. - NO 6. The error info in the open file should update. - NO Note: Double-Clicking on file or relaunching studio will not update the file formatting. Only closing and reopening file will reformat it.13
518TISTUD-1702Titanium Studio: code selection highlighting artifacts exist in some themes when cursor pressed and dragged down then upIn some themes, when the cursor is pressed to highlight a selection, dragged down over code, then dragged back up, there are highlight artifacts in the code editor display. Screenshot attached. No log info. This is not a regression. I tested all themes A-E. Themes affected: Aptana Studio 2.x All Hallow's Eve Eclipse Expresso Libre Steps to Reproduce: 1. Open Studio. 2. Change theme to an affected theme from above (i.e., Aptana Studio 2.x). Preferences > Titanium Studio > Themes. 3. Create a new project. 4. Open app.js. 5. Click and hold down the cursor/mouse button in the middle of the code file. Drag down then up. Expected Result: No highlight artifacts in the lower code. Actual Result: Highlighting artifacts in the lower code. See screenshot.8
519TISTUD-1703Titanium Studio: alpha highlight fails for some themes on initial preference changeWhen a block of code is highlighted and the theme preference is changed to certain themes, the highlighting intermittently fails until file reload. This is not a regression. This is only known to affect Windows 7 and Ubuntu 12.04, but not OS X. This is known to affect the following themes: idleFingers iLife 05 Steps to Reproduce: 1. Create a new project, open app.js. 2. Highlight an arbitrary block of code (and keep it highlighted). 3. Go to Preferences > Titanium Studio > Themes. 4. Change the theme to iLife 05 (for example). Click apply. 5. Move the preference window to view app.js. Expected Result: Highlighting alpha should be correctly applied. Actual Result: Highlighting alpha is not working. If the preference is accepted and the file is used, highlighting will be broken until the app is reopened. This is an intermittent issue.8
520TISTUD-1704Titanium Studio: App Explorer: Local Filesystem root has no name on LinuxOn Linux, the Project Explorer Local Filesystem root directory has no name. This does not affect Windows 7 or OS X Snow Leopard. This is not a regression. Steps to Reproduce: 1. Open studio. 2. Navigate to Project Explorer. 3. Navigate to Local Filesystem. 4. Navigate to the root directory. Expected Result: Root directory should have a name. Actual Result: Root directory does not have a name, it is a blank folder. See screenshot.5
521TISTUD-1705Titanium Studio: top menu bar receives events on Linux when other menu windows are openTop menu bar receives events on Linux when other menu windows (i.e., Preferences, About, Search) are open. This can result in multiple preference windows being launched. This is not a regression. This does not affect Windows 7 or Snow Leopard. This does not affect Eclipse on Ubuntu. Steps to Reproduce:prav 1. Open studio. 2. Open a menu window (e.g., Preferences, Search). 3. Click on the top menu bar (i.e., File, Edit, etc.). Expected Result: The top menu bar should not receive any click events. Actual Result: The top menu bar can receive events. However, the main editor frame is correctly blocked from receiving events. As a consequence, many info windows can be launched multiple times (i.e., Search, About). However, the main preferences window can only have one instance.8
522TISTUD-1751Improve accuracy of Testflight publish progress indicatorDuring the packaging and subsequent upload of a package to Testflight, the progress bar at the bottom of Studio stalls at 71%. User is unable to determine if the process is proceeding as expected or if a problem has occurred. An active progress indicator would alleviate concerns on the part of the user regarding the progress of their distribution.8
523TISTUD-1706Studio: Project Explorer: "Promote to Project" causes position shift in full screen modeWhen trying to promote a folder to a project in full screen / maximised mode, Titanium Studio moves when the Promote to Project dialogue box opens. This bug is a regression, this issue does not happen in 2.0.1. Steps to reproduce: 1. Open Titanium Studio in Maximised Mode. 2. In the Project Explorer open the context menu for a folder. 3. Select "Promote to Project". Expected Results: The Dialogue box would open without a change in Titanium Studio's location on the screen. Actual Results: Window containing Titanium Studio goes into windowed mode and shifts up on Windows 7, The screen shifts up while staying full screen for Mac OS 10.7.3, and Ubuntu 11.10 shifts into windowed mode but does not move.5
524TISTUD-1707Titanium Studio: module packaging to project with dirty tiapp.xml fails to write module xml tagsIf a module is packaged to a project with a dirty tiapp.xml (i.e., a module was just deleted using the red X), the module xml tags will not be written to the project tiapp.xml. This is not a regression. There is no log. This is related to TISTUD-1666, but this is a separate edge case. Steps to Reproduce: 1. Create a new project. 2. Create a new module. 3. Package the module to the project. 4. Delete the module from the project using TiApp Editor Overview (click the red X to delete module). This will dirty the tiapp.xml file and remove the module xml tags, but keep the module folder in the project. 5. While the editor is still dirty, package the module again to the project. Expected Result: Module should package and appear in TiAPP Editor Overview, xml tags for the module should exist in the tiapp.xml file. Actual Result: Module packages, but does not appear in the TiAPP Editor Overview. The xml tags are not generated. It is worth noting the module tags will be added if the tiapp.xml file is dirty from other kinds of edits (i.e., changing the app version from 1.0 to 2.0).8
525TISTUD-1708Studio: HTML verification does not mark syntax errorsI get warning for the DOCTYPE missing but see no syntax errors being marked. This is on a fresh install of Titanium Studio running default settings in a new work space. This is a regression, HTML validation worked in 2.0.1. Steps to reproduce: 1. Create an HTML file with the following: {code} <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>HTML</title> <meta name="author" content="qatester" /> <!-- Date: 2012-05-25 --> </head> <body> <a href="http://google.com" src="this shouldn't work" div>Google</a> <xml>this shouldn't be here</xml> <?import namespace="t" implementation="#default#time2"> <p> This tag is correct.</p> </body> </html> {code} Expected results: Validation should return with warning and errors. Actual results: Only the DOCTYPE warning appears.8
526TISTUD-1709Studio: HTML verification does not mark a warning for unknown attributeThe following code was used in testing and should throw a warning out on the anchor tag's line. Steps to reproduce: 1. Create a HTML file that contains the following: {code} <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>HTML</title> <meta name="author" content="qatester" /> <!-- Date: 2012-05-25 --> </head> <body> <a href="http://google.com" src="this shouldn't work" div>Google</a> </body> </html> {code} Expected Result: A warning should appear on the anchor tag's line. Actual Result: The anchor tag's line does not generate any warning.8
527TISTUD-1710Dashboard: "Explore" tab has two $$ next to prices of modulesThe Titanium Studio dashboard shows two dollar signs next to module prices. See attached images.2
528TISTUD-1713The JIRA account preference page should not validate when both username and password are emptyFrom one of our Titans: "Going into the Preferences screen and trying to save yields an error that says that a username must be entered. It is vague, and doesn't say which username or which page the username is on. It turns out it's the JIRA username, but that shouldn't be required for everyone to save their Preferences. Shawn" 2
529TISTUD-1714Titanium Studio: Preferences menu default size too small to display "Apply" and "Restore Defaults" buttonsThe Preferences > Titanium Studio > Titanium menu window, by default, is too small to display the "Apply" and "Restore Defaults" buttons. Screenshot attached. Resizing the window will reveal the buttons (and the resize is automatically saved, fixing the problem). This issue did not affect Studio 1.0.9. This is a regression. This does not affect Windows XP. Steps to Reproduce: 1. Delete the meta data for the current workspace (or create a new empty workspace). 2. Restart studio. 3. Go to Preferences > Titanium Studio > Titanium. Expected Result: "Apply" and "Restore Defaults" should be visible. Actual Result: "Apply" and "Restore Defaults" are not visible, window must be resized.3
530TISTUD-1716Titanium Studio: Import: Import shows an error with Null Pointer exception when project is created inside a directory within the workspaceWhile trying to import a project that is newly created inside a directory within the workspace then an error message box is shown with Null Pointer exception and the project imported into the project explorer is empty Not a regression, the behavior exists as far as Titanium Studio 1.0.8 Steps to Reproduce: 1. Using the command line interface create a new titanium mobile project within a directory inside the workspace, using the command like: $$ /Users/<username>/Library/Application\ Support/Titanium/mobilesdk/osx/2.0.2.v20120525161324/titanium.py create --platform=iPhone --type=project --dir=<path to studio workspace>/testing --name=iPhoneProject1 --id=com.appcelerator.iphoneproject1 2. From Titanium Studio, using the workspace as mentioned in the command above, go to File >> Import >> Titanium >> Import Existing Titanium Project 3. Select the recently created project (i.e. iphoneproject1) and click Finish Actual: i) A problem occurred message box pops up with java.lang.NullPointerException as details. (Refer to attached screenshot) ii) The project is shown in the project explorer but is empty iii) In the workspace folder on the system, a folder exists with the project name (outside the directory it was created in) and is empty Note: i) If the project is not created within the directory then it can be imported without issues ii) The issue occurs only only on newly created projects and only if the project is created within a directory or sub-directory inside the workspace 8
531TISTUD-1717Studio: Command menu does not display in Ubuntu.While testing in Ubuntu 12.04 I noticed that the Command menu does not appear in the Unity desktop (it appears fine in a gnome desktop setup). Something in the interaction with Unity is causing it to not display properly. Steps to reproduce: 1. Open Titanium Studio with Unity as it's desktop (default setting) 2. Try to run a command from the command window. Actual result: The command menu is not present. Expected result: The command menu should be present.13
532TISTUD-1719Titanium Studio: Android Run Configuration does not auto-select screen type if none existsIn the run configurations settings for an android emulator instance, if the sdk version is changed to one that does not have a screen type that existed in the previously selected sdk, there is only a blank screen type, resulting in invalid settings. It would be expected for studio to automatically select the first available screen type from the list if there is none selected on first sdk change. This is not a regression. Steps to Reproduce: 1. Open Studio. 2. Go to the Run Configurations menu. 3. Create a new android emulator run configuration. 4. Select google api's 2.2. Select a screen type. 5. Select google api's 3.0. Expected Result: A screen type should be selected. Actual Result: The screen type is blank, the run configuration is invalid until the screen type is selected.5
533TISTUD-1720run configuration menu should open last used run configuration for the selected project in app explorerWhen a project is selected in the project explorer, and the project explorer Run Configurations menu is selected, it would be convenient if the Run Configurations menu auto-selected the last used run configuration for that selected project (instead of the last run configuration for all projects). Workflow: 1. Create two projects. 2. Run the first project in emulator. 3. Run the second project in emulator. 3. Select the first project and go to Run Configurations. Expected Result: The last used run configuration for project one should be selected when the run configuration menu is brought up. Actual Result: The project two run configuration will be selected because it was the last used.8
534TISTUD-1721setting runtime to rhino then back to v8 results in v8 xml tag in tiapp.xml when it should be defaultIn the TiApp Overview, setting the runtime to rhino, then back to v8 results in an xml tag added to the tiapp.xml when there should be none because v8 is default for 1.8.0.1+ sdks. This is not a regression. Steps to Reproduce: 1. Create a new project using a 1.8.0.1+ sdk (e.g., 2.0.1.GA). 2. Set the runtime to rhino. 3. Set the runtime back to v8. 4. Check the tiapp.xml. Expected Result: There should be no runtime tags at all because v8 is default for newer sdks. Actual Result: There is a v8 tag. This causes a related bug TISTUD-820.3
535TISTUD-1723Titanium Accounts "Login" button should be disabled until values are entered for Username and PasswordSteps: 1. Bring up Titanium Studio->Account preferences 2. Enter a value for username. Keep password empty Expected results: Login button is disabled Actual results: Login button is enabled The Login button should be disabled until values are entered for username and password. This applies to JIRA and NodeJITSU logins5
536TISTUD-1820Creating an app in studio with "HTML-Based" template shows on "my apps" as "HTML Template" regardless of project name, and has the same GUID regardless of userWhile testing pricing we noted an application appeared on Neha's "my apps" list shortly after she tried to create an HTML-based template project in studio. The GUID or name of the application on "my apps" did not match the studio project Neha created. The name on "my apps" was "HTML Template". Shortly after creation, and while browsing, Neha's "HTML Template" project disappeared from her apps list. Fortunately Chung witnessed this over our shoulders. Natalie was able to reproduce the "HTML template" entry on her account, and I was able to on mine. Although Neha's went missing, we looked at the GUID enough to see similarity with Natalie's GUID. Comparing that to mine, we all have the same GUID. See attached screens for Natalie's production list and my pre-prod list with the new UI. Steps to reproduce: 1) Create a new studio project using "HTML-Based" template 2) Check "my apps" list for "HTML Template" 3) Check GUID Result: GUID will be as seen for others, project will exist and not match name of studio project or GUID. Expected: App entry in "my apps" should have matching name and matching but unique GUID 5
537TISTUD-1726Error cleaning titanium project when platform SDK has unusual version stringI have an app tied to a special SDK version for blackberry, where the folder name is "blackberry_compat_2.0.1.v20120407201726". When the project is cleaned, we throw an error trying to parse the version. {code} !ENTRY org.eclipse.core.resources 4 75 2012-06-01 10:47:31.436 !MESSAGE Errors occurred during the build. !SUBENTRY 1 com.appcelerator.titanium.core 4 75 2012-06-01 10:47:31.436 !MESSAGE Errors running builder 'Titanium Builder' on project 'blackberry_app'. !STACK 0 java.lang.NumberFormatException: For input string: "blackberry_compat_2" java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) java.lang.Integer.parseInt(Integer.java:449) java.lang.Integer.parseInt(Integer.java:499) org.osgi.framework.Version.<init>(Version.java:127) org.osgi.framework.Version.parseVersion(Version.java:225) com.appcelerator.titanium.core.TitaniumProjectBuilder.clean(TitaniumProjectBuilder.java:72) org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:730) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513) org.eclipse.core.internal.resources.Workspace.build(Workspace.java:422) com.aptana.editor.common.preferences.ValidationPreferencePage$ApplyChangesAndBuildJob.run(ValidationPreferencePage.java:130) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}8
538TISTUD-1728The module dialog seems to only read modules on startup/restartIf you drop a module in Titanium global directory and try and add it using the UI, it won't show up in the list. You must re-start Studio to get it to detect the presence of the new module. We need to re-read each time you launch the dialog5
539TISTUD-1730Dashboard: Error:'$H' is undefinedWhen starting Titanium Studio in Windows 7, I am given the following webpage error: Line: 1 Error: '$H' is undefined This is created in the log at about the same time and may be related.: {noformat} !ENTRY com.appcelerator.titanium.core 4 0 2012-06-04 08:22:22.053 !MESSAGE (Build 2.0.2.201205311912) [ERROR] com.appcelerator.titanium.core/debug null !STACK 0 java.lang.NullPointerException com.appcelerator.titanium.core.JVMInfo.hasJavac(JVMInfo.java:265) com.appcelerator.titanium.core.JVMInfo.hasJavac6432(JVMInfo.java:224) com.appcelerator.titanium.core.JVMInfo.parseJavaVersion(JVMInfo.java:204) com.appcelerator.titanium.core.JVMInfo.load(JVMInfo.java:122) com.appcelerator.titanium.core.JVMInfo.<init>(JVMInfo.java:61) com.appcelerator.titanium.core.JVMInfo.getInstance(JVMInfo.java:46) com.appcelerator.titanium.mobile.portal.processor.MobileSDKConfigurationHelper.getVersionInfo(MobileSDKConfigurationHelper.java:141) com.appcelerator.titanium.mobile.ui.portal.processor.MobileSDKConfigurationProcessor.computeStatus(MobileSDKConfigurationProcessor.java:99) com.aptana.configurations.processor.AbstractConfigurationProcessor.getStatus(AbstractConfigurationProcessor.java:154) com.appcelerator.titanium.mobile.ui.portal.actionController.MobileSDKActionController$1.run(MobileSDKActionController.java:124) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {noformat} This is a regression bug, this did not occur in earlier builds of the dashboard (last tested 5/30/2012). Steps to reproduce: 1. Launch Titanium Studio. Expected result: Titanium Studio should start without error. Actual result: Titanium Studio throws the given error and creates the entry in the log file.8
540TISTUD-1731Add "continuous integration master" stream to "Install Titanium SDK..."The stream URL is http://builds.appcelerator.com.s3.amazonaws.com/mobile/master/index.json. We need to work with the platform team to regularize the format so it is closer to what the release stream generates (with version information) so we could apply the same logic on both if possible. 5
541TISTUD-1732Titanium Studio: change default promote project option to titanium mobileWhen a folder is imported into studio as a "promote to project" option, Web Project is the default setting. It seems like the default option should be "Titanium Mobile Project". Screenshot attached. Import > General > Existing Folder as New Project8
542TISTUD-1733Titanium Studio: JIRA Integration: remove priority from bug submission fieldsIn Help > Submit a Ticket, the Priority field needs to be removed.5
543TISTUD-1734Titanium Studio: add validation to "promote to project from folder" option for existing projectsWhen a previously existing project is "promoted to project", there is no validation to inform the user a project already exists. Steps to Reproduce: 1. Create a titanium mobile project. 2. Delete the project from the workspace (without removing from disk). 3. Reimport the project using Import > General > Existing Folder as New Project. Expected Result: A notification that the folder has an existing project type. Actual Result: No notification. Existing project info is overwritten.8
544TISTUD-1735JavaScript editor is showing a lot more warnings after updating to 2.0.2Steps to reproduce: 1. Import Kitchen Sink sample (or any other sample) from Samples view; 2. Open Preferences > Titanium Studio > Validation > JavaScript and make sure "JSLint Validator" is selected; 3. Click OK and agree to re-build the project if asked. 4. Open Resources/app.js file. Expected result: no validation warning is displayed. Actual result: many validation warnings are shown. 8
545TISTUD-1737Publish provider wizard does display entire Android platform pageSteps: 1. Start the sample publish provider wizard. Publish->Sample Publish Provider->Publish... 2. Select Android and proceed to the platform page Expected results: The entire Android platform page is shown Actual results: The keystore section is cut off, requiring a resize of the wizard5
546TISTUD-1738Auto-configure browser list to contain all installed browsers on Mac OSXDescription: While attempting to set a browser before running a mobile web preview, I noticed that the list of browsers did not include any specific browsers except firefox. It would be ideal to populate the list of installed browsers rather than have the user populate the list manually. Steps to reproduce: 1) Install Studio 2) Create project with mobile web target 3) Run in browser 4) Select "run configurations" and use the browser selection section Result: Firefox is the only 3rd-party browser listed although I have Chrome, Firefox, and Safari Expected: Firefox not displayed, or all installed browsers displayed Note: The version # of the browser is displayed here as part of the name of the browser. 8
547TISTUD-1740Titanium Studio: Android Emulator: Not recognized by adb, unable to install to Emulator.When Android emulator deployed, adb fails to recognize the emulator. This is intermittent issue, it effect all emulator versions. This is not an regression it occurred in 2.0.2 Step to reproduce: 1) Create default project. 2) Right Click, Select "Run As", Select "Run Configurations..." 3) Select "Titanium Android Emulator" 4) Select platform Android API: "Google API Android 4.0.3" 5) Apply and Run. Expected Result: adb should recognized the emulator or if this occur then studio should be provide error correction to handle the error properly. Actual Result: adb doesn't recognize the emulator. Studio fails to notified to developer of the failure and App never installed. 13
548TISTUD-1742Hitting Enter/Return in password field of JIRA login on Submit Ticket dialog doesn't try to log user inIt'd be nice to be able to just hit Return/Enter and have it perform "Log In" without needing to click. This does work in the preference page version of the JIRA account login.3
549TISTUD-1743Add NodeJS Project wizard to listing in New > menu for Project and App ExplorerThe NodeJS project wizard is not listed in the "New" submenu like the Web/Ruby/TiMobile/PHP project wizards are.3
550TISTUD-1746Titanium Studio: Help > Install Specific Titanium SDK: sdk text field does not have focus when menu first invokedWhen the Help > Install SDK from URL menu is invoked, the skd text field does not have focus. It did have focus in 2.0.2. This is a usability issue and a regression. Steps to Reproduce: 1. Open Studio. 2. Go to Help > Install Specific Titanium SDK... Expected Result: Menu should pop up and sdk text field should have focus if it is selected. Actual Result: Text field does not have focus if it is selected, user has to manually select the field to paste the URL.3
551TISTUD-1752Need BOM (Bill of Materials) for packaged productAs part of continued quality control measures, the build and packaging procedure for Titanium releases will now include a BOM verification. This BOM will be generated from the Development environment and will be verified by QE via a fully releasable packaged installation. This procedure was implemented for the 2.0.2 release of SDK package.3
552TISTUD-1753Wrong Android screen-type is used when launching a Mobile Web project for the first time# Create a new MobileWeb project # Right click the project and select 'Run As... -> Mobile Web Preview in Emulator' # Open the run configuration dialog and locate the newly create Mobile Web launch configuration. Expected: The newly created launch configuration has the default Android 'screen-type' defined at the Titanium preference page. Actual: The configuration has the first option in the drop-down selected, ignoring the defaults.5
553TISTUD-1754Titanium Studio: HTML Editor: invalid closing tag does not generate warninghtml verification is not working for closing tags. ex: body tags, paragraph tags etc. This is regression as it do work in 2.0.1, there is no log information. Step to reproduce: 1. Create an blank HTML file. 2. Insert the following code: {code} <html> <head> <title> <title> <head> <body> <p> <p> <body> </html> {code} Expected Result: Invalid closing tags should displays the warning icon. Actual Result: No warnings.13
554TISTUD-1757Titanium Studio TiApp.xml visual interface does not show common js modules such as the amazon ti.awsTitanium Studio TiApp.xml visual interface does not show common js modules such as the amazon ti.aws Titanium AWS module can be found here: https://github.com/appcelerator-se/aws It is installed sibling to the ti.cloud commonjs module in the /commonJS/ folder After this is installed the tiapp.xml visual editor does not show the ti.aws module as available. it can be manually entered into the tiapp.xml file and works, however the visual interface does not show it PLEASE READ THE FOLLOWING TICKET: there is a bug that is direct conflict with this request: https://jira.appcelerator.org/browse/TISTUD-1318 8
555TISTUD-1761Titanium Studio: high CPU after removing git-enabled project from workspaceWhen a git-enabled project is imported then deleted (not from disk) from the workspace, the cpu remains abnormally high for a few minutes. CPU: 137% This is not a regression. Attaching stack trace. Steps to Reproduce: 1. Import a git-enabled titanium mobile project. 2. Delete the project (not from disk) from the workspace. 3. Observe CPU usage (i.e., Activity Monitor). Expected Result: CPU should be low (e.g., 1.7%). Actual Result: CPU is high (e.g., 137%) and remains so for a few minutes.8
556TISTUD-1769Empty separator in Publish submenu for Web project1. Create a web project using File > New > Web Project; 2. Right-click on the project and select Publish. The pull-over menu will show an empty separator at the top. This doesn't happen on Aptana Studio 3.2.0, nor on Titanium mobile project. 5
557TISTUD-1771Add new portal dashboard controller to run browser configuration checkRelated to TISTUD-1414, a portal controller that: # Runs the browser configuration check on demand # Returns back a list of the currently configured browsers8
558TISTUD-1772Add "Install Titanium Module" menu option to Help menuAdd a menu option (identical to the original Install Titanium SDK screen) that contains: # A text box for a URL # A browse button allowing a user to navigate to a folder on disk This will then install the specified module into the global SDK folder. A note added to the bottom of the screen informing a user of how to install a module for just a project (by dragging it in) would clarify that behavior.8
559TISTUD-1791Allow non-commercial iOS developers to deploy iOS applicationsI am using Titanium as a university student, by sharing a provisioning portal for my institution. This allows for educational use without paying the $99/year for a full iOS Developer account. The problem I have is that Titanium Studio is too knowledgeable of the commercial iOS developer program web site, and automates a few steps that I need to perform manually. I need to be able to input a developer certificate from the filesystem, as well as a provisioning profile also from the filesystem. The wizards should not prevent me from doing this, even though Titanium's test for me being in the iOS developer program fails (wizard error "Please sign up for the iOS Developer Program"). I can't even get by with editing the Launch Configuration. Any advice would be much appreciated, including dirty tricks like editing Titanium Studio config files, etc. 3
560TISTUD-1776Titanium Studio: Project Explorer: Python option is not available in the list of "New From Template" under python file"Python" option is not visible under "New From Template" list and after generating the new file from "New> File", "Python" option is not visible under "Commands" after right click inside the generated python file. Step to reproduce. (To generate the python file from template) 1) Click inside the "Project Explorer". 2) Select "New From Template" Actual Result: Python option is not visible. Expected Result: Python option should be visible. Step to reproduce. (After generating the python file from "New File" option.) 1)Right click inside the file. 2) Select the "Commands" option. Actual Result: Python option is not visible. Expected Result: Python option should be visible. 8
561TISTUD-1779Add version information to Windows browser configuration names and refresh version info on demandRelated to TISTUD-1414. As discussed, we need to include the version of the browser in question as part of the browser name (see image for example) Ideally, this value would be dynamic, but that appears to be impossible given the current UI. In the case where the user upgrades the browser later, the suggestion is that when the user re-runs the configuration step to auto-search, we replace the version #s of the existing browsers with the newer version.13
562TISTUD-1780TiApp.xml incorrectly displays select/enabled deployment targetsThe enablement of the platform targets is inconsistent Steps: 1. Create a mobile project with just mobile web and SDK >= 2.1.0 2. In the TiApp.xml, enable the android and iphone/ipad targets 3. Change the sdk to < 2.1.0 4. Save the TiApp.xml Results: Checkbox for Android/iphone/ipad are checked but enabled 5. Close the TiApp.xml and reopen it Results Checkbox for Android/iphone/ipad are checked but disabled The checkboxes should be disabled as soon as the SDK is switched (since we can't add/change platforms after the fact in SDK < 2.1)5
563TISTUD-1781Create interface to manage existing Titanium SDKsIf a user has a large selection of Titanium SDKs, they may want to be able to delete them after the fact. Suggest some management interface that would show a list of all currently installed SDKs and allows users to manage them Perhaps move the list of SDKs to a preference page, and move the "Install SDK from URL" functionality to that page.13
564TISTUD-1783Titanium Studio: Run Configurations menu not accessible from simplified Studio perspectiveWhen the new default simple Studio perspective is used, the Run Configurations menu from the deployment drop-downs is greyed-out. This does not occur on the original Extended Studio perspective. There is no log info. This is a regression in behavior. Steps to Reproduce: 1. Launch Studio. 2. Create a new project. 3. Select the run icon > Run Configurations... Result: Run Configurations is greyed-out and non-functional. Expected Result: Run Configurations should be functional.3
565TISTUD-1785When Ti Studio self-applies an update, a directory with several subdirectories remains on the root of the driveWhen a Ti Studio update is installed (using the built-in update notification), after the update is complete and Ti Studio is restarted, the following file always gets left on the hard drive: {panel}C:\var\hudson\workspace\titanium-standalone-master\builders\com.appcelerator.titanium.standalone.build\eclipse\artifacts.xml{panel} Note that the "var" directory is left at the root of the install drive...adding to the root directory is frowned upon. This file should either be placed in the Ti Studio install directory, or it should be removed at the end of the update installation process. 8
566TISTUD-1786Last line in JS editor does not have line number when word wrap is enabledh3. Steps to Reproduce 1. Open JS editor 2. Enable line numbers 3. Copy and paste the following: var win = Ti.UI.createWindow({ backgroundColor : 'white' }) var viewImgShow = Titanium.UI.createImageView({ height : '50', bottom : '50' }); view1_foto.addEventListener('click', function(e) { Ti.API.info('click event fired!!'); Titanium.Media.showCamera({ success : function(event) { my_image = event.media; if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) { viewImgShow.image = my_image; viewImgShow.show(); } }, saveToPhotoGallery : true, allowEditing : true, mediaTypes : [Ti.Media.MEDIA_TYPE_VIDEO, Ti.Media.MEDIA_TYPE_PHOTO] }); }); //this does not have a line number h3. Actual Result You will see that the last line does not have a line number. This seems to choke somewhere after line 30. h3. Expected Result The last line in the editor should have a line number13
567TISTUD-1788Android SDK wizard fails with the message "NLS missing message: MobileSDKConfigurationProcessor_updatermessage in: com.appcelerator.titanium.mobile.portal.processor.message"When trying to setup Android inside Titanium Studio, the wizard fails showing a window with the following error message: "NLS missing message: MobileSDKConfigurationProcessor_updatermessage in: com.appcelerator.titanium.mobile.portal.processor.message OK" I managed to install the SDK manually, but I get the same error message when I click the UPDATE button. This is a regression from 2.0.2. This does not occur in 2.0.1.3
568TISTUD-1792Titanium Studio: simple perspective not default and can't change back to Studio (extended) if in an old workspaceSimple Perspective does not show up and switching to Studio (extended) does not show the toolbar if in an old workspace. Steps to Reproduce: 1. Open Studio. Actual Result: Studio simple perspective is not the default, nor does it exist. The simple perspective is also not available in Window > Open Perspective. Expected Result: Simple perspective is default, exists, and is available in Window > Open Perspective.3
569TISTUD-1793Rename "Titanium Mobile [Module] Project" to "Titanium Project" and "Titanium Module Project"In keeping with the removal of Desktop functionality from the core of Studio, we should rename "Titanium Mobile Project" to "Titanium Project" and "Titanium Mobile Module Project" to "Titanium Module Project" 13
570TISTUD-1795Titanium Studio: Window > Hide Toolbar shows the toolbar instead in new workspaceWhen studio is launched in a new workspace, the simple perspective has a "Window > Hide Toolbar" option, but there is no toolbar. This command will instead show the toolbar. This issue goes away on second launch of studio. Steps to Reproduce: 1. Open Studio in a new workspace. 2. Go to Window > Show Toolbar. Actual Result: Window > Show Toolbar does not exist, it is now called Hide Toolbar. Expected Result: Show Toolbar should exist, Hide Toolbar should not, and Show Toolbar should show the toolbar.3
571TISTUD-1796Remove Titanium Desktop Project wizard from being promoted in Simple and Advanced perspectivesWe need to remove the Titanium Desktop project wizard from the File > New menu, or being "promoted" in any other areas.3
572TISTUD-1797Titanium Studio: Menu Options: File: New: File> New, Option doesn't shows all list of Titanium Project LIst - It's only shows the "Project" option.Perspective Studio window, After selecting the File>New displays only "Project...", "File", "Folder", "Untitled Text File" and "Other..." options. Step to reproduce: 1. Open Ti.Studio 2. Select Menu bar "File" 3. Select "New" 4. Check the Actual result 5. Select "Windows" from menu bar 6. Select "Open Perspective" 7. Select "Studio (extended) 8. Select "New" 9. Check the Expected result Expecte result: After selecting the "New" menu bar a list of Titanium Project options, to be user friendly experience. Actual Result: Only options are appearing in "New" menu bar is "Project.." 5
573TISTUD-1798Studio perspective does not prompt to reset the perspective if there have been changesSteps: 1. Install a 2.1 build on 0618 2. Show the Basic Studio perspective 3. Update Studio to a 2.1 build after 0621 (Studio perspective changed in this build) 4. Open Studio Expected When the studio perspective is opened, we should be prompted to reset the perspective Actual No request is made, the perspective remains out of date5
574TISTUD-1800Titanium Studio: Menu bar: Submit a Ticket..., the tab key only jumps between text fields, not all fieldsThis is not a regression, using TAB should select each button or check box in the "Submit a Ticket" Window. Step to reproduce: 1. Select "Help" menu bar 2. Select "Titanium Studio" 3. Select "Submit a Ticket..." 4. Use the TAB button from keyboard Expected result: Tab should select every button, check box, text area on using tab button. Actual result: Tab skipping all the check box and button and only working with text area. 3
575TISTUD-1804Titanium Studio crashes right after logging in with ClassNotFoundException: com.aptana.ui.PerspectiveChangeResetListener# Download the latest beta release from preview.appcelerator.com (i.e. http://preview.appcelerator.com/appcelerator/studio/standalone/install/beta/Titanium_Studio.dmg) # Run Studio. After logging in, it will crash with the following log: {code} !ENTRY org.eclipse.osgi 4 0 2012-06-22 06:52:25.288 !MESSAGE An error occurred while automatically activating bundle com.appcelerator.titanium.ui (17). !STACK 0 org.osgi.framework.BundleException: The activator com.appcelerator.titanium.ui.TitaniumUIPlugin for bundle com.appcelerator.titanium.ui is invalid org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171) org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299) org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440) org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268) org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) org.eclipse.ui.internal.util.Util.safeLoadExecutableExtension(Util.java:879) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.createContributionItem(DynamicToolBarContributionItem.java:183) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.getContributionItem(DynamicToolBarContributionItem.java:176) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.createControl(DynamicToolBarContributionItem.java:278) org.eclipse.jface.action.ControlContribution.fill(ControlContribution.java:97) org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:353) org.eclipse.jface.action.ToolBarManager.createControl(ToolBarManager.java:111) org.eclipse.ui.internal.menus.TrimContributionManager$ToolBarTrimProxy.dock(TrimContributionManager.java:88) org.eclipse.ui.internal.menus.TrimContributionManager.update(TrimContributionManager.java:265) org.eclipse.ui.internal.WorkbenchWindow.updateLayoutDataForContents(WorkbenchWindow.java:3874) org.eclipse.ui.internal.WorkbenchWindow.setLayoutDataForContents(WorkbenchWindow.java:3885) org.eclipse.ui.internal.WorkbenchWindow.createDefaultContents(WorkbenchWindow.java:1157) org.eclipse.ui.internal.WorkbenchWindowConfigurer.createDefaultContents(WorkbenchWindowConfigurer.java:623) org.eclipse.ui.application.WorkbenchWindowAdvisor.createWindowContents(WorkbenchWindowAdvisor.java:300) org.eclipse.ui.internal.WorkbenchWindow.createContents(WorkbenchWindow.java:1043) org.eclipse.jface.window.Window.create(Window.java:431) org.eclipse.ui.internal.Workbench$68.runWithException(Workbench.java:3664) org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600) org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: java.lang.NoClassDefFoundError: com/aptana/ui/PerspectiveChangeResetListener java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) java.lang.ClassLoader.defineClass(ClassLoader.java:615) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) com.appcelerator.titanium.ui.TitaniumUIPlugin.<init>(TitaniumUIPlugin.java:46) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) java.lang.Class.newInstance0(Class.java:355) java.lang.Class.newInstance(Class.java:308) org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166) ... 69 more Caused by: java.lang.ClassNotFoundException: com.aptana.ui.PerspectiveChangeResetListener org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 93 more Root exception: java.lang.NoClassDefFoundError: com/aptana/ui/PerspectiveChangeResetListener java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) java.lang.ClassLoader.defineClass(ClassLoader.java:615) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) com.appcelerator.titanium.ui.TitaniumUIPlugin.<init>(TitaniumUIPlugin.java:46) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) java.lang.Class.newInstance0(Class.java:355) java.lang.Class.newInstance(Class.java:308) org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166) org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299) org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440) org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268) org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) org.eclipse.ui.internal.util.Util.safeLoadExecutableExtension(Util.java:879) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.createContributionItem(DynamicToolBarContributionItem.java:183) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.getContributionItem(DynamicToolBarContributionItem.java:176) org.eclipse.ui.internal.menus.DynamicToolBarContributionItem.createControl(DynamicToolBarContributionItem.java:278) org.eclipse.jface.action.ControlContribution.fill(ControlContribution.java:97) org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:353) org.eclipse.jface.action.ToolBarManager.createControl(ToolBarManager.java:111) org.eclipse.ui.internal.menus.TrimContributionManager$ToolBarTrimProxy.dock(TrimContributionManager.java:88) org.eclipse.ui.internal.menus.TrimContributionManager.update(TrimContributionManager.java:265) org.eclipse.ui.internal.WorkbenchWindow.updateLayoutDataForContents(WorkbenchWindow.java:3874) org.eclipse.ui.internal.WorkbenchWindow.setLayoutDataForContents(WorkbenchWindow.java:3885) org.eclipse.ui.internal.WorkbenchWindow.createDefaultContents(WorkbenchWindow.java:1157) org.eclipse.ui.internal.WorkbenchWindowConfigurer.createDefaultContents(WorkbenchWindowConfigurer.java:623) org.eclipse.ui.application.WorkbenchWindowAdvisor.createWindowContents(WorkbenchWindowAdvisor.java:300) org.eclipse.ui.internal.WorkbenchWindow.createContents(WorkbenchWindow.java:1043) org.eclipse.jface.window.Window.create(Window.java:431) org.eclipse.ui.internal.Workbench$68.runWithException(Workbench.java:3664) org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600) org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: java.lang.ClassNotFoundException: com.aptana.ui.PerspectiveChangeResetListener org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 93 more {code}8
576TISTUD-1805Titanium Studio: If Titanium SDK root folder is read-only, Studio will not prompt the user with an errorIf the root Titanium SDK folder is readonly and latest sdk is not there, Studio will not find an sdk to update when update sdk is called. Step to reproduce: 1. /Users/"Your_home_dir"/Library/Application\ Support/Titanium/mobilesdk/osx 2. Delete the latest version of SDK folder 3. Give "Titanium" folder "read only" permission 4. Open Ti.Studio 5. Select "Help" from menu bar 6. Select "Check for Titanium SDK updates" Actual result: Ti.Studio displaying MSG. "No Ti.SDK update available" Expected result: Documentation web page should load in a browser.5
577TISTUD-1809Titanium Studio: Dashboard: remove desktop project from create new project dropdownDashboard > Develop > Templates > Create New Project still has a dropdown that allows the user to select a desktop project. There should only be one button that only creates a titanium studio project.3
578TISTUD-1813Titanium Studio: Run Configuration: new configuration should auto-select current projectWhen a new run configuration is created, it would be helpful if the project were auto-selected based on the project currently in focus (either from the project explorer, or app explorer). Steps to Test: 1. Select a Titanium Mobile project in the project explorer. 2. Go to Run Configurations... 3. Create a new Android Emulator run configuration. Expected Result: The project selected in the project explorer should be the default project in the new configuration. Currently there is no project selected in the new run config, it must be manually selected.8
579TISTUD-1815Invalid thread access in AndroidSimulatorLaunchConfigurationDelegate.notifyAppInstallError()Sound in the log file for TISTUD-1814 {code} !ENTRY org.eclipse.text 4 2 2012-06-25 13:57:15.427 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.text". !STACK 0 org.eclipse.swt.SWTException: Invalid thread access org.eclipse.swt.SWT.error(SWT.java:4282) org.eclipse.swt.SWT.error(SWT.java:4197) org.eclipse.swt.SWT.error(SWT.java:4168) org.eclipse.swt.widgets.Widget.error(Widget.java:774) org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:569) org.eclipse.swt.custom.StyledText.getLinePixel(StyledText.java:4169) org.eclipse.swt.custom.StyledText.handleTextChanging(StyledText.java:6242) org.eclipse.swt.custom.StyledText$6.textChanging(StyledText.java:5612) org.eclipse.ui.internal.console.ConsoleDocumentAdapter.documentAboutToBeChanged(ConsoleDocumentAdapter.java:302) org.eclipse.jface.text.AbstractDocument.fireDocumentAboutToBeChanged(AbstractDocument.java:665) org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1182) org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) org.eclipse.ui.internal.console.ConsoleDocument.replace(ConsoleDocument.java:82) com.appcelerator.titanium.mobile.ui.android.launch.AndroidSimulatorLaunchConfigurationDelegate.notifyAppInstallError(AndroidSimulatorLaunchConfigurationDelegate.java:475) com.appcelerator.titanium.mobile.ui.android.launch.AndroidSimulatorLaunchConfigurationDelegate.handleAppInstallTermination(AndroidSimulatorLaunchConfigurationDelegate.java:335) com.appcelerator.titanium.mobile.ui.android.launch.AndroidSimulatorLaunchConfigurationDelegate$1.handleDebugEvents(AndroidSimulatorLaunchConfigurationDelegate.java:279) org.eclipse.debug.core.DebugPlugin$EventNotifier.run(DebugPlugin.java:1119) org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) org.eclipse.debug.core.DebugPlugin$EventNotifier.dispatch(DebugPlugin.java:1153) org.eclipse.debug.core.DebugPlugin$EventDispatchJob.run(DebugPlugin.java:415) org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) {code}3
580TISTUD-1817Titanium Studio: Install Titanium Module > Browse while Packaging Module Freezes StudioIf the Install Titanium Module... Browse window is open and a module packaging operation completes, studio will freeze. It is not possible to get a stack trace when studio is in this condition. Studio must be force-closed from the Activity Monitor. This is a new fail case, as the Install Module menu is new, and I could not recreate a similar freeze in Studio 2.0.2. Note: I was able to reproduce this every time in OS X, but I could not reproduce at all in Windows 7. Steps to Reproduce: 1. Open Studio. 2. Create a new Android module. 3. Package the module to directory (i.e., /Downloads). 4. While the module is still packaging, go to Help > Install Titanium Module > Install from URL Browse. Actual Result: When the packaging is complete, Studio freezes (screenshot attached). jstack does not work (console logs attached). studio log.txt attached. Expected Result: Studio should not freeze, and the user should be able to continue using it.8
581TISTUD-1818Titanium Studio: Upgrade Install Titanium Module to Project to include module in tiapp.xmlIf a module is installed to project using Help > Install Titanium Module, the module is not added to the tiapp.xml. If a module is packaged to project, it is included in the tiapp.xml. There is no log info. Steps to Reproduce: 1. Create a new Titanium Mobile project. 2. Create a new Titanium Module project. 3. Package the module to a directory (i.e., /Downloads). 4. Go to Help > Install Titanium Module. 5. In Install from URL, select the packaged module zip. 6. In Output, select Project, and select the app project you created. Press OK. Actual Result: Module gets unzipped to project, but the module is not in the tiapp.xml. Expected Result: Module should unzip to project, and a module xml tag should be added to tiapp.xml. The module should be visible in the TiApp Overview.8
582TISTUD-1821Titanium Studio: unable to create android module at non-default project locationWhen creating a module in studio, the creation fails with internal error: could not move file. Screenshot and log attached. This only occurs with android modules. However, android modules can be created from the command line. Steps to Reproduce: 1. Go to New > Titanium Mobile Module Project. 2. Type in a project name and module id. 3. Deselect Use Default Location. 4. Browse to a new location (i.e., Desktop/ti). 5. Create the module. Actual Result: Error. Expected Result: New Module.8
583TISTUD-1824Add per-platform mobile configuration tab for tiapp.xml editorEach platform for Titanium Mobile has extra content placed into a <platform-name> tab. approximately something like: {code} <?xml version="1.0" encoding="UTF-8"?> <ti:app xmlns:ti="http://ti.appcelerator.org"> ... <iphone> ... </iphone> <android xmlns:android="http://schemas.android.com/apk/res/android"> <manifest> <application> ... </application> </manifest> </android> <modules> </modules> </ti:app> {code} Add a mechanism whereby each platform can contribute a tab (similar to that shown in the screenshot, and via an extension point) that contains additional configuration information. As an initial pass, suggest just showing the text content of the tiapp.xml for that platform in a text box so it can be edited. In the future, we could amend this to show additional UI. The "All Platforms" in the screenshot is not applicable.13
584TISTUD-1825Add JDK installation to the Titanium Studio installerBased on this: http://nsis.sourceforge.net/Java_Runtime_Environment_Dynamic_Installer Install the JDK as noted from http://titanium-studio.s3.amazonaws.com/jdk/jdk-6u25-windows-i586.exe It can evidently be run silently using the commands here: http://www.oracle.com/technetwork/java/javase/install-windows-189425.html13
585TISTUD-1827Detect if node.js is installed, if not, run installerhttp://nodejs.org/#download # Check to make sure node.js is installed ## For linux, install for Ubuntu, otherwise ask user to install themselves. # If it is, confirm it's within the currently supposed version range. # If not, inform the user to upgrade or install a new version # If it's not installed, download the current package from an appcelerator web site (so we can ship a stable version)40
586TISTUD-2002Android: Distribute to Android App Store doesn't give any finalization messageWhen deploying an app to Google Play from Titanium Studio (Publish | Distribute Android App Store), you no longer get a "success" or other finalization message saying that the process is complete. The last line that appears in the Console log is the zipalign command: {panel} "C:\Program Files (x86)\Android\tools\zipalign.exe" -v 4 C:\{MyTitaniumDir}\{MyWorkspaceDir}\{MyAppName}\{MyDistributionLocation}\{MyAppName}.apk C:\{MyTitaniumDir}\{MyWorkspaceDir}\{MyAppName}\{MyDistributionLocation}\{MyAppName}.apkz {panel} 5
587TISTUD-1828Titanium Studio: intermittent freeze when importing git-enabled projectWhen importing a project with git information, studio freezes intermittently. This is intermittent and difficult to conclusively regression test. Steps to Reproduce: 1. Import KitchenSink from titanium_mobile using Import... > Existing Titanium Project. Actual Result: Studio unresponsive in Activity Monitor, spinning beach ball instead of arrow cursor, Studio not receiving user events. Expected Result: Project should import and git information should display in Project Explorer.8
588TISTUD-1831Signup link in Ti Studio login dialog does not work if browser preferences are changed1. Logout of Studio and shut it down and restart 2. You should be presented with the signin screen 3. Click on Signup EXPECTED RESULT: taken to a signup page ACTUAL RESULT: Safari pops up in the background with a "cannot find file". file:///Applications/Titanium%20Studio/TitaniumStudio.app/Contents/MacOS/https:/my.appcelerator.com/auth/signup5
589TISTUD-1832Titanium Studio: Preferences > Titanium Studio > Titanium: Titanium SDK Path not correctly re-validatedIn Preferences > Titanium Studio > Titanium > Titanium SDK Home, if you enter an invalid path (e.g., by removing the last two characters), then add in a valid path (e.g., add the last two characters back), studio will not re-validate the path. There is no log info. This is a regression. This does not occur in Studio 2.1.0. Steps to Reproduce: 1. Open Titanium Studio. 2. Go to Preferences > Titanium Studio > Titanium. 3. Edit the Titanium SDK Home path to make it invalid (i.e., delete the last two characters of text from the path). Studio should display an error. 4. Edit the Titanium SDK Home path to make it valid again (i.e., re-add the last two characters of text from the path). Actual Result: The error remains, the path has not been re-validated. However, the changes can be saved, and the error goes away on preferences menu re-open. Expected Result: The Titanium SDK path should immediately re-validate and the error should go away.5
590TISTUD-1833Titanium Studio: Preferences > Titanium Studio > Titanium: Android SDK path can't save if no Android SDKs installedIn Preferences > Titanium Studio > Titanium > Android SDK Home, if a fresh Android install is loaded into the path, the preferences cannot be saved. Note: The fresh Android install was just downloaded from http://developer.android.com/sdk/index.html and unzipped, no Android SDKs were installed. There is no log info. This is not a regression. Steps to Reproduce: 1. Download the Android SDK from http://developer.android.com/sdk/index.html. 2. Open Titanium Studio. 3. Go to Preferences > Titanium Studio > Titanium. 4. In Android SDK Home, enter the path to the new Android install. Actual Result: Cannot save the changes to the preferences menu. Expected Result: Can save the changes to the preferences menu. The dashboard config utility should be able use this path to continue the Android SDK installation.8
591TISTUD-1834BackingStoreException in the log when creating mobile module projectWhen using File > New > Titanium Mobile Module Project to create an Android module project, I see the following in the log (the project is created successfully): {code} !ENTRY org.eclipse.core.resources 4 4 2012-07-02 15:22:40.110 !MESSAGE Exception occurred while saving project preferences: /tistud1648/.settings/com.aptana.editor.common.prefs. !STACK 1 org.eclipse.core.internal.resources.ResourceException: A resource already exists on disk '/Users/mxia/Documents/workspace/runtime-New_configuration_ts2/tistud1648/.settings'. org.eclipse.core.internal.resources.Folder.assertCreateRequirements(Folder.java:47) org.eclipse.core.internal.resources.Folder.create(Folder.java:95) org.eclipse.core.internal.resources.ProjectPreferences$1.run(ProjectPreferences.java:566) org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) org.eclipse.core.internal.resources.ProjectPreferences.save(ProjectPreferences.java:590) org.eclipse.core.internal.preferences.EclipsePreferences.internalFlush(EclipsePreferences.java:440) org.eclipse.core.internal.resources.ProjectPreferences.flush(ProjectPreferences.java:350) com.aptana.editor.common.contentassist.UserAgentManager.savePreference(UserAgentManager.java:722) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.applyPreferenceValues(BasicNewTitaniumProjectWizard.java:487) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.finalizeProjectCreation(BasicNewTitaniumProjectWizard.java:392) com.appcelerator.titanium.mobile.ui.module.wizard.NewMobileModuleProjectWizard.finalizeProjectCreation(NewMobileModuleProjectWizard.java:290) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.createNewProject(BasicNewTitaniumProjectWizard.java:349) com.aptana.projects.wizards.AbstractNewProjectWizard$1.run(AbstractNewProjectWizard.java:252) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) !SUBENTRY 1 org.eclipse.core.resources 4 272 2012-07-02 15:22:40.111 !MESSAGE A resource already exists on disk '/Users/mxia/Documents/workspace/runtime-New_configuration_ts2/tistud1648/.settings'. !ENTRY com.aptana.editor.common 4 0 2012-07-02 15:22:40.189 !MESSAGE (Build 0.0.0.qualifier) [ERROR] Error saving the user-agent preferences. !STACK 0 org.osgi.service.prefs.BackingStoreException: Exception occurred while saving project preferences: /tistud1648/.settings/com.aptana.editor.common.prefs. org.eclipse.core.internal.resources.ProjectPreferences.save(ProjectPreferences.java:600) org.eclipse.core.internal.preferences.EclipsePreferences.internalFlush(EclipsePreferences.java:440) org.eclipse.core.internal.resources.ProjectPreferences.flush(ProjectPreferences.java:350) com.aptana.editor.common.contentassist.UserAgentManager.savePreference(UserAgentManager.java:722) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.applyPreferenceValues(BasicNewTitaniumProjectWizard.java:487) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.finalizeProjectCreation(BasicNewTitaniumProjectWizard.java:392) com.appcelerator.titanium.mobile.ui.module.wizard.NewMobileModuleProjectWizard.finalizeProjectCreation(NewMobileModuleProjectWizard.java:290) com.appcelerator.titanium.ui.wizard.BasicNewTitaniumProjectWizard.createNewProject(BasicNewTitaniumProjectWizard.java:349) com.aptana.projects.wizards.AbstractNewProjectWizard$1.run(AbstractNewProjectWizard.java:252) org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) {code} 8
592TISTUD-1835Incorrect items appear under Publish menu the first time right-clicking on a projectSteps to reproduce: 1. Open Studio on a workspace with existing projects; 2. right-click on a Titanium mobile project (other types of project shows the behavior too) and select Publish to generate its submenus. Expected result: only the menu items appropriate for the project type will appear. Actual result: the submenus are not filtered, and all items contributed to the Publish menu show up. This only happens the first time the publish menu is generated. The correct menu items will appear when right-clicking again, even without a change in selection. 8
593TISTUD-1836Titanium Studio: Dashboard: Configuration Wizard: Android SDK: Cancel before download begins freezes processIn the Dashboard Configuration Wizard for Android, if the installer is canceled before the Android SDK download begins, the process will freeze. jstack cannot get a stack trace when Studio is in this state, but Studio is useable as the process is running in the background. This is not a regression. This is not intermittent. Steps to Reproduce: 1. Open Titanium Studio. 2. Open Preferences > Titanium Studio > Titanium and delete the Android SDK Home path. 3. Go to the Dashboard > Configure > Android > Install/Upgrade to run the Configuration Wizard. 4. Enter a path to download the Android SDK (e.g., Desktop/TestAndroidSDK) but do not press OK yet. 5. Very quickly (for reliable reproduction), press OK, then Cancel in the previous menu. Actual Result: Process freeze. Expected Result: Cancel the process.8
594TISTUD-1839Add check for pre-existing files to Titanium Mobile Project creation wizardsAlert: Please save you Desktop or Document links, folders and file and create sample folder to test this bug. This is not a regression. Creating the Titanium Mobile Project on Desktop or Document folder and deleting it from the desktop, clean up all the folders and files. Step to reproduce: 1. Create Ti.Mobile Project 2. Change the default location to the Desktop 3. See if the Ti.Mobile Project is get created in project Explorer 4. Delete the Project and select delete the project form the disk Actual result: Pressing the delete from disk will delete all the contents from the desktop. Expected result: User should be presented with a warning or be restricted from deleting a project from a directory that isn't the same as the project. This way a situation like deleting the Desktop or Documents directory doesn't occur. 8
595TISTUD-1840Error while selecting JavaScript Formatter in Preferences1. Open Preferences in Titanium Studio. 2. Select Titanium Stduio->Formatter 3. Select JavaScript and Preview. 4. Error is seen. ( Screenshot attached). 5. After this step, 'preferences' cannot be opened. Screenshot is attached. ( Studio has to be restarted)8
596TISTUD-1842Improve prompt when Titanium Module can't be downloadedh3. Steps to replicate # Select *Help > Install Module from URL* # Paste in URL https://developer.appcelerator.com/package/download/12/581/ti.barcode-iphone-1.8.1-android-1.7-2.3.2.zip h3. Expected result Module is behind a redirect. If we can't download, alert the user with the message: "Unable to download module from specified URL. Is the URL valid?" Then re-open the dialog box so they can check and try again. h3. Actual Result Process starts but fails without warning 5
597TISTUD-1843handle URL redirects in module download/installationh3. Steps to replicate # Select *Help > Install Module from URL* # Paste in URL https://developer.appcelerator.com/package/download/12/581/ti.barcode-iphone-1.8.1-android-1.7-2.3.2.zip h3. Expected result Module downloads. h3. Actual Result Nothing happens.8
598TISTUD-1846Titanium Studio: Available Updates: Object Teams Patch for JDT/Core is not applicable to the current configuration and will not be installedWhen updating Titanium Studio, the JDT plug-in generates warnings. {code} !MESSAGE "Object Teams Patch for JDT/Core" is not applicable to the current configuration and will not be installed. {code} This is not a regression. This issue also occurs in Eclipse Indigo 3.7.2. Steps to Reproduce: 1. Install JDT plugin in Studio: https://wiki.appcelerator.org/display/guides2/Installing+the+Java+Development+Tools 2. Restart Studio. 3. Go to Help > Check for Updates. 4. Install the JDT Patch. Restart Studio. 5. Go to Help > Check for Updates. Actual Result: JDT plugin generates errors. Have to deselect JDT to update regular Studio updates. Expected Result: JDT should be able to install.8
599TISTUD-1848Include offline API and Help documentationh4. Problem Description If you don't have a working internet connection, you won't be able to browse the Ti Mobile SDK Docs from the help menu in the Ti Studio. Would be nice if we include the doc in SDK's Zipfile, so you can get the exact doc according to which SDK you are using. This will make easier to work with Titanium when in a flight or similar places. This should be a separate feature added to the update site. 20
600TISTUD-1851Install Alloy package using NPMThe determination of whether or not this needs to be run under sudo may not be easy for us to determine. We may need to assume no need for sudo? If we do need to run under sudo we'll need to handle prompting for the sudo password and piping it along to the command. {code} [sudo] npm install -g alloy {code}8
601TISTUD-1852Move Template selection to front of project wizardsWe move project template selection to the first screen in the project wizard (see Xcode for an example here) This allows the user to focus on what they want to create (blank project, game, rss reader, master/detail, etc.). We then ask the user to fill in the name/location/etc later. (Basically swap the first and second page in most project wizards).5
602TISTUD-1853Add Alloy project nature iconNeed icons for Alloy project nature3
603TISTUD-1854Add Alloy project natureNeed a new Alloy project nature to tag projects with (and with which we can hang new icons, etc, on)3
604TISTUD-1855Creating Alloy projects inside New Titanium Mobile WizardCreating a new "blank" alloy project is as follows: - Run regular Titanium Mobile project creations (titanium/project.py scripts) - Run 'alloy new path/to/project' to run the alloy generators - Add Alloy project nature (in addition to the titanium mobile nature, web nature) By default, a new Titanium project is an Alloy project Note that an Alloy "template" likely would already have all the generated files, so we shouldn't need to do the script executions (running titanium scripts/alloy binary)8
605TISTUD-1856Add blank Alloy project template to project wizardBy default, a new Titanium project is an Alloy project. Select the "blank new alloy template" as the default in the titanium mobile project wizard. This creates an alloy project without any template.8
606TISTUD-1857Filter Resources folder out from Alloy projectsHide Resources folder - Alloy generates the intermediate files there, most of the app lives in the "app" folder Long-term: - perhaps we root Alloy projects on the "app" folder, and choose an alternate presentation structure like Package Explorer. - What additional folders do we need to hide?5
607TISTUD-1858Enable running of Alloy applicationsThis may not require any additional work. We may simply need to run the existing builder.py script as we do with typical Titanium projects. See here for confirmation: https://github.com/appcelerator/alloy8
608TISTUD-1859Debugging Alloy applicationsIt's currently unclear if the work needs to mostly be done on the Studio side or the SDK side. In general, we would need a source map to connect the generated source code with the original source code so that users could place breakpoints in the original JS files and have it break appropriately.20
609TISTUD-1860Enable packaging of Alloy applicationsThis may not require any additional work. We may simply need to run the existing builder.py script as we do with typical Titanium projects. See here for confirmation: https://github.com/appcelerator/alloy8
610TISTUD-1861Associate Alloy XML files with our XML editorAssociate XML editor with "*.txml" files2
611TISTUD-1862Associate Alloy JSON Style configuration files with our JSON editorWhat is the alloy JSON style configuration custom file extension we need to associate with? Does our JSOn parser/editor handle the non-standard "expression" syntax?2
612TISTUD-1863Associate Alloy JS Makefile (*.JMK files) with our JS editor*.JMK file extension 2
613TISTUD-1864Alloy Create View WizardRight-click app/views folder Pop up dialog box asking for view name {{alloy generate view <name>}} Add keyboard shortcut for opening dialog and generating view (so user isn't forced to go through UI to do this action and can do so by keeping hands on keyboard)8
614TISTUD-1865Alloy Create Controller WizardRight-click app/controllers folder Pop up dialog box asking for controller name {{alloy generate controller <name>}} Add keyboard shortcut for opening dialog and generating controller (so user isn't forced to go through UI to do this action and can do so by keeping hands on keyboard)8
615TISTUD-1866Alloy Create Migration WizardRight-click app/migrations folder Pop up dialog box asking for migration name {{alloy generate migration <name>}} Add keyboard shortcut for opening dialog and generating migration (so user isn't forced to go through UI to do this action and can do so by keeping hands on keyboard) This will create a timestamp-ordered migration file for the model specified.8
616TISTUD-1867Alloy Create Widget WizardRight-click app/widgets folder Pop up dialog box asking for widget name {{alloy generate widget <name>}} Add keyboard shortcut for opening dialog and generating widget (so user isn't forced to go through UI to do this action and can do so by keeping hands on keyboard) This will create a default widget in your projects's app/widgets path.8
617TISTUD-1868Alloy Create Model WizardRight-click app/models folder Pop up dialog box asking for model name, with a small table below for adding new values/types {{alloy generate model <name> [column_name:type, ...]}} For example: {{alloy generate model todo name:string active:boolean}} Add keyboard shortcut for opening dialog and generating widget (so user isn't forced to go through UI to do this action and can do so by keeping hands on keyboard) 13
618TISTUD-1870Content assist for $. in JS filesAs an example: {code} <Window> <Button id="b"></Button> </Window> {code} You would then define a controller named index.js and you could automatically bind events inline in your controller code: {code} $.b.addEventListener("click",function(){ alert("You clicked the button"); }); // "$.index" is the default variable for a top-level container inside the index.xml $.index.open(); {code} So, we would need introspection on the items defined in the XML and display them appropriately in the content assist for the JS files8
619TISTUD-1871Content assist for Alloy XML filesFor Alloy XML files, it is a file with XML tags, i.e.: {code} <View id="a"> <Button id="b">Hello</Button> <Label id="t"></Label> </View> {code} Need XML file containing tag information for Alloy tags. See https://github.com/aptana/studio3/blob/development/plugins/com.aptana.editor.html/metadata/html_metadata.xml20
620TISTUD-1872Content assist for Alloy JSON style filesThe JSON style files specify style information for an app. We can provide CA for the property names, and also possibly common values similar to CSS CA. Need XML file containing CSS style information for the JSON configuration. See https://raw.github.com/aptana/studio3/development/plugins/com.aptana.editor.css/metadata/css_metadata.xml20
621TISTUD-1875Create an extension point to support different command-line interfacesWe need to be able to support V1 (Python) and V2 (Node.js) of the SDKs directly. # Create an extension point which describes the SDK per version range (< 2.2 is v1, >= 2.2 is v2), and allow contributing commands that are designed to run on a specific CLI. # The extension will return a 'command' to run by asking for a specific command key and passing the SDK version to filter by. A returned command will then be executed and provide progress as it's being executed. # When the CLI has no support for a specific command, a 'no-op' command (or null) can be returned. The extension should also allow querying for a command on a specified CLI version (V1/V2). 13
622TISTUD-1877Add CLI command support for creating a projectAdd extensions for the CLI commands that create a Titanium project (mobile / module). h2. Project Creation V1 (Python): {code} /sdk-version/project.py [name] [id] [project-parent-dir] [iphone] [android] [mobileweb] [android.sdk] Environment: DEVELOPER_DIR=[ios.tools] {code} V2 (Node.js): {code} titanium create --platforms=[iphone,ipad,ios,android,blackberry,mobileweb,etc.] [--type=[app]] [--id=string] [--sdk=sdk-version] [--verbose|-v [0-5]] [--template=name] [--[no-]cloud] [--dir=dir] name {code} 8
623TISTUD-1881Add CLI command support for adding a new platform to an existing projectAdd an extension for the CLI command that updates the project with new deploy targets. V1 (Python): {code} sdk-version/project.py [name] [id] [project.dir] [platform] -u {code} As it looks like, V2 does not require the *-u* command, and it's suppose to auto-detect the targets in the tiapp.xml, and build the required resources.5
624TISTUD-1882iOS: Allow keychain selectionStudio needs to be able to support manually selecting a keychain to choose a developer identity from (the list of such keychains is retrieved by {{security list-keychains}}. A keychain is provided to iOS' builder.py by providing it as argv[9] on the command line, after the deploytype. This value should be a full path pointing to the keychain. This ticket is the Studio end of TIMOB-9505.8
625TISTUD-1884Add CLI support to check for available SDK commandsV2 (Node.js) CLI will support querying for command availability. This would be a check we can do against a SDK to see if a new command is supported by a particular version. For example, rather than doing a version check, we can query the SDK to see if the command "clean" is available. {code} titanium available [--command|--feature|--platform] [--version] [--sdk=sdk-version] name {code} _Note:_ We may want to consider how we define the versioning of the CLI. Will it have a different version, or will it map to an SDK version. _V1 CLI does not support this feature._8
626TISTUD-1886Add CLI command support for building a mobileweb projectThis one is only for V2 (Node.js). The Python implementation in V1 does not support a building command. We should try call "build" again when we've cleaned all our projects and build automatically is checked. The platform does not support incremental builds, so that call should probably only happen when a 'clean-build' is performed. {code} titanium build --platform [iphone,ipad,ios,android,blackberry,mobileweb,etc.] --sdk <value> [--build-type [production | development | test]] [--log-level [trace | debug | info | warn | error]] --dir <project-path> {code}8
627TISTUD-1888Add CLI command support for cleaning a projectAdd "clean" support via the CLI commands extension. V1 (Python): {code} sdk-version/titanium.py clean Working directory: [project-dir] {code} V2 (Node.js): {code} titanium clean [project-dir] {code}8
628TISTUD-1890Add CLI command support to run a pre-requisite checkOn V1 CLI support there are scripts that check for prerequisites. Android V1: {code} Process: android.sdk/android list targets Working directory: android.sdk {code} iOS V1: {code} sdk-version/iphone/prereq.py package Environment: DEVELOPER_DIR=ios.tools {code} There does not yet appear to be an analogue of these commands in V2 of the CLI. It's unclear how multiple commands that gather information like this would be structured.13
629TISTUD-1891Add CLI command support to run an Android projectWe should support that for all platforms. h3. Run Android V1: {code:title=V1|borderStyle=solid} sdk-version/android/builder.py emulator name [android.sdk] [project-dir] id 6 HVGA sdk-version/android/fastdev.py start [project-dir] {code} V2: {code:title=V2|borderStyle=solid} titanium build --platform=[platform] --emulator=[emulator.name] [project-dir] titanium run --platform=[platform] --emulator=[emulator.name] [project-dir] {code} 8
630TISTUD-1892Add CLI command support an Android debug launchh3. Debug Android V1: {code} sdk-version/android/builder.py emulator [name] [android.sdk] [project-dir] [id] 6 HVGA sdk-version/android/fastdev.py start [project-dir] sdk-version/android/builder.py simulator [name] [android.sdk] [project-dir] [id] 6 HVGA /127.0.0.1:55040 {code} V2: {code} titanium build --platform=android --emulator=[emulator.name] [project.dir] titanium run --platform=android --emulator=[emulator.name] --debug [project.dir] {code} h3. Notes # We need to make sure that FastDev is supported by the new CLI 8
631TISTUD-1893Add CLI command support for packaging Android applicationsAdd support for the packaging command via the CLI extension. V2: {code} titanium build --package --platform=[platform] [project.dir] {code} +create the V1 (need to investigate what it is)8
632TISTUD-1894Add CLI command support for packaging iOS applicationsAdd support for the packaging command via the CLI extension. V1: {code} sdk-version/iphone/prereq.py package Environment: DEVELOPER_DIR=ios.tools sdk-version/iphone/prereq.py package Environment: DEVELOPER_DIR=ios.tools sdk-version/iphone/builder.py distribute [ios.version] [project-dir] [id] [name] "C694789B-BEF5-49BE-800C-A5F4C8EADF5F" "Roland Muschenetz" "" "universal" Environment: DEVELOPER_DIR=ios.tools {code} V2. {code} titanium build --package --platform=ios sample {code}8
633TISTUD-1895Add CLI command support for packaging MobileWeb applicationsAdd support for the packaging command via the CLI extension. V1. {code} sdk-version/mobileweb/builder.py [project-dir] production Working directory: [project-dir] {code} V2. {code} titanium build --package --platform=mobileweb [project-dir] {code}8
634TISTUD-1896Add CLI command support for packaging a MobileWeb Titanium ModuleAdd support for the packaging command via the CLI extension. V1: {code} project-dir/build.py Working directory: [project-dir] {code} V2: {code} titanium build --package [project-dir] {code} 8
635TISTUD-1897Add support for log-in and log-out for the V2 CLIThe V2 CLI requires log-in before execution. The implementation should probably log-in once per session with the credentials the user already provided for the studio. We'll need to make sure we log-out in case the user clicked the log-out. The Studio support a limited time of offline work, and we need to make sure that the platforms supports it as well. 8
636TISTUD-1903Rebrand Node.js functionality as Appcelerator Custom Cloud ServicesExisting Node.js functionality is labelled as a "Node.js" project. We need to replace that name with a new name in wizards, project descriptions and preferences (as appropriate)8
637TISTUD-1905Install nettle command-line packageOnce a user has Node.js installed, we need to install the nettle package for ACS/Node.js deployment: * We need to check to see if the package is installed * If not, install it. {code} [sudo] npm install nettle -g {code} Suggestion is that we don't really know if we need to sun under sudo. We should try without, and then prompt the user if we fail in that case.8
638TISTUD-1935Titanium Studio: Themes: unhandled event loop exception when changing themeunhandled event loop exception when changing theme. log attached. I could not reproduce this issue, it is intermittent. Unknown if this is a regression. In this particular case, I was changing from the Aptana Studio theme to the Aptana Studio 2.x theme. Steps to Reproduce: 1. Open Preferences > Titanium Studio > Themes. 2. Change the theme using the drop-down menu. Actual Result: unhandled event loop exception in studio log. Expected Result: No errors in studio log.3
639TISTUD-1939Add CLI command support to run an iOS projectWe should support that for iOS. h3. Run iOS V1: {code:title=V1|borderStyle=solid} /usr/bin/killall" -2 "iPhone Simulator" /usr/bin/killall" -2 iphonesim /usr/bin/killall" -2 ios-sim sdk-version/iphone/builder.py simulator [ios.version] [project-dir] [id] Environment: DEVELOPER_DIR=ios.tools {code} V2: {code:title=V2|borderStyle=solid} titanium build --platform=ios --simulator=[ios.version] sample titanium run --platform=ios --simulator=[ios.version] --debug sample {code} 8
640TISTUD-1940Add CLI command support an iOS debug launchh3. Debug iOS V1: {code} /usr/bin/killall -2 "iPhone Simulator" /usr/bin/killall -2 "iphonesim" /usr/bin/killall -2 "ios-sim" sdk-version/iphone/builder.py simulator [ios.version] [project-dir] [id] [name] universal ipad 192.168.0.101:55205 Environment: DEVELOPER_DIR=ios.tools {code} V2: {code} titanium build --platform=ios --simulator=[ios.version] [project-name] {code} h3. Notes # For iOS, we may still need to call the _'killall'_ before the command.8
641TISTUD-1941Add CLI command support to run a MobileWeb projectWe should support that for MobileWeb. h3. Run MobileWeb V1: {code:title=V1 (Browser)|borderStyle=solid} "sdk-version/mobileweb/builder.py" [project-dir] "development" Working directory: /Users/ingo/Documents/Aptana Studio 3 Workspace/MobileProject {code} V1: {code:title=V1 (Android Emulator)|borderStyle=solid} sdk-version/android/builder.py emulator [name] [android.sdk] [project-dir] [id] "6" "HVGA" sdk-version/android/wait_for_device.py [android.sdk] android.sdk/platform-tools/adb -e shell "rm /data/data/com.android.browser/cache/webviewCache/*" android.sdk/platform-tools/adb -e shell am start -a android.intent.action.VIEW -d 'http://10.0.2.2:8020/index.html' {code} V2: {code:title=V2|borderStyle=solid} Switch calling builder.py to the new CLI build command (related to TISTUD-1886); everything else stays the same (? may need to confirm with the CLI team) {code}8
642TISTUD-1944Replace Node.js imagesWe need to replace the current Node.js branding with new branding. * Project wizards * Icons * Project nature8
643TISTUD-1947Titanium Studio: Dashboard: Configure: Android Update: Cancel button does not cancel android update processWhen the Android Configure utility is run from the dashboard, and the Android SDK is already installed, the Android-controlled update menu will not close when the Cancel button is pressed in Studio. This is not a regression. This is a usability issue. Screenshot and stack trace attached. Steps to Reproduce: 1. Open Titanium Studio. 2. Set the Android SDK in the Preferences if not set already. 3. Go to the Dashboard > Configure > Android > Update. 4. Press the Cancel button in the Studio process pop-up. Actual Result: The Android update menu launches and runs without interruption. Expected Result: Cancel should close the Android process, or prevent it from running.5
644TISTUD-1948Implement sign up process through Studioimplement sign up process through Studio. Flow should be: * option for selecting "new User" or "Existing user" * if New User show sign up form with fields: ** First, Last, email ,password, verify password, Agree to EULA, Submit or Cancel (Cancel takes you back to the first screen) ** Once submit show some visual indicator that there is progress * If existing user, then follow current flow (username / password) ** If new user sign up success, then auto login in Studio and launch dashboard (configuration wizard). Also show toaster, asking user to activate his account13
645TISTUD-1949Studio: Jira Username field looks cramped in Windows 7When viewing the Submit a ticket window in Windows 7, the username and log out button seem to be squished with little or no white space between them. This does not happen on Mac OS. This is not a regression. Steps to reproduce: 1. Open the ticket submission form (Help > Titanium Studio > Submit a Ticket) Expected result: The Username portion should be correctly spaced out and be pleasing to look at. Actual result: On windows it looks cramped, seeming to be missing the white space found on the mac version.3
646TISTUD-1950Replace Message dialog notifying background job complete with toast popupThis is related to TISTUD-1817, where we tracked down the locations that opened up a Message dialog from a background thread. A more elegant method of displaying the notification is to use a popup toast to notify the user. The popup should only be used for INFO messages, for Question and Error we should still use the Message dialog Locations that this affects: -iOS/Android/MobileWeb project packaging -iOS/Android/MobileWeb module packaging (normal and deploy to project with changes) -Titanium SDK update -Publish -Android SDK update (dashboard)8
647TISTUD-1951Dashboard: Configure: Android: Improve OS Global Environment Variable detectionIf the Dashboard Android Configuration Wizard is run without having the JAVA_HOME variable set, Studio provides no indication it needs to be set. There is only a pop-up indicating Android was downloaded successfully. Note that studio automatically detects JDK to run, but it does not forward this information to the Android SDK tools. There is no log info. This is not a regression. This is a usability issue. Steps to Reproduce: 1. Make sure JDK is installed. 2. Remove JAVA_HOME from the Global Environment Variables. 3. Make sure JAVA_HOME is no longer active (i.e., echo %JAVA_HOME%, echo $JAVA_HOME from the console). 4. Run Titanium Studio. 5. Make sure the Android SDK path is set in the Titanium Studio Preferences. 5. Run Dashboard > Configure > Android > Install/Update. Actual Result: A pop-up appears indicating Android was downloaded successfully every time Update is run. Expected Result: Either the Android SDK Update utility should run, Titanium Studio should set JAVA_HOME, or Titanium Studio should prompt the user to set JAVA_HOME.8
648TISTUD-1953Change AppID validation to only allow upper and lower letters (A-Z, a-z), digits (0-9), and period '.'Steps to reproduce: 1. Create default TiMobile app 2. During creation of default app, include an underscore in the application id name e.g.: com.appcelerator.test_1 3. Install app to device Actual: In the console, will get CFBundleIdentifier error. See attachment. Expected: Replace underscores with dashes in the app ID. Note: * You can launch app to iOS simulator without any issues * You can install to Android device without any issues A similar issue happens if you have a '-' in the app id. In order to have the widest cross-platform appIDs, we can only allow upper and lower letters (A-Z, a-z), digits (0-9), and periods '.' 5
649TISTUD-1954The order of deployment targets is inconsistent between the new project wizard and tiapp.xml editorSee the screenshots; the order of iPhone and iPad is reversed between the two. If we are listing them alphabetically, then the one in project creation wizard should be used. 2
650TISTUD-1959PATH environment variable incorrect in python compiler pluginsh2. Problem When attempting to get the PATH environment variable while executing a python compiler plugin, the PATH is incorrect. It does not include the user's current PATH, it only shows the following: {code}/usr/bin:/bin:/usr/sbin:/sbin{code} This makes it difficult for the compiler plugin to execute programs that are on the developer's PATH. h2. Test Case *plugins/path.test/plugin.py* {code:python} import os def compile(config): print os.environ['PATH'] {code} *tiapp.xml* {code:xml} <plugins> <plugin version="1.0">path.test</plugin> </plugins> {code} The output of the above can be found in the console log. Every time I run it, I get the same result, which does not reflect my full PATH variable: {code} [INFO] Detected compiler plugin: path.test/1.0 /usr/bin:/bin:/usr/sbin:/sbin {code} h2. Expected Behavior The above should output my current full PATH variable contents8
651TISTUD-1963Set "JS Editor" as default editor for *.tss filesThe style files used in Alloy are a JSON derivative. For this reason we changed their extension from "json" to "tss". "tss" is short for "Titanium Stylesheet". While there are some improvements that can be made to syntax highlighting for "tss" files, the default "JSON Source Editor" editor works very well on them as is. For this reason, it would be good to have that editor be the default editor for all "tss" files opened in TiStudio.2
652TISTUD-1970Split "Nettle" feature into separate pluginsWe've bundled together the node.js code and the nettle code in a single plugin. Instead, we should create: * com.appcelerator.titanium.acs.core * com.appcelerator.titanium.acs.ui and make those depend on the existing nodejs plugins.5
653TISTUD-1973Titanium Studio: SDK Updates: canceling extraction does not produce a warningDuring an SDK update, if the extraction process is canceled, there is no longer an error message generated. This is a regression. This worked in 2.1.0. It is worth noting (not part of the regression) that the partially extracted SDK remains in the SDK folder, resulting in an invalid SDK. When the SDK is in this invalid state: It is still selectable by titanium projects, and if it is a stable release, it will not be recognized as needing an update. Steps to Reproduce: 1. Download any version of the SDK using a method such as: Help > Check for Titanium SDK Updates or Help > Install Specific Titanium SDK... 2. During the extraction process (which occurs after the downloading/fetching process), press 'Cancel'. Actual Result: No error dialog, no error logs. Expected Result: Error dialog pop-up and error logs, with a button allowing the user to open an explorer/finder window to the extracted location on disk (if they wish to remove it themselves)8
654TISTUD-1984Pass in JAVA_HOME to Python scriptsWhile testing "Build Acceptance TIMOB-7472-A Android Only", I attempted to build a default Titanium Mobile app (just the standard template) and I encounter the following problem: {noformat} [DEBUG] /home/qatester/.titanium/mobilesdk/linux/2.1.0.GA/android/titanium_prep.linux64 com.shastaqa.fresh1 /home/qatester/Titanium_Studio_Workspace/fresh1/build/android/bin/assets/Resources ui/common/ApplicationTabGroup.js ui/handheld/ApplicationWindow.js app.js ui/tablet/ApplicationWindow.js [ERROR] Program launch failed. Unable to locate Java VM. Please set JAVA_HOME environment variable. [ERROR] Unabled to prepare JavaScript for packaging. Error code 4. {noformat} I check and the $JAVA_HOME is set, but was not available to the Python script. Studio should check for the JAVA_HOME before beginning a build, check if it is correctly set, and if it is missing or incorrect pass in a correct version into the build. This issue is a not a regression since the bug is due to a user mis-configuration of JAVA_HOME. Steps used to reproduce: 1. Ensure that the $JAVA_HOME global variable is set ( ls -R $JAVA_HOME ). 2. Create a new Titanium Mobile Project. 3. Create a signing key. 4. Package for Distribution (Package > Distribute - Android App Store) Expected result: Android correctly packages and a package file is created in the specified place. Actual result: The packager gets to titanium_prep.linux64 where it can not find java as $JAVA_HOME isn't available to it. Tested by multiple sources on Titanium Studio build 2.1.1, 2.1.0, and 2.0.2 on both Ubuntu 12.04 and 10.04, using SDK 2.1.0GA replicated the same failure. Switching back to SDK 2.0.2GA fixes the issue in all studio platforms, as 2.1.0 is the first version to use JAVA_HOME in the packaging scripts. Suggested solution: * See if JAVA_HOME is set in such a way that the scripts can read it * If it is, check if the JAVA_HOME variable is correct by checking for /lib/tools.jar at that path * If it is incorrectly set, or not set, infer the JAVA_HOME location by using values from Studio's environment.13
655TISTUD-1980Package Node.js installer with Titanium Studio Windows installerSimilar to TISTUD-1825, we need to check and see if node.js is installed during the initial Studio install, and if not, run the node.js installer. Once we've updated TISTUD-2001, we just need to alter the installer to actually include the check. See the parent ticket for the URL from which to download the installer.8
656TISTUD-1982Titanium Studio: Progress View: 'Remove All Finished Operations' fails to remove operations, adds them back if they are goneIn the progress view, pressing the double x ('Remove All Finished Operations') will not remove the operations. If the operations are removed one-by-one, then the double x is pressed, they will re-appear. This is a regression. Works as expected in Ti.Studio 2.0.2 Steps to reproduce: 1. Create Multiple Ti.Mobile Projects 2. Open Progress window in Ti.Studio 3. Run the projects in Emulator or Simulator and close the emulator/simulator. 4. List of completed process is generated in "Progress" Window 5. Click on "XX" (Remove All Finished Project) 6. See Expected Result # 6. 7. Close progress view processes one by one by pressing cross "x" (Remove From View) icon on right 8. The processes should remove properly 9. Press "XX" (Remove All Finished Project) 10. See Expected Result # 10. Actual Result: 6."XX" (Remove All Finished Project) does nothing. 10. "XX" (Remove All Finished Project) brings back all processes that were removed previously. Expected Result: 6. Pressing "XX" (Remove All Finished Project) should remove all processes from the progress view. 10. There should be no list of project in the "Progress" view area.8
657TISTUD-1983Add "organization" to iOS developer certificate UIWhen choosing from / viewing selected developer certificate (during build for device) the developer's name and a cryptic code are displayed. It would be far more helpful to also include the organization that the certificate is for so I don't have to stop and open up the certificate to see which one is which whenever I need to choose a different certificate. It would also be helpful to have this list be sortable and filterable. The organization becomes increasingly relevant when this list grows to include many developer certificates. 8
658TISTUD-1985Android Emulator: run config console level ignored on subsequent deploymentsAndroid Emulator console log level is always set to the run config setting used to first launch the console process. Steps to Reproduce: 1. Create and run an android project in the emulator with the run configuration log level set to TRACE using code: {code} alert('SESSION ID: ' + Ti.App.sessionId); Ti.API.error('SESSION ID: ' + Ti.App.sessionId); Ti.API.trace('TRACE'); Ti.API.log('TRACE', 'TRACE'); Ti.API.debug('DEBUG'); Ti.API.log('DEBUG', 'DEBUG'); Ti.API.info('INFO'); Ti.API.log('INFO', 'INFO'); Ti.API.warn('WARN'); Ti.API.log('WARN', 'WARN'); Ti.API.error('ERROR'); Ti.API.log('ERROR', 'ERROR'); Ti.API.log('FREEFORM', 'FREEFORM'); {code} 2. Edit run configuration to log level ERROR and redeploy project. Actual Result: TRACE+ levels log to console. Expected Result: ERROR level should log to console, as per the current run configuration.5
659TISTUD-1986Ability to sort the certificates and provisioning profiles in Titanium Studio Preferences->Titanium->iOS platformWhen, there are many certificates or multiple provisioning profiles, its really difficult to sort them. Please add sorting by clicking on the column name.5
660TISTUD-1990Titanium Studio: Console View: Log Level icon should respond to click eventsIn the console view, the log level icon does not respond to click events, only the small arrow to the right. This is a usability issue. Test Steps: 1. Run titanium project in iOS simulator. 2. Click log level icon in the console view. Actual Result: Nothing happens. Expected Result: Log level drop-down should appear.5
661TISTUD-1991Titanium Studio: Console View: iOS Custom Info Log Level does not displayTi.API.log() calls with custom log levels no longer display in the studio console. For example: Ti.API.log('CUSTOM', 'CUSTOM'); This is a regression introduced in Studio 2.1.0. This did not affect Studio 2.0.2. Steps to Reproduce: 1. Run code in iOS Simulator: {code} alert('SESSION ID: ' + Ti.App.sessionId); Ti.API.error('SESSION ID: ' + Ti.App.sessionId); Ti.API.trace('1A. TRACE'); Ti.API.log('TRACE', '1B. TRACE'); Ti.API.debug('2A. DEBUG'); Ti.API.log('DEBUG', '2B. DEBUG'); Ti.API.info('3A. INFO'); Ti.API.log('INFO', '3B. INFO'); Ti.API.warn('4A. WARN'); Ti.API.log('WARN', '4B. WARN'); Ti.API.error('5A. ERROR'); Ti.API.log('ERROR', '5B. ERROR'); Ti.API.log('CUSTOM', 'CUSTOM'); {code} Actual Result: Custom log does not display. Expected Result: Custom log should display as [INFO] [CUSTOM] CUSTOM Note: The Android log levels display correctly.8
662TISTUD-2000Migration to Cascades R6: Update the condition for checking the content of the bbndk folderThe folder structure of the bbndk top folder has changed in R6, yielding the following message when trying to configure Studio with the path to the new ndk. "[BlackBerry NDK Home] Could not locate a required directory 'host' under the specified BlackBerry NDK root path '/Applications/bbndk'" The content of the top folder in the latest ndk is as follows and judging by the names, also subject to change before the official release: ll /Applications/bbndk/ total 24 drwxrwxr-x 10 jpl admin 340 20 Jul 12:35 . drwxrwxr-x+ 54 root admin 1836 20 Jul 13:27 .. -rwxr-xr-x 1 jpl admin 690 20 Jul 12:35 bbndk-env.sh -rwxr-xr-x 1 jpl admin 110 20 Jul 12:35 bbndk.command -rwxr-xr-x 1 jpl admin 210 20 Jul 12:35 bbndk_admin.command drwxr-xr-x 3 jpl admin 102 13 Jul 01:23 host_10_0_6_1 drwxr-xr-x 3 jpl admin 102 13 Jul 01:23 ide drwxrwxr-x 8 jpl admin 272 20 Jul 12:35 install drwxrwxr-x 4 jpl admin 136 20 Jul 12:35 licenses drwxr-xr-x 6 jpl admin 204 13 Jul 01:14 target_10_0_6_384 2
The file is too large to be shown. View Raw