diff options
Diffstat (limited to 'src/gui/outputmethoddlg.cpp')
-rw-r--r-- | src/gui/outputmethoddlg.cpp | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/src/gui/outputmethoddlg.cpp b/src/gui/outputmethoddlg.cpp new file mode 100644 index 0000000..bcb189e --- /dev/null +++ b/src/gui/outputmethoddlg.cpp @@ -0,0 +1,162 @@ +/*************************************************************************** + * Copyright (C) 2003-2004 by David Saxton * + * david@bluehaze.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + ***************************************************************************/ + +#include "docmanager.h" +#include "filemetainfo.h" +#include "textdocument.h" +#include "outputmethodwidget.h" +#include "outputmethoddlg.h" +#include "microlibrary.h" +#include "microselectwidget.h" +#include "projectmanager.h" + +#include <kcombobox.h> +#include <kconfigskeleton.h> +#include <kdebug.h> +#include <ktempfile.h> +#include <kurlrequester.h> + +#include <qcheckbox.h> +#include <qfile.h> +#include <qradiobutton.h> + + +//BEGIN class OutputMethodInfo +OutputMethodInfo::OutputMethodInfo() +{ + m_method = Method::Direct; + m_bAddToProject = false; +} + + +void OutputMethodInfo::initialize( OutputMethodDlg * dlg ) +{ + if ( dlg->m_widget->displayDirectCheck->isChecked() ) + { + m_method = Method::Direct; + KTempFile f( QString::null, dlg->m_outputExtension ); + f.close(); + m_outputFile = f.name(); + m_bAddToProject = false; + } + + else + { + if ( dlg->m_widget->loadFileCheck->isChecked() ) + m_method = Method::SaveAndLoad; + + else + m_method = Method::SaveAndForget; + + m_outputFile = dlg->m_widget->outputFileURL->url(); + m_bAddToProject = dlg->m_widget->addToProjectCheck->isChecked(); + } + + m_picID = dlg->m_widget->m_pMicroSelect->micro(); +} +//END class OutputMethodInfo + + + +//BEGIN class OutputMethodDlg +OutputMethodDlg::OutputMethodDlg( const QString &caption, const KURL & inputURL, bool showPICSelect, QWidget *parent, const char *name ) + : KDialogBase( parent, name, true, caption, Ok|Cancel ) +{ + m_inputURL = inputURL; + m_bAccepted = false; + m_widget = new OutputMethodWidget(this); + + m_widget->addToProjectCheck->setEnabled( ProjectManager::self()->currentProject() ); + + if (!showPICSelect) + { + m_widget->m_pMicroSelect->hide(); + m_widget->adjustSize(); + } + + fileMetaInfo()->initializeFromMetaInfo( m_inputURL, this ); + + setMainWidget(m_widget); +} + + +OutputMethodDlg::~OutputMethodDlg() +{ +} + + +void OutputMethodDlg::setOutputExtension( const QString & extension ) +{ + m_outputExtension = extension; +} + + +void OutputMethodDlg::setFilter( const QString &filter ) +{ + m_widget->outputFileURL->setFilter(filter); +} + + +void OutputMethodDlg::setMethod( OutputMethodInfo::Method::Type m ) +{ + switch (m) + { + case OutputMethodInfo::Method::Direct: + m_widget->displayDirectCheck->setChecked(true); + break; + + case OutputMethodInfo::Method::SaveAndForget: + m_widget->saveFileCheck->setChecked(true); + m_widget->loadFileCheck->setChecked(false); + break; + + case OutputMethodInfo::Method::SaveAndLoad: + m_widget->saveFileCheck->setChecked(true); + m_widget->loadFileCheck->setChecked(true); + break; + }; +} + + +void OutputMethodDlg::setPicID( const QString & id ) +{ + m_widget->m_pMicroSelect->setMicro(id); +} + + +void OutputMethodDlg::setOutputFile( const KURL & out ) +{ + m_widget->outputFileURL->setURL(out.prettyURL()); +} + + +void OutputMethodDlg::accept() +{ + m_bAccepted = true; + m_outputMethodInfo.initialize(this); + fileMetaInfo()->grabMetaInfo( m_inputURL, this ); + hide(); +} + + +void OutputMethodDlg::reject() +{ + m_bAccepted = false; +} + + +MicroSelectWidget * OutputMethodDlg::microSelect() const +{ + return m_widget->m_pMicroSelect; +} +//END class OutputMethodDlg + + +#include "outputmethoddlg.moc" |