Skip to content

Commit

Permalink
invert color toggle, menu bar toggle, toolbar hide shortcut T
Browse files Browse the repository at this point in the history
  • Loading branch information
krogank9 committed May 16, 2015
1 parent 7f651f4 commit 8f948f1
Show file tree
Hide file tree
Showing 13 changed files with 237 additions and 11 deletions.
4 changes: 3 additions & 1 deletion data/epdfview-ui.xml
Expand Up @@ -17,7 +17,9 @@
<menuitem name="Preferences" action="Preferences"/>
</menu>
<menu action="ViewMenu">
<menuitem name="ShowToolBar" action="ShowToolBar"/>
<menuitem name="ShowToolBar" action="ShowToolBar"/>
<menuitem name="ShowMenuBar" action="ShowMenuBar"/><!-- krogan-->
<menuitem name="InvertToggle" action="InvertToggle"/><!-- krogan-->
<menuitem name="ShowStatusBar" action="ShowStatusBar"/>
<menuitem name="ShowIndex" action="ShowIndex"/>
<separator/>
Expand Down
48 changes: 47 additions & 1 deletion src/Config.cxx
Expand Up @@ -22,9 +22,11 @@
using namespace ePDFView;

// Constants
static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "firefox %s";
static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "x-www-browser %s";
static const gchar *DEFAULT_OPEN_FILE_FOLDER = NULL;
static const gchar *DEFAULT_SAVE_FILE_FOLDER = NULL;
static const gboolean DEFAULT_SHOW_MENUBAR = TRUE; //krogan edit
static const gboolean DEFAULT_INVERT_TOGGLE = FALSE; //krogan edit
static const gboolean DEFAULT_SHOW_STATUSBAR = TRUE;
static const gboolean DEFAULT_SHOW_TOOLBAR = TRUE;
static const gint DEFAULT_WINDOW_HEIGHT = 650;
Expand Down Expand Up @@ -368,6 +370,28 @@ Config::setSaveFileFolder (const gchar *folder)
g_key_file_set_string (m_Values, "save dialog", "folder", folder);
}

/// krogan custom edit
/// @brief Save if show the menu bar.
///
/// @param show TRUE to show the status bar, FALSE otherwise.
///
void
Config::setShowMenubar (gboolean show)
{
g_key_file_set_boolean (m_Values, "main window", "showMenubar", show);
}

/// krogan custom edit
/// @brief Save if invert page colors.
///
/// @param show TRUE to show the status bar, FALSE otherwise.
///
void
Config::setInvertToggle (gboolean on)
{
g_key_file_set_boolean (m_Values, "main window", "invertToggle", on);
}

///
/// @brief Save if show the status bar.
///
Expand Down Expand Up @@ -444,6 +468,28 @@ Config::setZoomToWidth (gboolean activate)
g_key_file_set_boolean (m_Values, "main window", "zoomToWidth", activate);
}

///krogan custom edit
/// @brief Gets if show the menu bar.
///
/// @return TRUE if the menu bar should be shown, FALSE otherwise.
///
gboolean
Config::showMenubar ()
{
return getBoolean ("main window", "showMenubar", DEFAULT_SHOW_MENUBAR);
}

///krogan custom edit
/// @brief Gets if show the menu bar.
///
/// @return TRUE if the menu bar should be shown, FALSE otherwise.
///
gboolean
Config::invertToggle ()
{
return getBoolean ("main window", "invertToggle", DEFAULT_INVERT_TOGGLE);
}

///
/// @brief Gets if show the status bar.
///
Expand Down
4 changes: 4 additions & 0 deletions src/Config.h
Expand Up @@ -45,6 +45,8 @@ namespace ePDFView
gint getWindowWidth (void);
gint getWindowX (void);
gint getWindowY (void);
gboolean showMenubar (void); //krogan
gboolean invertToggle (void); //krogan
gboolean showStatusbar (void);
gboolean showToolbar (void);
gboolean zoomToFit (void);
Expand All @@ -53,6 +55,8 @@ namespace ePDFView
void setExternalBrowserCommandLine (const gchar *commandLine);
void setOpenFileFolder (const gchar *folder);
void setSaveFileFolder (const gchar *folder);
void setShowMenubar (gboolean show); //krogan
void setInvertToggle (gboolean on); //krogan
void setShowStatusbar (gboolean show);
void setShowToolbar (gboolean show);
void setWindowSize (gint width, gint height);
Expand Down
22 changes: 22 additions & 0 deletions src/IMainView.h
Expand Up @@ -445,6 +445,28 @@ namespace ePDFView
///
virtual void showIndex (gboolean show) = 0;

