Skip to content

Commit cb45651

Browse files
Add application level menu entry.
1 parent 5ef6cdf commit cb45651

4 files changed

Lines changed: 38 additions & 6 deletions

File tree

stage6_branded_application/pycasa/app/app.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55

66
from pyface.tasks.api import TasksApplication, TaskFactory
77
from pyface.api import SplashScreen
8+
from pyface.action.api import Action
9+
from pyface.action.schema.api import SchemaAddition, SGroup
10+
811
from ..ui.tasks.pycasa_task import PycasaTask
9-
from ..ui.image_resources import app_icon
12+
from ..ui.image_resources import app_icon, new_icon
13+
1014
logger = logging.getLogger(__name__)
1115

1216

@@ -32,6 +36,33 @@ def _icon_default(self):
3236
return app_icon
3337

3438
def _splash_screen_default(self):
35-
from pycasa.ui.image_resources import app_icon
3639
splash_screen = SplashScreen(image=app_icon)
3740
return splash_screen
41+
42+
def create_new_task_window(self):
43+
from pyface.tasks.task_window_layout import TaskWindowLayout
44+
45+
layout = TaskWindowLayout()
46+
layout.items = [self.task_factories[0].id]
47+
window = self.create_window(layout=layout)
48+
self.add_window(window)
49+
return window
50+
51+
def create_new_task_menu(self):
52+
return SGroup(
53+
Action(name="New",
54+
accelerator='Ctrl+N',
55+
on_perform=self.create_new_task_window,
56+
image=new_icon),
57+
id='NewGroup', name='NewGroup',
58+
)
59+
60+
def _extra_actions_default(self):
61+
extra_actions = [
62+
SchemaAddition(id='pycasa.custom_new',
63+
factory=self.create_new_task_menu,
64+
path="MenuBar/File/OpenGroup",
65+
absolute_position="first")
66+
]
67+
return super(PycasaApplication, self)._extra_actions_default() + \
68+
extra_actions
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
from pyface.api import ImageResource
22

33
app_icon = ImageResource('scipy_logo.png')
4+
5+
new_icon = ImageResource('document-new')
1.38 KB
Loading

stage6_branded_application/pycasa/ui/tasks/pycasa_task.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,9 @@ def _tool_bars_default(self):
100100
tool_bars = [
101101
SToolBar(
102102
TaskAction(name='Open...',
103-
accelerator='Ctrl+N',
104103
method='request_open_new_path',
105104
image=ImageResource('document-open')),
106105
TaskAction(name='Scan',
107-
accelerator='Ctrl+R',
108106
method='scan_current_path',
109107
image=ImageResource('zoom-draw')),
110108
image_size=(24, 24), show_tool_names=False, id='ToolsBar',
@@ -118,8 +116,9 @@ def _menu_bar_default(self):
118116
SMenu(
119117
SGroup(
120118
TaskAction(name='Open...',
121-
accelerator='Ctrl+N',
122-
method='request_open_new_path'),
119+
accelerator='Ctrl+O',
120+
method='request_open_new_path',
121+
image=ImageResource('document-open')),
123122
id='OpenGroup', name='OpenGroup',
124123
),
125124
SGroup(

0 commit comments

Comments
 (0)