Files
ThirdParty-6/ParaView-5.0.1/Plugins/pvblot/pqBlotDialog.cxx

148 lines
5.0 KiB
C++

// -*- c++ -*-
/*=========================================================================
Program: Visualization Toolkit
Module: pqBlotDialog.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2009 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
#include "pqBlotDialog.h"
#include "pqApplicationCore.h"
#include "pqFileDialog.h"
#include "pqSettings.h"
#include <QFile>
#include <QtDebug>
#include <QToolBar>
#include "ui_pqBlotDialog.h"
class pqBlotDialog::UI : public Ui::pqBlotDialog { };
//=============================================================================
pqBlotDialog::pqBlotDialog(QWidget *p) : QDialog(p)
{
this->ui = new pqBlotDialog::UI();
this->ui->setupUi(this);
// Create the toolbar
QToolBar *toolbar = new QToolBar(this);
toolbar->setObjectName("toolbar");
this->layout()->setMenuBar(toolbar);
toolbar->addAction(this->ui->actionWireframe);
toolbar->addAction(this->ui->actionSolid);
QObject::connect(this->ui->runScript, SIGNAL(clicked()),
this, SLOT(runScript()));
QObject::connect(this->ui->close, SIGNAL(clicked()),
this, SLOT(accept()));
QObject::connect(this->ui->shellWidget, SIGNAL(executing(bool)),
this->ui->buttons, SLOT(setDisabled(bool)));
pqBlotDialogExecuteAction::connect(this->ui->actionWireframe,
this->ui->shellWidget);
pqBlotDialogExecuteAction::connect(this->ui->actionSolid,
this->ui->shellWidget);
pqApplicationCore::instance()->settings()->restoreState("PVBlotDialog",*this);
}
pqBlotDialog::~pqBlotDialog()
{
pqApplicationCore::instance()->settings()->saveState(*this, "PVBlotDialog");
delete this->ui;
}
//-----------------------------------------------------------------------------
pqServer *pqBlotDialog::activeServer() const
{
return this->ui->shellWidget->activeServer();
}
void pqBlotDialog::setActiveServer(pqServer *server)
{
this->ui->shellWidget->setActiveServer(server);
}
//-----------------------------------------------------------------------------
void pqBlotDialog::open()
{
}
//-----------------------------------------------------------------------------
void pqBlotDialog::open(const QString &filename)
{
this->ui->shellWidget->initialize(filename);
}
//-----------------------------------------------------------------------------
void pqBlotDialog::open(const QStringList &filenames)
{
this->open(filenames[0]);
}
//-----------------------------------------------------------------------------
void pqBlotDialog::runScript()
{
QString filters = tr("BLOT Script (*.blot *.bl);;All files (*)");
pqFileDialog *const dialog = new pqFileDialog(NULL, this,
tr("Run BLOT Script"),
QString(), filters);
dialog->setObjectName("BLOTShellRunScriptDialog");
dialog->setFileMode(pqFileDialog::ExistingFile);
QObject::connect(dialog, SIGNAL(filesSelected(const QStringList &)),
this, SLOT(runScript(const QStringList &)));
dialog->show();
}
//-----------------------------------------------------------------------------
void pqBlotDialog::runScript(const QStringList &files)
{
foreach (QString filename, files)
{
this->ui->shellWidget->executeBlotScript(filename);
}
}
//=============================================================================
pqBlotDialogExecuteAction::pqBlotDialogExecuteAction(QObject *p,
const QString &c)
: QObject(p), Command(c)
{
}
//-----------------------------------------------------------------------------
pqBlotDialogExecuteAction *pqBlotDialogExecuteAction::connect(QAction *action,
pqBlotShell *shell)
{
pqBlotDialogExecuteAction *convert = new pqBlotDialogExecuteAction(
shell, action->text());
QObject::connect(action, SIGNAL(triggered()), convert, SLOT(trigger()));
QObject::connect(convert, SIGNAL(triggered(const QString &)),
shell, SLOT(echoExecuteBlotCommand(const QString &)));
return convert;
}
//-----------------------------------------------------------------------------
void pqBlotDialogExecuteAction::trigger()
{
emit this->triggered(this->Command);
}