Commit Graph

663 Commits

Author SHA1 Message Date
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
Chris Jones 1db6a242b1 add a sanity check function. This probably shouldn't exist, but is useful right now 2009-11-20 09:30:50 -06:00
Chris Jones aa531014ef improve debugging and ensure that we can't register terminals/windows multiple times 2009-11-20 09:30:28 -06:00
Chris Jones 39098fdefb Add functions for emitting events 2009-11-20 00:18:21 -06:00
Chris Jones a51454e9f6 make the broadcast menu items activate correctly 2009-11-20 00:11:12 -06:00
Chris Jones 7a3f553d82 If there are no more Terminals, destroy all Windows 2009-11-19 23:45:33 -06:00
Chris Jones efbeffb060 Always return focus to the VTE widget after playing with group names 2009-11-19 23:42:49 -06:00
Chris Jones 0ff5aa3159 Tidy up some debugging and fix group hoovering 2009-11-19 23:40:31 -06:00
Chris Jones 132daeb447 Fix up some handling of unzooming and closing terminals while zoomed 2009-11-19 23:16:20 -06:00
Chris Jones 7d9575df5f Make drag and drop of terminals work 2009-11-16 22:56:55 -06:00
Chris Jones ec1c20540a switch to new window registration logic 2009-11-16 21:58:12 -06:00
Chris Jones c48c1d4fd6 fix up debugging statements 2009-11-14 23:12:58 +00:00
Chris Jones 3591aec862 Add very simple ability to register de-register window widgets 2009-11-14 23:12:38 +00:00
Chris Jones 22dccb6728 make focus always switch to the most relevant terminal 2009-11-14 23:04:15 +00:00
Chris Jones bf77106529 switch to using new Container methods for handling child signals. 2009-11-14 22:58:42 +00:00
Chris Jones 0f7a9aa40b Improve some error message and switch to using new Container methods for handling child signals. 2009-11-14 22:58:22 +00:00
Chris Jones 29d661b26a self.signals shouldn't be a class variable. add helper functions to connect child widget signals and disconnect them. 2009-11-14 22:57:35 +00:00
Chris Jones 6e0718c829 make zooming and unzooming work 2009-11-14 18:56:50 +00:00
Chris Jones e93a95162d Add a menu item to restore zoomed/maximised layouts 2009-11-14 18:56:34 +00:00
Chris Jones 4ee756b5ec fix up zoom signal, add an unzoom signal. generally make zooming work 2009-11-14 18:55:51 +00:00
Chris Jones 6f93a51b5f fix stupid bug that registered all Paned widgets as HPaned ones. Fix ordering of adding children so things are never de-parented. Hook up terminal zooming signals. 2009-11-14 18:55:07 +00:00
Chris Jones 0190f2dea9 make signal registration more robust, and add a function to walk up the widget tree to find the top-level Window object 2009-11-14 18:54:12 +00:00
Chris Jones e5301362e4 tidy up some pylint issues 2009-11-14 17:30:03 +00:00
Chris Jones 095ba4dbe3 decouple a little more 2009-11-09 22:35:55 +00:00
Chris Jones 4284cf67ee Start making some navigation work 2009-11-09 22:33:17 +00:00
Chris Jones 5dd6ae0154 improve container signal registration function to never double-register. add a fake resize-term signal to Paned for nested terminal resizes. Implement terminal resizing. 2009-11-08 23:06:26 +00:00
Chris Jones 5352731984 make paneds be splittable, set their initial position properly and don't call reconfigure() all the time 2009-11-08 01:06:31 +00:00
Chris Jones 6b4c660cbc Start implementing our Paned container and switch to it 2009-11-07 01:40:43 +00:00
Chris Jones c60aae8bed make closing of group terminals work 2009-11-04 23:42:54 +00:00
Chris Jones 830863d711 more group work 2009-11-04 23:28:09 +00:00
Chris Jones 55c79f56d5 remove some cruft and replace the hacky backwards search with a more correct one. There are still some issues though 2009-11-04 20:41:01 +00:00
Chris Jones 8d19561f85 fix up Terminal some more and make the searching work, and include a hacky backwards search 2009-11-04 18:06:34 +00:00
Chris Jones 565257672a fix terminal spawning and font zooming 2009-10-28 23:07:42 +00:00
Chris Jones 6f2fd988b4 Fix keybinding dispatch in Terminal and add handler functions for all of the keybindings, but basically every single one is broken right now 2009-10-28 12:53:18 +00:00
Chris Jones ede7fc7552 Fix bogus child spawning. realize happens more than you might hope. 2009-10-27 23:23:59 +00:00
Chris Jones ef1e82e5b0 Fix titlebar drag starting
Remove useless resize-window handler
Implement the Terminal() end of group creation
Finish drag and drop handling
Implement methods relating to focus changes
Fill out a few method docstrings
2009-10-27 23:05:12 +00:00
Chris Jones f7d0d957cd Add function to snapshot a widget and its children as a pixbuf 2009-10-27 21:03:11 +00:00
Chris Jones 0ef7c99022 remove an unused variable 2009-10-26 13:36:34 +00:00
Chris Jones e2086578bb Group creation is now presented via the titlebar, but still doesn't actually have any backending in functional reality yet. 2009-10-15 14:17:37 +01:00
Chris Jones 667d31e394 Drop all our URL madness and make it pygtk's problem. Requires pygtk >=2.14 2009-10-15 12:57:50 +01:00
Chris Jones 7970033368 Add an important FIXME 2009-10-15 12:54:16 +01:00
Chris Jones cd1d858d3c Start making keybindings work in Terminal(). They don't work yet 2009-10-14 13:05:07 +01:00
Chris Jones fdcd1c89f9 Add signals for when we want to be zoomed or maximised 2009-10-12 22:05:19 +01:00
Chris Jones b43695b23d Flesh out the borg a little 2009-10-09 12:25:06 +01:00
Chris Jones c1c81d3a91 pylint fixes 2009-10-09 00:30:03 +01:00
Chris Jones 7605957efa pylint fix 2009-10-09 00:24:58 +01:00
Chris Jones 49f374e3b2 hook up focus changes to Terminator so it can update all the titlebars 2009-10-09 00:22:01 +01:00
Chris Jones 9d6b961fc3 undo an indenting fail 2009-10-08 21:29:45 +01:00
Chris Jones 3d78428aae now make the encoding submenu work 2009-10-08 21:27:00 +01:00
Chris Jones f0d7f2a9ca refactor the popup menu out because it's so annoyingly long 2009-10-08 20:27:49 +01:00
Chris Jones d9e9cf364a ditch extreme_tabs, it's a terrible feature. Flesh out the terminal context menu some more, including figuring out how we will track whether a window is in a zoomed state - gobject properties 2009-10-07 00:08:13 +01:00
Chris Jones 209caf3745 start some basic splitting in Window() and try to be slightly smarter about handling the terminal's signals 2009-10-05 22:16:28 +01:00
Chris Jones 414e7f0731 Add a mechanism to de-register a Terminal() that's being destroyed 2009-10-05 22:15:22 +01:00
Chris Jones 7ea1e18f20 Tiny cleanup 2009-10-01 22:15:50 +01:00
Chris Jones 2aae5da8f1 lose a function to re-emit a signal, and an unnecessary invocation thereof 2009-09-06 23:53:48 +01:00
Chris Jones a31c0ef411 If something isn't used outside one function, don't make it be a class variable 2009-09-06 23:53:21 +01:00
Chris Jones d5ff98211c Swap out some noop code for pylint suppression 2009-09-06 23:52:58 +01:00
Chris Jones 1d2e96ac72 tidy up some more lambdas, pylint errors and start fleshing out the context menu 2009-09-06 22:55:37 +01:00
Chris Jones 0912fb8aae fix up a pylint error and migrate some pure functions from terminal.py 2009-09-06 22:54:52 +01:00
Chris Jones 690bb61788 add a signal for ungrouping all terminals, and tidy up some lambdas 2009-09-06 21:54:33 +01:00
Chris Jones 5e54d42eca work on grouping/ungrouping of all terminals in a tab 2009-09-05 00:34:09 +01:00
Chris Jones bb073887fc hook up the terminal enumeration menu items 2009-09-04 22:48:35 +01:00
Chris Jones 2a65918209 Fix some typos and flesh out the group menu 2009-09-04 22:12:13 +01:00
Chris Jones 28e7ee6116 Add some more of our attributes 2009-09-04 22:11:52 +01:00
Chris Jones 718a15706f handle URLs 2009-09-04 20:12:35 +01:00
Chris Jones b58a7224aa handle the window closing properly 2009-09-04 20:12:04 +01:00
Chris Jones 09a6913d98 Flesh out the Terminal button handler and some associated functions 2009-09-03 14:47:14 +01:00
Chris Jones c40c360c20 no reason for the groupsend types to be global 2009-09-03 13:59:17 +01:00
Chris Jones 1e4af9883b keep pylint a little happier 2009-09-03 10:34:31 +01:00
Chris Jones 799d508708 Make _entry_handler_id not be a static class attribute because it doesn't need to be 2009-09-03 09:03:37 +01:00
Chris Jones 9bac025795 Add support for grabbing focus after a label is edited and the rudimentary basics of the group popup menu 2009-09-03 00:52:36 +01:00
Chris Jones 846e0c0fff Emit a signal when editing is done 2009-09-03 00:51:46 +01:00
Chris Jones bf20587edc decouple Terminal from Terminator, and add the minimum necessary group icon handling 2009-09-02 23:17:54 +01:00
Chris Jones 0f5cf7c496 remove titletips, it's a terrible option 2009-09-02 23:17:08 +01:00
Chris Jones d007bc45c5 bare minimum titlebar functionality 2009-09-02 22:38:27 +01:00
Chris Jones 9f7834fb5b simplify title changes 2009-09-02 21:18:36 +01:00
Chris Jones f00c265f4c Make the window title update with the terminal title 2009-09-02 21:10:28 +01:00
Chris Jones 187484271c clean up EditableLabel 2009-09-02 20:43:45 +01:00
Chris Jones 9d82f13989 merge in latest changes from trunk 2009-09-02 20:39:25 +01:00
Chris Jones 1d332c915e Only attempt to set an image if there actually is an image configured. Closes LP #404846 2009-09-02 11:01:30 +01:00
Chris Jones f136b6d78e add a stub function to the titlebar 2009-08-28 01:11:13 +01:00
Chris Jones 93d8118c33 add some more add/remove love to Window 2009-08-28 00:20:22 +01:00
Chris Jones 4111a80f7a reduce debug verbosity a little, add a handler to automagically spawn children. add the correct number of parameters to various signal handlers. flesh out the child spawning codepath 2009-08-19 19:02:33 +01:00
Chris Jones d17981b581 Add another stub function to the titlebar class 2009-08-19 19:01:11 +01:00
Chris Jones 326bb4fa94 Remove the default_setup function, it's very broken 2009-08-19 19:00:47 +01:00
Chris Jones 428f931bf3 oops, don't show the searchbar by default 2009-08-19 19:00:33 +01:00
Chris Jones 71fff759f1 fix gobject init, add drag&drop functionality, add widget signals and a load of stub functions 2009-08-19 01:06:38 +01:00
Chris Jones f3d5fa61e4 config is now a borg, so there's no need to pass a reference around. Also fix a config keyerror 2009-08-19 01:06:07 +01:00
Chris Jones f5ee9d54c5 use the correct gobject init call and add a stub function 2009-08-19 01:05:44 +01:00
Chris Jones 09780a6500 Use the correct gobject init call 2009-08-19 01:05:30 +01:00
Chris Jones ac7769b556 return the newly created terminal 2009-08-19 01:05:15 +01:00
Chris Jones 96114aa863 now config is borg we don't need to pass handles around 2009-08-19 01:04:53 +01:00
Chris Jones 4d7d734587 Simple bootstrapper, temporary during epic refactor 2009-08-19 01:04:37 +01:00
Brian Murray 48e5a7e6ca expand launchpad url match to mirror Ubuntu Policy Manual and linkify each bug number 2009-08-18 10:59:06 -07:00
Chris Jones 196dde427b improve pylint score by disabling tests. winrar \o/ 2009-08-18 13:57:35 +01:00
Chris Jones d6ac973f54 remove some currently unused imports and split up some overly long lines 2009-08-18 13:54:46 +01:00
Chris Jones 0b90e29b16 remove unused import and disable a pointless pylint check 2009-08-18 13:52:02 +01:00
Chris Jones 089b708e2c shut pylint up 2009-08-18 13:51:09 +01:00
Chris Jones f0260456c9 we don't need to re-emit the search keypress, all it does is conditionally emit end-search anyway 2009-08-18 13:48:04 +01:00
Chris Jones 5f339da4e1 Use the right class name 2009-08-18 13:47:46 +01:00
Chris Jones d538b47a50 initial import of a titlebar class 2009-08-18 13:45:57 +01:00
Chris Jones 53f33109b4 start fleshing out Terminal 2009-08-18 13:44:41 +01:00