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 // (C) 2010 Underground Software
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 05/17/2010 Added this text. :-)
15 #include "qc_dialogfactory.h"
17 #include "qc_applicationwindow.h"
19 //QC_DialogFactory::QC_DialogFactory(QWidget * parent, QWidget * ow): QG_DialogFactory(parent, ow)
20 QC_DialogFactory::QC_DialogFactory(QWidget * parent, QToolBar * ow): QG_DialogFactory(parent, ow)
24 /*virtual*/ QC_DialogFactory::~QC_DialogFactory()
29 * Provides a new window for editing the active block.
31 void QC_DialogFactory::requestEditBlockWindow(RS_BlockList * blockList)
33 RS_DEBUG->print("QC_DialogFactory::requestEditBlockWindow()");
35 QC_ApplicationWindow * appWindow = QC_ApplicationWindow::getAppWindow();
36 QC_MDIWindow * parent = appWindow->getMDIWindow();
40 //RS_BlockList* blist = blockWidget->getBlockList();
41 if (blockList != NULL)
43 RS_Block * blk = blockList->getActive();
47 QC_MDIWindow * w = appWindow->slotFileNew(blk);
48 // the parent needs a pointer to the block window and
50 parent->addChildWindow(w);
51 w->getGraphicView()->zoomAuto(false);
58 * Closes all windows that are editing the given block.
60 void QC_DialogFactory::closeEditBlockWindow(RS_Block * block)
62 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow");
64 QC_ApplicationWindow * appWindow = QC_ApplicationWindow::getAppWindow();
65 QMdiArea * workspace = appWindow->getWorkspace();
67 if (workspace != NULL)
69 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: workspace found");
71 QList<QMdiSubWindow *> windows = workspace->subWindowList();
73 for(int i=0; i<int(windows.count()); ++i)
75 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: window: %d", i);
76 QC_MDIWindow * m = (QC_MDIWindow *)windows.at(i);
80 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: got mdi");
82 if (m->getDocument() == block)
84 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: closing mdi");
85 //m->closeMDI(true, false);
93 appWindow->slotWindowActivated(NULL);
95 RS_DEBUG->print("QC_DialogFactory::closeEditBlockWindow: OK");