Summary: | DCR: When zooming in on an editor, zoom in on the whole workbook (1GKBCK5) | ||
---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | Veronika Irvine <veronika_irvine> |
Component: | UI | Assignee: | Simon Arsenault <simon_arsenault> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P2 | CC: | carolynmacleod4, n.a.edgar |
Version: | 2.0 | Keywords: | usability |
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: |
Description
Veronika Irvine
2001-10-10 22:39:21 EDT
PRODUCT VERSION: 1.0 135 I always zoom the editor I am curently working on, but since I typically have between 4 and 8 editors open that are all current, I always have to un-zoom, select another editor, zoom again... to go back and forth. It would be a really noticable usability improvement to have all of my currently open editor tabs visible in zoom mode. Apparently this is "low-hanging fruit", i.e. it would be easy to implement, and according to Veronika you would even be able to delete code (bonus!). Please consider this as important for 2.0. Please investigate and fix if low risk. Here is how to do the fix. Veronika hacked it and is using it because she couldn't stand it anymore, particularly when using her laptop where screen real estate is at a premium. I am using it now, too, and it is SO NICE. What a relief! It is a very simple fix - you only have to delete a bit of code in 2 methods. Please please do this, because it is "low-hanging fruit", i.e. very easy to do and a *huge* win. 1) Go to class: org.eclipse.ui.internal.EditorWorkbook 2) In method zoomIn() comment out the following lines of code: // Remove each tab but the active. if (tabFolder != null) { // Get active editor. CTabItem activeTab = tabFolder.getSelection(); if (activeTab == null) return; // Hide all inactive tabs. Object [] tabArray = mapTabToEditor.keySet().toArray(); for (int nX = 0; nX < tabArray.length; nX ++) { CTabItem tab = (CTabItem)tabArray[nX]; if (tab != activeTab) removeTab(tab); } } 3) In method zoomOut() comment out the following lines of code: // Create a tab for each inactive editor. if (tabFolder != null) { int count = 0; Iterator enum = editors.iterator(); while (enum.hasNext()) { EditorPane part = (EditorPane) enum.next(); if (part != visibleEditor) createTab(part, count); ++ count; } } That's all! Try it for a while, and then go delete the commented out code. You will like it - it is much nicer for zooming. This fix has many advantages. It reduces the number of lines of code (always a good thing), and it is faster (not visually, I suppose, but obviously it does save a millisecond or so), and it deletes an ill-concieved "feature" that never should have been there in the first place. It reduces the number of steps to perform a very common operation from 3 down to 1. It eliminates the need for the user to context switch from big to small to big again. It removes a large level of frustration when using the product. It would be *really cool* if we could have this in the next integration build. :) Thanks for the (un)patch. We should try it. I've bumped up the priority. Changed zoom of editor to be entire workbook. Closing an editor within the zoom workbook leaves the workbook zoom unless there are no more editors. This will be in build > 2002-01-18. Note, when opening a new editor, the workbook is unzoom. It is probably possible to avoid this, but because the logic is complex, I did not want to introduce it now unless there is a demand for it (the complexity comes from editor reuse which span over all workbooks). PS I did this work before noticing the "patch" from Carolyn. Actually, the fix was a bit more work than that to keep the workbench consistent! |