enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / gtk2_ardour / about.cc
index 3a0b362bed84eae83e80e60d67565b02ba93e5b1..72bccfd2d43008ff53b7c9a37b5fdda4fe7051f3 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/version.h"
 #include "ardour/filesystem_paths.h"
 
-#include "utils.h"
-#include "version.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"
+#endif
 
 using namespace Gtk;
 using namespace Gdk;
@@ -46,6 +48,10 @@ using namespace std;
 using namespace ARDOUR;
 using namespace PBD;
 
+#ifndef CODENAME
+#define CODENAME ""
+#endif
+
 #ifdef WITH_PAYMENT_OPTIONS
 
 /* XPM */
@@ -118,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"),
@@ -127,16 +134,19 @@ static const char* authors[] = {
        N_("Sakari Bergen"),
        N_("Christian Borss"),
        N_("Chris Cannam"),
+       N_("Jeremy Carter"),
        N_("Jesse Chappell"),
        N_("Thomas Charbonnel"),
        N_("Sam Chessman"),
        N_("André Colomb"),
        N_("Paul Davis"),
        N_("Gerard van Dongen"),
+       N_("John Emmas"),
        N_("Colin Fletcher"),
        N_("Dave Flick"),
        N_("Hans Fugal"),
        N_("Robin Gareus"),
+       N_("Nil Geisweiller"),
        N_("Christopher George"),
        N_("Chris Goddard"),
        N_("J. Abelardo Gutierrez"),
@@ -152,6 +162,7 @@ static const char* authors[] = {
        N_("Armand Klenk"),
        N_("Julien de Kozak"),
        N_("Matt Krai"),
+       N_("Georg Krause"),
        N_("Nick Lanham"),
        N_("Colin Law"),
        N_("Joshua Leach"),
@@ -159,9 +170,15 @@ static const char* authors[] = {
        N_("Nick Mainsbridge"),
        N_("Tim Mayberry"),
        N_("Doug Mclain"),
+       N_("Todd Naugle"),
+       N_("André Nusser"),
+       N_("Bent Bisballe Nyeng"),
        N_("Jack O'Quin"),
+       N_("Pavel Potocek"),
        N_("Nimal Ratnayake"),
+       N_("Julien Rivaud"),
        N_("David Robillard"),
+       N_("Julien Roger"),
        N_("Taybin Rutkin"),
        N_("Andreas Ruge"),
        N_("Sampo Savolainen"),
@@ -175,6 +192,8 @@ static const char* authors[] = {
        N_("Mike Täht"),
        N_("Roy Vegard"),
        N_("Thorsten Wilms"),
+       N_("Damien Zammit"),
+       N_("Grygorii Zharun"),
        0
 };
 
@@ -565,7 +584,7 @@ About::About ()
 
        Searchpath spath(ardour_data_search_path());
 
-       if (find_file_in_search_path (spath, "splash.png", splash_file)) {
+       if (find_file (spath, "splash.png", splash_file)) {
                set_logo (Gdk::Pixbuf::create_from_file (splash_file));
        } else {
                error << "Could not find splash file" << endmsg;
@@ -578,15 +597,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-2013 Paul Davis\n"));
+       set_copyright (_("Copyright (C) 1999-2015 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\n(built from revision %2)"),
+       set_version ((string_compose(_("%1%2\n(rev %3)\n%4%5"),
                                     VERSIONSTRING,
-                                    revision)));
+                                    codename,
+                                    revision, cpu_arch, suffix)));
 
        Gtk::Button* config_button = manage (new Button (_("Config")));
 
@@ -598,6 +642,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 ()
@@ -616,3 +661,8 @@ About::show_config_info ()
        config_info->hide ();
 }
 
+void
+About::launch_homepage (AboutDialog& /* about */, const Glib::ustring& website_url)
+{
+       PBD::open_uri (website_url);
+}