// // PLSAppDelegate.h // Pulse // // Created by Matt Attaway on 1/14/14. // Copyright (c) 2014 Zen of the Monkey. All rights reserved. // #import <Cocoa/Cocoa.h> #import "PLSOverseer.h" @interface PLSAppDelegate : NSObject <NSApplicationDelegate, PLSOverseerDelegate> @property (nonatomic,strong) NSMutableArray* overseers; -(IBAction)showConnections:(id)sender; -(IBAction)showLogin:(id)sender overseer:(PLSOverseer*)os; -(IBAction)findConnectionNeedingLogin:(id)sender; // methods required to be a PLSOverseer delegate -(void)needPassword:(PLSOverseer*)os; -(void)needPasswordNow:(PLSOverseer*)os; -(void)connectionDown:(PLSOverseer*)os; -(void)connectionUp:(PLSOverseer *)os; @end
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#12 | 8686 | Matt Attaway |
Swap in new connection dialog There’s still a fair amount of polish to do, but it’s good enough to replace the old connection dialog. User visible change |
||
#11 | 8595 | Matt Attaway |
WIP on handling connection errors With this change we report the errors to our delegate, but we don’t attempt to recover. That will come with the next checkin. This change does add in the protocol for handling these errors. User visible change |
||
#10 | 8592 | Matt Attaway |
Add less aggressive notification when background processes detect need to login Instead of popping a dialog up right in your face we use a standard notification and change the status icon to indicate Pulse is unhappy. Using the login menu item will log the user is and restart the background processes. User visible change. |
||
#9 | 8590 | Matt Attaway |
Add crude login capabilities This is the first step toward getting the login behavior I want. Right now anytime a Peforce command gets a login error the Overseer ion charge notifies its delegate, which is currently the AppDelegate. The AppDelegate then kicks off the requisite login dialog which gets the password and does the login. There’s no error handling or feedback and the dialog pops up even when it is a background process that hit the error. The next step is to implement the Login menu item and the ‘need login’ tool tip and status icon. User visible (and possibly user annoying) change |
||
#8 | 8575 | Matt Attaway |
Automatically handle Unicode servers; stub out login handling There's a lot going on in this change: * Fixed a bug where charset was always set to none * Added protocol on PLSOverseer so that something can properly handle login errors * PLSAppDelegate implements stubs for the PLSOverseer protocol * PLSOverseers automatically configure themselves for Unicode servers now * Ripped out handleCommonErrors: because it turns out I want to handle the same error in multiple ways. Next step is to properly handle 'p4 login' and request a password. User visible changes. |
||
#7 | 8537 | Matt Attaway |
Rework Pulse startup to (sorta) support real users Instead of repopulating the system with my test data it now pops up the connection dialog if there are no existing connections. This change also fixes a bug where the PLSConnection object wasn’t being refreshed when settings were changed on an Overseer. |
||
#6 | 8519 | Matt Attaway |
Finally add a connections dialog to manage connections It’s taken a week to figure out how to manage windows and tabelviews, but this change adds a crude connection dialog to add and remove connections as well as save them out to the preferences file. More to do to make it more sane, but it works for now! |
||
#5 | 8511 | Matt Attaway |
Get a very crude form of reconcile and sync working. Continuing in my purely experimental mode, this change adds rough versions of the core features: 1) Every 5 seconds a timer fires and runs sync to grab new files. The user is made aware of the synced files via an OS X notification. 2) When files are modified ‘p4 reconcile’ is kicked off on the entire workspace Of course there is no error or sanity checking, but it is technically usable for very rough definitions of usable. |
||
#4 | 8509 | Matt Attaway |
Add support for loading multiple connections The code is rough, but Pulse can now load up and start watching multiple paths, each associated with a separate Perforce server. Also cleaned up some white space and normalized the ‘*’ used to denote pointers. |
||
#3 | 8506 | Matt Attaway |
Pull model out of controller; disable dock icon No functional change, but the code is moderately more sane. This change introduces an Overseer object that is responsible for maintaining one path/Port/User/Client combination. All of the delegation responsibilities move to the Overseer, as does FileSystemWatcher configuration. Overall this just sets me up to actually monitor multiple paths. |
||
#2 | 8504 | Matt Attaway |
Add all the APIs!!! This adds in a status bar icon with a pointless menu as well as needless notifications when a file changes in the watched path. While essentially useless, I think I’ve found the APIs for all the major pieces. Now I just need to make them do something useful… |
||
#1 | 8502 | Matt Attaway |
Initial checkin of Pulse, a lightweight Perforce client for the Mac This is a sketch of what a Perforce client inspired by the UX of cloud synchronization software would look like. I’m not trying to build something production worthy yet; at this point I’m just trying to get something up and running as fast as possible so I can play with the UX. At this point I can monitor a directory and kick off ‘p4 info’ calls anytime a file changes. It is the polar opposite of useful. Do note I’ve never written code in Objective-C before. Here be ugly, malformed dragons. |