Commit Graph

801 Commits

Author SHA1 Message Date
Chris Jones
356f9e90bf fix up transparent background functioning 2010-01-21 20:36:18 +00:00
Chris Jones
7b0bb5818d dbg() which kind of colormap we're setting 2010-01-21 20:36:02 +00:00
Chris Jones
e3cbb3e717 Fix a prefs editor guiget() call, and set the background type in the config file 2010-01-21 20:35:43 +00:00
Chris Jones
81e00fca0b Mask some incompatibilities with older gtk 2010-01-21 13:23:39 +00:00
Chris Jones
21caae2517 Start implementing a tab moving signal. It isn't handled yet. This is a regression from trunk until it is handled 2010-01-21 13:02:37 +00:00
Chris Jones
0eb6994620 Add the (un)group_(all|tab) connections that should have been in the previous commit 2010-01-21 13:00:50 +00:00
Chris Jones
14f98c1b89 Implement (un)group_all and (un)group_tab 2010-01-21 12:55:57 +00:00
Chris Jones
9c72b6287d Implement tab changing keyboard shortcuts 2010-01-21 12:33:42 +00:00
Chris Jones
0f5b6e97a7 Fix WM_URGENT removal by using the right signal name 2010-01-21 12:14:12 +00:00
Chris Jones
e2db10fc09 Implement urgent bell handler 2010-01-21 00:13:56 +00:00
Chris Jones
29d0414a04 Fix inverted groupsend handling and generally make it clearer what we mean here by not using the magic groupsend type values 2010-01-20 23:46:13 +00:00
Chris Jones
a10babeb5d Port geometry hinting from trunk to epic-refactor. HEY THEO. 2010-01-20 23:36:11 +00:00
Chris Jones
021f5cef98 remove the silly old comments in the directional navigation section and add some better ones describing how it works 2010-01-20 19:57:16 +00:00
Chris Jones
ee72ae478f refactor out the last two decisions in the directional navigation so instead of being test code that can only move left, they now move in all four directions 2010-01-20 13:04:14 +00:00
Chris Jones
ddce3a862d URL dragging was broken because Terminator::get_target_terms() makes no assumptions about which terminal to examine, but it used to 2010-01-20 12:11:02 +00:00
Chris Jones
db7b0cc0a0 Directional navigation. Only works for going left yet, see included FIXME 2010-01-20 00:54:35 +00:00
Chris Jones
36631b20e4 Teach Notebook how to hoover itself since it might be called during drag&drop, and refactor its suicide detection into that function 2010-01-19 22:44:05 +00:00
Chris Jones
4a1a65dfbd Make icon setting more rubust 2010-01-19 20:03:05 +00:00
Chris Jones
35910b7a85 Tidy up the email match, and fix the nntp one (thanks dutchie) 2010-01-19 19:44:23 +00:00
Chris Jones
ac95dddfbe start working on a set of methods to walk the widget tree to find the visible ones, and collect their gtk allocation (i.e. where they are and how big they are). This is expected to form the basis of directional navigation and layout display/saving 2010-01-19 13:06:09 +00:00
Chris Jones
5cad06295e Make the prefs editor not explode on cycle_* 2010-01-19 11:22:51 +00:00
Chris Jones
df6a370bf3 This is a very subtle bug, Multiple exception catches need to be a tuple. We were previously creating an exception object *called* NameError when we caught a KeyError 2010-01-19 11:14:01 +00:00
Chris Jones
abe9b24518 Implement titlebar colours 2010-01-18 23:27:22 +00:00
Chris Jones
bdbe359767 Restore -e and -x support 2010-01-18 22:56:43 +00:00
Chris Jones
e6ad61831d Remove unnecessary print statements 2010-01-18 20:40:52 +00:00
Chris Jones
3f214bf686 Restore ctrl-tab/ctrl-shit-tab 2010-01-18 20:39:46 +00:00
Chris Jones
7d08d790e2 port Terminal to use Signalman 2010-01-18 19:48:24 +00:00
Chris Jones
f17fab0610 Slightly improve docstrings 2010-01-18 13:23:50 +00:00
Chris Jones
f015aaebf4 Move test-only files into tests/ 2010-01-18 13:21:03 +00:00
Chris Jones
8ad7ac07b1 Create a new class Signalman which is used to track the glib signals on a widget since at least two of our classes were doing this themselves. Also integrated it into one of those classes, Container() where it is only used by VPaned and HPaned. Also add doctests for it 2010-01-18 13:17:35 +00:00
Chris Jones
8c7218121f get and set palette values 2010-01-15 23:32:38 +00:00
Chris Jones
0e01618dfa isdir is in os.path, not os 2010-01-15 23:32:16 +00:00
Chris Jones
3917ea568b Add tiny test coverage for util.py 2010-01-14 23:48:15 +00:00
Chris Jones
32a3933b6c Add some basic test coverage of factory.py 2010-01-14 23:40:02 +00:00
Chris Jones
9d5d9a286c Add another possible exception to the tomboy keybinding 2010-01-14 23:39:49 +00:00
Chris Jones
aec2dd5add Add minimal, feeble tests for cwd.py 2010-01-14 23:33:06 +00:00
Chris Jones
62d5672a88 Extent Config test coverage, and make del_profile() more robust 2010-01-14 23:29:47 +00:00
Chris Jones
fb0beb42f3 Split out borg doctests and test classes so they work properly with trial 2010-01-14 23:03:47 +00:00
Chris Jones
375d272ee8 make the config directory if it doesn't exist, and don't explode if we can't write it 2010-01-14 22:58:41 +00:00
Chris Jones
8f88537bc5 obvious stupid reason why the email URL matching wasn't working. excess whitespace 2010-01-14 13:52:48 +00:00
Chris Jones
4d216633fc -d now automatically infers the Class::method in dbg(), and -d additionally adds a trailing (filename:line) item. debugserver is now moved to -ddd 2010-01-14 13:15:05 +00:00
Chris Jones
1bcbe94e6a Fix confusion around focus and scrollbar position settings not being consistent 2010-01-13 23:13:19 +00:00
Chris Jones
df7a3b978d The titlebar is no longer optional, it probably never should have been, it's just too complicated 2010-01-13 23:06:42 +00:00
Chris Jones
02c1a482df Add a get_profile() to Config and use it in Terminal::set_profile() to make sure we don't set a profile that already is 2010-01-13 23:02:17 +00:00
Chris Jones
f808a9edc9 set_active triggers the 'activate' signal, which makes sense I suppose, but means we were changing profile to the profile we already were set to, which is a waste 2010-01-13 23:00:42 +00:00
Chris Jones
606ca3707b Extend previous commit to cover the titlebar itself, which previously would suffer subtle focus failures 2010-01-12 01:05:53 +00:00
Chris Jones
8276a6de77 Fix silly focus issue when creating groups - terminals were instantly stealing focus and cancelling the group name creation 2010-01-12 00:58:50 +00:00
Chris Jones
c257a3abff remove old file 2010-01-12 00:49:44 +00:00
Chris Jones
8846328137 scrollbar toggling is now significantly more useful and consistent 2010-01-12 00:33:55 +00:00
Chris Jones
23f469add3 Fix up handle_size to work properly 2010-01-11 23:46:18 +00:00
Chris Jones
adfaf600fa Store the command line options in Config rather than overwriting parts of it, and passing them around 2010-01-11 20:56:30 +00:00
Chris Jones
257cc3ead6 Remove the old terminator.py, rename newterminator.py accordingly and update all the references to it 2010-01-11 20:06:53 +00:00
Chris Jones
949dc81574 Clear up some import errors found by pyflakes 2010-01-11 20:03:54 +00:00
Chris Jones
75b5cd11cf Terminator::reconfigure_terminals should just be called reconfigure, and needs to start paying attention to global values 2010-01-11 10:28:47 +00:00
Chris Jones
7a06c86310 spinbutton gives us a float, but we should store an int 2010-01-11 10:10:35 +00:00
Chris Jones
b8aac8874a Disable DEBUG for now 2010-01-11 10:10:19 +00:00
Chris Jones
5ae299e6da Make the OK button in the preferences editor reconfigure all live terminals 2010-01-10 23:58:05 +00:00
Chris Jones
295aeed2e2 Unset the previous profile selection if we just removed it 2010-01-10 23:54:51 +00:00
Chris Jones
e5d52fee52 Implement most of Terminal::reconfigure 2010-01-10 23:47:55 +00:00
Chris Jones
c5bd227197 Improve indication of what some debugging is 2010-01-10 23:47:36 +00:00
Chris Jones
976e3124f7 two lines of debugging for each Config() lookup is mad, drop it to one 2010-01-10 23:47:15 +00:00
Chris Jones
27d0a13330 print more useful errors when the config file format is invalid, and update the configspec generator to know that our undefined default keybindings are now '' instead of None 2010-01-10 17:36:55 +00:00
Chris Jones
b7fa984a52 config dependent signal handling should be marshalled by Terminal::reconfigure 2010-01-10 17:35:03 +00:00
Chris Jones
be413d3622 Track a couple of pre-existing connection IDs in Terminal.cnxid 2010-01-10 17:17:31 +00:00
Chris Jones
cc11effd3b Store a reference to the signal handlers for config-dependent features, so they can be cancelled later 2010-01-10 17:15:14 +00:00
Chris Jones
da7f1a6ea1 renaming the current profile wasn't updating Config.profile with the new value. Now it is. 2010-01-10 00:53:27 +00:00
Chris Jones
371aebc067 Add the keybinding descriptions 2010-01-10 00:35:38 +00:00
Chris Jones
180ccbbf03 Hook up the keybindings tab in the preferences editor. Loads and saves 2010-01-10 00:20:24 +00:00
Chris Jones
2cc76de609 gtkscale insists on getting float values 2010-01-09 22:27:56 +00:00
Chris Jones
2b7be76004 Move our preferences glade file to terminatorlib/ so we can use the built-in knowledge of where that is on-disk to find the .glade file 2010-01-09 17:49:14 +00:00
Chris Jones
80e0926a05 remove some old data, fix up a few defaults that didn't quite match up with reality, and implement the final bits of functionality to make the OK button DTRT 2010-01-09 17:42:59 +00:00
Chris Jones
92e7eb1dff support adding and removing profiles, and returning their values to Config() when switching between them 2010-01-09 15:51:56 +00:00
Chris Jones
f273c198c9 Finish off the Compatibility tab and the other UI toggles in the profile tabs. 2010-01-09 11:52:30 +00:00
Chris Jones
dd45d51725 fix up all of the profile apart from the palette 2010-01-09 00:47:49 +00:00
Chris Jones
594ee47912 Complete the Terminal Command profile tab. Teach the colour scheme picker how to exist in the config and how to be controlled by the prefs UI 2010-01-08 23:51:45 +00:00
Chris Jones
1924c2f81a fix up the General profile tab in the prefs editor and hook all of its elements up to code 2010-01-08 08:39:21 +00:00
Chris Jones
c14e955310 profilelist is a list, not a callable object 2010-01-08 01:04:06 +00:00
Chris Jones
4aa1b50fe6 Change the way window state config works. Initial workings of preferences window. 2010-01-08 01:02:49 +00:00
Chris Jones
68ade515eb Add support for disabling modules and add CustomCommandsMenu and TestPlugin to it 2010-01-06 00:27:58 +00:00
Chris Jones
8c117ff6e9 Tidy custom_commands plugin up and port it to using our shiny new plugin config API 2010-01-05 22:29:02 +00:00
Chris Jones
7328d9aa4f If plugins have defined extra menu items, insert a spacer before they start 2010-01-05 22:28:14 +00:00
Chris Jones
0b5cf876ba Move the base plugin classes to plugin.py for cleaner importing in additional plugins 2010-01-05 22:22:13 +00:00
Chris Jones
710b8a4834 Plugins that have never given us config before need a dict created for them before they can set values 2010-01-05 22:15:56 +00:00
Chris Jones
299e4cc5a8 Add plugin config API 2010-01-05 21:44:12 +00:00
Emmanuel Bretelle
08b65f8b2a plugins:
* enable custom command using terminal_menu plugin hook
2010-01-05 18:57:46 +01:00
Chris Jones
266b662923 Support --geometry 2010-01-05 12:58:05 +00:00
Chris Jones
1625326838 Support setting the window role 2010-01-05 12:55:05 +00:00
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