|
 |
135360 |
From 44a5de2fbdee39d81bb0fdbd74ba6179b40d77d9 Mon Sep 17 00:00:00 2001
|
|
 |
135360 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
135360 |
Date: Tue, 15 Sep 2015 12:36:49 +0200
|
|
 |
135360 |
Subject: [PATCH 129/398] gtktiledviwer: tool item registration is per-window
|
|
 |
135360 |
|
|
 |
135360 |
Change-Id: I11a6cda7b9b8949c48c201c4bd467b49f2f43ca5
|
|
 |
135360 |
(cherry picked from commit bec8a1b74f91ffc579567f44a65b903bc854ec4f)
|
|
 |
135360 |
---
|
|
 |
135360 |
.../qa/gtktiledviewer/gtktiledviewer.cxx | 71 +++++++++++++---------
|
|
 |
135360 |
1 file changed, 41 insertions(+), 30 deletions(-)
|
|
 |
135360 |
|
|
 |
135360 |
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
135360 |
index 09f16da396af..ef3aee008cae 100644
|
|
 |
135360 |
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
135360 |
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
135360 |
@@ -30,10 +30,6 @@ static int help()
|
|
 |
135360 |
return 1;
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
-static GtkWidget* pScrolledWindow;
|
|
 |
135360 |
-static std::map<GtkToolItem*, std::string> g_aToolItemCommandNames;
|
|
 |
135360 |
-static std::map<std::string, GtkToolItem*> g_aCommandNameToolItems;
|
|
 |
135360 |
-static bool g_bToolItemBroadcast = true;
|
|
 |
135360 |
static GtkWidget* pVBox;
|
|
 |
135360 |
static GtkComboBoxText* pPartSelector;
|
|
 |
135360 |
static GtkWidget* pPartModeComboBox;
|
|
 |
135360 |
@@ -54,6 +50,10 @@ public:
|
|
 |
135360 |
GtkToolItem* m_pItalic;
|
|
 |
135360 |
GtkToolItem* m_pUnderline;
|
|
 |
135360 |
GtkToolItem* m_pStrikethrough;
|
|
 |
135360 |
+ GtkWidget* m_pScrolledWindow;
|
|
 |
135360 |
+ std::map<GtkToolItem*, std::string> m_aToolItemCommandNames;
|
|
 |
135360 |
+ std::map<std::string, GtkToolItem*> m_aCommandNameToolItems;
|
|
 |
135360 |
+ bool m_bToolItemBroadcast;
|
|
 |
135360 |
|
|
 |
135360 |
TiledWindow()
|
|
 |
135360 |
: m_pDocView(0),
|
|
 |
135360 |
@@ -62,7 +62,9 @@ public:
|
|
 |
135360 |
m_pBold(0),
|
|
 |
135360 |
m_pItalic(0),
|
|
 |
135360 |
m_pUnderline(0),
|
|
 |
135360 |
- m_pStrikethrough(0)
|
|
 |
135360 |
+ m_pStrikethrough(0),
|
|
 |
135360 |
+ m_pScrolledWindow(0),
|
|
 |
135360 |
+ m_bToolItemBroadcast(true)
|
|
 |
135360 |
{
|
|
 |
135360 |
}
|
|
 |
135360 |
};
|
|
 |
135360 |
@@ -71,13 +73,15 @@ static std::map<GtkWidget*, TiledWindow> g_aWindows;
|
|
 |
135360 |
|
|
 |
135360 |
static TiledWindow& lcl_getTiledWindow(GtkWidget* pWidget)
|
|
 |
