13 QMenu.__init__(self, parent)
15 gui.AddMenuAction(self,
'Open', self.
_Open, shortcut=
'Ctrl+O')
16 gui.AddMenuAction(self,
'Save As...', self.
_SaveAs,
17 shortcut=
'Ctrl+Shift+S',
20 filename=QFileDialog.getOpenFileName(
None,
'Open file',
'')
21 if(QFileInfo(filename).isFile()):
22 gui.FileLoader.LoadObject(str(filename))
25 sel_node=gui.SceneSelection.Instance().GetActiveNode(0)
26 filename=QFileDialog.getSaveFileName(
None,
'Save As',
27 '%s.pdb' % sel_node.name)
28 io.SavePDB(sel_node.view, str(filename))
32 QWidget.__init__(self)
33 self.setWindowFlags(Qt.Tool)
35 l.addWidget(QLabel(
"Near"), 0, 0)
36 l.addWidget(QLabel(
"Far"), 1, 0)
37 bounds_near = QLineEdit(str(0))
38 bounds_near.setValidator(QIntValidator(0, 9999, bounds_near))
39 bounds_near.setMaxLength(4)
40 bounds_near.setMaximumWidth(50)
41 bounds_far = QLineEdit(str(200))
42 bounds_far.setValidator(QIntValidator(0, 9999, bounds_far))
43 bounds_far.setMaxLength(4)
44 bounds_far.setMaximumWidth(50)
45 l.addWidget(bounds_near, 0, 1, 2, 1)
46 l.addWidget(bounds_far, 0, 3, 2, 1)
47 self.
near_ = QSlider(Qt.Horizontal)
48 self.near_.setMinimum(int(bounds_near.text()))
49 self.near_.setMaximum(int(bounds_far.text()))
50 self.near_.setValue(int(
gfx.Scene().near))
51 self.
far_ = QSlider(Qt.Horizontal)
52 self.far_.setMinimum(int(bounds_near.text()))
53 self.far_.setMaximum(int(bounds_far.text()))
57 self.far_.setValue(far)
58 self.
auto_ = QCheckBox(
"Continuous Automatic Clipping")
59 self.auto_.setChecked(
gfx.Scene().GetAutoAutoslab())
61 l.addWidget(self.
near_, 0, 2)
62 l.addWidget(self.
far_, 1, 2)
63 l.addWidget(self.
auto_, 2, 0, 1, 4)
64 self.connect(self.
near_, SIGNAL(
'valueChanged(int)'), self.
SetNear)
65 self.connect(self.
far_, SIGNAL(
'valueChanged(int)'), self.
SetFar)
66 self.connect(self.
auto_, SIGNAL(
'stateChanged(int)'), self.
SetAuto)
67 self.connect(bounds_near, SIGNAL(
'textEdited(QString)'), self.
SetNearBounds)
68 self.connect(bounds_far, SIGNAL(
'textEdited(QString)'), self.
SetFarBounds)
78 gfx.Scene().near = int(self.near_.value())
83 self.near_.setMinimum(int(text))
84 self.far_.setMinimum(int(text))
88 self.near_.setMaximum(int(text))
89 self.far_.setMaximum(int(text))
93 QDialog.__init__(self)
95 l.setColumnMinimumWidth(0, 100)
96 l.addWidget(QLabel(
"Width (px)"), 0, 0)
97 l.addWidget(QLabel(
"Height (px)"), 1, 0)
100 self.width_.setValidator(QIntValidator(50, 3000, self.
width_))
101 self.height_.setValidator(QIntValidator(50, 3000, self.
height_))
102 self.
opaque_=QCheckBox(
"Force Opaque Background")
103 l.addWidget(self.
width_, 0, 1)
104 l.addWidget(self.
height_, 1, 1)
105 l.addWidget(self.
opaque_, 2, 1)
107 cancel=QPushButton(
"Cancel")
108 QObject.connect(cancel, SIGNAL(
'clicked()'), self.reject)
109 hbox.addWidget(cancel)
110 export=QPushButton(
"Export")
111 hbox.addWidget(export)
112 export.setDefault(
True)
113 l.addLayout(hbox, 3, 1, 2, 1)
114 QObject.connect(export, SIGNAL(
'clicked()'), self.accept)
117 return not self.opaque_.isChecked()
121 return int(self.width_.text())
125 return int(self.height_.text())
129 QMenu.__init__(self, parent)
130 self.setTitle(
'Scene')
131 QObject.connect(self, SIGNAL(
'aboutToShow()'), self.
_AboutToShow)
134 shortcut=
'Ctrl+Shift+F', checkable=
True,
136 gui.AddMenuAction(self,
'Center', self.
_Center,
138 gui.AddMenuAction(self,
'Fit To Screen', self.
_FitToScreen,
142 gui.AddMenuAction(self,
'Save Snapshot', self.
_ExportScene)
143 gui.AddMenuAction(self,
'Scene Clipping', self.
_ClipScene, shortcut=
'Ctrl+Shift+C')
145 def _ExportScene(self):
149 filename=QFileDialog.getSaveFileName(
None,
'Save Snapshot',
152 gfx.Scene().Export(str(filename), qd.width, qd.height, qd.transparent)
154 def _ClipScene(self):
158 def _AboutToShow(self):
159 self.fog_action.setChecked(
gfx.Scene().fog)
162 sel=gui.SceneSelection.Instance()
163 gfx.Scene().center=sel.GetActiveNode(0).center
165 def _SetSceneBackground(self):
170 def _ToggleFog(self):
172 self.fog_action.setChecked(
gfx.Scene().fog)
174 def _FitToScreen(self):
175 sel=gui.SceneSelection.Instance()
176 gfx.FitToScreen(sel.GetActiveNode(0))
178 def _SuperposeDialog(self):
179 sel=gui.SceneSelection.Instance()
180 act_count=sel.GetActiveNodeCount()
184 gfx_ent_1 = sel.GetActiveNode(i)
187 gfx_ent_1 = sel.GetActiveNode(i)
189 gfx_ent_2 = sel.GetActiveNode(i)
192 gfx_ent_2 = sel.GetActiveNode(i)
195 if sd.reference == 0:
196 gfx_ent_1.UpdatePositions()
199 gfx_ent_2.UpdatePositions()
201 LogScript(
'RMSD: %.3f'%sd.rmsd)
205 QMenu.__init__(self, parent)
206 self.setTitle(
'Window')
208 gosty=gui.GostyApp.Instance()
209 QObject.connect(self, SIGNAL(
'aboutToShow()'), self.
_AboutToShow)
210 inspector_visible=gosty.GetWidget(
'InspectorDialog').isVisible()
213 checked=gosty.gl_win.qobject.isVisible(),
218 checked=inspector_visible,
221 self.addMenu(gosty.perspective.panels.menu)
222 gui.AddMenuAction(self,
'Reset View', self.
_ResetView)
223 def _AboutToShow(self):
224 gosty=gui.GostyApp.Instance()
225 self._gl_win_action.setChecked(gosty.gl_win.qobject.isVisible())
226 inspector_visible=gosty.GetWidget(
'InspectorDialog').isVisible()
227 self._inspector_action.setChecked(inspector_visible)
229 def _ToggleShowGLWindow(self):
230 gosty=gui.GostyApp.Instance()
231 gl_win=gosty.GetGLWin()
232 if gl_win
and gl_win.qobject.isHidden():
237 def _ToggleShowInspector(self):
238 gosty=gui.GostyApp.Instance()
239 inspector=gosty.GetWidget(
'InspectorDialog')
240 if inspector
and inspector.isHidden():
245 def _ResetView(self):
246 msg_box = QMessageBox()
247 msg_box.setWindowTitle(
"Reset the Panels and Widget");
248 msg_box.setIcon(QMessageBox.Question)
249 msg_box.setText(
"Do you really want to reset the Panels and Widgets?");
250 msg_box.setStandardButtons(QMessageBox.Yes |
252 msg_box.setDefaultButton(QMessageBox.Cancel);
253 ret = msg_box.exec_();
254 if(ret == QMessageBox.Yes):
255 settings = QSettings()
256 settings.setValue(
"restore_settings",QVariant(
False))
257 info_box = QMessageBox()
258 info_box.setStandardButtons(QMessageBox.Ok)
259 info_box.setIcon(QMessageBox.Information)
260 info_box.setWindowTitle(
"Restart OpenStructure")
261 info_box.setText(
"You must restart OpenStructure for the changes to take effect!");
266 QMenu.__init__(self, parent)
267 self.setTitle(
'Help')
268 gui.AddMenuAction(self,
'Documentation', self.
_VisitDocs)
270 if sys.platform==
'darwin':
271 gui.AddMenuAction(self,
'Install Command Line Tool',
272 termuse.InstallTerminalPrograms)
273 def _VisitDocs(self):
274 QDesktopServices.openUrl(QUrl(
"http://www.openstructure.org/docs/"))
276 def _ShowAboutDialog(self):
281 mbar=gui.GostyApp.Instance().perspective.GetMenuBar()
286 mbar.addMenu(file_menu)
287 mbar.addMenu(scene_menu)
288 mbar.addMenu(win_menu)
289 mbar.addMenu(help_menu)