X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmainapp%2Fmdiwindow.cpp;h=d20e4e7055659bc165e3aae64771ce3970725291;hb=e1d1cacbb43055988d0d9db632fdf05c0bea9543;hp=d4f4e1aeddfe6ebfe1419c250dcdc64a6ed34bde;hpb=3b479913b79032e514ce8c74ba915c6c91ab0f15;p=architektonas diff --git a/src/mainapp/mdiwindow.cpp b/src/mainapp/mdiwindow.cpp index d4f4e1a..d20e4e7 100644 --- a/src/mainapp/mdiwindow.cpp +++ b/src/mainapp/mdiwindow.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 // @@ -15,9 +17,10 @@ #include "mdiwindow.h" #include "drawing.h" -#include "rs_eventhandler.h" +#include "eventhandler.h" #include "exitdialog.h" -#include "qg_filedialog.h" +#include "filedialog.h" +#include "qg_graphicview.h" // Class variable int MDIWindow::idCounter = 0; @@ -29,32 +32,31 @@ int MDIWindow::idCounter = 0; * document shall be created for this window. * @param parent Parent widget. Usually a workspace. */ -MDIWindow::MDIWindow(RS_Document * doc, QWidget * parent, const char * name/*= NULL*/, +MDIWindow::MDIWindow(Document * doc, QWidget * parent, const char * name/*= NULL*/, Qt::WindowFlags wflags/*= Qt::WDestructiveClose*/): - QMdiSubWindow(parent, Qt::SubWindow) + QMdiSubWindow(parent, Qt::SubWindow), owner(false), forceClosing(false) #warning "!!! wflags is ignored !!!" { - owner = false; - forceClosing = false; //This warning is most likely coming from the QMdiSubWindow() constructor above... #warning "QWidget::setMinimumSize: (/QMdi::ControlLabel) Negative sizes (-1,-1) are not possible" initDoc(doc); initView(); id = idCounter++; -//No worries: Only need to be more vigilant if this were TRUE -// childWindows.setAutoDelete(false); parentWindow = NULL; - if (document != NULL) +//not using this anymore +#if 0 + if (document) { - if (document->getLayerList() != NULL) + if (document->getLayerList()) // Link the graphic view to the layer widget document->getLayerList()->addListener(graphicView); - if (document->getBlockList() != NULL) + if (document->getBlockList()) // Link the graphic view to the block widget document->getBlockList()->addListener(graphicView); } +#endif //hm. setFocus(/*Qt::StrongFocus*/); @@ -67,13 +69,15 @@ MDIWindow::MDIWindow(RS_Document * doc, QWidget * parent, const char * name/*= N */ MDIWindow::~MDIWindow() { - if (document->getLayerList() != NULL) +#if 0 + if (document->getLayerList()) document->getLayerList()->removeListener(graphicView); - if (document->getBlockList() != NULL) + if (document->getBlockList()) document->getBlockList()->removeListener(graphicView); +#endif - if (owner == true && document != NULL) + if (owner && document) delete document; document = NULL; @@ -86,12 +90,12 @@ MDIWindow::~MDIWindow() */ void MDIWindow::addChildWindow(MDIWindow * w) { - RS_DEBUG->print("RS_MDIWindow::addChildWindow()"); + DEBUG->print("RS_MDIWindow::addChildWindow()"); childWindows.append(w); w->setParentWindow(this); - RS_DEBUG->print("children: %d", childWindows.count()); + DEBUG->print("children: %d", childWindows.count()); } /** @@ -101,13 +105,13 @@ void MDIWindow::addChildWindow(MDIWindow * w) */ void MDIWindow::removeChildWindow(MDIWindow * w) { - RS_DEBUG->print("RS_MDIWindow::removeChildWindow()"); + DEBUG->print("RS_MDIWindow::removeChildWindow()"); // bool suc = childWindows.remove(w); bool suc = childWindows.removeOne(w); - RS_DEBUG->print("successfully removed child window: %d", (int)suc); + DEBUG->print("successfully removed child window: %d", (int)suc); - RS_DEBUG->print("children: %d", childWindows.count()); + DEBUG->print("children: %d", childWindows.count()); } /** @@ -133,21 +137,21 @@ MDIWindow * MDIWindow::getPrintPreview() bool MDIWindow::closeMDI(bool force, bool ask) { // should never happen: - if (document == NULL) + if (!document) return true; bool ret = false; bool isBlock = (parentWindow != NULL); // This is a block and we don't need to ask the user for closing - // since it's still available in the parent drawing after closing. + // since it's still available in the parent drawing after closing. if (isBlock) { - RS_DEBUG->print(" closing block"); + DEBUG->print(" closing block"); // tell parent window we're not here anymore. - if (parentWindow != NULL) + if (parentWindow) { - RS_DEBUG->print(" notifying parent about closing this window"); + DEBUG->print(" notifying parent about closing this window"); parentWindow->removeChildWindow(this); } @@ -157,23 +161,10 @@ bool MDIWindow::closeMDI(bool force, bool ask) // This is a graphic document. ask user for closing. else if (!ask || slotFileClose(force)) { - RS_DEBUG->print(" closing graphic"); + DEBUG->print(" closing graphic"); // close all child windows: bool done; -#if 0 // UGH! WHY??!??! - do - { - done = true; - - if (childWindows.at(0) != NULL) - { - childWindows.at(0)->close(); - done = false; - } - } - while (!done); -#else while (!childWindows.isEmpty()) { MDIWindow * child = childWindows.takeFirst(); @@ -181,7 +172,6 @@ bool MDIWindow::closeMDI(bool force, bool ask) if (child) child->close(); } -#endif emit(signalClosing()); ret = true; @@ -200,14 +190,14 @@ bool MDIWindow::closeMDI(bool force, bool ask) */ void MDIWindow::closeEvent(QCloseEvent * ce) { - RS_DEBUG->print("MDIWindow::closeEvent begin"); + DEBUG->print("MDIWindow::closeEvent begin"); if (closeMDI(false, !forceClosing)) ce->accept(); else ce->ignore(); - RS_DEBUG->print("MDIWindow::closeEvent end"); + DEBUG->print("MDIWindow::closeEvent end"); } /** @@ -217,11 +207,11 @@ void MDIWindow::closeEvent(QCloseEvent * ce) * @param container Entity container to be used as document or NULL * if a new document should be created. */ -void MDIWindow::initDoc(RS_Document * doc) +void MDIWindow::initDoc(Document * doc) { - RS_DEBUG->print("MDIWindow::initDoc()"); + DEBUG->print("MDIWindow::initDoc()"); - if (doc == NULL) + if (!doc) { document = new Drawing(); document->newDoc(); @@ -239,10 +229,10 @@ void MDIWindow::initDoc(RS_Document * doc) */ void MDIWindow::initView() { - RS_DEBUG->print("MDIWindow::initView()"); + DEBUG->print("MDIWindow::initView()"); - graphicView = new QC_GraphicView(document, this); -// setCentralWidget(graphicView); +// graphicView = new QC_GraphicView(document, this); + graphicView = new QG_GraphicView(document, this); setWidget(graphicView); graphicView->setFocus(); } @@ -251,14 +241,14 @@ void MDIWindow::initView() * Called when the current pen (color, style, width) has changed. * Sets the active pen for the document in this MDI window. */ -void MDIWindow::slotPenChanged(RS_Pen pen) +void MDIWindow::slotPenChanged(Pen pen) { - RS_DEBUG->print("MDIWindow::slotPenChanged() begin"); + DEBUG->print("MDIWindow::slotPenChanged() begin"); - if (document != NULL) + if (document) document->setActivePen(pen); - RS_DEBUG->print("MDIWindow::slotPenChanged() end"); + DEBUG->print("MDIWindow::slotPenChanged() end"); } /** @@ -266,15 +256,15 @@ void MDIWindow::slotPenChanged(RS_Pen pen) */ void MDIWindow::slotFileNew() { - RS_DEBUG->print("MDIWindow::slotFileNew begin"); + DEBUG->print("MDIWindow::slotFileNew begin"); - if (document != NULL && graphicView != NULL) + if (document && graphicView) { document->newDoc(); graphicView->redraw(); } - RS_DEBUG->print("MDIWindow::slotFileNew end"); + DEBUG->print("MDIWindow::slotFileNew end"); } /** @@ -282,16 +272,12 @@ void MDIWindow::slotFileNew() */ bool MDIWindow::slotFileOpen(const QString & fileName, RS2::FormatType type) { - RS_DEBUG->print("MDIWindow::slotFileOpen"); + DEBUG->print("MDIWindow::slotFileOpen"); bool ret = false; if (document != NULL && !fileName.isEmpty()) { document->newDoc(); - - // cosmetics.. -//bah RS_APP->processEvents(QEventLoop::AllEvents, 1000); - ret = document->open(fileName, type); if (ret) @@ -299,22 +285,22 @@ bool MDIWindow::slotFileOpen(const QString & fileName, RS2::FormatType type) //QString message=tr("Loaded document: ")+fileName; //statusBar()->message(message, 2000); - RS_DEBUG->print("MDIWindow::slotFileOpen: autoZoom"); + DEBUG->print("MDIWindow::slotFileOpen: autoZoom"); graphicView->zoomAuto(false); - RS_DEBUG->print("MDIWindow::slotFileOpen: autoZoom: OK"); + DEBUG->print("MDIWindow::slotFileOpen: autoZoom: OK"); } else { - RS_DEBUG->print("MDIWindow::slotFileOpen: failed"); + DEBUG->print("MDIWindow::slotFileOpen: failed"); } } else { - RS_DEBUG->print("MDIWindow::slotFileOpen: cancelled"); + DEBUG->print("MDIWindow::slotFileOpen: cancelled"); //statusBar()->message(tr("Opening aborted"), 2000); } - RS_DEBUG->print("MDIWindow::slotFileOpen: OK"); + DEBUG->print("MDIWindow::slotFileOpen: OK"); return ret; } @@ -328,11 +314,11 @@ bool MDIWindow::slotFileOpen(const QString & fileName, RS2::FormatType type) */ bool MDIWindow::slotFileSave(bool & cancelled) { - RS_DEBUG->print("MDIWindow::slotFileSave()"); + DEBUG->print("MDIWindow::slotFileSave()"); bool ret = false; cancelled = false; - if (document != NULL) + if (document) { if (document->getFilename().isEmpty()) ret = slotFileSaveAs(cancelled); @@ -357,12 +343,12 @@ bool MDIWindow::slotFileSave(bool & cancelled) */ bool MDIWindow::slotFileSaveAs(bool & cancelled) { - RS_DEBUG->print("MDIWindow::slotFileSaveAs"); + DEBUG->print("MDIWindow::slotFileSaveAs"); bool ret = false; cancelled = false; RS2::FormatType t = RS2::FormatDXF; - QString fn = QG_FileDialog::getSaveFileName(this, &t); + QString fn = FileDialog::getSaveFileName(this, &t); if (document != NULL && !fn.isEmpty()) { @@ -387,12 +373,12 @@ bool MDIWindow::slotFileSaveAs(bool & cancelled) */ bool MDIWindow::slotFileClose(bool force) { - RS_DEBUG->print("MDIWindow::slotFileClose()"); + DEBUG->print("MDIWindow::slotFileClose()"); bool succ = true; int exit = 0; - if (document != NULL && document->isModified()) + if (document && document->isModified()) { ExitDialog dlg(this); dlg.setForce(force); @@ -451,7 +437,7 @@ bool MDIWindow::slotFileClose(bool force) void MDIWindow::slotFilePrint() { - RS_DEBUG->print("MDIWindow::slotFilePrint"); + DEBUG->print("MDIWindow::slotFilePrint"); //statusBar()->message(tr("Printing...")); QPrinter printer; @@ -468,19 +454,20 @@ void MDIWindow::slotFilePrint() // TODO: Define printing by using the QPainter methods here painter.end(); - }; + } //statusBar()->message(tr("Ready.")); } /** @return Pointer to graphic view */ -QC_GraphicView * MDIWindow::getGraphicView() +//QC_GraphicView * MDIWindow::getGraphicView() +QG_GraphicView * MDIWindow::getGraphicView() { return graphicView; } /** @return Pointer to document */ -RS_Document * MDIWindow::getDocument() +Document * MDIWindow::getDocument() { return document; } @@ -492,9 +479,9 @@ Drawing * MDIWindow::getGraphic() } /** @return Pointer to current event handler */ -RS_EventHandler * MDIWindow::getEventHandler() +EventHandler * MDIWindow::getEventHandler() { - if (graphicView != NULL) + if (graphicView) return graphicView->getEventHandler(); else return NULL; @@ -505,7 +492,7 @@ RS_EventHandler * MDIWindow::getEventHandler() */ void MDIWindow::setParentWindow(MDIWindow * p) { - RS_DEBUG->print("setParentWindow"); + DEBUG->print("setParentWindow"); parentWindow = p; } @@ -529,7 +516,7 @@ std::ostream & operator<<(std::ostream & os, MDIWindow & w) { os << "MDIWindow[" << w.getId() << "]:\n"; - if (w.parentWindow!=NULL) + if (w.parentWindow) os << " parentWindow: " << w.parentWindow->getId() << "\n"; else os << " parentWindow: NULL\n";