135360 |
{
|
|
 |
135360 |
- return g_aWindows[gtk_widget_get_toplevel(pWidget)];
|
|
 |
135360 |
+ GtkWidget* pToplevel = gtk_widget_get_toplevel(pWidget);
|
|
 |
135360 |
+ assert(g_aWindows.find(pToplevel) != g_aWindows.end());
|
|
 |
135360 |
+ return g_aWindows[pToplevel];
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
-static void lcl_registerToolItem(GtkToolItem* pItem, const std::string& rName)
|
|
 |
135360 |
+static void lcl_registerToolItem(TiledWindow& rWindow, GtkToolItem* pItem, const std::string& rName)
|
|
 |
135360 |
{
|
|
 |
135360 |
- g_aToolItemCommandNames[pItem] = rName;
|
|
 |
135360 |
- g_aCommandNameToolItems[rName] = pItem;
|
|
 |
135360 |
+ rWindow.m_aToolItemCommandNames[pItem] = rName;
|
|
 |
135360 |
+ rWindow.m_aCommandNameToolItems[rName] = pItem;
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
const float fZooms[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 };
|
|
 |
135360 |
@@ -87,8 +91,10 @@ const float fZooms[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 };
|
|
 |
135360 |
static void getVisibleAreaTwips(GtkWidget* pDocView, GdkRectangle* pArea)
|
|
 |
135360 |
{
|
|
 |
135360 |
#if GTK_CHECK_VERSION(2,14,0) // we need gtk_adjustment_get_page_size()
|
|
 |
135360 |
- GtkAdjustment* pHAdjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
|
|
 |
135360 |
- GtkAdjustment* pVAdjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
|
|
 |
135360 |
+ TiledWindow& rWindow = lcl_getTiledWindow(pDocView);
|
|
 |
135360 |
+
|
|
 |
135360 |
+ GtkAdjustment* pHAdjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(rWindow.m_pScrolledWindow));
|
|
 |
135360 |
+ GtkAdjustment* pVAdjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(rWindow.m_pScrolledWindow));
|
|
 |
135360 |
|
|
 |
135360 |
pArea->x = lok_doc_view_pixel_to_twip(LOK_DOC_VIEW(pDocView),
|
|
 |
135360 |
gtk_adjustment_get_value(pHAdjustment));
|
|
 |
135360 |
@@ -306,8 +312,10 @@ static void signalEdit(LOKDocView* pLOKDocView, gboolean bWasEdit, gpointer /*pD
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
/// LOKDocView changed command state -> inform the tool button.
|
|
 |
135360 |
-static void signalCommand(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointer /*pData*/)
|
|
 |
135360 |
+static void signalCommand(LOKDocView* pLOKDocView, char* pPayload, gpointer /*pData*/)
|
|
 |
135360 |
{
|
|
 |
135360 |
+ TiledWindow& rWindow = lcl_getTiledWindow(GTK_WIDGET(pLOKDocView));
|
|
 |
135360 |
+
|
|
 |
135360 |
std::string aPayload(pPayload);
|
|
 |
135360 |
size_t nPosition = aPayload.find("=");
|
|
 |
135360 |
if (nPosition != std::string::npos)
|
|
 |
135360 |
@@ -316,16 +324,16 @@ static void signalCommand(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointer
|
|
 |
135360 |
std::string aValue = aPayload.substr(nPosition + 1);
|
|
 |
135360 |
g_info("signalCommand: '%s' is '%s'", aKey.c_str(), aValue.c_str());
|
|
 |
135360 |
|
|
 |
135360 |
- if (g_aCommandNameToolItems.find(aKey) != g_aCommandNameToolItems.end())
|
|
 |
135360 |
+ if (rWindow.m_aCommandNameToolItems.find(aKey) != rWindow.m_aCommandNameToolItems.end())
|
|
 |
135360 |
{
|
|
 |
135360 |
- GtkToolItem* pItem = g_aCommandNameToolItems[aKey];
|
|
 |
135360 |
+ GtkToolItem* pItem = rWindow.m_aCommandNameToolItems[aKey];
|
|
 |
135360 |
gboolean bEdit = aValue == "true";
|
|
 |
135360 |
if (gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(pItem)) != bEdit)
|
|
 |
135360 |
{
|
|
 |
135360 |
// Avoid invoking lok_doc_view_post_command().
|
|
 |
135360 |
- g_bToolItemBroadcast = false;
|
|
 |
135360 |
+ rWindow.m_bToolItemBroadcast = false;
|
|
 |
135360 |
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(pItem), bEdit);
|
|
 |
135360 |
- g_bToolItemBroadcast = true;
|
|
 |
135360 |
+ rWindow.m_bToolItemBroadcast = true;
|
|
 |
135360 |
}
|
|
 |
135360 |
}
|
|
 |
135360 |
}
|
|
 |
