Commit Graph

664 Commits

Author SHA1 Message Date
Chris Jones
fe7e03d00f Add some old command line options as dummies, and make some command line options influence the config object. This is probably a poor long-term strategy as it means supplying command line options and saving the config will cause the command line options to be baked into the config 2010-01-05 12:51:53 +00:00
Chris Jones
9744f3ebb6 Add keyword arguments to Window.__init__() for command line options 2010-01-05 12:49:57 +00:00
Chris Jones
58fd86486d Switch to using **kwargs instead of *args for the added flexibility it brings. We need to support keyword arguments for Window.__init__() 2010-01-05 12:49:04 +00:00
Elliot Murphy
7beb3bf424 Hook up doctests so they are discoverable via trial:
trial terminatorlib
2010-01-04 23:47:51 -05:00
Chris Jones
91830e22df Move configobj into its own subdirectory, since its a separate upstream product 2010-01-05 00:03:16 +00:00
Chris Jones
b4370235b5 We don't use this anymore 2010-01-05 00:00:47 +00:00
Chris Jones
dbe683e259 hey look it's 2010 already 2010-01-04 23:56:28 +00:00
Chris Jones
ba63f8fc2b Merge old terminator option parsing into a new file that parses command line arguments and includes them in the loaded config 2010-01-04 23:52:39 +00:00
Chris Jones
723dfef697 Bump the version number to signify the progress of this branch 2010-01-04 23:51:55 +00:00
Chris Jones
42e022a938 Make the factory uglier, but better able to handle not running from inside the library, and make the plugins import from the library. These changes make it possible to run epicrefactor from outside itself, which is necessary to make the top level terminator script work with it 2010-01-04 13:46:55 +00:00
Chris Jones
df9abd4523 Move the test.py launcher to the top level to start shaking out namespace bugs 2010-01-04 13:24:45 +00:00
Chris Jones
be224f3016 Undo previous change that had Factory registering windows and terminals. Instead make them self-register since they already have a Terminator reference anyway. Remove calls to register_terminla from elsewhere. 2010-01-04 13:11:16 +00:00
Chris Jones
293beb2331 our test starter can get away with only depending on Factory now 2010-01-04 13:05:58 +00:00
Chris Jones
6d1831824a Add a policy that if we have no open windows we should quit 2010-01-04 13:05:28 +00:00
Chris Jones
995aa99b2e Teach Factory how to make a Window, and have it register terminals windows automagically 2010-01-04 13:04:46 +00:00
Chris Jones
26f0b2be69 Rename the Profile editor to a general preferences editor and only show a choice of profiles if there's more than one 2010-01-03 17:53:25 +00:00
Chris Jones
6058727cdb Port RainCT's LP Code URL handler to a plugin 2010-01-02 01:40:26 +00:00
Chris Jones
8141a3496d call sys.exit() with doctest failure results 2009-12-30 11:26:22 +00:00
Chris Jones
a13581a4c8 Handle exceptions in a way that doesn't make python 2.5 really angry 2009-12-30 01:50:47 +00:00
Chris Jones
714425dfbe Fix apturl handler name and rename LaunchpadURLHandler to LaunchpadBugURLHandler since we are likely to grow a handler for code URLs 2009-12-30 01:50:18 +00:00
Chris Jones
4cfc1c6fd2 Improve debugging relating to URL mangler plugins 2009-12-30 01:05:51 +00:00
Chris Jones
1e187b0333 make the configspec debug output named better 2009-12-29 01:37:32 +00:00
Chris Jones
98015093d8 Add a test to make sure that we correctly load boolean types as python bools 2009-12-28 22:16:47 +00:00
Chris Jones
dc9ae3363d Add ConfigObj's validate.py and construct a config specification and use it to validate the configuration. Most crucially this causes ConfigObj to know about the correct types it should be converting the different entries into 2009-12-28 22:06:23 +00:00
Chris Jones
f690cd6e5f Get ProfileEditor to the barest state of functionality possible 2009-12-27 02:32:16 +00:00
Chris Jones
4c025273c9 rename and import the profile editor 2009-12-27 01:01:34 +00:00
Chris Jones
896bd1af35 Start the epic refactor of the profile editor 2009-12-27 00:59:44 +00:00
Chris Jones
945a547344 pluralise 2009-12-27 00:59:29 +00:00
Chris Jones
ee81bd4f76 Make the terminal context menu list available profiles and switch between them 2009-12-26 20:09:16 +00:00
Chris Jones
2a56e328ac Add methods to Config to list and delete profiles 2009-12-26 19:52:58 +00:00
Chris Jones
f09e9947cd Make the config loading and saving significantly more functional, but also horrifyingly complex, with very little error handling 2009-12-26 19:43:01 +00:00
Chris Jones
825abbb658 Flesh out Config.load() so it actually loads a config 2009-12-26 13:39:14 +00:00
Chris Jones
5bd1b3f9af Make sure ConfigBase() only uses a copy of DEFAULTS so we never change DEFAULTS, allowing us to add dict_diff() so we can avoid including things in the config file that aren't default 2009-12-26 01:19:42 +00:00
Chris Jones
71fcada828 add a fixme 2009-12-25 21:42:57 +00:00
Chris Jones
07f7906f86 Don't write to stdout, write to a config file, but one with a different name for now 2009-12-25 21:25:31 +00:00
Chris Jones
f91d76e9b4 Add ConfigObj 4.6.0 from http://www.voidspace.org.uk/python/configobj.html. Add a really simple implementation of config saving 2009-12-25 21:22:04 +00:00
Chris Jones
60a1b085b4 Add a utility function for finding ~/.config/terminator and use it in PLuginRegistry to load plugins from the user's homedir 2009-12-24 21:35:07 +00:00
Chris Jones
0a67d73592 Extend the url_handler plugins to include apt: support 2009-12-23 17:30:26 +00:00
Chris Jones
df317bd2cd mildly change the debugging output of objects, and handle ^C a little better 2009-12-23 16:40:54 +00:00
Chris Jones
f33dc6f28a Expand Config() test coverage a little 2009-12-23 10:09:53 +00:00
Chris Jones
8068ef656f extend testing, make ConfigBase settable, drop ConfigBase derivation from dict 2009-12-23 00:10:57 +00:00
Chris Jones
8d3158c152 Make ConfigBase() do some debugging. Hugely verbose, but potentially very useful for now 2009-12-22 00:32:21 +00:00
Chris Jones
9ce380ef90 port to new borg __init__() 2009-12-22 00:25:25 +00:00
Chris Jones
89425256ec port to new borg __init__() 2009-12-22 00:25:17 +00:00
Chris Jones
2c8e2d14e4 port to new borg __init__() 2009-12-22 00:25:05 +00:00
Chris Jones
4a96bf99d4 add some test coverate, split the defaults into sections and move the borg element to a new base object, converting it to use the new borg __init__ syntax. 2009-12-22 00:24:53 +00:00
Chris Jones
90c8b7e8c5 extend test coverage to ensure borg state is unique between borg types. add some debugging info and support the ability to have multiple borg classes via an ugly parameter to __init__() 2009-12-22 00:24:03 +00:00
Chris Jones
a6a1acd26d Clear up the position re licencing of the two external sources of code in our refactoring 2009-12-19 15:07:22 +00:00
Chris Jones
0b5ac38793 Hand merge in from trunk 2009-12-19 02:08:35 +00:00
Chris Jones
48e8637ca5 Add a FIXME 2009-12-18 09:24:23 +00:00
Chris Jones
fe22a9cf47 Integrate the plugin system into the context menus for Terminal 2009-12-18 00:45:08 +00:00
Chris Jones
5dc643a3b2 Add some docstrings 2009-12-17 23:30:12 +00:00
Chris Jones
30f5225884 Add crashproof code for adding URL handlers from plugins, and reacting to them 2009-12-17 23:17:32 +00:00
Chris Jones
b84f593404 port over launchpad specific URL handling from Terminal 2009-12-17 23:17:03 +00:00
Chris Jones
603da6ec16 Since PluginRegistry is a borg we can easily track if we have been loaded before and if so, not load plugins again. 2009-12-17 23:16:42 +00:00
Chris Jones
01bb454d90 stop (ab)using __subclasses__ isntead interrogating the imported plugin modules for a predefined list of the plugin classes they contain, and always instantiate them when they are imported. Add a test plugin only useful for doctest 2009-12-17 13:51:55 +00:00
Chris Jones
9029e519f9 add a test plugin 2009-12-17 12:54:47 +00:00
Chris Jones
6088084fdf handle import failures and add some very borked doctesting 2009-12-17 12:54:42 +00:00
Chris Jones
209c37aa34 ridiculously simple and non-functional plugin 2009-12-17 01:09:13 +00:00
Chris Jones
2660d0795f Add a first run at a plugin system 2009-12-17 01:07:01 +00:00
Chris Jones
ecdbe15420 Add some fixmes for things I know are currently broken, and improve a couple of logging messages 2009-12-16 09:15:53 +00:00
Chris Jones
fabc62ba99 who knows, we might even stick to a testing regime this time 2009-12-11 14:43:19 +00:00
Chris Jones
88cd14ac64 Remove a couple of stale FIXMEs 2009-12-11 14:25:38 +00:00
Chris Jones
7d897eaef7 Make title propagation work properly 2009-12-10 23:25:52 +00:00
Chris Jones
602c6a3b57 Make title changes propagate better, albeit not perfectly yet 2009-12-10 13:20:03 +00:00
Chris Jones
f10f43fa8a pylint 2009-12-10 11:52:26 +00:00
Chris Jones
33e6254ad2 pylint 2009-12-10 11:37:53 +00:00
Chris Jones
dfe85f1e9b pylint quiescing 2009-12-10 11:36:46 +00:00
Chris Jones
0d319e8a57 Improve pylint.sh to be much less noisy and annoying 2009-12-09 13:32:35 +00:00
Chris Jones
c31758179e pylint fixes 2009-12-09 13:22:34 +00:00
Chris Jones
7ed5a573d5 at the suggestion of pylint, refactor Factory::isinstance() to be more succinct 2009-12-09 13:22:27 +00:00
Chris Jones
a432d10d24 Add a quick debugging entry 2009-12-09 13:02:45 +00:00
Chris Jones
67b79ff1da There's no reason anymore to special-case notebook here 2009-12-09 13:02:31 +00:00
Chris Jones
24b6082155 Add more debugging and make sure we don't fall into the trap of iterating over a list we're modifying 2009-12-09 13:02:13 +00:00
Chris Jones
7b24823fd6 Fix a stupid typo 2009-12-09 13:01:41 +00:00
Chris Jones
34da8ffe3a fix a bunch of bugs in tab handling and attempt to handle closing a tab with multiple children, but all of this is still entirely buggy 2009-12-08 13:57:29 +00:00
Chris Jones
f9725242ec Make tab opening conext menu work 2009-12-08 13:01:13 +00:00
Chris Jones
2db2e0f75e Beginnings of making the tab close button work, only handles the simplest case so far 2009-12-08 09:10:39 +00:00
Chris Jones
0796e70808 Don't create a one-off TabLabel for the first tab, Notebook.newtab() makes them and now the order of creation is fixed they even show up properly 2009-12-07 20:32:47 +00:00
Chris Jones
ced0e4f3f5 And make pylint happy about it 2009-11-30 09:52:38 +00:00
Chris Jones
595a3a02e5 Might as well do this for all errors 2009-11-30 09:51:34 +00:00
Chris Jones
05fb49bed6 Make Paned widgets eat themselves when they go from 2 to 1 tabs 2009-11-25 12:51:14 +00:00
Chris Jones
4577c14c6e Only connect terminal signals to terminals 2009-11-25 09:07:48 +00:00
Chris Jones
2a76382e47 migrate to using the factory and extend it to have an isinstance() 2009-11-25 00:37:29 +00:00
Chris Jones
0447c8f6f2 quiesce pylint 2009-11-24 23:49:03 +00:00
Chris Jones
f8ab3d8308 remove testing 2009-11-24 23:47:44 +00:00
Chris Jones
2dd44ddc8a Add an object factory to get us out of our dependency hell 2009-11-24 23:47:32 +00:00
Chris Jones
1d7adc8283 Port TabLabel across and integrate it. 2009-11-23 15:17:33 +00:00
Chris Jones
9cbc6f1282 Add the very barest of support for tabs. 2009-11-21 22:28:39 -06:00
Chris Jones
b6703153a1 Start a new class derived from Container for gtk.Notebook 2009-11-21 21:53:38 -06:00
Chris Jones
8842d3ecf6 Add a FIXME note for later 2009-11-21 21:53:01 -06:00
Chris Jones
ded962d651 introduce global keybindings, force real transparency, handle window closing with the confirmation dialog 2009-11-21 12:47:38 -06:00
Chris Jones
cdf7d37e5a we hate the buggy past and love the futur. assume rgba is win for everyone 2009-11-21 12:19:01 -06:00
Chris Jones
5e104972a7 Fix keybinding for closing ourself 2009-11-21 12:11:50 -06:00
Chris Jones
db3ac95171 introduce the dialog to confirm closing something 2009-11-21 12:09:47 -06:00
Chris Jones
c5711cbe15 get_top_window moved to util 2009-11-20 16:53:06 -06:00
Chris Jones
0deda2434d pylint fixes 2009-11-20 16:52:39 -06:00
Chris Jones
ac1a58e8b3 Always a good idea to call your new function 2009-11-20 16:52:26 -06:00
Chris Jones
025c5d3dd1 Fix up config.py slightly to make pylint happier 2009-11-20 16:46:50 -06:00
Chris Jones
279ebf55d6 use the paned hoovering function introduced in revision 910 2009-11-20 09:31:07 -06:00