The Code Project Open License (CPOL) 1.02 Preamble This License governs Your use of the Work. This License is intended to allow developers to use the Source Code and Executable Files provided as part of the Work in any application in any form. The main points subject to the terms of the License are: Source Code and Executable Files can be used in commercial applications; Source Code and Executable Files can be redistributed; and Source Code can be modified to create derivative works. No claim of suitability, guarantee, or any warranty whatsoever is provided. The software is provided "as-is". The Article accompanying the Work may not be distributed or republished without the Author's consent This License is entered between You, the individual or other entity reading or otherwise making use of the Work licensed pursuant to this License and the individual or other entity which offers the Work under the terms of this License ("Author"). License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CODE PROJECT OPEN LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HEREIN, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE AUTHOR GRANTS YOU THE RIGHTS CONTAINED HEREIN IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO ACCEPT AND BE BOUND BY THE TERMS OF THIS LICENSE, YOU CANNOT MAKE ANY USE OF THE WORK. Definitions. "Articles" means, collectively, all articles written by Author which describes how the Source Code and Executable Files for the Work may be used by a user. "Author" means the individual or entity that offers the Work under the terms of this License. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works. "Executable Files" refer to the executables, binary files, configuration and any required data files included in the Work. "Publisher" means the provider of the website, magazine, CD-ROM, DVD or other medium from or by which the Work is obtained by You. "Source Code" refers to the collection of source code and configuration files used to create the Executable Files. "Standard Version" refers to such a Work if it has not been modified, or has been modified in accordance with the consent of the Author, such consent being in the full discretion of the Author. "Work" refers to the collection of files distributed by the Publisher, including the Source Code, Executable Files, binaries, data files, documentation, whitepapers and the Articles. "You" is you, an individual or entity wishing to use the Work and exercise your rights under this License. Fair Use/Fair Use Rights. Nothing in this License is intended to reduce, limit, or restrict any rights arising from fair use, fair dealing, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. License Grant. Subject to the terms and conditions of this License, the Author hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: You may use the standard version of the Source Code or Executable Files in Your own applications. You may apply bug fixes, portability fixes and other modifications obtained from the Public Domain or from the Author. A Work modified in such a way shall still be considered the standard version and will be subject to this License. You may otherwise modify Your copy of this Work (excluding the Articles) in any way to create a Derivative Work, provided that You insert a prominent notice in each changed file stating how, when and where You changed that file. You may distribute the standard version of the Executable Files and Source Code or Derivative Work in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution. The Articles discussing the Work published in any form by the author may not be distributed or republished without the Author's consent. The author retains copyright to any such Articles. You may use the Executable Files and Source Code pursuant to this License but you may not repost or republish or otherwise distribute or make available the Articles, without the prior written consent of the Author. Any subroutines or modules supplied by You and linked into the Source Code or Executable Files of this Work shall not be considered part of this Work and will not be subject to the terms of this License. Patent License. Subject to the terms and conditions of this License, each Author hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, import, and otherwise transfer the Work. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: You agree not to remove any of the original copyright, patent, trademark, and attribution notices and associated disclaimers that may appear in the Source Code or Executable Files. You agree not to advertise or in any way imply that this Work is a product of Your own. The name of the Author may not be used to endorse or promote products derived from the Work without the prior written consent of the Author. You agree not to sell, lease, or rent any part of the Work. This does not restrict you from including the Work or any part of the Work inside a larger software distribution that itself is being sold. The Work by itself, though, cannot be sold, leased or rented. You may distribute the Executable Files and Source Code only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute the Executable Files or Source Code with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License. You agree not to use the Work for illegal, immoral or improper purposes, or on pages containing illegal, immoral or improper material. The Work is subject to applicable export laws. You agree to comply with all such laws and regulations that may apply to the Work after Your receipt of the Work. Representations, Warranties and Disclaimer. THIS WORK IS PROVIDED "AS IS", "WHERE IS" AND "AS AVAILABLE", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OR CONDITIONS OR GUARANTEES. YOU, THE USER, ASSUME ALL RISK IN ITS USE, INCLUDING COPYRIGHT INFRINGEMENT, PATENT INFRINGEMENT, SUITABILITY, ETC. AUTHOR EXPRESSLY DISCLAIMS ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS, INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF MERCHANTABILITY, MERCHANTABLE QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY WARRANTY OF TITLE OR NON-INFRINGEMENT, OR THAT THE WORK (OR ANY PORTION THEREOF) IS CORRECT, USEFUL, BUG-FREE OR FREE OF VIRUSES. YOU MUST PASS THIS DISCLAIMER ON WHENEVER YOU DISTRIBUTE THE WORK OR DERIVATIVE WORKS. Indemnity. You agree to defend, indemnify and hold harmless the Author and the Publisher from and against any claims, suits, losses, damages, liabilities, costs, and expenses (including reasonable legal or attorneys’ fees) resulting from or relating to any use of the Work by You. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL THE AUTHOR OR THE PUBLISHER BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK OR OTHERWISE, EVEN IF THE AUTHOR OR THE PUBLISHER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Termination. This License and the rights granted hereunder will terminate automatically upon any breach by You of any term of this License. Individuals or entities who have received Derivative Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 6, 7, 8, 9, 10 and 11 will survive any termination of this License. If You bring a copyright, trademark, patent or any other infringement claim against any contributor over infringements You claim are made by the Work, your License from such contributor to the Work ends automatically. Subject to the above terms and conditions, this License is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, the Author reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. Publisher. The parties hereby confirm that the Publisher shall not, under any circumstances, be responsible for and shall not have any liability in respect of the subject matter of this License. The Publisher makes no warranty whatsoever in connection with the Work and shall not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. The Publisher reserves the right to cease making the Work available to You at any time without notice Miscellaneous This License shall be governed by the laws of the location of the head office of the Author or if the Author is an individual, the laws of location of the principal place of residence of the Author. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this License, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. This License constitutes the entire agreement between the parties with respect to the Work licensed herein. There are no understandings, agreements or representations with respect to the Work not specified herein. The Author shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Author and You.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15071 | alan_petersen |
Populate -o //guest/perforce_software/piper/... //guest/alan_petersen/piper/.... |
||
//guest/perforce_software/piper/windows/main/Perforce/Resources/Licenses/TechnewlogicWpfDialogManagement.txt | |||||
#1 | 12025 | alan_petersen |
**** MEGA UPDATE **** UPDATE - reworked initial calls to GetPerforceHelper to avoid the 'alive' check - fixed error in the connection failed logic to launch the dialog using a dispatcher (without this, a threading error occurs if this code was called from a background thread) UPDATE - reworked initial calls to GetPerforceHelper to avoid the 'alive' check - fixed error in the connection failed logic to launch the dialog using a dispatcher (without this, a threading error occurs if this code was called from a background thread) reg script to add URL handler UPDATE: - updated P4.NET api to latest release ### Bug fixes: ### #84: DEFECT: submit single item should just have item checked in the current changelist - reworked the submit logic to take selected item(s) and move them to a new changelist. - failed submission restores files to original changelist and the new changelist is deleted #110: DEFECT: submit fails if changelist has shelved items - now that items are moved to a new changelist and then that is submitted, shelved items do not cause an issue. - shelved items are not automatically deleted -- they will need to be removed from the shelf manually #111: DEFECT: submit changelist should sort with checked items on top - added CompareTo to the ChangelistFile class to allow comparison for sorting #112: DEFECT: application will not open login dialog if server check fails - reworked helper creation logic to create most helpers when the application first starts - fixed bug in which cached Repository object was retrieved (rather than the new Repo) ### Bug fixes: ### #85: DEFECT: submit error not useful - submit errors now list files that could not be submitted (and caused submit failure) #113: DEFECT: watcher does not restart if submit cancelled - cancel button was not associated with any operations (it just made the dialog go away). Now cancel calls Utility.StartBackgroundProcesses(). UPDATE: - combined syncworker and refreshworker into 1 background thread, rather than 2 separate threads - UI refresh now occurs immediately after sync - removed refreshworker class, settings, etc. ### Bug fixes: ### #114: Defect: Deleted items are not unsynced from workspace - fixed two issues: - sync worker was not starting correctly - sync / refresh being on different schedules was causing some strange behavior UPDATE: - modified CheckInButtonEnabled logic in ToolBarViewModel to enable the button if a valid client is configured. - previous version had more complex logic and cached data, but refresh was slow and this is now simpler. ### Bug fixes: ### #25: Defect: Ability to check in part of the move operation - modified checkbox click logic to see if file action is move/add or move/delete and if it is, an fstat is executed to get the source (MovedFile) and then the associated line in the table is checked/unchecked. This will prevent a user from deselecting part of a move operation #107: Defect: Unsync from computer not working - modified 'unsync from workspace' logic to use exclude mapping if directory has a parent directory that is mapped - modified code that gets client mappings for depot paths to use the raw 'p4 where' command rather than the API -- the API results don't let you distinguish between directories that are mapped and those that are excluded. The p4 where command tagged output includes an extra field 'unmap' for paths that are excluded. this is probably a bug in the API #116: DEFECT: submit reports changelist -1 if no files submitted - modified logic in command helper to only display the changelist ID if it is greater than 0 (i.e. files were submitted) #117: Defect: Desi application crashes on delete folder - modified logic in the CommandHelper delete method to check to see if any files are openeed in the directory path, and if so the delete is prevented and a message dialog is displayed indicating that the folder could not be deleted. #49: Defect: Desi throws exception when internet connection is lost - modified the unhandled exception method in App.xaml.cs to give the user the option to quit or reopen the application - modified the GetRepository logic in PerforceHelper to avoid the try/catch and keep the cached repo (for performance) UPDATE: - modified CommandHelper.RevertFiles to stop / start the background processes (sync, watchdog) to hopefully prevent watchdog from seeing files appear in the workspace - modified watchdog with slight delay and then check to see if file exists when issuing a create (p4 add) ### Bug fixes: ### #82: DEFECT: strange add/remove behavior with Microsoft Excel - was able to replicate, added delay to logic in watchdog and a check to see if the created file actually exists -- these temporary excel files appear and disappear quickly -- the delay can be increased if files still appear in DESI #85: DEFECT: submit error not useful - modified submit logic in CommandHelper to display the error message if the details are empty (this happens sometimes, apparently) #115: Defect: File watchdog does not register deletes and moves from the explorer - modified watchdog code a little to try to catch deletes and moves better - files with .tmp extension were completely ignored, which could cause issues if there are actual files with .tmp extensions #118: Defect: search does not return result if keywords are from two different source (filename + content) - modified search query building logic to match that used by mac DESI #119: Defect : Checkout folders should be deleted - modified logic used when sending a folder to the trash to ignore files marked for add when running 'p4 opened' #83: DEFECT: folder history should have button to show files in changelist - added new window to display changelist information, specifically the description, modification date, and files (with actions) in the changelist. - currently, this opens up as a modal window (dialog) that can be resized, etc. I thought that it was better than a fixed window attached to the main DESI window. #60: Defect: Search should be restricted to current folder - added new toggle to the 'more options' section that gets populated if the user has a folder selected in the Workspace or Server tabs when s/he performs a search. #49: Defect: Desi throws exception when internet connection is lost - Modified logic in App.xaml.cs to do the following when an unhandled exception is caught: - stops background processes (to prevent double dialog seen in latest reported error) - uses the DialogManager to display dialog aligned at the top of the window, giving the user the option of restarting or quitting the application #118: Defect: search does not return result if keywords are from two different source (filename + content) - Modified logic in SearchHelper.cs to format the search terms with wildcards (*) before and after each term #60: Defect: Search should be restricted to current folder - modified logic to keep selected folder if the current view is on the search screen #120: Defect : Adding Same File with add button - Changed add logic in ToolBar.xaml.cs to use the Utility.CopyFileToDirectory method to copy files to the destination directory, adding "(Copy n)" to the filenames if a file with that name already exists in the destination #83: DEFECT: folder history should have button to show files in changelist - Modified logic executed when clicking the rollback button in the FolderHistory.xaml.cs file to display a wait dialog when rolling back, which will help prevent the perception of the application "locking up" #101: DEFECT: Add button not working for favorite - modified AddFile and AddFolder toolbar button logic to enable the buttons if the favorite points to a workspace folder (as opposed to a server folder) #102: DEFECT: Favorite pointing to folder on server tab should have server background - modified FavoritesView.xaml to display background contingent on favorite item's source (workspace or server) - re-worked FavoritesViewModel as datacontext for FavoritesView - added server check logic to FavoritesViewModel #95: DEFECT: Positioning of add tag popup - Due to differences in popup positioning between Win7 and Win8, the only positioning that seemed to be consistent was "center" on the parent position. I modified the Sidebar.xaml to position the Add Tag popup relative to the + button. #86: DEFECT: workspace thumbnails - updated ListingItemInfoViewModel.cs to try to generate png thumbnail of file if the file's action is Edit, Add or MoveAdd, which might indicate that the file has changed. #93: Defect: Bread crumbs cuts off if the path is too long - modified ControlTemplate in BreadcrumbBar.xaml to include a thin (5px) horizontal scrollbar on the bottom UPDATE: Added new logging facility (available via the View menu). Currently, logging is set to "ALL" (which means "everything") but for release this will be set to INFO or WARN. The user can change the log level by opening the log window and selecting the log level from the combo box at the top. The Clear button clears the log, and the Save button allows the user to save the log to a file ### Bug fixes: ### #100: DEFECT: Copy/paste results in Windows "Cannot create directory" error - unable to replicate, added a new logging facility (Log window under the View menu) to provide more information #105: Defect: Object reference error pops up intermittently - unclear when this is happening... cleaned up the one place #49: Defect: Desi throws exception when internet connection is lost - Updated exception handler in App.xaml.cs to stop background processes and display integrated dialog (rather than standalone dialog) UPDATE: - update to logic regarding switching workspaces - update to breadcrumb logic to display breadcrumbs more accurately when the selection is changed ### Bug fixes: ### #121: DESI Screen not get updated - changing the workspace now clears the workspace grid and deselects the workspace selector, if it is already selected #121: DESI Screen not get updated - two null references were not being caught, resulting in application crashes under specific circumstances. these have now been fixed! - updated workspace selection logic to clear out old values (that was resulting in old data still present when the workspace is switched) #122: Drag/Drop Folder not working - modified logic for drag&drop to more intelligently handle a dropped item UPDATE: - modified sync button functionality - reports number of changes synchronized from server - waits for 20 seconds (or until the user clicks the OK button) ### Bug fixes: ### #123: Defect :Files Deleted is also displaying in Recently added - modified count of files during sync so this should be fine now #124: DEFECT: add button does not work when creating favorite tag - removed the add button (since it is superfluous anyway) and so users can just hit enter after typing in the tag name UPDATE: - modified "LOCKED BY" text in button to be left aligned ### Bug fixes: ### #125 DEFECT: submitting single moved item should also select corresponding deleted item - modified the SubmitFile method in CommandHelper to check to see if the file's action is MoveAdd, and if so, then to get the MovedFile attribute from the metadata (the corresponding delete) and select that too, so the submit dialog will have both items selected. #126 DEFECT: Licensing/version info - created 'About' menu under the 'Help' menu - added licenses to Resources/Licenses - added version information (derived from the project version data) #127 DEFECT: Toolbar items need tooltips - tooltips now available on buttons. note that tooltips are only visible for enabled buttons #128 DEFECT: Unversioned files show strange & useless modification timestamp + version number - modified ListingItemInfoViewModel.cs ModifiedDate method to return the string ---- if the timestamp is zero - modified ListingItemInfoViewModel.cs, adding a Revision property and having the method return {none} if the revision is not greater than zero. #129 DEFECT: Application window should have minimum size - MainWindow now has attributes MinHeight="400" MinWidth="550" which restrict how small the window can be made #130 DEFECT: Date format should be DD.MM.YYYY or YYYY-MM-DD, but not MM.DD.YYYY - modified ListingItemInfoViewModel.cs ModifiedDate method to return a formatted string, rather than having WPF format the date - modified VersionInfo.xaml to format the "CHECKED IN" field using the string formatter "yyyy/MM/dd HH:mm:ss" - modified VersionItem.cs to ensure that the date returned is expressed as local time (time is now retrieved from the metadata instead of the file history to ensure that it matches TZ-wise) #131 DEFECT: When entering Submit message, pressing <ENTER> starts submission instead of creating a new line - added AcceptsReturn="True" AcceptsTab="True" to the Changelist description field in the SubmitForm.xaml dialog #132 DEFECT: In menu bar there is no "Help" item to link to any help page or show support contact information - added help menu - TODO: need URL for help system #133 DEFECT: Tags names do not display underscore - modified tag display in ListingItemInfo.xaml to use TextBlock instead of Label UPDATE: added copyright and cleaned up usings removed unused method UPDATE: - modified favorites, tags, and breadcrumbs to use TextBox instead of Label (dealing with the deleted underscore issue) - removed unused BreadcrumbLabel user control ### Bug fixes: ### #124 DEFECT: add button does not work when creating favorite tag - modified tag display to be TextBox instead of label - modified positioning of add popup (again!) #127 DEFECT: Toolbar items need tooltips - added ToolTipService.ShowOnDisabled="true" to each toolbar button to get around strange issue where enabling/disabling button resulted in blank tooltips. Probably a good idea to have the tooltips always visible anyway (rather than only when buttons are enabled) #134 Defect : Breadcrumbs should also show the underscore sign. - updated to use TextBox instead of Label #130 DEFECT: Date format should be DD.MM.YYYY or YYYY-MM-DD, but not MM.DD.YYYY - modified FolderHistory.xaml to use ContentStringFormat="yyyy/MM/dd HH:mm:ss" for the "CHECKED IN" date format, which should provide consistency across the application now. UPDATE: - fixed error in which changelist could get orphaned if all files submitted were reverted ### Bug fixes: ### #136 Defect: Submit all folder option missing - added menu item "Submit all files" for mapped folders - added handler code for menu item - added CommandHelper SubmitFolder method to submit all files contained in a folder. ** NOTE: this needs to iterate over all files in the changelist, so for a changelist with many files, there could be a delay. #135 Defect: Keyboard navigation refinement - updated keyboard navigation code to provide more "smooth" navigation through the application #135 Defect: File watchdog does not monitor folder deletions - fixed copy/paste typo that existed in the folder deletion code that would cause the system to miss folders that are deleted. UPDATE: Adding code for msi installer generation Fixing dist script to deal with Debug or Release distros Changes to installer definition to create Desktop shortcut - fixes log window reopening that caused an error ### Bug fixes: ### #141 DEFECT: Adding files with strange characters causes crash - modified Add command in PerforceHelper to include the AddFilesCmdFlags.KeepWildcards option UPDATE: - fixed issue in which application would crash if URL supplied and the user was not logged in - added CleanChangelist method to PerforceHelper to cycle through list of changelist files to ensure that all files marked for add still exist on the local filesystem (they may have been deleted since they were added) - workspace watcher logic revamped to remove delays - removed shutdown of watchdog to prevent situations in which file modifications were missed - context menu text updated to "selected files" instead of "all files" ### Bug fixes: ### #151 Defect: On Submission fail, Files are becoming read only - logic now calls the CleanChangelist method before bringing up the submit dialog #145 Defect: Refresh on long folder paths leads to auto selection of random folders - refresh logic revisited -- refresh of a panel has been reworked to proceed one column at a time, synchronously. #149 Defect: Option to submit selected items from pending list and trash list is not available - context menu added for submission of files from Pending and Trash UPDATE: - modified MainWindow.cs and Utility.cs to call CleanChangelist when workspace is first selected - modified CleanChangelist in PerforceHelper.cs to do the following: - for each file in the changelist: - if action is Add, revert if local file no longer exists - if action is Move/Add, revert file and delete original file - if action is Edit, revert the edit and delete ### Bug fixes: ### #149 Defect: Option to submit selected items from pending list and trash list is not available - fixed typo (the font was really small!!) - fixed casting bug that caused Null exception #108 DEFECT? - reconcile on submit - added CleanChangelist method to perform "reconcile" options -- reconcile itself cannot detect when files are added or edited and then deleted locally #139 Defect: Rollback on folder does not delete files - updated PerforceHelper.cs to delete files correctly when a folder is rolled back #153: Defect : Move Action should get default selected if one get selected - fixed typo in context menu - updated SubmitFiles method in ContextMenuHelper.cs to do an fstat on files being submitted and select associated files if the action is MoveAdd or MoveDelete #49 Defect: Desi throws exception when internet connection is lost - updated PerforceHelper to test connection (with 5 second timeout) every time it is requested. #154 Defect: Weird behavior with folders with different upper case are mapped - updated various aspects of the code to make string comparisons case insensitive. #155 Defect : Cannot rename the Favorite Folder name - updated xaml to rearrange elements to make edit box visible again. UPDATE: - added Shanghai and Tokyo to drop down list - replaced IP addresses with hostnames - modified dist.cmd to create installer and copy to dist\Release directory if Release is the specified distribution ### Bug fixes: ### #147 Defect: Installer should add shortcut to start menu - updated Wix configuration to include start menu shortcut #129 DEFECT: Application window should have minimum size - sidebar now has auto-appearing 5-pixel wide scrollbar if the window height is not enough to accommodate the number of things in the sidebar UPDATE: - enlarged submit dialog (cannot make it resizable) - made submit datagrid columns resizable and sortable - added help URL to help menu (opens in default web browser) ### Bug fixes: ### #157 DEFECT: orphaned changelists - application now gathers changelist files when it starts - menu item in File menu to gather changelist files on demand UPDATE: - removed automatic "Gathering changes" functionality ### Bug fixes: ### #158 DEFECT: p4 urls open up new DESI instances - modified App.xml.cs to look for existing DESI processes and to set focus to the existing process and exit if there is already one running - added the P4Listener.cs helper class to create a named pipe to listen for p4:// URLs - modified App.xml.cs to send the URL to the named pipe if it is passed on the command line |