1 // qc_dialogfactory.cpp
3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // Portions copyright (C) 2001-2003 RibbonSoft
7 // Copyright (C) 2010 Underground Software
8 // See the README and GPLv2 files for licensing and warranty information
10 // JLH = James L. Hammons <jlhamm@acm.org>
13 // --- ---------- -----------------------------------------------------------
14 // JLH 05/17/2010 Added this text. :-)
17 #include "qc_dialogfactory.h"
19 #include "applicationwindow.h"
20 #include "qg_graphicview.h"
22 QC_DialogFactory::QC_DialogFactory(QWidget * parent, QToolBar * ow): QG_DialogFactory(parent, ow)
26 /*virtual*/ QC_DialogFactory::~QC_DialogFactory()
31 * Provides a new window for editing the active block.
33 void QC_DialogFactory::requestEditBlockWindow(RS_BlockList * blockList)
35 RS_DEBUG->print("QC_DialogFactory::requestEditBlockWindow()");
37 ApplicationWindow * appWindow = ApplicationWindow::getAppWindow();
38 MDIWindow * parent = appWindow->getMDIWindow();
40 if (parent && blockList)
42 RS_Block * block = blockList->getActive();
46 MDIWindow * w = appWindow->slotFileNew(block);
47 // the parent needs a pointer to the block window and vice versa
48 parent->addChildWindow(w);
49 w->getGraphicView()->zoomAuto(false);
55 * Closes all windows that are editing the given block.
57 void QC_DialogFactory::closeEditBlockWindow(RS_Block * block)
59 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow");
61 ApplicationWindow * appWindow = ApplicationWindow::getAppWindow();
62 QMdiArea * workspace = appWindow->getWorkspace();
66 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: workspace found");
68 QList<QMdiSubWindow *> windows = workspace->subWindowList();
70 for(int i=0; i<windows.count(); i++)
72 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: window: %d", i);
73 MDIWindow * m = (MDIWindow *)windows.at(i);
77 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: got mdi");
79 if (m->getDocument() == block)
81 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: closing mdi");
82 //m->closeMDI(true, false);
90 appWindow->slotWindowActivated(NULL);
92 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: OK");