31 #include <QtGui/QPushButton>
32 #include <QtGui/QMessageBox>
33 #include <QtGui/QTextBrowser>
56 Ui_DemoTutorialDialogData(),
60 #ifdef BALL_VIEW_DEBUG
61 Log.
error() <<
"new DemoTutorialDialog " <<
this << std::endl;
71 connect(cancel_button, SIGNAL(clicked()),
this, SLOT(hide()));
76 #ifdef BALL_VIEW_DEBUG
77 Log.
error() <<
"deleting DemoTutorialDialog " <<
this << std::endl;
85 setWindowTitle(tr(
"BALLView Demo"));
89 next_button->setEnabled(
true);
95 if (LogView::getInstance(0) != 0) LogView::getInstance(0)->hide();
96 if (DatasetControl::getInstance(0) != 0) DatasetControl::getInstance(0)->hide();
97 #ifdef BALL_PYTHON_SUPPORT
98 if (PyWidget::getInstance(0) != 0) PyWidget::getInstance(0)->hide();
117 setWindowTitle(tr(
"BALLView Tutorial"));
121 next_button->setEnabled(
false);
125 Scene::getInstance(0)->show();
126 MolecularControl::getInstance(0)->show();
127 MolecularControl::getInstance(0)->setFloating(
false);
128 MolecularControl::getInstance(0)->applyPreferences();
129 DatasetControl::getInstance(0)->show();
130 DatasetControl::getInstance(0)->applyPreferences();
131 DatasetControl::getInstance(0)->setFloating(
false);
132 GeometricControl::getInstance(0)->show();
133 GeometricControl::getInstance(0)->applyPreferences();
134 GeometricControl::getInstance(0)->setFloating(
false);
136 LogView::getInstance(0)->hide();
149 int result = QMessageBox::question(
this, tr(
"Warning"),
150 tr(
"To start the tutorial, all loaded structures and molecules will be deleted."),
151 QMessageBox::Ok| QMessageBox::Cancel, QMessageBox::Ok);
152 if (result != QMessageBox::Ok)
return;
157 QUrl qurl = QUrl::fromLocalFile((
prefix_ +
"01.html").c_str());
158 text_browser->setSource(qurl);
167 if (!isVisible())
return;
186 if (!RTTI::isKindOf<FinishedSimulationMessage>(*message))
return;
191 if (msg == 0)
return;
199 RegularData3DDataset*
set =
dynamic_cast<RegularData3DDataset*
>(msg->
getDataset());
206 SceneMessage* msg = RTTI::castTo<SceneMessage>(*message);
212 else if (rmsg == 0 ||
224 next_button->setEnabled(
true);
231 if (
id.size() == 1)
id =
"0" + id;
235 QUrl qurl = QUrl::fromLocalFile(
id.c_str());
236 text_browser->setSource(qurl);
237 next_button->setEnabled(
false);
255 next_button->setEnabled(
true);
263 hv->setFloating(
true);
284 String file_name = path.
find(
"structures/bpti.pdb");
287 if (dialog == 0)
return;
295 String msg((
String)tr(
"Could not open bpti.pdb. Maybe the file was deleted?")+
"\n");
296 msg += (
String)tr(
"It should be found in") +
" " + file_name;
298 QMessageBox::critical(0, tr(
"Error while starting BALLView Demo"), msg.c_str(),
299 QMessageBox::Ok, Qt::NoButton, Qt::NoButton);
335 Mesh* mesh =
dynamic_cast<Mesh*
>(go);
391 list<Composite*> composites;
392 composites.push_back(*
getMainControl()->getCompositeManager().getComposites().begin());
393 MolecularControl::getInstance(0)->highlight(composites);
449 if (grids.size() == 0)
return;
486 if (!RTTI::isKindOf<SceneMessage>(*message))
return;
497 if (!RTTI::isKindOf<DatasetMessage>(*message))
return;
525 if (!RTTI::isKindOf<DatasetMessage>(*message))
return;
587 String description =
"Shortcut|Help|Demo";
591 description =
"Shortcut|Help|Tutorial";
599 bool busy = main_control.
isBusy();