/// krogan
/// @brief Shows the menu bar.
///
/// The view must show the menu bar or hide it depending
/// on the @a show parameter.
///
/// @param show TRUE if the menu bar must be shown,
/// FALSE otherwise.
///
virtual void showMenubar (gboolean show) = 0;

/// krogan
/// @brief Toggles color inversion
///
/// The view must show the status bar or hide it depending
/// on the @a show parameter.
///
/// @param show TRUE if invert color toggle on,
/// FALSE otherwise.
///
virtual void invertToggle (gboolean show) = 0;

///
/// @brief Shows the status bar.
///
Expand Down
2 changes: 2 additions & 0 deletions src/IPageView.h
Expand Up @@ -180,6 +180,8 @@ namespace ePDFView
/// new page.
///
virtual void showPage (DocumentPage *page, PageScroll scroll) = 0;

virtual void setInvertColorToggle (char on) = 0; // krogan

///
/// @brief Shows text on the page.
Expand Down
43 changes: 36 additions & 7 deletions src/MainPter.cxx
Expand Up @@ -178,7 +178,10 @@ MainPter::setInitialState ()

// Sensitive the open file action.
view.sensitiveOpen (TRUE);
// Show the toolbar and status bar depending on the configuration.
// Show the toolbar,menu and status bar depending on the configuration.
view.showMenubar (config.showMenubar ()); //krogan wuz here
view.invertToggle (config.invertToggle ()); //krogan
//(config.invertToggle == TRUE) ? m_PagePter->:;
view.showToolbar (config.showToolbar ());
view.showStatusbar (config.showStatusbar ());
view.showIndex (showSidebar);
Expand Down Expand Up @@ -533,12 +536,12 @@ MainPter::preferencesActivated ()
void
MainPter::reloadActivated ()
{
g_assert ( m_Document->isLoaded () &&
"Tried to reload a yet to load document.");
// Reload
m_ReloadPage = m_Document->getCurrentPageNum();
setOpenState (m_Document->getFileName (), TRUE);
m_Document->reload ();
if(m_Document->isLoaded ()==TRUE) {
// Reload
m_ReloadPage = m_Document->getCurrentPageNum();
setOpenState (m_Document->getFileName (), TRUE);
m_Document->reload ();
}
}

///
Expand Down Expand Up @@ -613,6 +616,32 @@ MainPter::showIndexActivated (gboolean show)
getView ().showIndex (show);
}

/// krogan custom edit
/// @brief The "Show Menubar" was activated.
///
/// @param show TRUE if show Menubar is active, FALSE otherwise.
///
void
MainPter::showMenubarActivated (gboolean show)
{
Config::getConfig().setShowMenubar (show);
getView ().showMenubar (show);
}

/// krogan custom edit
/// @brief The "Invert Toggle" was activated.
///
/// @param show TRUE if inversion toggle active, FALSE otherwise.
///
void
MainPter::invertToggleActivated (gboolean invert)
{
Config::getConfig().setInvertToggle (invert);
getView ().invertToggle (invert);
m_PagePter->setInvertColorToggle(invert==TRUE);
reloadActivated();
}

///
/// @brief The "Show Statusbar" was activated.
///
Expand Down
2 changes: 2 additions & 0 deletions src/MainPter.h
Expand Up @@ -68,6 +68,8 @@ namespace ePDFView
void rotateRightActivated (void);
void saveFileActivated (void);
void showIndexActivated (gboolean show);
void showMenubarActivated (gboolean show); //krogan
void invertToggleActivated (gboolean on); //krogan
void showStatusbarActivated (gboolean show);
void showToolbarActivated (gboolean show);
void zoomActivated (void);
Expand Down
5 changes: 5 additions & 0 deletions src/PagePter.cxx
Expand Up @@ -79,6 +79,11 @@ PagePter::~PagePter ()
m_Document->detach (this);
}

void
PagePter::setInvertColorToggle(char on) { //krogan
m_PageView->setInvertColorToggle(on);
}

///
/// @brief Gets the size of the page view.
///
Expand Down
2 changes: 2 additions & 0 deletions src/PagePter.h
Expand Up @@ -59,6 +59,8 @@ namespace ePDFView
void setView (IMainView &view);
void viewResized (gint width, gint height);
void setMode(PagePterMode mode);

void setInvertColorToggle(char on);//krogan

