diff --git a/libk3b/projects/datacd/k3bisooptions.cpp b/libk3b/projects/datacd/k3bisooptions.cpp index dd3351f0e..734e977a2 100644 --- a/libk3b/projects/datacd/k3bisooptions.cpp +++ b/libk3b/projects/datacd/k3bisooptions.cpp @@ -1,226 +1,226 @@ /* * * Copyright (C) 2003-2010 Sebastian Trueg * * This file is part of the K3b project. * Copyright (C) 1998-2010 Sebastian Trueg * * 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. * See the file "COPYING" for the exact licensing terms. */ #include "k3bisooptions.h" #include "k3bcore.h" #include "k3bversion.h" #include "k3bglobals.h" #include "k3b_i18n.h" #include #include #include K3b::IsoOptions::IsoOptions() : m_defaultVolumeIDSet(false), m_volumeIDSet(false), - m_applicationID( QString("K3B THE CD KREATOR (C) 1998-2010 SEBASTIAN TRUEG AND MICHAL MALEK") ), + m_applicationID( QString("K3B THE CD KREATOR (C) 1998-2017 SEBASTIAN TRUEG, MICHAL MALEK AND LESLIE ZHAI") ), m_systemId( K3b::systemName().toUpper() ), m_whiteSpaceTreatmentReplaceString( "_" ) { m_createRockRidge = true; m_createJoliet = true; m_createUdf = false; m_ISOallowLowercase = false; m_ISOallowPeriodAtBegin = false; m_ISOallow31charFilenames = true; m_ISOomitVersionNumbers = false; m_ISOomitTrailingPeriod = false; m_ISOmaxFilenameLength = false; m_ISOrelaxedFilenames = false; m_ISOnoIsoTranslate = false; m_ISOallowMultiDot = false; m_ISOuntranslatedFilenames = false; m_followSymbolicLinks = false; m_createTRANS_TBL = false; m_hideTRANS_TBL = false; m_jolietLong = true; m_doNotCacheInodes = true; m_doNotImportSession = false; m_isoLevel = 3; m_discardSymlinks = false; m_discardBrokenSymlinks = false; m_preserveFilePermissions = false; m_whiteSpaceTreatment = noChange; m_volumeSetSize = 1; m_volumeSetNumber = 1; } const QString& K3b::IsoOptions::volumeID() const { if (m_volumeIDSet) return m_volumeID; else { if (!m_defaultVolumeIDSet) { m_defaultVolumeIDSet = true; m_defaultVolumeID = i18nc( "This is the default volume identifier of a data project created by K3b. " "The string should not be longer than 16 characters to avoid warnings regarding " "Joiliet extensions which induce this restriction.", "K3b data project" ); } return m_defaultVolumeID; } } void K3b::IsoOptions::save( KConfigGroup c, bool saveVolumeDesc ) { if( saveVolumeDesc ) { c.writeEntry( "volume id", volumeID() ); c.writeEntry( "application id", m_applicationID ); c.writeEntry( "preparer", m_preparer ); c.writeEntry( "publisher", m_publisher ); c.writeEntry( "system id", m_systemId ); c.writeEntry( "volume set id", m_volumeSetId ); c.writeEntry( "volume set size", m_volumeSetSize ); c.writeEntry( "volume set number", m_volumeSetNumber ); c.writeEntry( "abstract file", m_abstractFile ); c.writeEntry( "copyright file", m_copyrightFile ); c.writeEntry( "bibliograph file", m_bibliographFile ); } c.writeEntry( "rock_ridge", m_createRockRidge ); c.writeEntry( "joliet", m_createJoliet ); c.writeEntry( "udf", m_createUdf ); // save iso-level c.writeEntry( "iso_level", m_isoLevel ); c.writeEntry( "create TRANS_TBL", m_createTRANS_TBL ); c.writeEntry( "hide TRANS_TBL", m_hideTRANS_TBL ); c.writeEntry( "untranslated filenames", m_ISOuntranslatedFilenames ); c.writeEntry( "allow 31 character filenames", m_ISOallow31charFilenames ); c.writeEntry( "max ISO filenames", m_ISOmaxFilenameLength ); c.writeEntry( "allow beginning period", m_ISOallowPeriodAtBegin ); c.writeEntry( "relaxed filenames", m_ISOrelaxedFilenames ); c.writeEntry( "omit version numbers", m_ISOomitVersionNumbers ); c.writeEntry( "omit trailing period", m_ISOomitTrailingPeriod ); c.writeEntry( "no iSO translation", m_ISOnoIsoTranslate ); c.writeEntry( "allow multiple dots", m_ISOallowMultiDot ); c.writeEntry( "allow lowercase filenames", m_ISOallowLowercase ); c.writeEntry( "follow symbolic links", m_followSymbolicLinks ); c.writeEntry( "joliet long", m_jolietLong ); c.writeEntry( "do not cache inodes", m_doNotCacheInodes ); c.writeEntry( "do not import last session", m_doNotImportSession ); // save whitespace-treatment switch( m_whiteSpaceTreatment ) { case strip: c.writeEntry( "white_space_treatment", "strip" ); break; case extended: c.writeEntry( "white_space_treatment", "extended" ); break; case replace: c.writeEntry( "white_space_treatment", "replace" ); break; default: c.writeEntry( "white_space_treatment", "noChange" ); } c.writeEntry( "whitespace replace string", m_whiteSpaceTreatmentReplaceString ); c.writeEntry( "discard symlinks", discardSymlinks() ); c.writeEntry( "discard broken symlinks", discardBrokenSymlinks() ); c.writeEntry( "preserve file permissions", m_preserveFilePermissions ); } K3b::IsoOptions K3b::IsoOptions::load( const KConfigGroup& c, bool loadVolumeDesc ) { K3b::IsoOptions options; if( loadVolumeDesc ) { options.setVolumeID( c.readEntry( "volume id", options.volumeID() ) ); options.setApplicationID( c.readEntry( "application id", options.applicationID() ) ); options.setPreparer( c.readEntry( "preparer", options.preparer() ) ); options.setPublisher( c.readEntry( "publisher", options.publisher() ) ); options.setSystemId( c.readEntry( "system id", options.systemId() ) ); options.setVolumeSetId( c.readEntry( "volume set id", options.volumeSetId() ) ); options.setVolumeSetSize( c.readEntry( "volume set size", options.volumeSetSize() ) ); options.setVolumeSetNumber( c.readEntry( "volume set number", options.volumeSetNumber() ) ); options.setAbstractFile( c.readEntry( "abstract file", options.abstractFile() ) ); options.setCoprightFile( c.readEntry( "copyright file", options.copyrightFile() ) ); options.setBibliographFile( c.readEntry( "bibliograph file", options.bibliographFile() ) ); } options.setCreateRockRidge( c.readEntry( "rock_ridge", options.createRockRidge() ) ); options.setCreateJoliet( c.readEntry( "joliet", options.createJoliet() ) ); options.setCreateUdf( c.readEntry( "udf", options.createUdf() ) ); options.setISOLevel( c.readEntry( "iso_level", options.ISOLevel() ) ); options.setCreateTRANS_TBL( c.readEntry( "create TRANS_TBL", options.createTRANS_TBL() ) ); options.setHideTRANS_TBL( c.readEntry( "hide TRANS_TBL", options.hideTRANS_TBL() ) ); // // We need to use the memeber variables here instead of the access methods // which do not return the actual value of the member variables but the value // representing the use in mkisofs (i.e. ISOomitVersionNumbers is also enabled // if ISOmaxFilenameLength is enabled. // options.setISOuntranslatedFilenames( c.readEntry( "untranslated filenames", options.m_ISOuntranslatedFilenames ) ); options.setISOallow31charFilenames( c.readEntry( "allow 31 character filenames", options.m_ISOallow31charFilenames ) ); options.setISOmaxFilenameLength( c.readEntry( "max ISO filenames", options.m_ISOmaxFilenameLength ) ); options.setISOallowPeriodAtBegin( c.readEntry( "allow beginning period", options.m_ISOallowPeriodAtBegin ) ); options.setISOrelaxedFilenames( c.readEntry( "relaxed filenames", options.m_ISOrelaxedFilenames ) ); options.setISOomitVersionNumbers( c.readEntry( "omit version numbers", options.m_ISOomitVersionNumbers ) ); options.setISOnoIsoTranslate( c.readEntry( "no iSO translation", options.m_ISOnoIsoTranslate ) ); options.setISOallowMultiDot( c.readEntry( "allow multiple dots", options.m_ISOallowMultiDot ) ); options.setISOallowLowercase( c.readEntry( "allow lowercase filenames", options.m_ISOallowLowercase ) ); options.setISOomitTrailingPeriod( c.readEntry( "omit trailing period", options.m_ISOomitTrailingPeriod ) ); options.setFollowSymbolicLinks( c.readEntry( "follow symbolic links", options.m_followSymbolicLinks ) ); options.setJolietLong( c.readEntry( "joliet long", options.jolietLong() ) ); options.setDoNotCacheInodes( c.readEntry( "do not cache inodes", options.doNotCacheInodes() ) ); options.setDoNotImportSession( c.readEntry( "no not import last session", options.doNotImportSession() ) ); QString w = c.readEntry( "white_space_treatment", "noChange" ); if( w == "replace" ) options.setWhiteSpaceTreatment( replace ); else if( w == "strip" ) options.setWhiteSpaceTreatment( strip ); else if( w == "extended" ) options.setWhiteSpaceTreatment( extended ); else options.setWhiteSpaceTreatment( noChange ); options.setWhiteSpaceTreatmentReplaceString( c.readEntry( "whitespace replace string", options.whiteSpaceTreatmentReplaceString() ) ); options.setDiscardSymlinks( c.readEntry("discard symlinks", options.discardSymlinks() ) ); options.setDiscardBrokenSymlinks( c.readEntry("discard broken symlinks", options.discardBrokenSymlinks() ) ); options.setPreserveFilePermissions( c.readEntry( "preserve file permissions", options.preserveFilePermissions() ) ); return options; } K3b::IsoOptions K3b::IsoOptions::defaults() { // let the constructor create defaults return K3b::IsoOptions(); } diff --git a/src/main.cpp b/src/main.cpp index 3ce02324c..876a5dfaf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,142 +1,143 @@ /* * * * This file is part of the K3b project. * Copyright (C) 1998-2009 Sebastian Trueg * * 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. * See the file "COPYING" for the exact licensing terms. */ #include "k3bapplication.h" #include #include #include #ifdef __clang__ #include #endif int main( int argc, char* argv[] ) { K3b::Application app( argc, argv ); KAboutData aboutData( "k3b", i18n("K3b"), LIBK3B_VERSION, i18n("

