[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog gui/gtk.cpp gui/gtksup.h libbas...
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] gnash ChangeLog gui/gtk.cpp gui/gtksup.h libbas... |
Date: |
Fri, 18 Jan 2008 12:19:48 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Benjamin Wolsey <bwy> 08/01/18 12:19:47
Modified files:
. : ChangeLog
gui : gtk.cpp gtksup.h
libbase : rc.cpp rc.h
Log message:
* libbase/rc.{h,cpp}: add methods to set whitelist, blacklist,
flashVersionString, flashSystemOS, flashSystemManufacturer,
startStopped, insecureSSL. Add updateFile() that decides where
to write a gnashrc file (either to GNASHRC or to ~/.gnashrc,
fail
if neither can be found).
* gui/gtk{sup.h,.cpp}: clean up movie properties dialogue, add
more
options to preferences dialogue. Allow saving to disk by
clicking
'save'.
GNASHRC=~/mytestfile gnash ... is a safe way of using this without
overwriting a valuable gnashrc file. The file is only written by clicking
'Save' on the preferences dialogue in the Gtk frontend.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5429&r2=1.5430
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk.cpp?cvsroot=gnash&r1=1.133&r2=1.134
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtksup.h?cvsroot=gnash&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/rc.cpp?cvsroot=gnash&r1=1.53&r2=1.54
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/rc.h?cvsroot=gnash&r1=1.40&r2=1.41
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5429
retrieving revision 1.5430
diff -u -b -r1.5429 -r1.5430
--- ChangeLog 17 Jan 2008 23:34:37 -0000 1.5429
+++ ChangeLog 18 Jan 2008 12:19:46 -0000 1.5430
@@ -1,3 +1,14 @@
+2008-01-18 Benjamin Wolsey <address@hidden>
+
+ * libbase/rc.{h,cpp}: add methods to set whitelist, blacklist,
+ flashVersionString, flashSystemOS, flashSystemManufacturer,
+ startStopped, insecureSSL. Add updateFile() that decides where
+ to write a gnashrc file (either to GNASHRC or to ~/.gnashrc, fail
+ if neither can be found). Document more functions.
+ * gui/gtk{sup.h,.cpp}: clean up movie properties dialogue, add more
+ options to preferences dialogue. Allow saving to disk by clicking
+ 'save'.
+
2008-01-17 Sandro Santilli <address@hidden>
* server/as_environment.cpp (find_object): don't allow dots
Index: gui/gtk.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -b -r1.133 -r1.134
--- gui/gtk.cpp 16 Jan 2008 17:14:04 -0000 1.133
+++ gui/gtk.cpp 18 Jan 2008 12:19:47 -0000 1.134
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: gtk.cpp,v 1.133 2008/01/16 17:14:04 bwy Exp $ */
+/* $Id: gtk.cpp,v 1.134 2008/01/18 12:19:47 bwy Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -778,9 +778,9 @@
GtkGui::updateRC (GtkWidget* dialog, gint response, gpointer data)
{
- if (response == GTK_RESPONSE_ACCEPT) {
+ if (response == GTK_RESPONSE_APPLY) {
- // If 'OK' was clicked, set all the values in rcfile
+ // If 'Save' was clicked, set all the values in rcfile
prefData *prefs = static_cast<prefData*>(data);
RcInitFile& rcfile = RcInitFile::getDefaultInstance();
// For getting from const gchar* to std::string&
@@ -805,8 +805,8 @@
rcfile.showASCodingErrors(
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->ASCodingErrorToggle)));
- //rcfile.showMalformedSWFErrors(
- //
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->malformedSWFToggle)));
+ rcfile.showMalformedSWFErrors(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->malformedSWFToggle)));
rcfile.useLocalHost(
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localHostToggle)));
@@ -829,10 +829,31 @@
tmp = gtk_entry_get_text(GTK_ENTRY(prefs->solSandbox));
rcfile.setSOLSafeDir(tmp);
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->osText));
+ rcfile.setFlashSystemOS(tmp);
+
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->versionText));
+ rcfile.setFlashVersionString(tmp);
+
+ rcfile.setMovieLibraryLimit(
+
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefs->librarySize)));
+
+ rcfile.startStopped(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->startStoppedToggle)));
+
+ // Let rcfile decide which file to update: generally the file being
used if
+ // specified in GNASHRC environment variable, or in the user's home
directory
+ // if that can be found.
+ // TODO: We can also specify here which file should be written by
passing
+ // that instead. How might that best be done?
+ rcfile.updateFile();
+
}
- // Make sure the dialogue is destroyed, whatever button is clicked.
+ else if (response == GTK_RESPONSE_CLOSE) {
+ // Close the window only when 'close' is clicked
gtk_widget_destroy(dialog);
+ }
}
@@ -853,11 +874,16 @@
RcInitFile& rcfile = RcInitFile::getDefaultInstance();
// Create top-level window
- GtkWidget *prefsDialog = gtk_dialog_new_with_buttons(_("Gnash
preferences"),
+ GtkWidget *prefsDialog = gtk_dialog_new_with_buttons(
+ _("Gnash preferences"),
GTK_WINDOW(_window),
-
GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL,
GTK_RESPONSE_REJECT,
- GTK_STOCK_OK,
GTK_RESPONSE_ACCEPT,
+ // Needs an explicit cast in C++
+ GtkDialogFlags(
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_NO_SEPARATOR),
+ // The buttons and their response codes:
+ GTK_STOCK_SAVE, GTK_RESPONSE_APPLY,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
NULL);
// Add Gnash icon
addGnashIcon(GTK_WINDOW(prefsDialog));
@@ -931,6 +957,12 @@
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->ASCodingErrorToggle),
rcfile.showASCodingErrors());
+ prefs->lcTraceToggle = gtk_check_button_new_with_mnemonic (
+ _("Log _Local Connection activity"));
+ gtk_box_pack_start (GTK_BOX(loggingvbox), prefs->lcTraceToggle, FALSE,
FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->lcTraceToggle),
+ rcfile.getLCTrace());
+
#ifdef USE_DEBUGGER
prefs->DebuggerToggle = gtk_check_button_new_with_mnemonic ("Enable
_debugger");
@@ -989,7 +1021,7 @@
gtk_box_pack_start (GTK_BOX(securityvbox), prefs->solSandbox, FALSE,
FALSE, 0);
prefs->solReadOnlyToggle = gtk_check_button_new_with_mnemonic (
- _("Do not _write Shared Object files"));
+ _("Do _not write Shared Object files"));
gtk_box_pack_start (GTK_BOX(securityvbox), prefs->solReadOnlyToggle,
FALSE, FALSE, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->solReadOnlyToggle),
rcfile.getSOLReadOnly());
@@ -1006,18 +1038,12 @@
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->localConnectionToggle),
rcfile.getLocalConnection());
- prefs->lcTraceToggle = gtk_check_button_new_with_mnemonic (
- _("_Trace local connection activity"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->lcTraceToggle, FALSE,
FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->lcTraceToggle),
- rcfile.getLCTrace());
-
// Sound Tab
- // Security Tab
+ // Media Tab
GtkWidget *mediavbox = gtk_vbox_new (FALSE, 2);
- // Security tab title
+ // Media tab title
GtkWidget *mediatablabel = gtk_label_new_with_mnemonic (_("_Media"));
gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), GTK_WIDGET(mediavbox),
mediatablabel);
@@ -1029,9 +1055,78 @@
prefs->soundToggle = gtk_check_button_new_with_mnemonic ("Use sound
_handler");
gtk_box_pack_start (GTK_BOX(mediavbox), prefs->soundToggle, FALSE, FALSE,
0);
-
+ // Align button state with rcfile
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->soundToggle),
rcfile.useSound());
+ // Player Tab
+ GtkWidget *playervbox = gtk_vbox_new (FALSE, 14);
+
+ // Player tab title
+ GtkWidget *playertablabel = gtk_label_new_with_mnemonic (_("_Player"));
+
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), GTK_WIDGET(playervbox),
playertablabel);
+
+ // Player description
+ GtkWidget *descriptionlabel = gtk_label_new (_("<b>Player
description</b>"));
+ gtk_label_set_use_markup (GTK_LABEL (descriptionlabel), TRUE);
+ gtk_box_pack_start(GTK_BOX(playervbox), descriptionlabel, FALSE, FALSE, 0);
+
+ // Version string
+ GtkWidget *versionhbox = gtk_hbox_new (FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(playervbox), versionhbox, FALSE, FALSE, 0);
+
+ GtkWidget *versionlabel = gtk_label_new (_("Player version:"));
+ gtk_misc_set_alignment (GTK_MISC (versionlabel), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(versionhbox), versionlabel, FALSE, FALSE, 0);
+
+ prefs->versionText = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(versionhbox), prefs->versionText, FALSE, FALSE,
0);
+ // Put text in the entry box
+ gtk_entry_set_text(GTK_ENTRY(prefs->versionText),
rcfile.getFlashVersionString().c_str());
+
+ // OS label
+ GtkWidget *oshbox = gtk_hbox_new (FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(playervbox), oshbox, FALSE, FALSE, 0);
+
+ GtkWidget *OSlabel = gtk_label_new (_("Operating system:"));
+ gtk_misc_set_alignment (GTK_MISC (OSlabel), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(oshbox), OSlabel, FALSE, FALSE, 0);
+
+ prefs->osText = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(oshbox), prefs->osText, FALSE, FALSE, 0);
+ // Put text in the entry box
+ gtk_entry_set_text(GTK_ENTRY(prefs->osText),
rcfile.getFlashSystemOS().c_str());
+
+ GtkWidget *OSadvicelabel = gtk_label_new (_("<i>If blank, Gnash will "
+ "detect your OS</i>"));
+ gtk_label_set_use_markup (GTK_LABEL (OSadvicelabel), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (OSadvicelabel), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(playervbox), OSadvicelabel, FALSE, FALSE, 0);
+
+ // Performance
+ GtkWidget *performancelabel = gtk_label_new (_("<b>Performance</b>"));
+ gtk_label_set_use_markup (GTK_LABEL (performancelabel), TRUE);
+ gtk_box_pack_start(GTK_BOX(playervbox), performancelabel, FALSE, FALSE, 0);
+
+ // Library size
+ GtkWidget *libraryhbox = gtk_hbox_new (FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(playervbox), libraryhbox, FALSE, FALSE, 0);
+
+ GtkWidget *librarylabel = gtk_label_new (_("Max size of movie library:"));
+ gtk_misc_set_alignment (GTK_MISC (librarylabel), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(libraryhbox), librarylabel, FALSE, FALSE, 0);
+
+ prefs->librarySize = gtk_spin_button_new_with_range(0, 100, 1);
+ gtk_box_pack_start(GTK_BOX(libraryhbox), prefs->librarySize, FALSE, FALSE,
0);
+ // Align to rcfile value:
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(prefs->librarySize),
rcfile.getMovieLibraryLimit());
+
+ prefs->startStoppedToggle = gtk_check_button_new_with_mnemonic (
+ _("Start _Gnash in pause mode"));
+ gtk_box_pack_start (GTK_BOX(playervbox), prefs->startStoppedToggle, FALSE,
FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->startStoppedToggle),
+ rcfile.startStopped());
+
gtk_widget_show_all (prefsDialog);
}
@@ -1039,51 +1134,38 @@
GtkGui::showPropertiesDialog()
{
- GtkWidget* label;
-
- GtkWidget* window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (window1), _("Movie Properties"));
-
- addGnashIcon(GTK_WINDOW(window1));
-
- GtkWidget *main_vbox = gtk_vbox_new(FALSE, 2);
- gtk_container_add (GTK_CONTAINER (window1), main_vbox);
-
- GtkWidget *frame1 = gtk_frame_new(_("Movie Properties"));
- gtk_box_pack_start (GTK_BOX (main_vbox), frame1, TRUE, TRUE, 0);
+ GtkWidget *propsDialog = gtk_dialog_new_with_buttons(
+ _("Movie properties"),
+ GTK_WINDOW(_window),
+ // The cast is necessary if there is
more
+ // than one option.
+ GtkDialogFlags(
+ GTK_DIALOG_DESTROY_WITH_PARENT),
+ // Just a 'close' button
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
- GtkWidget *vbox1 = gtk_vbox_new (FALSE, 3);
- gtk_container_add (GTK_CONTAINER (frame1), vbox1);
+ addGnashIcon(GTK_WINDOW(propsDialog));
- GtkWidget *vbox2 = gtk_vbox_new (FALSE, 2);
- gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
+ // Destroy the window when a button is clicked.
+ g_signal_connect (propsDialog, "response", G_CALLBACK(gtk_widget_destroy),
NULL);
- GtkWidget *label_vbox2 = gtk_label_new(_("VM Properties"));
- gtk_box_pack_start (GTK_BOX (vbox2), label_vbox2, FALSE, FALSE, 0);
+ // 2 rows: 1 for the title, 1 for the display widget (table or treeview)
+ GtkWidget *propsvbox = gtk_vbox_new (FALSE, 2);
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG(propsDialog)->vbox),
propsvbox);
+
+ GtkWidget *propslabel = gtk_label_new(_("<b>VM Properties</b>"));
+ gtk_label_set_use_markup (GTK_LABEL (propslabel), TRUE);
+ gtk_box_pack_start (GTK_BOX (propsvbox), propslabel, FALSE, FALSE, 0);
GtkWidget *table1 = gtk_table_new(4, 2, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox2), table1, FALSE, FALSE, 0);
-
-
- gtk_box_pack_start (
- GTK_BOX (vbox1), gtk_hseparator_new (), FALSE, FALSE, 0);
-
- GtkWidget *vbox3 = gtk_vbox_new (FALSE, 3);
- gtk_box_pack_start (
- GTK_BOX (vbox1), vbox3, TRUE, TRUE, 0);
-
- GtkWidget *scrollwindow1 = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwindow1),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start (
- GTK_BOX (vbox3), scrollwindow1, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (propsvbox), table1, FALSE, FALSE, 0);
std::auto_ptr<InfoTree> infoptr = getMovieInfo();
if ( ! infoptr.get() )
{
- label = gtk_label_new (_("VM not initialized yet"));
+ GtkWidget *label = gtk_label_new (_("VM not initialized yet"));
gtk_widget_show (label);
gtk_table_attach_defaults (GTK_TABLE (table1), label, 0, 1, 0, 1);
return;
@@ -1128,13 +1210,18 @@
// Should replace table display when proper
// InfoTrees are available
+ GtkWidget *scrollwindow1 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwindow1),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start (
+ GTK_BOX (propsvbox), scrollwindow1, TRUE, TRUE, 0);
+
enum
{
NODENAME_COLUMN = 0,
STRING1_COLUMN,
- STRING2_COLUMN,
- COMMENT_COLUMN,
- NUM_COLUMNS
+ STRING2_COLUMN
};
GtkTreeModel *model = makeTreeModel(infoptr);
@@ -1148,7 +1235,9 @@
GtkTreeViewColumn *column;
//Add columns:
- //First column:
+
+#if 0
+ // Depth column (for debugging)
renderer = gtk_cell_renderer_text_new ();
g_object_set (renderer, "xalign", 0.0, NULL);
col_offset = gtk_tree_view_insert_column_with_attributes
(GTK_TREE_VIEW(treeview),
@@ -1157,8 +1246,9 @@
NODENAME_COLUMN,
NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), col_offset
- 1);
+#endif
- //Second column:
+ // 'Variable' column:
renderer = gtk_cell_renderer_text_new ();
g_object_set (renderer, "xalign", 0.0, NULL);
@@ -1169,7 +1259,7 @@
NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview),
col_offset - 1);
- //Third column:
+ // 'Value' column:
renderer = gtk_cell_renderer_text_new ();
g_object_set (renderer, "xalign", 0.0, NULL);
@@ -1186,17 +1276,7 @@
#endif
}
- GtkWidget *bbox1 = gtk_hbutton_box_new ();
- gtk_box_pack_start (
- GTK_BOX (main_vbox), bbox1, FALSE, FALSE, 0);
-
-
- GtkWidget *button_ok = gtk_button_new_from_stock (GTK_STOCK_OK);
- gtk_box_pack_end (GTK_BOX (bbox1), button_ok, FALSE, FALSE, 0);
- g_signal_connect_swapped (button_ok, "clicked",
- G_CALLBACK(gtk_widget_destroy), window1);
-
- gtk_widget_show_all (window1);
+ gtk_widget_show_all (propsDialog);
}
Index: gui/gtksup.h
===================================================================
RCS file: /sources/gnash/gnash/gui/gtksup.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- gui/gtksup.h 16 Jan 2008 17:14:04 -0000 1.59
+++ gui/gtksup.h 18 Jan 2008 12:19:47 -0000 1.60
@@ -221,6 +221,10 @@
GtkWidget *localConnectionToggle;
GtkWidget *lcTraceToggle;
GtkWidget *solSandbox;
+ GtkWidget *osText;
+ GtkWidget *versionText;
+ GtkWidget *librarySize;
+ GtkWidget *startStoppedToggle;
#ifdef USE_DEBUGGER
GtkWidget *DebuggerToggle;
#endif
Index: libbase/rc.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/rc.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- libbase/rc.cpp 17 Jan 2008 15:25:36 -0000 1.53
+++ libbase/rc.cpp 18 Jan 2008 12:19:47 -0000 1.54
@@ -1,6 +1,6 @@
// rc.cpp: "Run Command" configuration file, for Gnash.
//
-// Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006, 2007, 208 Free Software Foundation, Inc.
//
// 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
@@ -199,7 +199,7 @@
/// appended ('append <list> <items>').
void
-RcInitFile::parseList(std::vector<std::string> &list, string &action,
+RcInitFile::parseList(PathList &list, string &action,
std::string &listname, string &items)
{
// GNASH_REPORT_FUNCTION;
@@ -328,9 +328,9 @@
}
void
-RcInitFile::writeList (std::vector<std::string>& list, std::ostream& o)
+RcInitFile::writeList (PathList& list, std::ostream& o)
{
- for (std::vector<std::string>::const_iterator it = list.begin();
+ for (PathList::const_iterator it = list.begin();
it != list.end(); ++it) {
o << *it << " ";
}
@@ -506,6 +506,38 @@
return true;
}
+bool
+RcInitFile::updateFile()
+{
+
+ std::string writefile;
+
+ // The file specified in GNASHRC environment variable
+ // should be written first.
+ // If you name an important file in GNASHRC and 'save' the
+ // preferences, you'll obviously overwrite that file.
+ char *gnashrc = getenv("GNASHRC");
+ if (gnashrc) {
+ writefile = gnashrc;
+ return updateFile(writefile);
+ }
+
+ // Check the users home directory
+ char *home = getenv("HOME");
+ if (home) {
+ writefile = home;
+ writefile += "/.gnashrc";
+ return updateFile(writefile);
+ }
+
+ // We don't want to try writing to /etc/ et cetera, since
+ // these are likely to be system-wide defaults set by administrators
+ // or distros, useful for a model rcfile. They are likely to have
+ // no write permission anyway unless you are running Gnash with
+ // administrative privileges, and that is a bad idea.
+ return false;
+
+}
// Write the changed settings to the config file
bool
RcInitFile::updateFile(const std::string& filespec)
@@ -528,6 +560,7 @@
// Bools and numbers. We want boolean values written as words.
out << boolalpha <<
+ _("# Generated by Gnash. Manual changes to this file may be overridden.")
<< endl <<
cmd << "splash_screen " << _splashScreen << endl <<
cmd << "localHost " << _localhostOnly << endl <<
cmd << "localDomain " << _localdomainOnly << endl <<
Index: libbase/rc.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/rc.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- libbase/rc.h 17 Jan 2008 15:25:36 -0000 1.40
+++ libbase/rc.h 18 Jan 2008 12:19:47 -0000 1.41
@@ -1,5 +1,5 @@
//
-// Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
//
// 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
@@ -42,8 +42,19 @@
bool loadFiles();
bool parseFile(const std::string& filespec);
+
+ /// Writes a valid gnashrc file. If the file already exists,
+ /// is is overwritten.
+ /// @param filespec the file to write
+ /// @return whether the file was successfully written.
bool updateFile(const std::string& filespec);
+ /// Writes a gnashrc file to the file specified in the
+ /// GNASHRC environment variable OR to the user's home
+ /// directory.
+ /// @return whether the file was successfully written.
+ bool updateFile();
+
bool useSplashScreen() const { return _splashScreen; }
void useSplashScreen(bool value);
@@ -59,14 +70,15 @@
int getTimerDelay() const { return _delay; }
void setTimerDelay(int x) { _delay = x; }
- int getMovieLibraryLimit() const { return _movieLibraryLimit; }
-
bool showASCodingErrors() const { return _verboseASCodingErrors; }
void showASCodingErrors(bool value);
bool showMalformedSWFErrors() const { return _verboseMalformedSWF; }
void showMalformedSWFErrors(bool value);
+ int getMovieLibraryLimit() const { return _movieLibraryLimit; }
+ void setMovieLibraryLimit(int value) { _movieLibraryLimit = value; }
+
bool enableExtensions() const { return _extensionsEnabled; }
/// Return true if user is willing to start the gui in "stop" mode
@@ -74,8 +86,10 @@
/// defaults to false.
///
bool startStopped() const { return _startStopped; }
+ void startStopped(bool value) { _startStopped = value; }
bool insecureSSL() const { return _insecureSSL; }
+ void insecureSSL(bool value) { _insecureSSL = value; }
int verbosityLevel() const { return _verbosity; }
void verbosityLevel(int value) { _verbosity = value; }
@@ -100,29 +114,30 @@
bool useLocalDomain() const { return _localdomainOnly; }
void useLocalDomain(bool value);
+ /// Whether to restrict access to the local host
bool useLocalHost() const { return _localhostOnly; }
- void useLocalHost(bool value);
-
- const std::vector<std::string>& getWhiteList() const { return _whitelist; }
- const std::vector<std::string>& getBlackList() const { return _blacklist; }
-
- const std::string& getFlashVersionString() const { return
_flashVersionString; }
-
- const std::string& getFlashSystemOS() const { return _flashSystemOS; }
-
- const std::string& getFlashSystemManufacturer() const { return
_flashSystemManufacturer; }
- int getRetries() const { return _retries; }
- void setRetries(int x) { _retries = x; }
-
- /// Return the number of seconds of inactivity before timing out streams
downloads
- double getStreamsTimeout() const { return _streamsTimeout; }
-
- /// Set the number of seconds of inactivity before timing out streams
downloads
- void setStreamsTimeout(double x) { _streamsTimeout = x; }
+ /// Set whether to restrict access to the local host
+ void useLocalHost(bool value);
typedef std::vector<std::string> PathList;
+ /// Get the current RcInitFile whitelist of domains to allow
+ /// @return a std::vector of strings containing allowed domains
+ const PathList& getWhiteList() const { return _whitelist; }
+
+ /// Sets the RcInitFile whitelist of domains to allow
+ /// @param list a std::vector of strings containing domains without
protocol
+ void setWhitelist (std::vector<std::string>& list) { _whitelist = list; }
+
+ /// Get the current RcInitFile blacklist of domains to block
+ /// @return a std::vector of strings containing blocked domains
+ const PathList& getBlackList() const { return _blacklist; }
+
+ /// Sets the RcInitFile blacklist of domains to block
+ /// @param list a std::vector of strings containing domains without
protocol
+ void setBlacklist (std::vector<std::string>& list) { _blacklist = list; }
+
/// Return the list of directories to be used as the 'local' sandbox
//
/// Local sendbox is the set of resources on the filesystem we want to
@@ -136,12 +151,32 @@
_localSandboxPath.push_back(dir);
}
- /// Set the local sandbox list
+ /// Sets a list of sandbox paths. Gnash will only allow movies access
+ /// to files in these paths. The path of the movie playing is automatically
+ /// added.
+ /// @param list a std::vector of strings containing paths to allow
void setLocalSandboxPath(const PathList& path)
{
_localSandboxPath = path;
}
+ const std::string& getFlashVersionString() const { return
_flashVersionString; }
+ void setFlashVersionString(std::string& value) { _flashVersionString =
value; }
+
+ const std::string& getFlashSystemOS() const { return _flashSystemOS; }
+ void setFlashSystemOS(std::string& value) { _flashSystemOS = value; }
+
+ const std::string& getFlashSystemManufacturer() const { return
_flashSystemManufacturer; }
+ void setFlashSystemManufacturer(std::string& value) {
_flashSystemManufacturer = value; }
+
+ int getRetries() const { return _retries; }
+ void setRetries(int x) { _retries = x; }
+
+ /// Return the number of seconds of inactivity before timing out streams
downloads
+ double getStreamsTimeout() const { return _streamsTimeout; }
+ /// Set the number of seconds of inactivity before timing out streams
downloads
+ void setStreamsTimeout(double x) { _streamsTimeout = x; }
+
/// Get the URL opener command format
//
/// The %u label will need to be substituted by the actual url
@@ -175,10 +210,20 @@
void dump();
private:
- uint32_t _delay; // the timer delay
- uint32_t _movieLibraryLimit; // max number of movie clips to store in
the library
- bool _debug; // enable debugging of this class
- bool _debugger; // enable the Flash movie debugger
+
+ /// The timer delay
+ uint32_t _delay;
+
+ /// Max number of movie clips to store in the library
+ uint32_t _movieLibraryLimit;
+
+ /// Enable debugging of this class
+ bool _debug;
+
+ /// Enable the Flash movie debugger
+ bool _debugger;
+
+ // Level of debugging output
uint32_t _verbosity;
/// Command format to use to open urls
@@ -201,10 +246,10 @@
/// in Actionscript
std::string _flashSystemManufacturer;
- /// enable dumping actionscript classes
+ /// Enable dumping actionscript classes
bool _actionDump;
- /// enable dumping parser data
+ /// Enable dumping parser data
bool _parserDump;
/// Enable ActionScript errors verbosity
@@ -213,29 +258,47 @@
/// Enable Malformed SWF verbosity
bool _verboseMalformedSWF;
+ /// Display a splash screen when loading a movie
+ bool _splashScreen;
+
+ /// Only access network resources in the local domain
+ bool _localdomainOnly;
+
+ /// Only access network resources on the local host
+ bool _localhostOnly;
+
+ /// Allowed domains
+ PathList _whitelist;
+
+ /// Blocked Domains
+ PathList _blacklist;
+
+ /// The name of the debug log
+ std::string _log;
+
+ /// Enable writing the debug log to disk
+ bool _writeLog;
- /// End user Features
- bool _splashScreen; // display a splash screen when
- // loading a movie
- /// Security Features
- bool _localdomainOnly; // only access network resources for
- // the local domain
- bool _localhostOnly; // only access network resources
- std::vector<std::string> _whitelist; // domains we allow
- std::vector<std::string> _blacklist; // domains we don't allow
- std::string _log; // the name of the debug log
- bool _writeLog; // enable writing the debug log to disk
- std::string _wwwroot; // the root path for the streaming server
- int _retries; // the number of retries for a thread
- bool _sound; // whether sound is enable or not
- bool _pluginSound; // whether sound is desired for the plugin
+ /// The root path for the streaming server
+ std::string _wwwroot;
- bool _extensionsEnabled; // whether to scan plugin path for extensions
+ /// the number of retries for a thread
+ int _retries;
- bool _startStopped; // whether to start the gui in "stop"
mode
+ /// Enable the sound handler at startup
+ bool _sound;
- bool _insecureSSL; // When TRUE, does not verify SSL certificates
- // so is INSECURE.
+ /// Enable sound for the plugin
+ bool _pluginSound;
+
+ /// Enable scanning plugin path for extensions
+ bool _extensionsEnabled;
+
+ /// Start the gui in "stop" mode
+ bool _startStopped;
+
+ /// Allow SSL connections without verifying the certificate
+ bool _insecureSSL;
/// The number of seconds of inactivity triggering download timeout
double _streamsTimeout;
@@ -248,14 +311,22 @@
// or read from.
std::string _solsandbox;
+ /// Whether SOL files can be written
bool _solreadonly;
bool _sollocaldomain;
+
+ // Disable local connection
bool _lcdisabled;
+
+ /// Trace local connection activity (in log)
bool _lctrace;
+
+ /// Shared memory segment key (can be set for
+ /// compatibility with other players.
key_t _lcshmkey;
- // A function only for writing lists to an outstream.
- void writeList(std::vector<std::string>& list, std::ostream& o);
+ // A function only for writing path lists to an outstream.
+ void writeList(PathList& list, std::ostream& o);
protected:
@@ -265,7 +336,8 @@
/// Never destroy (TODO: add a destroyDefaultInstance)
~RcInitFile();
- void expandPath(std::string& path); //path string operations
+ /// Performs substitution on a path string (~)
+ void expandPath(std::string& path);
static bool extractSetting(bool *var, const char *pattern,
std::string &variable, std::string &value);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog gui/gtk.cpp gui/gtksup.h libbas...,
Benjamin Wolsey <=