X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmainapp%2Fapplicationwindow.cpp;h=0566beb287f12d6aba77a1d1c78b6f1d4cac238e;hb=f34fe4370628985ef1a4a4527cfa85165624e27c;hp=326854eee048c1c6526466da40e94d79f0150ecf;hpb=27d4a138d23453e93a833e9347444b828a971cb4;p=architektonas diff --git a/src/mainapp/applicationwindow.cpp b/src/mainapp/applicationwindow.cpp index 326854e..0566beb 100644 --- a/src/mainapp/applicationwindow.cpp +++ b/src/mainapp/applicationwindow.cpp @@ -3,7 +3,9 @@ // Part of the Architektonas Project // Originally part of QCad Community Edition by Andrew Mustun // Extensively rewritten and refactored by James L. Hammons -// (C) 2010 Underground Software +// Portions copyright (C) 2001-2003 RibbonSoft +// Copyright (C) 2010 Underground Software +// See the README and GPLv2 files for licensing and warranty information // // JLH = James L. Hammons // @@ -17,9 +19,9 @@ #include "applicationwindow.h" #include -#include "rs_actiondrawlinefree.h" -#include "rs_actionlibraryinsert.h" -#include "rs_actionprintpreview.h" +#include "actiondrawlinefree.h" +#include "actionlibraryinsert.h" +#include "actionprintpreview.h" #include "rs_creation.h" #include "rs_dialogfactory.h" #include "rs_dimaligned.h" @@ -30,7 +32,7 @@ #include "rs_hatch.h" #include "rs_insert.h" #include "rs_image.h" -#include "paintintf.h" +#include "paintinterface.h" #include "rs_script.h" #include "rs_scriptlist.h" #include "settings.h" @@ -45,9 +47,9 @@ #include "rs_simulationcontrols.h" #endif -#include "qg_colorbox.h" -#include "qg_filedialog.h" -#include "qg_pentoolbar.h" +#include "colorbox.h" +#include "filedialog.h" +#include "pentoolbar.h" #include "recentfiles.h" #include "cadtoolbar.h" #include "cadtoolbarmain.h" @@ -56,10 +58,11 @@ #include "mousewidget.h" #include "selectionwidget.h" -#include "mdiwindow.h" -#include "qc_dialogfactory.h" #include "createqtactions.h" +#include "qc_dialogfactory.h" +#include "qg_graphicview.h" #include "main.h" +#include "mdiwindow.h" ApplicationWindow * ApplicationWindow::appWindow = NULL; @@ -89,9 +92,10 @@ ApplicationWindow::ApplicationWindow(): // setIcon(qPixmapFromMimeSource(QC_APP_ICON)); // setWindowIcon(qPixmapFromMimeSource(QC_APP_ICON)); setWindowIcon(QIcon(":/res/" QC_APP_ICON)); + CreateQtActions(this); RS_DEBUG->print("ApplicationWindow::ApplicationWindow: creating action handler"); - actionHandler = new QG_ActionHandler(this); + actionHandler = new ActionHandler(this); RS_DEBUG->print("ApplicationWindow::ApplicationWindow: creating action handler: OK"); #ifdef RS_SCRIPTING @@ -211,7 +215,7 @@ void ApplicationWindow::slotRunScript(const QString & name) statusBar()->showMessage(tr("Running script '%1'").arg(name), 2000); QStringList scriptList = RS_SYSTEM->getScriptList(); - scriptList.append(RS_SYSTEM->getHomeDir() + "/.qcad/" + name); + scriptList.append(RS_SYSTEM->getHomeDir() + "/.architektonas/" + name); for (QStringList::Iterator it = scriptList.begin(); it!=scriptList.end(); ++it) { @@ -255,9 +259,9 @@ void ApplicationWindow::slotInsertBlock(const QString & name) GraphicView * graphicView = getGraphicView(); RS_Document * document = getDocument(); - if (graphicView != NULL && document != NULL) + if (graphicView && document) { - RS_ActionLibraryInsert * action = new RS_ActionLibraryInsert(*document, *graphicView); + ActionLibraryInsert * action = new ActionLibraryInsert(*document, *graphicView); action->setFile(name); graphicView->setCurrentAction(action); } @@ -359,7 +363,6 @@ void ApplicationWindow::initMDI() void ApplicationWindow::initActions() { RS_DEBUG->print("ApplicationWindow::initActions()"); - CreateQtActions(this); // // File actions: @@ -1282,7 +1285,7 @@ void ApplicationWindow::initToolBar() // zoomToolBar = new Q3ToolBar(this, "Zoom Operations"); zoomToolBar = addToolBar(tr("Zoom Operations")); zoomToolBar->setObjectName("zoom"); - penToolBar = new QG_PenToolBar(this, "Pen Selection"); + penToolBar = new PenToolBar(this, "Pen Selection"); penToolBar->setObjectName("pen"); connect(penToolBar, SIGNAL(penChanged(RS_Pen)), this, SLOT(slotPenChanged(RS_Pen))); @@ -1447,7 +1450,7 @@ void ApplicationWindow::initView() // dw = new QDockWidget(QDockWidget::InDock, this, "Layer"); dw = new QDockWidget(tr("Layer List"), this); dw->setObjectName("layer"); - layerWidget = new QG_LayerWidget(actionHandler, dw, "Layer"); + layerWidget = new LayerWidget(actionHandler, dw, "Layer"); layerWidget->setFocusPolicy(Qt::NoFocus); connect(layerWidget, SIGNAL(escape()), this, SLOT(slotFocus())); connect(this, SIGNAL(windowsChanged(bool)), layerWidget, SLOT(setEnabled(bool))); @@ -1464,7 +1467,7 @@ void ApplicationWindow::initView() // dw = new QDockWidget(QDockWidget::InDock, this, "Block"); dw = new QDockWidget(tr("Block List"), this); dw->setObjectName("block"); - blockWidget = new QG_BlockWidget(actionHandler, dw, "Block"); + blockWidget = new BlockWidget(actionHandler, dw, "Block"); blockWidget->setFocusPolicy(Qt::NoFocus); connect(blockWidget, SIGNAL(escape()), this, SLOT(slotFocus())); connect(this, SIGNAL(windowsChanged(bool)), blockWidget, SLOT(setEnabled(bool))); @@ -1495,9 +1498,11 @@ void ApplicationWindow::initView() // dw->setCaption(tr("Library Browser")); //not sure how to fix this one #warning "QMainWindow::addDockWidget: invalid 'area' argument" - addDockWidget(Qt::NoDockWidgetArea, dw); +// addDockWidget(Qt::NoDockWidgetArea, dw); +//This works, but sux + addDockWidget(Qt::RightDockWidgetArea, dw); libraryDockWindow = dw; - libraryDockWindow->hide(); +// libraryDockWindow->hide(); RS_DEBUG->print(" command widget.."); // dw = new QDockWidget(QDockWidget::InDock, this, "Command"); @@ -1552,11 +1557,11 @@ void ApplicationWindow::slotBack() { GraphicView * graphicView = getGraphicView(); - if (graphicView != NULL) + if (graphicView) graphicView->back(); else { - if (cadToolBar != NULL) + if (cadToolBar) cadToolBar->showToolBar(RS2::ToolBarMain); } } @@ -1566,15 +1571,15 @@ void ApplicationWindow::slotBack() */ void ApplicationWindow::slotEnter() { - if (commandWidget == NULL || !commandWidget->checkFocus()) + if (!commandWidget || !commandWidget->checkFocus()) { - if (cadToolBar != NULL) + if (cadToolBar) cadToolBar->forceNext(); else { GraphicView * graphicView = getGraphicView(); - if (graphicView != NULL) + if (graphicView) graphicView->enter(); } } @@ -1624,10 +1629,11 @@ void ApplicationWindow::slotWindowActivated(QMdiSubWindow * /*w*/) //which means the subwindow is NOT being activated!!! MDIWindow * m = getMDIWindow(); RS_DEBUG->print(/*RS_Debug::D_CRITICAL,*/ "ApplicationWindow::slotWindowActivated m=%08X", m); + if (m) RS_DEBUG->print(/*RS_Debug::D_CRITICAL,*/ "ApplicationWindow::slotWindowActivated m->getDoc=%08X", m->getDocument()); - if (m != NULL && m->getDocument() != NULL) + if (m && m->getDocument()) { //m->setWindowState(WindowMaximized); @@ -1658,7 +1664,7 @@ void ApplicationWindow::slotWindowActivated(QMdiSubWindow * /*w*/) slotPenChanged(penToolBar->getPen()); // update toggle button status: - if (m->getGraphic() != NULL) + if (m->getGraphic()) { emit(gridChanged(m->getGraphic()->isGridOn())); emit(printPreviewChanged(m->getGraphicView()->isPrintPreview())); @@ -1900,6 +1906,7 @@ MDIWindow * ApplicationWindow::slotFileNew(RS_Document * doc) RS_DEBUG->print(" adding listeners"); Drawing * graphic = w->getDocument()->getGraphic(); +#if 0 if (graphic != NULL) { // Link the graphic's layer list to the pen tool bar @@ -1909,6 +1916,7 @@ MDIWindow * ApplicationWindow::slotFileNew(RS_Document * doc) // Link the block list to the block widget graphic->addBlockListListener(blockWidget); } +#endif // Link the dialog factory to the mouse widget: QG_DIALOGFACTORY->setMouseWidget(mouseWidget); @@ -1968,7 +1976,7 @@ void ApplicationWindow::slotFileOpen() RS_DEBUG->print("ApplicationWindow::slotFileOpen() 001"); RS2::FormatType type = RS2::FormatUnknown; RS_DEBUG->print("ApplicationWindow::slotFileOpen() 002"); - QString fileName = QG_FileDialog::getOpenFileName(this, &type); + QString fileName = FileDialog::getOpenFileName(this, &type); RS_DEBUG->print("ApplicationWindow::slotFileOpen() 003"); slotFileOpen(fileName, type); RS_DEBUG->print("ApplicationWindow::slotFileOpen(): OK"); @@ -2013,7 +2021,6 @@ void ApplicationWindow::slotFileOpenRecent(void) void ApplicationWindow::slotFileOpen(const QString & fileName, RS2::FormatType type) { RS_DEBUG->print("ApplicationWindow::slotFileOpen(..)"); - QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); if (!fileName.isEmpty()) @@ -2021,10 +2028,6 @@ void ApplicationWindow::slotFileOpen(const QString & fileName, RS2::FormatType t RS_DEBUG->print("ApplicationWindow::slotFileOpen: creating new doc window"); // Create new document window: MDIWindow * w = slotFileNew(); -// RS_APP->processEvents(1000); -//Really, is this needed??? -// RS_APP->processEvents(QEventLoop::AllEvents, 1000); - RS_DEBUG->print("ApplicationWindow::slotFileOpen: linking layer list"); // link the layer widget to the new document: layerWidget->setLayerList(w->getDocument()->getLayerList(), false); @@ -2036,15 +2039,10 @@ void ApplicationWindow::slotFileOpen(const QString & fileName, RS2::FormatType t // link the layer widget to the new document: simulationControls->setGraphicView(w->getGraphicView()); #endif - RS_DEBUG->print("ApplicationWindow::slotFileOpen: open file"); -// RS_APP->processEvents(1000); -//We no longer try to do Qt better than the Qt folks... -// RS_APP->processEvents(QEventLoop::AllEvents, 1000); - - // open the file in the new view: - if (w->slotFileOpen(fileName, type) == false) + // Open the file in the new view: + if (!w->slotFileOpen(fileName, type)) { // error QApplication::restoreOverrideCursor(); @@ -2065,24 +2063,20 @@ void ApplicationWindow::slotFileOpen(const QString & fileName, RS2::FormatType t recentFiles->add(fileName); RS_DEBUG->print("ApplicationWindow::slotFileOpen: update recent file menu: 2"); -// updateRecentFilesMenu(); recentFiles->UpdateGUI(); - RS_DEBUG->print("ApplicationWindow::slotFileOpen: update recent file menu: OK"); - RS_DEBUG->print("ApplicationWindow::slotFileOpen: set caption"); // update caption: -// w->setCaption(fileName); w->setWindowTitle(fileName); RS_DEBUG->print("ApplicationWindow::slotFileOpen: set caption: OK"); - RS_DEBUG->print("ApplicationWindow::slotFileOpen: update coordinate widget"); // update coordinate widget format: RS_DIALOGFACTORY->updateCoordinateWidget(Vector(0.0, 0.0), Vector(0.0, 0.0), true); RS_DEBUG->print("ApplicationWindow::slotFileOpen: update coordinate widget: OK"); - + // Update the layer and block widgets (document just loaded may have some) + layerWidget->update(); + blockWidget->update(); // show output of filter (if any): -// commandWidget->processStderr(); QString message = tr("Loaded document: ") + fileName; commandWidget->appendHistory(message); statusBar()->showMessage(message, 2000); @@ -2183,14 +2177,12 @@ void ApplicationWindow::slotFileSaveAs() void ApplicationWindow::slotFileExport() { RS_DEBUG->print("ApplicationWindow::slotFileExport()"); - statusBar()->showMessage(tr("Exporting drawing...")); - MDIWindow * w = getMDIWindow(); - QString fn; - if (w != NULL) + if (w) { + QString fn; // read default settings: settings.beginGroup("Paths"); QString defDir = settings.value("ExportImage", RS_SYSTEM->getHomeDir()).toString(); @@ -2318,7 +2310,7 @@ bool ApplicationWindow::slotFileExport(const QString & name, const QString & for { MDIWindow * w = getMDIWindow(); - if (w == NULL) + if (!w) { RS_DEBUG->print(RS_Debug::D_WARNING, "ApplicationWindow::slotFileExport: no window opened"); return false; @@ -2326,7 +2318,7 @@ bool ApplicationWindow::slotFileExport(const QString & name, const QString & for Drawing * graphic = w->getDocument()->getGraphic(); - if (graphic == NULL) + if (!graphic) { RS_DEBUG->print(RS_Debug::D_WARNING, "ApplicationWindow::slotFileExport: no graphic"); return false; @@ -2383,7 +2375,7 @@ bool ApplicationWindow::slotFileExport(const QString & name, const QString & for ret = true; } #else -#warning "Need to port to Qt4... !!! FIX !!!" +#warning "ApplicationWindow::slotFileExport(): Need to port to Qt4... !!! FIX !!!" #endif QApplication::restoreOverrideCursor(); @@ -2411,7 +2403,7 @@ void ApplicationWindow::slotFileClose() MDIWindow * m = getMDIWindow(); - if (m != NULL) + if (m) // m->close(true); m->close(); @@ -2484,6 +2476,7 @@ void ApplicationWindow::slotFilePrint() // printer setup: // if (printer->setup(this)) QPrintDialog dialog(printer, this); + if (dialog.exec()) { //printer->setOutputToFile(true); @@ -2546,7 +2539,7 @@ void ApplicationWindow::slotFilePrintPreview(bool on) RS_DEBUG->print(" creating MDI window"); MDIWindow * parent = getMDIWindow(); - if (parent == NULL) + if (!parent) { RS_DEBUG->print(RS_Debug::D_WARNING, "ApplicationWindow::slotFilePrintPreview: no window opened"); return; @@ -2594,20 +2587,22 @@ void ApplicationWindow::slotFilePrintPreview(bool on) w->setWindowIcon(QIcon(":/res/document.png")); w->getGraphicView()->setPrintPreview(true); w->getGraphicView()->setBackground(RS_Color(255, 255, 255)); - w->getGraphicView()->setDefaultAction(new RS_ActionPrintPreview(*w->getDocument(), *w->getGraphicView())); + w->getGraphicView()->setDefaultAction(new ActionPrintPreview(*w->getDocument(), *w->getGraphicView())); // only graphics offer block lists, blocks don't RS_DEBUG->print(" adding listeners"); Drawing * graphic = w->getDocument()->getGraphic(); - if (graphic != NULL) + if (graphic) { +#if 0 // Link the layer list to the pen tool bar graphic->addLayerListListener(penToolBar); // Link the layer list to the layer widget graphic->addLayerListListener(layerWidget); // Link the block list to the block widget graphic->addBlockListListener(blockWidget); +#endif // Center by default: graphic->centerToPage(); } @@ -2653,6 +2648,7 @@ void ApplicationWindow::slotFileQuit() qApp->exit(0); } +#if 0 /** * Forces termination of QCad (demo version). */ @@ -2663,6 +2659,7 @@ void ApplicationWindow::slotFileDemoQuit() queryExit(true); qApp->exit(0); } +#endif /** * Shows / hides the grid. @@ -2718,7 +2715,7 @@ void ApplicationWindow::slotViewDraft(bool toggle) */ void ApplicationWindow::redrawAll() { - if (workspace != NULL) + if (workspace) { QList windows = workspace->subWindowList(); @@ -2726,11 +2723,11 @@ void ApplicationWindow::redrawAll() { MDIWindow * m = (MDIWindow *)windows.at(i); - if (m != NULL) + if (m) { QG_GraphicView * gv = m->getGraphicView(); - if (gv != NULL) + if (gv) gv->redraw(); } } @@ -2742,7 +2739,7 @@ void ApplicationWindow::redrawAll() */ void ApplicationWindow::updateGrids() { - if (workspace != NULL) + if (workspace) { QList windows = workspace->subWindowList(); @@ -2750,11 +2747,11 @@ void ApplicationWindow::updateGrids() { MDIWindow * m = (MDIWindow *)windows.at(i); - if (m != NULL) + if (m) { QG_GraphicView * gv = m->getGraphicView(); - if (gv != NULL) + if (gv) gv->updateGrid(); } } @@ -2894,11 +2891,11 @@ void ApplicationWindow::slotOptionsGeneral() { MDIWindow * m = (MDIWindow *)windows.at(i); - if (m != NULL) + if (m) { QG_GraphicView * gv = m->getGraphicView(); - if (gv != NULL) + if (gv) { gv->setBackground(color); gv->setGridColor(gridColor); @@ -2950,7 +2947,7 @@ void ApplicationWindow::slotHelpAbout() QString modulesString; - if (modules.empty() == false) + if (!modules.empty()) modulesString = modules.join(", "); else modulesString = tr("None"); @@ -2968,6 +2965,8 @@ void ApplicationWindow::slotHelpAbout() tr("Version: %1").arg("1.0.0") + "
" + tr("Date: %1").arg(__DATE__) + "
" + QString("© 2010 Underground Software,
James Hammons") + + "
" + + QString("Portions © 2001-2003 RibbonSoft") + "
" #ifdef QC_ABOUT_ADD_COMPANY + QString("
") + QC_ABOUT_ADD_COMPANY @@ -3337,8 +3336,8 @@ void ApplicationWindow::slotTestDrawFreehand() //Drawing* g = document->getMarking(); /* - RS_ActionDrawLineFree* action = - new RS_ActionDrawLineFree(*document->getGraphic(), + ActionDrawLineFree* action = + new ActionDrawLineFree(*document->getGraphic(), *graphicView); for (int i=0; i<100; ++i) { @@ -3480,7 +3479,7 @@ void ApplicationWindow::slotTestInsertBlock() GraphicView * v = getGraphicView(); - if (v != NULL) + if (v) v->redraw(); } } @@ -3964,6 +3963,7 @@ bool ApplicationWindow::queryExit(bool force) */ void ApplicationWindow::keyPressEvent(QKeyEvent * e) { +#warning "!!! keyPressEvent(): Do we need this anymore? !!!" // timer static QTime ts = QTime(); static QString firstKey = ""; @@ -3977,13 +3977,12 @@ void ApplicationWindow::keyPressEvent(QKeyEvent * e) case Qt::Key_Alt: case Qt::Key_CapsLock: { -// Q3MainWindow::keyPressEvent(e); QMainWindow::keyPressEvent(e); // forward to actions: GraphicView * graphicView = getGraphicView(); - if (graphicView != NULL) + if (graphicView) graphicView->keyPressEvent(e); e->accept(); @@ -4073,7 +4072,7 @@ void ApplicationWindow::keyReleaseEvent(QKeyEvent * e) // forward to actions: GraphicView * graphicView = getGraphicView(); - if (graphicView != NULL) + if (graphicView) graphicView->keyReleaseEvent(e); e->accept(); @@ -4109,7 +4108,7 @@ MDIWindow * ApplicationWindow::getMDIWindow() { RS_DEBUG->print(/*RS_Debug::D_CRITICAL,*/ "ApplicationWindow::getMDIWindow: workspace=%08X", workspace); - if (workspace != NULL) + if (workspace) { RS_DEBUG->print("ApplicationWindow::getMDIWindow: activeSubWindow=%08X", workspace->activeSubWindow()); return (MDIWindow *)workspace->activeSubWindow(); @@ -4129,10 +4128,7 @@ MDIWindow * ApplicationWindow::getMDIWindow() { MDIWindow * m = getMDIWindow(); - if (m != NULL) - return m->getGraphicView(); - - return NULL; + return (m ? m->getGraphicView() : NULL); } /** @@ -4145,10 +4141,7 @@ MDIWindow * ApplicationWindow::getMDIWindow() { MDIWindow * m = getMDIWindow(); - if (m != NULL) - return m->getDocument(); - - return NULL; + return (m ? m->getDocument() : NULL); } /** @@ -4159,7 +4152,7 @@ MDIWindow * ApplicationWindow::getMDIWindow() { slotFileNew(doc); - if (fileName != QString::null && getDocument() != NULL) + if (fileName != QString::null && getDocument()) getDocument()->setFilename(fileName); } @@ -4176,7 +4169,7 @@ MDIWindow * ApplicationWindow::getMDIWindow() /** * @return Pointer to action handler. Implementation from QG_MainWindowInterface. */ -/*virtual*/ QG_ActionHandler * ApplicationWindow::getActionHandler() +/*virtual*/ ActionHandler * ApplicationWindow::getActionHandler() { return actionHandler; }