135360 |
@@ -367,8 +375,10 @@ static void signalHyperlink(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointe
|
|
 |
135360 |
static void cursorChanged(LOKDocView* pDocView, gint nX, gint nY,
|
|
 |
135360 |
gint /*nWidth*/, gint /*nHeight*/, gpointer /*pData*/)
|
|
 |
135360 |
{
|
|
 |
135360 |
- GtkAdjustment* vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
|
|
 |
135360 |
- GtkAdjustment* hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
|
|
 |
135360 |
+ TiledWindow& rWindow = lcl_getTiledWindow(GTK_WIDGET(pDocView));
|
|
 |
135360 |
+
|
|
 |
135360 |
+ GtkAdjustment* vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(rWindow.m_pScrolledWindow));
|
|
 |
135360 |
+ GtkAdjustment* hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(rWindow.m_pScrolledWindow));
|
|
 |
135360 |
GdkRectangle visArea;
|
|
 |
135360 |
gdouble upper;
|
|
 |
135360 |
gint x = -1, y = -1;
|
|
 |
135360 |
@@ -413,12 +423,13 @@ static void cursorChanged(LOKDocView* pDocView, gint nX, gint nY,
|
|
 |
135360 |
|
|
 |
135360 |
static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
|
|
 |
135360 |
{
|
|
 |
135360 |
- if (g_bToolItemBroadcast)
|
|
 |
135360 |
+ TiledWindow& rWindow = lcl_getTiledWindow(pWidget);
|
|
 |
135360 |
+
|
|
 |
135360 |
+ if (rWindow.m_bToolItemBroadcast)
|
|
 |
135360 |
{
|
|
 |
135360 |
- TiledWindow& rWindow = lcl_getTiledWindow(pWidget);
|
|
 |
135360 |
LOKDocView* pLOKDocView = LOK_DOC_VIEW(rWindow.m_pDocView);
|
|
 |
135360 |
GtkToolItem* pItem = GTK_TOOL_ITEM(pWidget);
|
|
 |
135360 |
- const std::string& rString = g_aToolItemCommandNames[pItem];
|
|
 |
135360 |
+ const std::string& rString = rWindow.m_aToolItemCommandNames[pItem];
|
|
 |
135360 |
g_info("toggleToolItem: lok_doc_view_post_command('%s')", rString.c_str());
|
|
 |
135360 |
lok_doc_view_post_command(pLOKDocView, rString.c_str(), 0);
|
|
 |
135360 |
}
|
|
 |
135360 |
@@ -622,28 +633,28 @@ int main( int argc, char* argv[] )
|
|
 |
135360 |
gtk_tool_item_set_tooltip_text(aWindow.m_pBold, "Bold");
|
|
 |
135360 |
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pBold, -1);
|
|
 |
135360 |
g_signal_connect(G_OBJECT(aWindow.m_pBold), "toggled", G_CALLBACK(toggleToolItem), NULL);
|
|
 |
135360 |
- lcl_registerToolItem(aWindow.m_pBold, ".uno:Bold");
|
|
 |
135360 |
+ lcl_registerToolItem(aWindow, aWindow.m_pBold, ".uno:Bold");
|
|
 |
135360 |
|
|
 |
135360 |
aWindow.m_pItalic = gtk_toggle_tool_button_new();
|
|
 |
135360 |
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (aWindow.m_pItalic), "format-text-italic-symbolic");
|
|
 |
135360 |
gtk_tool_item_set_tooltip_text(aWindow.m_pItalic, "Italic");
|
|
 |
135360 |
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pItalic, -1);
|
|
 |
135360 |
g_signal_connect(G_OBJECT(aWindow.m_pItalic), "toggled", G_CALLBACK(toggleToolItem), NULL);
|
|
 |
