2 #include "ui_mainwindow.h" 18 ui->actionAbout->setMenuRole(QAction::AboutRole);
19 ui->actionAbout_Qt->setMenuRole(QAction::AboutQtRole);
21 splitter =
new QSplitter(Qt::Horizontal);
22 QIcon wicon(
":/frechet-view.svg");
29 freeSpaceView->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
32 QWidget* leftPane =
new QWidget(
this);
33 QBoxLayout* vlayout =
new QVBoxLayout(leftPane);
34 vlayout->setContentsMargins(0,0,0,0);
37 leftPane->setLayout(vlayout);
44 QHBoxLayout *layout =
new QHBoxLayout;
48 centralWidget()->setLayout(layout);
49 addToolBar(Qt::TopToolBarArea,
ui->mainToolBar);
51 setWindowTitle(tr(
"Fréchet View"));
53 setUnifiedTitleAndToolBarOnMac(
true);
58 connect(
ui->actionEdit_Curve, SIGNAL(triggered(
bool)),
59 FrechetViewApplication::instance(), SLOT(editInputFile()));
61 connect(
ui->actionSave_Curve_As, SIGNAL(triggered()),
64 connect(
ui->actionSave_Free_Space_As, SIGNAL(triggered()),
67 connect(
ui->actionPrint_Curve, SIGNAL(triggered()),
70 connect(
ui->actionPrint_Free_Space, SIGNAL(triggered()),
73 connect(
ui->actionShow_Bounds, SIGNAL(triggered(
bool)),
76 connect(
ui->actionShow_Bounds, SIGNAL(triggered(
bool)),
79 connect(
ui->actionFull_Screen, SIGNAL(triggered(
bool)),
82 connect(
ui->actionSeparate_Curves, SIGNAL(triggered(
bool)),
85 connect(
ui->actionAbout, SIGNAL(triggered(
bool)),
86 FrechetViewApplication::instance(), SLOT(showAboutDialog()));
88 connect(
ui->actionAbout_Qt, SIGNAL(triggered(
bool)),
89 qApp, SLOT(aboutQt()));
91 connect(
ui->actionCreate_Desktop_Icon, SIGNAL(triggered(
bool)),
92 FrechetViewApplication::instance(), SLOT(createDesktopEntry()));
107 connect(
curveView, SIGNAL(hiliteSegment(
int,
int,
int)),
110 curveView, SLOT(onHiliteSegment(
int,
int,
int)));
112 connect( FrechetViewApplication::instance(), SIGNAL(fileOpened(QString)),
115 connect( FrechetViewApplication::instance(), SIGNAL(algorithmChanged(
int)),
116 curveView, SLOT(onAlgorithmChanged(
int)));
117 connect( FrechetViewApplication::instance(), SIGNAL(algorithmChanged(
int)),
120 connect(
ui->actionShow_Animation, SIGNAL(triggered(
bool)),
122 connect(
ui->actionShow_XAnimation, SIGNAL(triggered(
bool)),
124 connect(
ui->actionStart_Animation, SIGNAL(triggered(
bool)),
126 connect(
ui->actionStart_FSAnimation, SIGNAL(triggered(
bool)),
128 connect(
ui->actionStart_CVAnimation, SIGNAL(triggered(
bool)),
130 connect(
ui->actionStart_ProjectionAnimation, SIGNAL(triggered(
bool)),
142 FrechetViewApplication::instance()->windowClosed(
this);
143 QMainWindow::closeEvent(event);
152 settings.setValue(
"main.Window.Geometry", saveGeometry());
153 settings.setValue(
"main.Window.State", saveState());
155 settings.setValue(
"main.Window.Splitter.Geometry",
splitter->saveGeometry());
156 settings.setValue(
"main.Window.Splitter.State",
splitter->saveState());
171 restoreGeometry(settings.value(
"main.Window.Geometry").toByteArray());
172 restoreState(settings.value(
"main.Window.State").toByteArray());
174 splitter->restoreGeometry(settings.value(
"main.Window.Splitter.Geometry").toByteArray());
175 splitter->restoreState(settings.value(
"main.Window.Splitter.State").toByteArray());
183 ui->actionFull_Screen->setChecked(this->isFullScreen());
188 ui->actionShow_Bounds->setChecked(on);
193 ui->actionSeparate_Curves->setChecked(on);
199 this->showFullScreen();
void startStopProjectionAnimation()
void startStopFSAnimation()
FreeSpaceView * freeSpaceView
free-space view
bool separateCurves() const
QAction * actionOpenRecent()
global definitions for all algorithms.
The single application window.
Ui::MainWindow * ui
widgets (auto-generated by Qt)
void restoreSettings(QSettings &settings)
load settings from application preferences
void enterFullScreen(bool fullscreen)
enter/leave full-screen mode
void saveSettings(QSettings &settings)
store settings to application preferences
displays input curves P and Q.
virtual void restoreSettings(QSettings &settings, QString group)
load settings from application preferences
ControlPanel * controlPanel
control panel
CurveView * curveView
curve view
display the free-space diagram.
void showHideXAnimation()
QSplitter * splitter
splitter between panels
virtual void saveSettings(QSettings &settings, QString group)
store settings to application preferences
void saveSettings(QSettings &settings, QString group)
store settings to application preferences
AnimationDialog * overlayWindow
void restoreSettings(QSettings &settings, QString group)
load settings from application preferences
virtual void restoreSettings(QSettings &settings, QString group)
load settings from application preferences
virtual void saveSettings(QSettings &settings, QString group)
store settings to application preferences
~MainWindow()
destructor; closes the window, releases all widgets
void startStopAnimation()
void setSeparateCurves(bool separate)
called when the user clicks the "Separate Curves" button
void setShowBounds(bool show)
called when the user clicks the "Show Bounds" button
void closeEvent(QCloseEvent *event)
catch window close event and quit the application
MainWindow(QWidget *parent=0)
default constructor
void startStopCVAnimation()