K3b is a full-featured CD/DVD/Blu-ray burning and ripping application.
" "It supports a variety of project types as well as copying of optical media, " "burning of different types of images, and ripping Audio CDs, Video CDs, and " "Video DVDs.
" "Its convenient user interface is targeted at all audiences, trying " "to be as simple as possible for novice users while also providing all features " "an advanced user might need."), KAboutLicense::GPL, i18n("Copyright © 1998–2017 K3b authors"), QString(), i18n("http://www.k3b.org" ) ); + aboutData.setOrganizationDomain("kde"); aboutData.addAuthor(i18n("Leslie Zhai"), i18n("Maintainer"), "lesliezhai@llvm.org.cn"); aboutData.addAuthor(i18n("Michał Małek"),i18n("Maintainer and current lead Developer"), "michalm@jabster.pl"); aboutData.addAuthor(i18n("Sebastian Trüg"),i18n("Main developer"), "trueg@k3b.org"); aboutData.addAuthor(i18n("Christian Kvasny"),i18n("Video CD Project and Video CD ripping"), "chris@k3b.org"); aboutData.addAuthor(i18n("Montel Laurent"), i18n("Initial port to KDE Platform 4"), "montel@kde.org"); aboutData.addAuthor( i18n("Ralf Habacker"), i18n( "Windows port" ), "ralf.habacker@freenet.de" ); aboutData.addCredit(i18n("Klaus-Dieter Krannich"), i18n("Advanced Cdrdao integration"), "kd@k3b.org" ); aboutData.addCredit(i18n("Thomas Froescher"), i18n("Video DVD ripping and video encoding in pre-1.0 versions."), "tfroescher@k3b.org"); aboutData.addCredit(i18n("Alexis Younes aka Ayo"), i18n("For his bombastic artwork."), "73lab@free.fr" ); aboutData.addCredit(i18n("Christoph Thielecke"), i18n("For extensive testing and the first German translation."), "crissi99@gmx.de"); aboutData.addCredit(i18n("Andy Polyakov"), i18n("For the great dvd+rw-tools and the nice cooperation."), "appro@fy.chalmers.se" ); aboutData.addCredit(i18n("Roberto De Leo"), i18n("For the very cool eMovix package and his accommodating work."), "peggish@users.sf.net" ); aboutData.addCredit(i18n("John Steele Scott"), i18n("For the flac decoding plugin."), "toojays@toojays.net" ); aboutData.addCredit(i18n("György Szombathelyi"), i18n("For the very useful isofslib."), "gyurco@users.sourceforge.net" ); aboutData.addCredit(i18n("Erik de Castro Lopo"), i18n("For libsamplerate which is used for generic resampling in the audio decoder framework."), "erikd@mega-nerd.com" ); aboutData.addCredit(i18n("Jakob Petsovits"), i18n("For the very cool conditional audio ripping pattern."), "jpetso@gmx.at" ); aboutData.addCredit(i18n("Heiner Eichmann"), i18n("For his work on the BSD port and some great patches."), "h.eichmann@gmx.de" ); aboutData.addCredit(i18n("Adriaan De Groot"), i18n("For his work on the BSD port."), "" ); aboutData.addCredit(i18n("Thiago Macieira"), i18n("For his help with the many invalid k3b entries on bugs.kde.org."), "thiago@kde.org" ); aboutData.addCredit(i18n("Marcel Dierkes"), i18n("For the great K3b icon eyecandy."), "marcel.dierkes@gmx.de" ); aboutData.addCredit(i18n("Christoph Burger-Scheidlin"), i18n("For his neverending help cleaning out the K3b bug database."), "andersin@freenet.de" ); aboutData.addCredit( i18n("Robert Wadley"), i18n( "Rob created a great theme and came up with the idea for transparent themes." ), "rob@robntina.fastmail.us" ); aboutData.addCredit( i18n("Dmitry Novikov"), i18n( "For the amazing K3b 1.0 theme." ), "quant@trktvs.ru" ); aboutData.addCredit( i18n("Jeremy C. Andrus"), i18n( "First Windows port of libk3bdevice." ), "jeremy@jeremya.com" ); KAboutData::setApplicationData( aboutData ); QCommandLineParser* parser = new QCommandLineParser; parser->addHelpOption(); parser->addVersionOption(); parser->addPositionalArgument( "urls", i18n("file(s) to open"), "[urls...]" ); parser->addOption( QCommandLineOption( "data", i18n("Create a new data CD project and add all given files") ) ); parser->addOption( QCommandLineOption( "audiocd", i18n("Create a new audio CD project and add all given files") ) ); parser->addOption( QCommandLineOption( "videocd", i18n("Create a new video CD project and add all given files") ) ); parser->addOption( QCommandLineOption( "mixedcd", i18n("Create a new mixed mode CD project and add all given files") ) ); parser->addOption( QCommandLineOption( "emovix", i18n("Create a new eMovix CD project and add all given files") ) ); parser->addOption( QCommandLineOption( "videodvd", i18n("Create a new Video DVD project and add all given files") ) ); parser->addOption( QCommandLineOption( "burn", i18n("Open the project burn dialog for the current project") ) ); parser->addOption( QCommandLineOption( "copy", i18n("Open the copy dialog, optionally specify the source device"), "device" ) ); parser->addOption( QCommandLineOption( "image", i18n("Write an image to a CD or DVD"), "url" ) ); parser->addOption( QCommandLineOption( "format", i18n("Format a rewritable medium"), "device" ) ); parser->addOption( QCommandLineOption( "cddarip", i18n("Extract Audio tracks digitally (+encoding)"), "device" ) ); parser->addOption( QCommandLineOption( "videodvdrip", i18n("Rip Video DVD Titles (+transcoding)"), "device" ) ); parser->addOption( QCommandLineOption( "videocdrip", i18n("Rip Video CD Tracks"), "device" ) ); parser->addOption( QCommandLineOption( "lang", i18n("Set the GUI language"), "language" ) ); parser->addOption( QCommandLineOption( "nosplash", i18n("Disable the splash screen") ) ); parser->addOption( QCommandLineOption( "device", i18n("Set the device to be used for new projects. (This option has no effect: " "its main purpose is to enable handling of empty media from the KDE Media Manager.)" ), "device" ) ); aboutData.setupCommandLine( parser ); parser->process( app ); aboutData.processCommandLine( parser ); if( parser->isSet("lang") ) { QLocale::setDefault( QLocale( parser->value("lang") ) ); } app.init( parser ); #ifdef __clang__ if (argc > 2) __sanitizer_print_memory_profile(atoi(argv[1]), atoi(argv[2])); #endif return app.exec(); }