X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmainapp%2Fapplicationwindow.cpp;h=0566beb287f12d6aba77a1d1c78b6f1d4cac238e;hb=f34fe4370628985ef1a4a4527cfa85165624e27c;hp=a0cb9716f692ba6e7b93d507f5852e674542e883;hpb=52b41ea9bcb03acb96393b36fe29f27ca0163565;p=architektonas diff --git a/src/mainapp/applicationwindow.cpp b/src/mainapp/applicationwindow.cpp index a0cb971..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) { @@ -257,7 +261,7 @@ void ApplicationWindow::slotInsertBlock(const QString & name) 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"); @@ -1624,6 +1629,7 @@ 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()); @@ -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. @@ -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) { @@ -4170,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; }