[gedit: 4/6] tab: remove install_auto_save_timeout()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit: 4/6] tab: remove install_auto_save_timeout()
- Date: Sun, 15 Jun 2014 16:59:39 +0000 (UTC)
commit b1808946e31a5feaee9b21fa4aeda5d8ae86042f
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Jun 15 17:29:30 2014 +0200
tab: remove install_auto_save_timeout()
Use only install_auto_save_timeout_if_needed(). It simplifies the code.
gedit/gedit-tab.c | 99 +++++++++++++----------------------------------------
1 files changed, 24 insertions(+), 75 deletions(-)
---
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 5362985..d5468d3 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -102,56 +102,36 @@ static void done_printing_cb (GeditPrintJob *job,
GeditTab *tab);
static void
-install_auto_save_timeout (GeditTab *tab)
-{
- gint timeout;
-
- gedit_debug (DEBUG_TAB);
-
- g_return_if_fail (tab->priv->auto_save_timeout <= 0);
- g_return_if_fail (tab->priv->auto_save);
- g_return_if_fail (tab->priv->auto_save_interval > 0);
-
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_LOADING);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_SAVING);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_REVERTING);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_LOADING_ERROR);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_SAVING_ERROR);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_SAVING_ERROR);
- g_return_if_fail (tab->priv->state != GEDIT_TAB_STATE_REVERTING_ERROR);
-
- /* Add a new timeout */
- timeout = g_timeout_add_seconds (tab->priv->auto_save_interval * 60,
- (GSourceFunc) gedit_tab_auto_save,
- tab);
-
- tab->priv->auto_save_timeout = timeout;
-}
-
-static void
install_auto_save_timeout_if_needed (GeditTab *tab)
{
GeditDocument *doc;
gedit_debug (DEBUG_TAB);
- g_return_if_fail (tab->priv->auto_save_timeout <= 0);
- g_return_if_fail ((tab->priv->state == GEDIT_TAB_STATE_NORMAL) ||
- (tab->priv->state == GEDIT_TAB_STATE_SHOWING_PRINT_PREVIEW) ||
- (tab->priv->state == GEDIT_TAB_STATE_CLOSING));
+ if (tab->priv->auto_save_timeout > 0)
+ {
+ /* Already installed. */
+ return;
+ }
- if (tab->priv->state == GEDIT_TAB_STATE_CLOSING)
+ if (tab->priv->state != GEDIT_TAB_STATE_NORMAL &&
+ tab->priv->state != GEDIT_TAB_STATE_SHOWING_PRINT_PREVIEW)
{
+ /* The tab is in a state where auto save is not needed. */
return;
}
- doc = gedit_view_frame_get_document (tab->priv->frame);
+ doc = gedit_tab_get_document (tab);
if (tab->priv->auto_save &&
!gedit_document_is_untitled (doc) &&
!gedit_document_get_readonly (doc))
{
- install_auto_save_timeout (tab);
+ g_return_if_fail (tab->priv->auto_save_interval > 0);
+
+ tab->priv->auto_save_timeout = g_timeout_add_seconds (tab->priv->auto_save_interval * 60,
+ (GSourceFunc) gedit_tab_auto_save,
+ tab);
}
}
@@ -2768,7 +2748,6 @@ void
gedit_tab_set_auto_save_enabled (GeditTab *tab,
gboolean enable)
{
- GeditDocument *doc = NULL;
GeditLockdownMask lockdown;
gedit_debug (DEBUG_TAB);
@@ -2782,42 +2761,19 @@ gedit_tab_set_auto_save_enabled (GeditTab *tab,
enable = FALSE;
}
- doc = gedit_view_frame_get_document (tab->priv->frame);
-
if (tab->priv->auto_save == enable)
+ {
return;
+ }
tab->priv->auto_save = enable;
- if (enable &&
- (tab->priv->auto_save_timeout <=0) &&
- !gedit_document_is_untitled (doc) &&
- !gedit_document_get_readonly (doc))
- {
- if ((tab->priv->state != GEDIT_TAB_STATE_LOADING) &&
- (tab->priv->state != GEDIT_TAB_STATE_SAVING) &&
- (tab->priv->state != GEDIT_TAB_STATE_REVERTING) &&
- (tab->priv->state != GEDIT_TAB_STATE_LOADING_ERROR) &&
- (tab->priv->state != GEDIT_TAB_STATE_SAVING_ERROR) &&
- (tab->priv->state != GEDIT_TAB_STATE_REVERTING_ERROR))
- {
- install_auto_save_timeout (tab);
- }
- /* else: the timeout will be installed when loading/saving/reverting
- will terminate */
-
- return;
- }
+ install_auto_save_timeout_if_needed (tab);
if (!enable && (tab->priv->auto_save_timeout > 0))
{
remove_auto_save_timeout (tab);
-
- return;
}
-
- g_return_if_fail ((!enable && (tab->priv->auto_save_timeout <= 0)) ||
- gedit_document_is_untitled (doc) || gedit_document_get_readonly (doc));
}
/**
@@ -2843,40 +2799,33 @@ gedit_tab_get_auto_save_interval (GeditTab *tab)
* @tab: a #GeditTab
* @interval: the new interval
*
- * Sets the interval for the autosave feature. It does nothing if the
- * interval is the same as the one already present. It removes the old
- * interval timeout and adds a new one with the autosave passed as
- * argument.
- **/
+ * Sets the interval for the autosave feature.
+ */
void
gedit_tab_set_auto_save_interval (GeditTab *tab,
gint interval)
{
- GeditDocument *doc = NULL;
-
g_return_if_fail (GEDIT_IS_TAB (tab));
g_return_if_fail (interval > 0);
gedit_debug (DEBUG_TAB);
- doc = gedit_view_frame_get_document (tab->priv->frame);
-
if (tab->priv->auto_save_interval == interval)
+ {
return;
+ }
tab->priv->auto_save_interval = interval;
if (!tab->priv->auto_save)
+ {
return;
+ }
if (tab->priv->auto_save_timeout > 0)
{
- g_return_if_fail (!gedit_document_is_untitled (doc));
- g_return_if_fail (!gedit_document_get_readonly (doc));
-
remove_auto_save_timeout (tab);
-
- install_auto_save_timeout (tab);
+ install_auto_save_timeout_if_needed (tab);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]