Fix session-open after selecting new, template, then back
[ardour.git] / gtk2_ardour / about.cc
index 3c8ff3ef05e42ccc252ab85d75f0822db66d8a1d..fb706681ee1960582e531781c50826117eb8ea87 100644 (file)
 #include <ctime>
 #include <cstdlib>
 
+#include "pbd/error.h"
 #include "pbd/file_utils.h"
+#include "pbd/openuri.h"
 
+#include "ardour/profile.h"
 #include "ardour/revision.h"
 #include "ardour/filesystem_paths.h"
 
 #include "about.h"
 #include "configinfo.h"
 #include "rgb_macros.h"
-#include "ardour_ui.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 #ifdef WAF_BUILD
 #include "gtk2ardour-version.h"
@@ -122,6 +124,7 @@ static const gchar * paypal_xpm[] = {
 #endif
 
 static const char* authors[] = {
+       N_("Fons Adriaensen"),
        N_("Brian Ahr"),
        N_("John Anderson"),
        N_("Marcus Andersson"),
@@ -130,6 +133,7 @@ static const char* authors[] = {
        N_("Ben Bell"),
        N_("Sakari Bergen"),
        N_("Christian Borss"),
+       N_("Thomas Brand"),
        N_("Chris Cannam"),
        N_("Jeremy Carter"),
        N_("Jesse Chappell"),
@@ -143,6 +147,7 @@ static const char* authors[] = {
        N_("Dave Flick"),
        N_("Hans Fugal"),
        N_("Robin Gareus"),
+       N_("Nil Geisweiller"),
        N_("Christopher George"),
        N_("Chris Goddard"),
        N_("J. Abelardo Gutierrez"),
@@ -166,18 +171,27 @@ static const char* authors[] = {
        N_("Nick Mainsbridge"),
        N_("Tim Mayberry"),
        N_("Doug Mclain"),
+       N_("Johannes Mueller"),
        N_("Todd Naugle"),
+       N_("André Nusser"),
+       N_("Bent Bisballe Nyeng"),
        N_("Jack O'Quin"),
+       N_("Len Ovens"),
+       N_("Pavel Potocek"),
        N_("Nimal Ratnayake"),
+       N_("Julien Rivaud"),
        N_("David Robillard"),
+       N_("Julien Roger"),
        N_("Taybin Rutkin"),
        N_("Andreas Ruge"),
        N_("Sampo Savolainen"),
        N_("Rodrigo Severo"),
+       N_("Daniel Sheeler"),
        N_("Per Sigmond"),
        N_("Lincoln Spiteri"),
        N_("Mike Start"),
        N_("Mark Stewart"),
+       N_("Nathan Stewart"),
        N_("Roland Stigge"),
        N_("Petter Sundlöf"),
        N_("Mike Täht"),
@@ -189,7 +203,7 @@ static const char* authors[] = {
 };
 
 static const char* translators[] = {
-       N_("French:\n\tAlain Fréhel <alain.frehel@free.fr>\n\tChristophe Combelles <ccomb@free.fr>\n\tMartin Blanchard\n\tRomain Arnaud <roming22@gmail.com>\n"),
+       N_("French:\n\tAlain Fréhel <alain.frehel@free.fr>\n\tChristophe Combelles <ccomb@free.fr>\n\tMartin Blanchard\n\tRomain Arnaud <roming22@gmail.com>\n\tOlivier Humbert <trebmuh@tuxfamily.org>\n"),
        N_("German:\n\tKarsten Petersen <kapet@kapet.de>\
 \n\tSebastian Arnold <mail@sebastian-arnold.net>\
 \n\tRobert Schwede <schwede@ironshark.com>\
@@ -210,6 +224,7 @@ static const char* translators[] = {
        N_("Czech:\n\t Pavel Fric <pavelfric@seznam.cz>\n"),
        N_("Norwegian:\n\t Eivind Ødegård\n"),
        N_("Chinese:\n\t Rui-huai Zhang <zrhzrh@mail.ustc.edu.cn>\n"),
+       N_("Japanese:\n\t Hiroki Inagaki <hiroki.ingk@gmail.com>\n"),
        0
 };
 
@@ -574,8 +589,9 @@ About::About ()
        std::string splash_file;
 
        Searchpath spath(ardour_data_search_path());
+       spath.add_subdirectory_to_paths ("resources");
 
-       if (find_file (spath, "splash.png", splash_file)) {
+       if (find_file (spath, PROGRAM_NAME "-splash.png", splash_file)) {
                set_logo (Gdk::Pixbuf::create_from_file (splash_file));
        } else {
                error << "Could not find splash file" << endmsg;
@@ -588,15 +604,40 @@ About::About ()
                t += ' ';
        }
 
+#if defined __x86_64__ || defined _M_X64
+       const std::string cpu_arch = _("Intel 64-bit");
+#elif defined __i386__  || defined _M_IX86
+       const std::string cpu_arch = _("Intel 32-bit");
+#elif defined __ppc__ && defined  __LP64__
+       const std::string cpu_arch = _("PowerPC 64-bit");
+#elif defined __ppc__
+       const std::string cpu_arch = _("PowerPC 32-bit");
+#elif defined  __LP64__
+       const std::string cpu_arch = _("64-bit");
+#else
+       const std::string cpu_arch = _("32-bit"); // ARM, ALPHA,..
+#endif
+       std::string codename = CODENAME;
+       if (ARDOUR::Profile->get_mixbus() || ARDOUR::Profile->get_trx()) {
+               codename = "";
+       }
+
+#ifndef NDEBUG
+       const std::string suffix = _(" - debug");
+#else
+       const std::string suffix = "";
+#endif
+
        set_translator_credits (t);
-       set_copyright (_("Copyright (C) 1999-2015 Paul Davis\n"));
+       set_copyright (_("Copyright (C) 1999-2017 Paul Davis\n"));
        set_license (gpl);
        set_name (X_("Ardour"));
        set_website (X_("http://ardour.org/"));
        set_website_label (_("http://ardour.org/"));
-       set_version ((string_compose(_("%1%2\n(built from revision %3)"),
-                                    VERSIONSTRING, CODENAME,
-                                    revision)));
+       set_version ((string_compose(_("%1%2\n(rev %3)\n%4%5"),
+                                    VERSIONSTRING,
+                                    codename,
+                                    revision, cpu_arch, suffix)));
 
        Gtk::Button* config_button = manage (new Button (_("Config")));
 
@@ -608,6 +649,7 @@ About::About ()
        if (btn) {
                btn->signal_clicked().connect(sigc::mem_fun(static_cast<Gtk::Window*>(this), &Gtk::Window::hide));
        }
+       set_url_hook (sigc::ptr_fun(&About::launch_homepage));
 }
 
 About::~About ()
@@ -626,3 +668,8 @@ About::show_config_info ()
        config_info->hide ();
 }
 
+void
+About::launch_homepage (AboutDialog& /* about */, const Glib::ustring& website_url)
+{
+       PBD::open_uri (website_url);
+}