summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2015-08-01 02:13:47 +0200
committerJan Holesovsky <kendy@collabora.com>2015-08-03 11:29:19 +0200
commit1823208dbd13ec7d4118045084036a59a70c7125 (patch)
tree14782e5b3dc9e9602dff79ca7a5d73dc378be711 /libreofficekit
parentef6d95bc75b06573bf5342933b1ac35aada5dbc8 (diff)
LOK: Implement parts for Writer too.
In Writer, the meaning of 'parts' is a bit different than in Calc or Impress. In Writer, the parts mean pages, and the document does not give a completely different view, the cursor just jumps to the given page. It is up to the client to follow the cursor appropriately to have the desired effect. Conflicts: libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx libreofficekit/source/gtk/lokdocview.cxx Change-Id: I56b3264e0340cd639bdabfa92b74b52bd1f391a5
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx8
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx11
2 files changed, 19 insertions, 0 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 83ec9d23c113..144f807207aa 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -300,6 +300,13 @@ static void populatePartSelector()
lok_docview_get_part( LOK_DOCVIEW(pDocView) ) );
}
+static void signalSize(LOKDocView* /*pLOKDocView*/, gpointer /*pData*/)
+{
+ g_bPartSelectorBroadcast = false;
+ populatePartSelector();
+ g_bPartSelectorBroadcast = true;
+}
+
static void changePart( GtkWidget* pSelector, gpointer /* pItem */ )
{
int nPart = gtk_combo_box_get_active( GTK_COMBO_BOX(pSelector) );
@@ -463,6 +470,7 @@ int main( int argc, char* argv[] )
g_signal_connect(pDocView, "command-changed", G_CALLBACK(signalCommand), NULL);
g_signal_connect(pDocView, "search-not-found", G_CALLBACK(signalSearch), NULL);
g_signal_connect(pDocView, "part-changed", G_CALLBACK(signalPart), NULL);
+ g_signal_connect(pDocView, "size-changed", G_CALLBACK(signalSize), NULL);
// Input handling.
g_signal_connect(pWindow, "key-press-event", G_CALLBACK(signalKey), pDocView);
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 7ab7f099c8bf..2adc23ed5f8b 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1086,6 +1086,7 @@ enum
COMMAND_CHANGED,
SEARCH_NOT_FOUND,
PART_CHANGED,
+ SIZE_CHANGED,
LAST_SIGNAL
};
@@ -1151,6 +1152,16 @@ static void lok_docview_class_init( gpointer ptr )
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE, 1,
G_TYPE_INT);
+ pClass->size_changed = 0;
+ docview_signals[SIZE_CHANGED] =
+ g_signal_new("size-changed",
+ G_TYPE_FROM_CLASS(gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(LOKDocViewClass, size_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 1,
+ G_TYPE_INT);
}
static void lok_docview_init( GTypeInstance* pInstance, gpointer )