bool KstIfaceImpl::closeWindow(const QString& windowname) { KstApp *app = KstApp::inst(); KMdiChildView *win = app->findWindow(windowname); if (win) { app->closeWindow(win, true); return true; } return false; }
bool KstIfaceImpl::activateWindow(const QString& windowname) { KstApp *app = KstApp::inst(); KMdiChildView *win = app->findWindow(windowname); if (win) { win->activate(); return true; } return false; }
bool KstIfaceImpl::printPostScript(const QString& windowname, const QString& url) { KstApp *app = KstApp::inst(); KMdiChildView *win = app->findWindow(windowname); bool bRetVal = false; if (!url.isEmpty() && win) { app->immediatePrintWindowToFile(win, url); bRetVal = true; } return bRetVal; }
QStringList KstIfaceImpl::plotList(const QString& window) { QStringList rc; KstApp *app = KstApp::inst(); KMdiChildView *c = app->findWindow(window); KstViewWindow *v = dynamic_cast<KstViewWindow*>(c); if (v) { Kst2DPlotList l = v->view()->findChildrenType<Kst2DPlot>(false); for (Kst2DPlotList::Iterator i = l.begin(); i != l.end(); ++i) { rc += (*i)->tagName(); } } return rc; }
QStringList KstGuiData::plotList(const QString& window) { if (window.isEmpty()) { return Kst2DPlot::globalPlotList().tagNames(); } KstApp *app = KstApp::inst(); KMdiChildView *c = app->findWindow(window); QStringList rc; if (c) { Kst2DPlotList plots = static_cast<KstViewWindow*>(c)->view()->findChildrenType<Kst2DPlot>(); for (Kst2DPlotList::ConstIterator i = plots.begin(); i != plots.end(); ++i) { rc << (*i)->tagName(); } } return rc; }
bool KstIfaceImpl::plotEquation(const QString& xvector, const QString& equation, const QString& plotName, const QColor& color) { KstVectorPtr v; Kst2DPlotPtr plot; QString etag, ptag; KST::vectorList.lock().readLock(); KstVectorList::Iterator it = KST::vectorList.findTag(xvector); KST::vectorList.lock().unlock(); KstApp *app = KstApp::inst(); if (equation.isEmpty() || it == KST::vectorList.end()) { return false; } v = *it; etag = KST::suggestEQName(QString(equation).replace(QRegExp("[\\[\\]\\s]"), "_")); ptag = "P-" + plotName; if (!plotName.isEmpty()) { //find the plot, or P-plotName KMdiIterator<KMdiChildView*> *iter = app->createIterator(); bool found = false; while (iter->currentItem() && !found) { KMdiChildView *childview = iter->currentItem(); KstViewWindow *viewwindow = dynamic_cast<KstViewWindow*>(childview); if (viewwindow && !found) { Kst2DPlotList plotlist = viewwindow->view()->findChildrenType<Kst2DPlot>(false); Kst2DPlotList::Iterator plot_iter = plotlist.findTag(plotName); if (plot_iter != plotlist.end()) { plot = *plot_iter; found = true; } else { Kst2DPlotList::Iterator plot_iter = plotlist.findTag(ptag); if (plot_iter != plotlist.end()) { plot = *plot_iter; found = true; } } } iter->next(); } app->deleteIterator(iter); } //if the plot does not exist, create it if (!plot) { //put the plot in the active window KMdiChildView *activewin = app->activeWindow(); if (!activewin) { QString windowname = app->newWindow("W1"); activewin = app->findWindow(windowname); } KstViewWindow *viewwindow = dynamic_cast<KstViewWindow*>(activewin); if (viewwindow) { KstTopLevelViewPtr pTLV = viewwindow->view(); plot = pTLV->createObject<Kst2DPlot>(ptag); } } KstEquationPtr eq = new KstEquation(etag, equation, v, true); if (!eq->isValid()) { return false; } KstVCurveList vcurves = kstObjectSubList<KstBaseCurve,KstVCurve>(plot->Curves); KstVCurvePtr vc = new KstVCurve(KST::suggestCurveName(etag, true), eq->vX(), eq->vY(), 0L, 0L, 0L, 0L, color.isValid() ? color : KstColorSequence::next(vcurves,plot->backgroundColor())); KST::dataObjectList.lock().writeLock(); KST::dataObjectList.append(KstDataObjectPtr(eq)); KST::dataObjectList.append(KstDataObjectPtr(vc)); KST::dataObjectList.lock().unlock(); plot->addCurve(KstBaseCurvePtr(vc)); _doc->forceUpdate(); _doc->setModified(); return true; }