You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ktechlab/src/gui/outputmethoddlg.cpp

163 lines
3.7 KiB

/***************************************************************************
* 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 <tdeconfigskeleton.h>
#include <kdebug.h>
#include <ktempfile.h>
#include <kurlrequester.h>
#include <tqcheckbox.h>
#include <tqfile.h>
#include <tqradiobutton.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( TQString(), 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 TQString &caption, const KURL & inputURL, bool showPICSelect, TQWidget *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 TQString & extension )
{
m_outputExtension = extension;
}
void OutputMethodDlg::setFilter( const TQString &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 TQString & 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"