# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 16507 | perforce_software | Move to main branch. | ||
#1 | 13572 | alan_petersen | updating R1.1 | ||
//guest/perforce_software/piper/windows/main/Perforce/NotifierAppender.cs | |||||
#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 |