X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=fe0c29db9fd1e2696e91266b40411f0071c3cbad;hb=7ac2021bfe0d3032e161520e3fa790ef621e39b3;hp=38f0d7038a13b7d759c08aff28276ed3200ac329;hpb=746443089f76c115245d1500b780d7d189b9b2af;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 38f0d70..fe0c29d 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -28,6 +28,8 @@ #include "about.h" #include "drawingview.h" +#include "settingsdialog.h" +#include "generaltab.h" ApplicationWindow::ApplicationWindow(): settings("Underground Software", "Architektonas") @@ -93,11 +95,29 @@ void ApplicationWindow::DimensionTool(void) Object::SetDimensionActive(addDimensionAct->isChecked()); } +void ApplicationWindow::RotateTool(void) +{ + drawing->SetRotateToolActive(rotateAct->isChecked()); +} + void ApplicationWindow::HelpAbout(void) { aboutWin->show(); } +void ApplicationWindow::Settings(void) +{ + SettingsDialog dlg(this); + dlg.generalTab->antialiasChk->setChecked(drawing->useAntialiasing); + + if (dlg.exec() == false) + return; + + // Deal with stuff here (since user hit "OK" button...) + drawing->useAntialiasing = dlg.generalTab->antialiasChk->isChecked(); + WriteSettings(); +} + void ApplicationWindow::CreateActions(void) { exitAct = CreateAction(tr("&Quit"), tr("Quit"), tr("Exits the application."), @@ -115,7 +135,7 @@ void ApplicationWindow::CreateActions(void) deleteAct = CreateAction(tr("&Delete"), tr("Delete Object"), tr("Deletes selected objects."), QIcon(":/res/generic-tool.png"), QKeySequence(), true); connect(deleteAct, SIGNAL(triggered()), this, SLOT(DeleteTool())); - addDimensionAct = CreateAction(tr("Add &Dimension"), tr("Add Dimension"), tr("Adds a dimension to the drawing."), QIcon(":/res/dimension-tool.png"), QKeySequence("D, I"), true); + addDimensionAct = CreateAction(tr("Add &Dimension"), tr("Add Dimension"), tr("Adds a dimension to the drawing."), QIcon(":/res/dimension-tool.png"), QKeySequence("D,I"), true); connect(addDimensionAct, SIGNAL(triggered()), this, SLOT(DimensionTool())); addLineAct = CreateAction(tr("Add &Line"), tr("Add Line"), tr("Adds a line to the drawing."), QIcon(":/res/generic-tool.png"), QKeySequence(), true); @@ -127,7 +147,23 @@ void ApplicationWindow::CreateActions(void) aboutAct = CreateAction(tr("About &Architektonas"), tr("About Architektonas"), tr("Gives information about this program."), QIcon(":/res/generic-tool.png"), QKeySequence()); connect(aboutAct, SIGNAL(triggered()), this, SLOT(HelpAbout())); - //Hm. + rotateAct = CreateAction(tr("&Rotate Objects"), tr("Rotate"), tr("Rotate object(s) around an arbitrary center."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("R,O")), true); + connect(rotateAct, SIGNAL(triggered()), this, SLOT(RotateTool())); + + fileNewAct = CreateAction(tr("&New Drawing"), tr("New Drawing"), tr("Creates a new drawing."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("Ctrl+n"))); + + fileOpenAct = CreateAction(tr("&Open Drawing"), tr("Open Drawing"), tr("Opens an existing drawing from a file."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("Ctrl+o"))); + + fileSaveAct = CreateAction(tr("&Save Drawing"), tr("Save Drawing"), tr("Saves the current drawing to a file."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("Ctrl+s"))); + + fileSaveAsAct = CreateAction(tr("Save Drawing &As"), tr("Save As"), tr("Saves the current drawing to a file with a different name."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("Ctrl+Shift+s"))); + + fileCloseAct = CreateAction(tr("&Close Drawing"), tr("Close Drawing"), tr("Closes the current drawing."), QIcon(":/res/generic-tool.png"), QKeySequence(tr("Ctrl+w"))); + + settingsAct = CreateAction(tr("&Settings"), tr("Settings"), tr("Change certain defaults for Architektonas."), QIcon(":/res/generic-tool.png"), QKeySequence()); + connect(settingsAct, SIGNAL(triggered()), this, SLOT(Settings())); + +//Hm. I think we'll have to have separate logic to do the "Radio Group Toolbar" thing... /* QActionGroup * group = new QActionGroup(this); group->addAction(deleteAct); group->addAction(addDimensionAct); @@ -173,16 +209,18 @@ QAction * ApplicationWindow::CreateAction2(QString name, QString tooltip, QStrin void ApplicationWindow::CreateMenus(void) { QMenu * menu = menuBar()->addMenu(tr("&File")); -// fileMenu->addAction(newAct); -// fileMenu->addAction(openAct); -// fileMenu->addAction(saveAct); -// fileMenu->addAction(saveAsAct); -// fileMenu->addSeparator(); + menu->addAction(fileNewAct); + menu->addAction(fileOpenAct); + menu->addAction(fileSaveAct); + menu->addAction(fileSaveAsAct); + menu->addAction(fileCloseAct); + menu->addSeparator(); menu->addAction(exitAct); menu = menuBar()->addMenu(tr("&Edit")); menu->addAction(fixAngleAct); menu->addAction(fixLengthAct); + menu->addAction(rotateAct); menu->addSeparator(); menu->addAction(deleteAct); menu->addSeparator(); @@ -190,6 +228,8 @@ void ApplicationWindow::CreateMenus(void) menu->addAction(addCircleAct); menu->addAction(addArcAct); menu->addAction(addDimensionAct); + menu->addSeparator(); + menu->addAction(settingsAct); // editMenu = menuBar()->addMenu(tr("&Edit")); // editMenu->addAction(cutAct); @@ -211,6 +251,7 @@ void ApplicationWindow::CreateToolbars(void) toolbar = addToolBar(tr("Edit")); toolbar->addAction(fixAngleAct); toolbar->addAction(fixLengthAct); + toolbar->addAction(rotateAct); toolbar->addAction(deleteAct); toolbar->addAction(addLineAct); toolbar->addAction(addCircleAct); @@ -222,6 +263,7 @@ void ApplicationWindow::ReadSettings(void) { QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint(); QSize size = settings.value("size", QSize(400, 400)).toSize(); + drawing->useAntialiasing = settings.value("useAntialiasing", true).toBool(); resize(size); move(pos); // pos = settings.value("charWndPos", QPoint(0, 0)).toPoint(); @@ -234,6 +276,7 @@ void ApplicationWindow::WriteSettings(void) { settings.setValue("pos", pos()); settings.setValue("size", size()); + settings.setValue("useAntialiasing", drawing->useAntialiasing); // settings.setValue("charWndPos", ((TTEdit *)qApp)->charWnd->pos()); // settings.setValue("charWndSize", ((TTEdit *)qApp)->charWnd->size()); }