Commit Graph

704 Commits

Author SHA1 Message Date
MinRK
d7970d29a5 skip codemirror key-event handling when read-only 2011-12-08 12:47:08 -08:00
Matthias BUSSONNIER
70fa9c8b2a totally remove pager when read only
closes #1126
2011-12-08 12:46:31 -08:00
Fernando Perez
341fbcafb4 Merge pull request #1108 from Carreau/completer-usability-2
Usability refinements to the as-you-type completer, so it shows the part that is fixed (typed by the user prior to tab), and is dismissed when not needed further.

Closes #1080.
2011-12-06 23:17:27 -08:00
Matthias BUSSONNIER
855fd6f923 notebook: code Readability. Add dismissing symbols
* As minrk suggested, changes list of char to string.split()
	* add also a few dismissing symbold like `,` `=` and `*` for
	  the completer
2011-12-07 08:03:37 +01:00
Matthias BUSSONNIER
44c959f88b notebook: fix, only one completion autopick 2011-12-07 08:03:37 +01:00
Matthias BUSSONNIER
c596d17eaf completer update code-miror on the fly
Following @fperez advice, change the completer apparence to avoid user confusion.

	- Append what the user type in the completer in code-miror, (Almost) as if
	  codemirror still have focus
	- distinguish between "fixed" completion  part, which was sent to the kernel
	  (now written in bold) and filtering one,handled only in JS,that the user
	  can errase without dismissing the completer

	I changed the action of <Space> to dismiss the completer with what have
	already been typed and inserting a space instead of "picking" the currently
	hilighted option

	<Escape> will still dissmiss the completer and remove everything the user as
	typed since the completer invocation

	Note that while the completer is shown, code-mirror does not show any
	blinking cursor
