initial working version of "printing" keybindings (via a browser)
This commit is contained in:
parent
8b0c5b8426
commit
321615e8ea
@ -23,9 +23,13 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <glib/gstdio.h>
|
||||||
|
|
||||||
#include <gtkmm/stock.h>
|
#include <gtkmm/stock.h>
|
||||||
#include <gtkmm/label.h>
|
#include <gtkmm/label.h>
|
||||||
#include <gtkmm/accelkey.h>
|
#include <gtkmm/accelkey.h>
|
||||||
@ -35,6 +39,8 @@
|
|||||||
#include "gtkmm2ext/bindings.h"
|
#include "gtkmm2ext/bindings.h"
|
||||||
#include "gtkmm2ext/utils.h"
|
#include "gtkmm2ext/utils.h"
|
||||||
|
|
||||||
|
#include "pbd/error.h"
|
||||||
|
#include "pbd/openuri.h"
|
||||||
#include "pbd/strsplit.h"
|
#include "pbd/strsplit.h"
|
||||||
|
|
||||||
#include "ardour/filesystem_paths.h"
|
#include "ardour/filesystem_paths.h"
|
||||||
@ -520,6 +526,39 @@ KeyEditor::search_string_updated (const std::string& filter)
|
|||||||
void
|
void
|
||||||
KeyEditor::print () const
|
KeyEditor::print () const
|
||||||
{
|
{
|
||||||
// use Glib::file_open_tmp() if needed
|
stringstream sstr;
|
||||||
Bindings::save_all_bindings_as_html (cerr);
|
Bindings::save_all_bindings_as_html (sstr);
|
||||||
|
|
||||||
|
if (sstr.str().empty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gchar* file_name;
|
||||||
|
GError *err = NULL;
|
||||||
|
gint fd;
|
||||||
|
|
||||||
|
if ((fd = g_file_open_tmp ("akprintXXXXXX.html", &file_name, &err)) < 0) {
|
||||||
|
if (err) {
|
||||||
|
error << string_compose (_("Could not open temporary file to print bindings (%1)"), err->message) << endmsg;
|
||||||
|
g_error_free (err);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = NULL;
|
||||||
|
|
||||||
|
if (!g_file_set_contents (file_name, sstr.str().c_str(), sstr.str().size(), &err)) {
|
||||||
|
::close (fd);
|
||||||
|
g_unlink (file_name);
|
||||||
|
if (err) {
|
||||||
|
error << string_compose (_("Could not save bindings to file (%1)"), err->message) << endmsg;
|
||||||
|
g_error_free (err);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
::close (fd);
|
||||||
|
|
||||||
|
PBD::open_uri (string_compose ("file:///%1", file_name));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user