Warning, file /multimedia/k3b/libk3b/projects/k3bdoc.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "k3bdoc.h" 0008 #include "k3bglobals.h" 0009 #include "k3bdevice.h" 0010 #include "k3bmsf.h" 0011 #include "k3bcore.h" 0012 #include "k3bdevicemanager.h" 0013 #include "k3b_i18n.h" 0014 0015 #include <QDebug> 0016 #include <QString> 0017 #include <QDomElement> 0018 #include <QWidget> 0019 0020 0021 K3b::Doc::Doc( QObject* parent ) 0022 : QObject( parent ), 0023 m_modified(false), 0024 m_view(0) 0025 { 0026 connect( this, SIGNAL(changed()), this, SLOT(slotChanged()) ); 0027 } 0028 0029 0030 K3b::Doc::~Doc() 0031 { 0032 } 0033 0034 0035 void K3b::Doc::slotChanged() 0036 { 0037 setModified( true ); 0038 emit changed( this ); 0039 } 0040 0041 0042 void K3b::Doc::setModified( bool m ) 0043 { 0044 if( m != m_modified ) { 0045 m_modified = m; 0046 if( m ) 0047 emit changed(); 0048 } 0049 } 0050 0051 0052 void K3b::Doc::setDummy( bool b ) 0053 { 0054 m_dummy = b; 0055 } 0056 0057 void K3b::Doc::setSpeed( int speed ) 0058 { 0059 m_speed = speed; 0060 } 0061 0062 void K3b::Doc::setBurner( K3b::Device::Device* dev ) 0063 { 0064 m_burner = dev; 0065 } 0066 0067 0068 void K3b::Doc::addUrl( const QUrl& url ) 0069 { 0070 addUrls( QList<QUrl>() << url ); 0071 } 0072 0073 0074 void K3b::Doc::setURL( const QUrl& url ) 0075 { 0076 doc_url = url; 0077 0078 emit changed(); 0079 } 0080 0081 const QUrl& K3b::Doc::URL() const 0082 { 0083 return doc_url; 0084 } 0085 0086 0087 QString K3b::Doc::name() const 0088 { 0089 return URL().toLocalFile().section( '/', -1 ); 0090 } 0091 0092 0093 bool K3b::Doc::newDocument() 0094 { 0095 setModified( false ); 0096 0097 m_copies = 1; 0098 m_burner = 0; 0099 m_onTheFly = true; 0100 m_speed = 0; // Auto 0101 m_onlyCreateImages = false; 0102 m_removeImages = true; 0103 m_dummy = false; 0104 m_writingApp = K3b::WritingAppAuto; 0105 m_writingMode = K3b::WritingModeAuto; 0106 m_saved = false; 0107 0108 return true; 0109 } 0110 0111 0112 bool K3b::Doc::saveGeneralDocumentData( QDomElement* part ) 0113 { 0114 QDomDocument doc = part->ownerDocument(); 0115 QDomElement mainElem = doc.createElement( "general" ); 0116 0117 QDomElement propElem = doc.createElement( "writing_mode" ); 0118 switch( writingMode() ) { 0119 case K3b::WritingModeSao: 0120 propElem.appendChild( doc.createTextNode( "dao" ) ); 0121 break; 0122 case K3b::WritingModeTao: 0123 propElem.appendChild( doc.createTextNode( "tao" ) ); 0124 break; 0125 case K3b::WritingModeRaw: 0126 propElem.appendChild( doc.createTextNode( "raw" ) ); 0127 break; 0128 default: 0129 propElem.appendChild( doc.createTextNode( "auto" ) ); 0130 break; 0131 } 0132 mainElem.appendChild( propElem ); 0133 0134 propElem = doc.createElement( "dummy" ); 0135 propElem.setAttribute( "activated", dummy() ? "yes" : "no" ); 0136 mainElem.appendChild( propElem ); 0137 0138 propElem = doc.createElement( "on_the_fly" ); 0139 propElem.setAttribute( "activated", onTheFly() ? "yes" : "no" ); 0140 mainElem.appendChild( propElem ); 0141 0142 propElem = doc.createElement( "only_create_images" ); 0143 propElem.setAttribute( "activated", onlyCreateImages() ? "yes" : "no" ); 0144 mainElem.appendChild( propElem ); 0145 0146 propElem = doc.createElement( "remove_images" ); 0147 propElem.setAttribute( "activated", removeImages() ? "yes" : "no" ); 0148 mainElem.appendChild( propElem ); 0149 0150 part->appendChild( mainElem ); 0151 0152 return true; 0153 } 0154 0155 0156 bool K3b::Doc::readGeneralDocumentData( const QDomElement& elem ) 0157 { 0158 if( elem.nodeName() != "general" ) 0159 return false; 0160 0161 QDomNodeList nodes = elem.childNodes(); 0162 for( int i = 0; i < nodes.count(); i++ ) { 0163 0164 QDomElement e = nodes.item(i).toElement(); 0165 if( e.isNull() ) 0166 return false; 0167 0168 if( e.nodeName() == "writing_mode") { 0169 QString mode = e.text(); 0170 if( mode == "dao" ) 0171 setWritingMode( K3b::WritingModeSao ); 0172 else if( mode == "tao" ) 0173 setWritingMode( K3b::WritingModeTao ); 0174 else if( mode == "raw" ) 0175 setWritingMode( K3b::WritingModeRaw ); 0176 else 0177 setWritingMode( K3b::WritingModeAuto ); 0178 } 0179 0180 if( e.nodeName() == "dummy") 0181 setDummy( e.attributeNode( "activated" ).value() == "yes" ); 0182 0183 if( e.nodeName() == "on_the_fly") 0184 setOnTheFly( e.attributeNode( "activated" ).value() == "yes" ); 0185 0186 if( e.nodeName() == "only_create_images") 0187 setOnlyCreateImages( e.attributeNode( "activated" ).value() == "yes" ); 0188 0189 if( e.nodeName() == "remove_images") 0190 setRemoveImages( e.attributeNode( "activated" ).value() == "yes" ); 0191 } 0192 0193 0194 return true; 0195 } 0196 0197 0198 K3b::Device::MediaTypes K3b::Doc::supportedMediaTypes() const 0199 { 0200 return K3b::Device::MEDIA_WRITABLE; 0201 } 0202 0203 KIO::filesize_t K3b::Doc::burningSize() const 0204 { 0205 return size(); 0206 } 0207 0208 #include "moc_k3bdoc.cpp"