File indexing completed on 2024-04-14 15:51:34
0001 /*************************************************************************** 0002 main.cpp - description 0003 ------------------- 0004 begin : Die Mai 15 15:34:19 CEST 2001 0005 copyright : (C) 2001 by Dominik Seichter 0006 email : domseichter@web.de 0007 ***************************************************************************/ 0008 0009 /*************************************************************************** 0010 * * 0011 * This program is free software; you can redistribute it and/or modify * 0012 * it under the terms of the GNU General Public License as published by * 0013 * the Free Software Foundation; either version 2 of the License, or * 0014 * (at your2192 option) any later version. * 0015 * * 0016 ***************************************************************************/ 0017 0018 // Qt includes 0019 #include <QRect> 0020 #include <QtGlobal> 0021 #include <QWidget> 0022 0023 // KDE includes 0024 0025 #include <kaboutdata.h> 0026 0027 #include <kconfig.h> 0028 #include <kmessagebox.h> 0029 0030 #include <klocalizedstring.h> 0031 0032 // Own includes 0033 #include "krenameimpl.h" 0034 0035 // OS includes 0036 #ifndef Q_OS_WIN 0037 #include <unistd.h> 0038 #endif 0039 #include <sys/types.h> 0040 #include <QApplication> 0041 #include <KAboutData> 0042 #include <KCrash> 0043 #include <KLocalizedString> 0044 #include <QCommandLineParser> 0045 #include <QCommandLineOption> 0046 0047 #include "../config-krename.h" 0048 0049 int main(int argc, char *argv[]) 0050 { 0051 QApplication app(argc, argv); 0052 app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); 0053 KLocalizedString::setApplicationDomain("krename"); 0054 0055 KCrash::initialize(); 0056 0057 KAboutData aboutData("krename", i18n("KRename"), VERSION); 0058 aboutData.setShortDescription(i18n( 0059 "KRename is a batch file renamer which can rename a " 0060 "list of files based on a set of expressions.")); 0061 aboutData.setOtherText(i18n( 0062 "If you like KRename you may want to support it. " 0063 "Testing, bug fixes and feature requests are as welcome " 0064 "as financial support (everybody needs money ;). See help files for details.")); 0065 aboutData.setLicense(KAboutLicense::GPL_V3); 0066 aboutData.setCopyrightStatement(i18n("(c) 2001-2012, Dominik Seichter\n")); 0067 aboutData.setHomepage("https://userbase.kde.org/KRename"); 0068 0069 aboutData.addAuthor(i18n("Heiko Becker"), i18n("Current maintainer"), 0070 "heirecka@exherbo.org"); 0071 aboutData.addAuthor(i18n("Dominik Seichter"), i18n("Developer and former maintainer"), "domseichter@web.de", 0072 "https://www.krename.net/"); 0073 aboutData.addAuthor(i18n("Stefan \"Stonki\" Onken"), 0074 i18n("Website, testing, very good ideas and keeping me coding!"), 0075 "support@stonki.de", "https://www.stonki.com/"); 0076 0077 aboutData.addCredit(i18n("Arpad Biro"), i18n("Helped to fix style guide issues and made improvements to user messages."), "biro.arpad@gmail.com"); 0078 aboutData.addCredit(i18n("Trevor Semeniuk"), i18n("Thanks to him for creating RedHat 7.x packages and some other help."), 0079 "semeniuk@ee.ualberta.ca", "http://www.semeniuk.net"); 0080 aboutData.addCredit(i18n("Groult Richard"), i18n("Fixed a bug with startIndex and added the BatchRenamer class\n" 0081 "to his excellent image viewer showimg."), 0082 "rgroult@jalix.org"); 0083 aboutData.addCredit(i18n("Michael Elvers"), i18n("Fixed a bug that caused krename not closing open files."), 0084 "m_elvers@yahoo.com"); 0085 aboutData.addCredit(i18n("Andreas Pour"), i18n("Thanks for his great job at apps.kde.com and help with contributing krename to apps.kde.com."), 0086 "pour@mieterra.com"); 0087 aboutData.addCredit(i18n("Charles Samuels"), i18n("Thanks for noatun and the ID3/Ogg Tag code is based on his noatun modules."), 0088 "charles@kde.org"); 0089 aboutData.addCredit(i18n("Franz Schmid"), i18n("Gave me a good start into writing plugins with his application scribus."), 0090 "Franz.Schmid@altmuehlnet.de", "http://web2.altmuehlnet.de/fschmid/index.html"); 0091 aboutData.addCredit(i18n("Rolf Magnus"), i18n("Parts of the PNG support are copied from his KFile plugin for png support."), 0092 "ramagnus@kde.org"); 0093 aboutData.addCredit(i18n("Michael v.Ostheim"), i18n("Created the Gentoo Ebuild scripts for Krename."), 0094 "MvOstheim@web.de", "http://www.vonostheim.de"); 0095 aboutData.addCredit(i18n("Brandon Low"), i18n("Some GCC 3.1 fixes for Gentoo."), 0096 "lostlogic@gentoo.org"); 0097 aboutData.addCredit(i18n("Per Oyvind Karlsen"), i18n("Thanks for creating the Mandrake RPM"), 0098 "peroyvind@delonic.no"); 0099 aboutData.addCredit(i18n("Vincenzo Reale"), i18n("Italian translation"), "smart2128@baslug.org"); 0100 aboutData.addCredit(i18n("Daniele Medri"), i18n("Italian translation work"), "madrid@linuxmeeting.net"); 0101 aboutData.addCredit(i18n("Stephan Johach"), i18n("Provided a gcc3.x namespace patch"), "lucardus@onlinehome.de"); 0102 aboutData.addCredit(i18n("Michael Zugaro"), i18n("Provided the new preview and move features") , "michael.zugaro@college-de-france.fr"); 0103 aboutData.addCredit(i18n("Rene Gass"), i18n("Fixed problems with the spec file and contributed rpms for every SuSE version you can imagine and is also the new Gentoo maintainer for KRename"), "kde-package@gmx.de"); 0104 aboutData.addCredit(i18n("Mark Ziegler"), i18n("Provided SuSE RPMs and very good suggestions"), "mark.ziegler@rakekniven.de"); 0105 aboutData.addCredit(i18n("Jose Rodriguez"), i18n("Contributed a Spanish translation"), "chmpmi@eresmas.net"); 0106 aboutData.addCredit(i18n("Steven P. Ulrick"), i18n("Provided a RedHat RPM and was big help in improving KRename"), "steve@afolkey2.net"); 0107 aboutData.addCredit(i18n("UTUMI Hirosi"), i18n("Translated KRename to Japanese"), "utuhiro@mx12.freecom.ne.jp"); 0108 aboutData.addCredit(i18n("Nicolas Benoit"), i18n("Translated KRename into French"), "nbenoit@tuxfamily.org"); 0109 aboutData.addCredit(i18n("Krzysztof Pawlak"), i18n("Translated KRename into Polish"), "jmnemonic@gazeta.pl"); 0110 aboutData.addCredit(i18n("Ilya Ivkov"), i18n("Translated KRename into Russian"), "ilya-ivkov@yandex.ru"); 0111 aboutData.addCredit(i18n("Asim Husanovic"), i18n("Translated KRename into Bosnian"), "asim.h@megatel.ba"); 0112 aboutData.addCredit(i18n("Michal Smoczyk"), i18n("Polish Translation"), "msmoczyk@wp.pl"); 0113 aboutData.addCredit(i18n("Pavel Fric"), i18n("Czech Translation"), "pavelfric@seznam.cz"); 0114 aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), 0115 i18nc("EMAIL OF TRANSLATORS", "Your emails")); 0116 0117 aboutData.setDesktopFileName(QStringLiteral("org.kde.krename")); 0118 0119 KAboutData::setApplicationData(aboutData); 0120 QApplication::setWindowIcon(QIcon::fromTheme("krename", QApplication::windowIcon())); 0121 0122 QCommandLineParser parser; 0123 parser.addPositionalArgument(QLatin1String("files"), i18n("Files to be added to the list to be renamed"), i18n("[files...]")); 0124 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("r"), i18n("add folder recursively"), i18n("folder"))); 0125 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("template"), i18n("set a template"))); 0126 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("extension"), i18n("set a template for the file extension"))); 0127 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("use-plugin"), i18n("enable a plugin for use"))); 0128 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("copy"), i18n("copy files to folder or url"), i18n("path or url"))); 0129 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("move"), i18n("move files to folder or url"), i18n("path or url"))); 0130 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("link"), i18n("link files to folder or url"), i18n("path or url"))); 0131 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("start"), i18n("start renaming immediately"))); 0132 parser.addOption(QCommandLineOption(QStringList() << QLatin1String("test"), i18n("start KRename's selftest (developers only)"))); 0133 // This option was never implemented in the KDE4 version: 0134 //parser.addOption(QCommandLineOption(QStringList() << QLatin1String("previewitems"), i18n("only show <num> preview items"), QLatin1String("num"))); 0135 0136 aboutData.setupCommandLine(&parser); 0137 parser.process(app); 0138 aboutData.processCommandLine(&parser); 0139 0140 app.setQuitOnLastWindowClosed(true); 0141 0142 QWidget *krename = KRenameImpl::launch(QRect(0, 0, 0, 0), KRenameFile::List(), &parser); 0143 0144 #ifndef Q_OS_WIN 0145 /* Check if KRename 0146 * was started from root! 0147 */ 0148 unsigned int uid = geteuid(); 0149 if (uid == 0) 0150 KMessageBox::information(krename, i18n( 0151 "<b>Krename was started from root!</b><br>" 0152 "When started from root, Krename may damage your " 0153 "system if you do not know exactly what you are " 0154 "doing!" 0155 ), i18n("Error"), "KrenameRootWarning"); 0156 #endif // Q_OS_WIN 0157 0158 /* 0159 * Activate this warning message for unstable development releases. 0160 */ 0161 /* KMessageBox::sorry( krename, i18n( 0162 "<b>Warning !</b> This is a development release which may cause damage to your files!" 0163 "<br>Make backups before using KRename." )); 0164 */ 0165 return app.exec(); 0166 } 0167