135360 |
- lcl_registerToolItem(aWindow.m_pItalic, ".uno:Italic");
|
|
 |
135360 |
+ lcl_registerToolItem(aWindow, aWindow.m_pItalic, ".uno:Italic");
|
|
 |
135360 |
|
|
 |
135360 |
aWindow.m_pUnderline = gtk_toggle_tool_button_new();
|
|
 |
135360 |
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (aWindow.m_pUnderline), "format-text-underline-symbolic");
|
|
 |
135360 |
gtk_tool_item_set_tooltip_text(aWindow.m_pUnderline, "Underline");
|
|
 |
135360 |
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pUnderline, -1);
|
|
 |
135360 |
g_signal_connect(G_OBJECT(aWindow.m_pUnderline), "toggled", G_CALLBACK(toggleToolItem), NULL);
|
|
 |
135360 |
- lcl_registerToolItem(aWindow.m_pUnderline, ".uno:Underline");
|
|
 |
135360 |
+ lcl_registerToolItem(aWindow, aWindow.m_pUnderline, ".uno:Underline");
|
|
 |
135360 |
|
|
 |
135360 |
aWindow.m_pStrikethrough = gtk_toggle_tool_button_new ();
|
|
 |
135360 |
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(aWindow.m_pStrikethrough), "format-text-strikethrough-symbolic");
|
|
 |
135360 |
gtk_tool_item_set_tooltip_text(aWindow.m_pStrikethrough, "Strikethrough");
|
|
 |
135360 |
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pStrikethrough, -1);
|
|
 |
135360 |
g_signal_connect(G_OBJECT(aWindow.m_pStrikethrough), "toggled", G_CALLBACK(toggleToolItem), NULL);
|
|
 |
135360 |
- lcl_registerToolItem(aWindow.m_pStrikethrough, ".uno:Strikeout");
|
|
 |
135360 |
+ lcl_registerToolItem(aWindow, aWindow.m_pStrikethrough, ".uno:Strikeout");
|
|
 |
135360 |
|
|
 |
135360 |
gtk_box_pack_start( GTK_BOX(pVBox), pToolbar, FALSE, FALSE, 0 ); // Adds to top.
|
|
 |
135360 |
|
|
 |
135360 |
@@ -696,12 +707,12 @@ int main( int argc, char* argv[] )
|
|
 |
135360 |
|
|
 |
135360 |
|
|
 |
135360 |
// Scrolled window for DocView
|
|
 |
135360 |
- pScrolledWindow = gtk_scrolled_window_new(0, 0);
|
|
 |
135360 |
- gtk_widget_set_hexpand (pScrolledWindow, TRUE);
|
|
 |
135360 |
- gtk_widget_set_vexpand (pScrolledWindow, TRUE);
|
|
 |
135360 |
- gtk_container_add(GTK_CONTAINER(pVBox), pScrolledWindow);
|
|
 |
135360 |
+ aWindow.m_pScrolledWindow = gtk_scrolled_window_new(0, 0);
|
|
 |
135360 |
+ gtk_widget_set_hexpand (aWindow.m_pScrolledWindow, TRUE);
|
|
 |
135360 |
+ gtk_widget_set_vexpand (aWindow.m_pScrolledWindow, TRUE);
|
|
 |
135360 |
+ gtk_container_add(GTK_CONTAINER(pVBox), aWindow.m_pScrolledWindow);
|
|
 |
135360 |
|
|
 |
135360 |
- gtk_container_add(GTK_CONTAINER(pScrolledWindow), pDocView);
|
|
 |
135360 |
+ gtk_container_add(GTK_CONTAINER(aWindow.m_pScrolledWindow), pDocView);
|
|
 |
135360 |
|
|
 |
135360 |
GtkWidget* pProgressBar = gtk_progress_bar_new ();
|
|
 |
135360 |
g_signal_connect(pDocView, "load-changed", G_CALLBACK(loadChanged), pProgressBar);
|
|
 |
135360 |
--
|
|
 |
135360 |
2.12.0
|
|
 |
135360 |
|