Put the set_newline_type as private and follow the same behavior as encoding.

parent 1f479548
......@@ -83,10 +83,11 @@ static void gedit_document_load_real (GeditDocument *doc,
const GeditEncoding *encoding,
gint line_pos,
gboolean create);
static void gedit_document_save_real (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentSaveFlags flags);
static void gedit_document_save_real (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentNewlineType newline_type,
GeditDocumentSaveFlags flags);
static void to_search_region_range (GeditDocument *doc,
GtkTextIter *start,
GtkTextIter *end);
......@@ -221,6 +222,18 @@ release_untitled_number (gint n)
g_hash_table_remove (allocated_untitled_numbers, GINT_TO_POINTER (n));
}
static void
set_newline_type (GeditDocument *doc,
GeditDocumentNewlineType newline_type)
{
if (doc->priv->newline_type != newline_type)
{
doc->priv->newline_type = newline_type;
g_object_notify (G_OBJECT (doc), "newline-type");
}
}
static void
gedit_document_dispose (GObject *object)
{
......@@ -373,8 +386,8 @@ gedit_document_set_property (GObject *object,
g_value_get_boolean (value));
break;
case PROP_NEWLINE_TYPE:
gedit_document_set_newline_type (doc,
g_value_get_enum (value));
set_newline_type (doc,
g_value_get_enum (value));
break;
case PROP_SHORTNAME:
gedit_document_set_short_name_for_display (doc,
......@@ -609,13 +622,14 @@ gedit_document_class_init (GeditDocumentClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GeditDocumentClass, save),
NULL, NULL,
gedit_marshal_VOID__OBJECT_BOXED_FLAGS,
gedit_marshal_VOID__OBJECT_BOXED_ENUM_FLAGS,
G_TYPE_NONE,
3,
4,
G_TYPE_FILE,
/* we rely on the fact that the GeditEncoding pointer stays
* the same forever */
GEDIT_TYPE_ENCODING | G_SIGNAL_TYPE_STATIC_SCOPE,
GEDIT_TYPE_DOCUMENT_NEWLINE_TYPE,
GEDIT_TYPE_DOCUMENT_SAVE_FLAGS);
document_signals[SAVING] =
......@@ -1271,8 +1285,8 @@ document_loader_loaded (GeditDocumentLoader *loader,
set_content_type (doc, content_type);
gedit_document_set_newline_type (doc,
gedit_document_loader_get_newline_type (loader));
set_newline_type (doc,
gedit_document_loader_get_newline_type (loader));
/* move the cursor at the requested line if any */
if (doc->priv->requested_line_pos > 0)
......@@ -1523,16 +1537,17 @@ document_saver_saving (GeditDocumentSaver *saver,
}
static void
gedit_document_save_real (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentSaveFlags flags)
gedit_document_save_real (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentNewlineType newline_type,
GeditDocumentSaveFlags flags)
{
g_return_if_fail (doc->priv->saver == NULL);
/* create a saver, it will be destroyed once saving is complete */
doc->priv->saver = gedit_document_saver_new (doc, location, encoding,
doc->priv->newline_type,
newline_type,
flags);
g_signal_connect (doc->priv->saver,
......@@ -1541,6 +1556,7 @@ gedit_document_save_real (GeditDocument *doc,
doc);
doc->priv->requested_encoding = encoding;
doc->priv->newline_type = newline_type;
gedit_document_saver_save (doc->priv->saver,
&doc->priv->mtime);
......@@ -1566,6 +1582,7 @@ gedit_document_save (GeditDocument *doc,
0,
doc->priv->location,
doc->priv->encoding,
doc->priv->newline_type,
flags);
}
......@@ -1574,16 +1591,18 @@ gedit_document_save (GeditDocument *doc,
* @doc: the #GeditDocument.
* @location: the location where to save the document.
* @encoding: the #GeditEncoding to encode the document.
* @newline_type: the #GeditDocumentNewlineType for the document.
* @flags: optionnal #GeditDocumentSaveFlags.
*
* Save the document to a new location. This results in the "save" signal
* to be emitted.
*/
void
gedit_document_save_as (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentSaveFlags flags)
gedit_document_save_as (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentNewlineType newline_type,
GeditDocumentSaveFlags flags)
{
g_return_if_fail (GEDIT_IS_DOCUMENT (doc));
g_return_if_fail (G_IS_FILE (location));
......@@ -1596,6 +1615,7 @@ gedit_document_save_as (GeditDocument *doc,
0,
location,
encoding,
newline_type,
flags | GEDIT_DOCUMENT_SAVE_IGNORE_MTIME);
}
......@@ -2511,20 +2531,6 @@ gedit_document_get_enable_search_highlighting (GeditDocument *doc)
return (doc->priv->to_search_region != NULL);
}
void
gedit_document_set_newline_type (GeditDocument *doc,
GeditDocumentNewlineType newline_type)
{
g_return_if_fail (GEDIT_IS_DOCUMENT (doc));
if (doc->priv->newline_type != newline_type)
{
doc->priv->newline_type = newline_type;
g_object_notify (G_OBJECT (doc), "newline-type");
}
}
GeditDocumentNewlineType
gedit_document_get_newline_type (GeditDocument *doc)
{
......
......@@ -139,10 +139,11 @@ struct _GeditDocumentClass
const GError *error);
/* Document save */
void (* save) (GeditDocument *document,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentSaveFlags flags);
void (* save) (GeditDocument *document,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentNewlineType newline_type,
GeditDocumentSaveFlags flags);
void (* saving) (GeditDocument *document,
goffset size,
......@@ -211,10 +212,11 @@ gboolean gedit_document_load_cancel (GeditDocument *doc);
void gedit_document_save (GeditDocument *doc,
GeditDocumentSaveFlags flags);
void gedit_document_save_as (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentSaveFlags flags);
void gedit_document_save_as (GeditDocument *doc,
GFile *location,
const GeditEncoding *encoding,
GeditDocumentNewlineType newline_type,
GeditDocumentSaveFlags flags);
gboolean gedit_document_is_untouched (GeditDocument *doc);
gboolean gedit_document_is_untitled (GeditDocument *doc);
......@@ -272,9 +274,6 @@ void gedit_document_set_enable_search_highlighting
gboolean gedit_document_get_enable_search_highlighting
(GeditDocument *doc);
void gedit_document_set_newline_type (GeditDocument *doc,
GeditDocumentNewlineType newline_type);
GeditDocumentNewlineType
gedit_document_get_newline_type (GeditDocument *doc);
......
......@@ -5,7 +5,7 @@ VOID:BOOLEAN,POINTER
VOID:BOXED,BOXED
VOID:OBJECT
VOID:POINTER
VOID:OBJECT,BOXED,FLAGS
VOID:OBJECT,BOXED,ENUM,FLAGS
VOID:OBJECT,BOXED,INT,BOOLEAN
VOID:UINT,POINTER
VOID:UINT64,UINT64
......
......@@ -1261,6 +1261,7 @@ recoverable_saving_error_message_area_response (GtkWidget *message_area,
gedit_document_save_as (doc,
tab->priv->tmp_save_location,
tab->priv->tmp_encoding,
gedit_document_get_newline_type (doc),
tab->priv->save_flags);
}
else
......@@ -2217,12 +2218,8 @@ _gedit_tab_save_as (GeditTab *tab,
if (tab->priv->auto_save_timeout > 0)
remove_auto_save_timeout (tab);
/* FIXME: this should behave the same as encoding, setting it here
makes it persistent (if save fails, it's remembered). It's not
a very big deal, but would be nice to have them follow the
same pattern. This can be changed once we break API for 3.0 */
gedit_document_set_newline_type (doc, newline_type);
gedit_document_save_as (doc, location, encoding, tab->priv->save_flags);
gedit_document_save_as (doc, location, encoding, newline_type,
tab->priv->save_flags);
}
#define GEDIT_PAGE_SETUP_KEY "gedit-page-setup-key"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment