+/*
+ Copyright (C) 2012 Paul Davis
+
+ 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.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
#ifdef WAF_BUILD
#include "gtk2ardour-config.h"
#endif
-#include <fstream>
+#include "pbd/gstdio_compat.h"
#include <gtkmm/stock.h>
-#include "ardour/ardour.h"
+#include "pbd/openuri.h"
+
#include "ardour/filesystem_paths.h"
+#include "ardour/rc_configuration.h"
#include "nag.h"
#include "i18n.h"
using namespace Gtk;
NagScreen::NagScreen (std::string /*context*/, bool maybe_sub)
- : ArdourDialog (_("Support Ardour Development"), true)
+ : ArdourDialog (string_compose (_("Support %1 Development"), PROGRAM_NAME), true)
, donate_button (button_group, _("I'd like to make a one-time donation"))
, subscribe_button (button_group, _("Tell me more about becoming a subscriber"))
, existing_button (button_group, _("I'm already a subscriber!"))
NagScreen*
NagScreen::maybe_nag (std::string why)
{
- Glib::ustring path;
+ std::string path;
bool really_subscribed;
bool maybe_subscribed;
- path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+ path = Glib::build_filename (user_config_directory(), ".nevernag");
if (Glib::file_test (path, Glib::FILE_TEST_EXISTS)) {
return 0;
void
NagScreen::mark_never_again ()
{
- Glib::ustring path;
+ std::string path;
- path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+ path = Glib::build_filename (user_config_directory(), ".nevernag");
- ofstream nagfile (path.c_str());
+ g_file_set_contents (path.c_str(), "", -1, NULL);
}
void
NagScreen::mark_subscriber ()
{
- Glib::ustring path;
+ std::string path;
- path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+ path = Glib::build_filename (user_config_directory(), ".askedaboutsub");
- ofstream subsfile (path.c_str());
+ g_file_set_contents (path.c_str(), "", -1, NULL);
}
void
NagScreen::mark_affirmed_subscriber ()
{
- Glib::ustring path;
+ std::string path;
- path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+ path = Glib::build_filename (user_config_directory(), ".isubscribe");
- ofstream subsfile (path.c_str());
+ g_file_set_contents (path.c_str(), "", -1, NULL);
}
bool
NagScreen::is_subscribed (bool& really)
{
- Glib::ustring path;
+ std::string path;
really = false;
subscribed. we try to trust our users :)
*/
- path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+ path = Glib::build_filename (user_config_directory(), ".isubscribe");
if (file_test (path, FILE_TEST_EXISTS)) {
really = true;
return true;
}
- path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+ path = Glib::build_filename (user_config_directory(), ".askedaboutsub");
if (file_test (path, FILE_TEST_EXISTS)) {
/* they never said they were subscribed but they
did once express an interest in it.
void
NagScreen::offer_to_donate ()
{
- const char* uri = "http://ardour.org/donate";
-
/* we don't care if it fails */
- open_uri (uri);
+ PBD::open_uri (Config->get_donate_url());
}
void
{
const char* uri = "http://ardour.org/subscribe";
- if (open_uri (uri)) {
+ if (PBD::open_uri (uri)) {
mark_subscriber ();
}
}
-bool
-NagScreen::open_uri (const char* uri)
-{
-#ifdef HAVE_GTK_OPEN_URI
- GError* err;
- return gtk_open_uri (0, uri, GDK_CURRENT_TIME, &err);
-#else
-#ifdef GTKOSX
- extern bool cocoa_open_url (const char*);
- return cocoa_open_url (uri);
-#else
- std::string command = "xdg-open ";
- command += uri;
- spawn_command_line_async (command);
-
- return true;
-#endif
-#endif
-}