2011-12-07 08:03:37 +01:00
Matthias BUSSONNIER
1fbf5b18dd Apply pep8 to js 2011-12-07 08:03:37 +01:00
Matthias BUSSONNIER
933cf3606b usability and cross browser compat for completer
- dissmiss the completer, append what alredy type, **Plus** one caracter in
	  some cases

	  List of special caracter that are handle are in a given list `()[]./\-+`
	  for the moment. usefull for exaple when typing :
	  >>> np.s<tab>in(
	  and not having to type '(' twice.

	  they are handle separately has the [a-zA-Z] ones because otherwise they
	  will screw up the regexp, and are opt-in to avoid bugs with invisible
	  caracters send because some browser have 'keypress' event for meta keys

	  close #1080

		Note to this commit :
	  list of test for the completer across browser with --pylab=inline flag

	  #test direct one completion
	  plt.an<tab>       -> plt.annotate

	  #test filter,tab, only one completion
	  plt.a<tab>n<tab>  -> plt.annotate

	  # test partial common beggining
	  # test dismmised if user erase
	  plt.a<tab>nn<backspace><backspace>u<tab>                -> completer to `aut`
	  ........................................<tab><tab><tab> -> nothing should append
	  .......................................................<backspace><backspace<backspace> -> completer cancelled

	  #test dismiss if no more completion
	  plt.s<tab>c  -> completer 3 choices
	  ...........u -> dismissed whith what user have typed.  `plt.scu`

	  # test dismiss in no completion, special symbol
	  # opt-in list of caracters +-/\()[].
	  np<tab>.s          -> a 'dot' sould dismiss the completer and be appended
	  .........<tab>in(  -> np.sin(
	  np.s<tab>in[       -> np.sin[
2011-12-07 08:03:37 +01:00
Fernando Perez
5876485b5f Merge pull request #864 from ipython/termzmq
Two-process terminal frontend: this branch adds a new IPython frontend, invoked via

ipython console

that behaves much like the regular, old ipython, but runs over zeromq in two processes.  This means that such a client can connect to existing kernels initiated by the Qt console, the notebook or standalone (i.e. via `ipython kernel`).

We still have some internal architectural cleanups to perform to simplify how the various frontends talk to the kernels, but by having this main piece in, the complete picture is clearer, and that refactoring work can be carried post-0.12.

This frontend should still be considered experimental.
2011-12-06 12:10:58 -08:00
MinRK
5ffe131458 exclude mathjax from notebook package_data
closes #1018
2011-12-05 21:26:41 -08:00
MinRK
bf7f3336ae Split swallow_argv into standalone function in lib.kernel
adds frontend_flags/aliases traits to ConsoleApp derivatives for
use in this function.
2011-12-05 17:41:00 -08:00
Min RK
b6bb3c8c7a Merge pull request #1077 from minrk/nb
allow the notebook to run without MathJax

adds --no-mathjax flag for disabling mathjax, and moves the mathjax URL decision to the server from the browser.

closes #1071
2011-12-05 16:49:04 -08:00
MinRK
7774ddd0a5 Merge PR #1098: notebook config-panel style
Fixes some style consistency issues in config section of side panel.

closes #1098
2011-12-05 15:52:01 -08:00
MinRK
26416b6d2d make 'time before tooltip' style more consistent 2011-12-05 15:51:29 -08:00
MinRK
d6ac9f3ec3 add server/permission info in failed-mathjax dialog
It's now more clear that offline mathjax info is server-related.
2011-12-05 15:21:49 -08:00
MinRK
41b493f540 Cleanup some inappropriate javascript
prototype functions were actually called which should not happen, and
resulted in objects and their attributes being passed to their own methods
as arguments.
2011-12-04 14:20:48 -08:00
Matthias BUSSONNIER
e268dd0650 fix cancell->cancel typo in js
prevented closing tooltip

closes #1095
2011-12-04 13:52:13 -08:00
Matthias BUSSONNIER
057c304162 notebook: config section UI
Polish config section appearence in left pannel, elements alignement, time units...
2011-12-04 12:56:01 +01:00
MinRK
72fb49b7c7 adjust missing mathjax handling per review
* use jQuery syntax to construct dialog
* server determines where MathJax comes from via mathjax_url configurable (default local/CDN priority unchanged)
2011-12-01 15:59:27 -08:00
MinRK
36024bcf83 allow the notebook to run without MathJax
* add `--no-mathjax` flag for disabling mathjax in the notebook server
* A jQuery dialog with our 'no mathjax' message will appear if mathjax is unavailable, but the notebook will be fully functional after dismissal.
* Various calls to MathJax.Hub.typeset moved to Cell.typeset, which checks for MathJax existence and is a no-op without it.

closes #1071
2011-11-30 20:11:37 -08:00
MinRK
f18d172fdf don't swallow regular key events in read-only mode 2011-11-30 15:10:31 -08:00
Fernando Perez
f6e4b0ae60 Merge pull request #1069 from Carreau/test-fix-ff-completer
Fix "As you type" tab completion for the notebook on firefox; recent merge had introduced a firefox-specific bug.
2011-11-30 10:39:08 -08:00
Matthias BUSSONNIER
ca846ecd02 as you type Completer, propagate event by hand
Should fix completer behaviour on firefox...
2011-11-30 12:04:37 +01:00
Fernando Perez
a919ef339b Merge pull request #1039 from Carreau/notebook-as-you-type-completer
Improve tab-completer in the notebook to filter list of completions 'as you type'.  Once the completions list is opened, you can continue typing letters and the list will filter down as less items match.  Typing tab again will activate the completion once there are no ambiguities.

This brings the experience in the notebook much closer to the feel of a readline completer, so muscle memory can carry across systems.
2011-11-29 22:11:44 -08:00
Matthias BUSSONNIER
90b6f1b8d6 fix double tooltip
there was a possibility of 2 tooltip if clicking in two cell
	and one that it wasn't able to dismiss
2011-11-30 00:33:38 +01:00
Matthias BUSSONNIER
1b68c17acc tidy up code 2011-11-30 00:33:38 +01:00
Matthias BUSSONNIER
1fb62e259e tab pick if only one match left 2011-11-30 00:33:38 +01:00
Matthias BUSSONNIER
5e1bd70d36 tabs fast forward user tab 2011-11-29 20:59:37 +01:00
Matthias BUSSONNIER
27f2b2b876 Handle lower and uppercase 2011-11-29 17:54:27 +01:00
Matthias BUSSONNIER
5f70418dc5 protect shift extend on Uppercase 2011-11-29 17:54:27 +01:00
Matthias BUSSONNIER
06f63549e5 Base of an as you type conpleter.
when invoking the completer, instead of having to chose/dismiss, you can
	continue typing, it will filter the result "as you type" and dismiss itself
	if ther is no match left.

	As it is now, it's only works with lowercase letters, I need to find a workaroud
	for this.

	for example
	if you type :
	* P-y-<tab>-S-o-m-e-t-h-i-n-g
	* it will propose PySide, but will dismiss when 'o' is pressed and pasting Pyso with a lower case 's'
2011-11-29 17:54:27 +01:00
Fernando Perez
df502540cc Fix bug where "don't leave" dialog was appearing when not needed in nb.
Closes #1058
2011-11-28 13:01:23 -08:00
Fernando Perez
160ff3145c Match the max tooltip and bottom area sizes in the notebook.
This prevents the tooltip from going below the bottom of the page,
which makes it inaccessible by any mechanism and thus useless.
2011-11-27 19:49:00 -08:00
Fernando Perez
e1feef907a Merge pull request #1036 from stefanv/javascript_cleanup
Clean up javascript based on js2-mode feedback.
2011-11-27 15:29:48 -08:00
Stefan van der Walt
6ffc2ffd4b Clean up javascript based on js2-mode feedback. 2011-11-27 15:23:40 -08:00
Fernando Perez
58b2fd5eca Merge pull request #1052 from fperez/pylab-fix
Fix bug in pylab support introduced in #648, and refactor the pylab/gui support to eliminate a lot of code duplication we had in a number of places. 

Now all duplicate code is gone, and the only real difference is how gui event loops are integrated, which is reduced to a single static method that each relevant class grabs from its specific machinery.
2011-11-27 00:52:12 -08:00
Fernando Perez
983b3a7bc8 Fix inline backend logic and avoid tests if mpl not available. 2011-11-27 00:28:26 -08:00
Bussonnier Matthias
ea32220f8f fix firefox (windows) break line on empty prompt number 2011-11-25 15:07:34 -08:00
Thomas Kluyver
9ab78ba545 Merge branch 'flush' 2011-11-24 22:00:25 +00:00
Thomas Kluyver
6ae0797040 Notebook: don't change cell when selecting code using shift+up/down.
Closes gh-787; closes gh-1038 (rebased to prevent recursive merge).
2011-11-24 13:34:04 -08:00
Fernando Perez
4bd904c7ee Merge pull request #987 from Carreau/notebook-tooltip
Add function call tooltips to html notebook.  

On open parens, if the user either pauses a bit or hits <tab>, a tooltip appears, with buttons to expand it further (and automatic scroll bars), open the help in the full pager and close.
2011-11-24 11:30:38 -08:00
Matthias BUSSONNIER
52d8a125dd fix 2 typos 2011-11-24 19:49:03 +01:00
Matthias BUSSONNIER
c2070df52d handle empty docstring 2011-11-24 19:46:55 +01:00
Matthias BUSSONNIER
7650f444ea tooltip height in % 2011-11-24 19:42:26 +01:00
Matthias BUSSONNIER
bc5aeebd11 handle null objectname on tooltip 2011-11-24 19:36:20 +01:00
Matthias BUSSONNIER
e380aba1e0 Change tooltip button to use jquery css 2011-11-24 07:57:42 +01:00
Matthias BUSSONNIER
73f252676f show tooltip if completer 'fail' afer n attempt
if completer get only one match back and the user press tab n time,
	it fallbacks on showing a tooltip

	n=2 , hard coded for know, and completer verbose on the command line
2011-11-24 07:57:42 +01:00
Matthias BUSSONNIER
7285968e18 improve tooltip
put "close" and "more..." button in upper right corner,
	rename "more..." to "open in pager", add expand button.

	tooltip don't have scroll bar an are 'small' until pressing "Expand"
	they then change their height and add scrollbars.
	Horizontal scrollbar behaviour seem to depend on the browser
	>>> plot(<tab> and then click on "expand" :
	Firefox : no horizontal scrollbar (wrap line ?)
	Chrome  : horizontal scrollbar

	beware that don't limitting tooltip height or width through css will sometime give
	tooltip that are too heigh and will overflow below the bottom of the screen

	animation are broken with max-height and/or min-height
2011-11-24 07:57:42 +01:00
Matthias BUSSONNIER
aa24495b5b add 'more...' and 'close' button to the pager
'more...' button execute 'foo?' **On the behalf of the current cell**
	which increase it's prompt number to the curent value, and give focus back
2011-11-24 07:57:41 +01:00
Matthias BUSSONNIER
01a0c126d4 Replace trigering tooltip for cross platform indep
For opening bracket '(' keyCode/keydown is not sufficient because it depends
	on keyboard layout so rely on charcode/keypress ...
2011-11-24 07:57:41 +01:00