protected:
/// The document whose page is shown.
Expand Down
72 changes: 70 additions & 2 deletions src/gtk/MainView.cxx
Expand Up @@ -69,6 +69,8 @@ static void main_window_preferences_cb (GtkWidget *, gpointer);
static void main_window_quit_cb (GtkWidget *, gpointer);
static void main_window_save_file_cb (GtkWidget *, gpointer);
static void main_window_show_index_cb (GtkToggleAction *, gpointer);
static void main_window_show_menubar_cb (GtkToggleAction *, gpointer); //krogan custom edit
static void main_window_invert_color_cb (GtkToggleAction *, gpointer); //krogan custom edit
static void main_window_show_statusbar_cb (GtkToggleAction *, gpointer);
static void main_window_show_toolbar_cb (GtkToggleAction *, gpointer);
static void main_window_zoom_cb (GtkWidget *, gpointer);
Expand Down Expand Up @@ -175,8 +177,16 @@ static GtkToggleActionEntry g_ToggleEntries[] =
{ "FullScreen", NULL, N_("F_ull screen"), "F11",
N_("Toggle full screen window"),
G_CALLBACK (main_window_fullscreen_cb), FALSE },

{ "ShowMenuBar", NULL, N_("Hide _Menubar"), "M", //krogan custom edit
N_("Toggle menu bar"),
G_CALLBACK (main_window_show_menubar_cb), FALSE },

{ "ShowToolBar", NULL, N_("Show _Toolbar"), NULL,
{ "InvertToggle", NULL, N_("_Invert Colors"), "I", //krogan custom edit
N_("Toggle color inversion"),
G_CALLBACK (main_window_invert_color_cb), FALSE },

{ "ShowToolBar", NULL, N_("Show _Toolbar"), "T",
N_("Show or hide the toolbar"),
G_CALLBACK (main_window_show_toolbar_cb), TRUE },

Expand Down Expand Up @@ -645,8 +655,9 @@ MainView::showErrorMessage (const gchar *title, const gchar *body)
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK,
"%s",
title);
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog),
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog),
body);
gtk_dialog_run (GTK_DIALOG (errorDialog));
gtk_widget_destroy (errorDialog);
Expand Down Expand Up @@ -821,6 +832,39 @@ MainView::setOutline (DocumentOutline *outline)
gtk_tree_path_free (path);
}

void //krogan edit
MainView::showMenubar (gboolean hide)
{
GtkWidget *menuBar = gtk_ui_manager_get_widget (m_UIManager, "/MenuBar");
GtkAction *toggleAction = gtk_ui_manager_get_action (m_UIManager,
"/MenuBar/ViewMenu/ShowMenuBar");
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (toggleAction), hide);
if ( hide )
{
gtk_widget_hide (menuBar);
}
else
{
gtk_widget_show (menuBar);
}
}

void //krogan edit
MainView::invertToggle (gboolean show)
{
GtkAction *toggleAction = gtk_ui_manager_get_action (m_UIManager,
"/MenuBar/ViewMenu/InvertToggle");
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (toggleAction), show);
if ( show )
{
//*invertStatusPter = 1;
}
else
{
//*invertStatusPter = 0;
}
}

void
MainView::showStatusbar (gboolean show)
{
Expand Down Expand Up @@ -1396,6 +1440,30 @@ main_window_save_file_cb (GtkWidget *widget, gpointer data)
pter->saveFileActivated ();
}

/// KROGAN EDIT
/// @brief Called when the user clicks on the "Show Menubar" action.
///
void
main_window_show_menubar_cb (GtkToggleAction *action, gpointer data)
{
g_assert ( NULL != data && "The data parameter is NULL.");

MainPter *pter = (MainPter *)data;
pter->showMenubarActivated (gtk_toggle_action_get_active (action));
}

/// KROGAN EDIT
/// @brief Called when the user clicks on the "Invert Colors" action.
///
void
main_window_invert_color_cb (GtkToggleAction *action, gpointer data)
{
g_assert ( NULL != data && "The data parameter is NULL.");

MainPter *pter = (MainPter *)data;
pter->invertToggleActivated (gtk_toggle_action_get_active (action));
}

///
/// @brief Called when the user clicks on the "Show Statusbar" action.
///
Expand Down
2 changes: 2 additions & 0 deletions src/gtk/MainView.h
Expand Up @@ -82,6 +82,8 @@ namespace ePDFView
void setTitle (const gchar *title);
void setOutline (DocumentOutline *outline);
void showToolbar (gboolean show);
void showMenubar (gboolean hide); //krogan
void invertToggle (gboolean show); //krogan
void showStatusbar (gboolean show);

protected:
Expand Down

0 comments on commit 8f948f1

Please sign in to comment.