main.cpp 4.96 KB
Newer Older
1 2
/***************************************************************************
    begin                : Mon Feb  4 23:40:41 EST 2002
3
    copyright            : (C) 2002 - 2007 by Scott Wheeler
4
    email                : wheeler@kde.org
5
***************************************************************************/
6 7 8 9 10 11 12 13 14 15

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

Scott Wheeler's avatar
Scott Wheeler committed
16
#include <kuniqueapplication.h>
17 18
#include <kcmdlineargs.h>
#include <kaboutdata.h>
19 20
#include <kconfigbase.h>
#include <kconfig.h>
21 22
#include <klocale.h>
#include <kglobal.h>
23
#include <kconfiggroup.h>
24 25 26

#include "juk.h"

27 28
static const char description[] = I18N_NOOP("Jukebox and music manager for KDE");
static const char scott[]       = I18N_NOOP("Author, chief dork and keeper of the funk");
29
static const char michael[]     = I18N_NOOP("Assistant super-hero, fixer of many things");
30 31 32
static const char daniel[]      = I18N_NOOP("System tray docking, \"inline\" tag editing,\nbug fixes, evangelism, moral support");
static const char tim[]         = I18N_NOOP("GStreamer port");
static const char stefan[]      = I18N_NOOP("Global keybindings support");
33
static const char stephen[]     = I18N_NOOP("Track announcement popups");
34 35
static const char frerich[]     = I18N_NOOP("Automagic track data guessing, bugfixes");
static const char zack[]        = I18N_NOOP("More automagical things, now using MusicBrainz");
36
static const char adam[]        = I18N_NOOP("Co-conspirator in MusicBrainz wizardry");
37
static const char matthias[]    = I18N_NOOP("Friendly, neighborhood aRts guru");
Malcolm Hunter's avatar
Malcolm Hunter committed
38
static const char maks[]        = I18N_NOOP("Making JuK friendlier to people with\nterabytes of music");
39
static const char antonio[]     = I18N_NOOP("DCOP interface");
40
static const char allan[]       = I18N_NOOP("FLAC and MPC support");
Scott Wheeler's avatar
Scott Wheeler committed
41
static const char nathan[]      = I18N_NOOP("Album cover manager");
42
static const char pascal[]      = I18N_NOOP("Gimper of splash screen");
43

44 45
int main(int argc, char *argv[])
{
46
    KAboutData aboutData("juk", 0, ki18n("JuK"),
47
                         "3.2", ki18n(description), KAboutData::License_GPL,
48
                         ki18n("© 2002 - 2008, Scott Wheeler"), KLocalizedString(),
49
                         "http://developer.kde.org/~wheeler/juk.html");
Scott Wheeler's avatar
Scott Wheeler committed
50

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    aboutData.addAuthor(ki18n("Scott Wheeler"), ki18n(scott), "wheeler@kde.org");
    aboutData.addAuthor(ki18n("Michael Pyne"), ki18n(michael), "michael.pyne@kdemail.net");
    aboutData.addCredit(ki18n("Daniel Molkentin"), ki18n(daniel), "molkentin@kde.org");
    aboutData.addCredit(ki18n("Tim Jansen"), ki18n(tim), "tim@tjansen.de");
    aboutData.addCredit(ki18n("Stefan Asserhäll"), ki18n(stefan), "stefan.asserhall@telia.com");
    aboutData.addCredit(ki18n("Stephen Douglas"), ki18n(stephen), "stephen_douglas@yahoo.com");
    aboutData.addCredit(ki18n("Frerich Raabe"), ki18n(frerich), "raabe@kde.org");
    aboutData.addCredit(ki18n("Zack Rusin"), ki18n(zack), "zack@kde.org");
    aboutData.addCredit(ki18n("Adam Treat"), ki18n(adam), "manyoso@yahoo.com");
    aboutData.addCredit(ki18n("Matthias Kretz"), ki18n(matthias), "kretz@kde.org");
    aboutData.addCredit(ki18n("Maks Orlovich"), ki18n(maks), "maksim@kde.org");
    aboutData.addCredit(ki18n("Antonio Larrosa Jimenez"), ki18n(antonio), "larrosa@kde.org");
    aboutData.addCredit(ki18n("Allan Sandfeld Jensen"), ki18n(allan), "kde@carewolf.com");
    aboutData.addCredit(ki18n("Nathan Toone"), ki18n(nathan), "nathan@toonetown.com");
    aboutData.addCredit(ki18n("Pascal Klein"), ki18n(pascal), "4pascal@tpg.com.au");
66 67

    KCmdLineArgs::init(argc, argv, &aboutData);
68 69 70

    KCmdLineOptions options;
    options.add("+[file(s)]", ki18n("File(s) to open"));
71
    KCmdLineArgs::addCmdLineOptions(options);
72

73
    KUniqueApplication::addCmdLineOptions();
74

75
    KUniqueApplication a;
76

77 78 79 80 81
    // If this flag gets set then JuK will quit if you click the cover on the track
    // announcement popup when JuK is only in the system tray (the systray has no widget).

    a.setQuitOnLastWindowClosed(false);

82 83
    // Here we do some DCOP locking of sorts to prevent incoming DCOP calls
    // before JuK has finished its initialization.
84

David Faure's avatar
David Faure committed
85
#ifdef __GNUC__
Laurent Montel's avatar
Laurent Montel committed
86
#warning "kde4: port it"
David Faure's avatar
David Faure committed
87
#endif
Laurent Montel's avatar
Laurent Montel committed
88
    //a.dcopClient()->suspend();
89
    JuK *juk = new JuK;
Laurent Montel's avatar
Laurent Montel committed
90
    //a.dcopClient()->resume();
91

92 93
    bool startDocked;

94
    KConfigGroup config(KGlobal::config(), "Settings");
95
    startDocked = config.readEntry("StartDocked", false);
96

97
    if(!startDocked)
98
        juk->show();
99

100
    return a.exec();
101
}
102

103
// vim: set et sw=4 tw=0 sta fileencoding=utf8: