X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fverbs.cpp;h=c70e62fe220e04af68536e03aa139cd15922a064;hb=761a541468cc0b8a7fcfb8c65784c0896f0f80f4;hp=fb0b50c8e121cf7022b7264a958b71da5cb63cff;hpb=c24f33d954db23ca18de731dc8cacfcfc701cb75;p=inkscape.git diff --git a/src/verbs.cpp b/src/verbs.cpp index fb0b50c8e..c70e62fe2 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -45,14 +45,11 @@ #include "dialogs/iconpreview.h" #include "dialogs/extensions.h" #include "dialogs/swatches.h" +#include "dialogs/layers-panel.h" #include "dialogs/input.h" #ifdef WITH_INKBOARD -#include "ui/dialog/whiteboard-connect.h" -#include "ui/dialog/whiteboard-sharewithuser.h" -#include "ui/dialog/whiteboard-sharewithchat.h" #include "jabber_whiteboard/session-manager.h" -#include "jabber_whiteboard/node-tracker.h" #endif #include "extension/effect.h" @@ -332,6 +329,24 @@ public: { } }; /* TutorialVerb class */ +/** \brief A class to encompass all of the verbs which deal with + text operations. */ +class TextVerb : public Verb { +private: + static void perform(SPAction *action, void *mydata, void *otherdata); + static SPActionEventVector vector; +protected: + virtual SPAction *make_action(Inkscape::UI::View::View *view); +public: + /** \brief Use the Verb initializer with the same parameters. */ + TextVerb(unsigned int const code, + gchar const *id, + gchar const *name, + gchar const *tip, + gchar const *image) : + Verb(code, id, name, tip, image) + { } +}; //TextVerb : public Verb Verb::VerbTable Verb::_verbs; Verb::VerbIDTable Verb::_verb_ids; @@ -508,6 +523,18 @@ TutorialVerb::make_action(Inkscape::UI::View::View *view) return make_action_helper(view, &vector); } +/** \brief Create an action for a \c TextVerb + \param view Which view the action should be created for + \return The built action. + + Calls \c make_action_helper with the \c vector. +*/ +SPAction * +TextVerb::make_action(Inkscape::UI::View::View *view) +{ + return make_action_helper(view, &vector); +} + /** \brief A quick little convience function to make building actions a little bit easier. \param view Which view the action should be created for. @@ -586,6 +613,7 @@ Verb::get_action(Inkscape::UI::View::View *view) action = this->make_action(view); // if (action == NULL) printf("Hmm, NULL in %s\n", _name); + if (action == NULL) printf("Hmm, NULL in %s\n", _name); if (!_default_sensitive) { sp_action_set_sensitive(action, 0); } else { @@ -626,6 +654,21 @@ Verb::sensitive(SPDocument *in_doc, bool in_sensitive) return; } + +void +Verb::name(SPDocument *in_doc, Glib::ustring in_name) +{ + if (_actions != NULL) { + for (ActionTable::iterator cur_action = _actions->begin(); + cur_action != _actions->end(); + cur_action++) { + if (in_doc == NULL || (cur_action->first != NULL && cur_action->first->doc() == in_doc)) { + sp_action_set_name(cur_action->second, in_name); + } + } + } +} + /** \brief A function to remove the action associated with a view. \param view Which view's actions should be removed. \return None @@ -803,10 +846,10 @@ EditVerb::perform(SPAction *action, void *data, void *pdata) switch (reinterpret_cast(data)) { case SP_VERB_EDIT_UNDO: - sp_undo(dt, SP_DT_DOCUMENT(dt)); + sp_undo(dt, sp_desktop_document(dt)); break; case SP_VERB_EDIT_REDO: - sp_redo(dt, SP_DT_DOCUMENT(dt)); + sp_redo(dt, sp_desktop_document(dt)); break; case SP_VERB_EDIT_CUT: sp_selection_cut(); @@ -897,7 +940,7 @@ EditVerb::perform(SPAction *action, void *data, void *pdata) if (tools_isactive(dt, TOOLS_NODES)) { sp_nodepath_deselect(SP_NODE_CONTEXT(ec)->nodepath); } else { - SP_DT_SELECTION(dt)->clear(); + sp_desktop_selection(dt)->clear(); } break; default: @@ -1045,7 +1088,8 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { dt->setCurrentLayer(next); - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), SP_VERB_LAYER_NEXT, + /* TODO: annotate */ "verbs.cpp:1077"); dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Moved to next layer.")); } else { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot move past last layer.")); @@ -1056,7 +1100,8 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) SPObject *prev=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (prev) { dt->setCurrentLayer(prev); - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), SP_VERB_LAYER_PREV, + /* TODO: annotate */ "verbs.cpp:1089"); dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Moved to previous layer.")); } else { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot move past first layer.")); @@ -1102,17 +1147,26 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) if ( SP_OBJECT_NEXT(layer) != old_pos ) { char const *message = NULL; + Glib::ustring description = ""; switch (verb) { case SP_VERB_LAYER_TO_TOP: + message = g_strdup_printf(_("Raised layer %s."), layer->defaultLabel()); + description = _("Layer to Top"); + break; case SP_VERB_LAYER_RAISE: message = g_strdup_printf(_("Raised layer %s."), layer->defaultLabel()); + description = _("Raise Layer"); break; case SP_VERB_LAYER_TO_BOTTOM: + message = g_strdup_printf(_("Lowered layer %s."), layer->defaultLabel()); + description = _("Layer to Bottom"); + break; case SP_VERB_LAYER_LOWER: message = g_strdup_printf(_("Lowered layer %s."), layer->defaultLabel()); + description = _("Lower Layer"); break; }; - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), verb, description); if (message) { dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, message); g_free((void *) message); @@ -1125,7 +1179,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) } case SP_VERB_LAYER_DELETE: { if ( dt->currentLayer() != dt->currentRoot() ) { - SP_DT_SELECTION(dt)->clear(); + sp_desktop_selection(dt)->clear(); SPObject *old_layer=dt->currentLayer(); sp_object_ref(old_layer, NULL); @@ -1145,7 +1199,8 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) dt->setCurrentLayer(survivor); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), SP_VERB_LAYER_DELETE, + _("Delete layer")); // TRANSLATORS: this means "The layer has been deleted." dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Deleted layer.")); @@ -1169,7 +1224,7 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) SPEventContext *ec = dt->event_context; - Inkscape::Selection *sel = SP_DT_SELECTION(dt); + Inkscape::Selection *sel = sp_desktop_selection(dt); if (sel->isEmpty()) return; @@ -1204,7 +1259,8 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) } else { sp_selection_scale_relative(sel, center, NR::scale(-1.0, 1.0)); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), SP_VERB_OBJECT_FLIP_HORIZONTAL, + _("Flip horizontally")); break; case SP_VERB_OBJECT_FLIP_VERTICAL: if (tools_isactive(dt, TOOLS_NODES)) { @@ -1212,7 +1268,8 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) } else { sp_selection_scale_relative(sel, center, NR::scale(1.0, -1.0)); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt), SP_VERB_OBJECT_FLIP_VERTICAL, + _("Flip vertically")); break; case SP_VERB_OBJECT_SET_MASK: sp_selection_set_mask(false, false); @@ -1365,6 +1422,20 @@ ContextVerb::perform(SPAction *action, void *data, void *pdata) } // end of sp_verb_action_ctx_perform() +/** \brief Decode the verb code and take appropriate action */ +void +TextVerb::perform(SPAction *action, void *data, void *pdata) +{ + SPDesktop *dt = static_cast(sp_action_get_view(action)); + if (!dt) + return; + + SPDocument *doc = sp_desktop_document(dt); + (void)doc; + Inkscape::XML::Node *repr = SP_OBJECT_REPR(dt->namedview); + (void)repr; +} + /** \brief Decode the verb code and take appropriate action */ void ZoomVerb::perform(SPAction *action, void *data, void *pdata) @@ -1373,7 +1444,7 @@ ZoomVerb::perform(SPAction *action, void *data, void *pdata) if (!dt) return; - SPDocument *doc = SP_DT_DOCUMENT(dt); + SPDocument *doc = sp_desktop_document(dt); Inkscape::XML::Node *repr = SP_OBJECT_REPR(dt->namedview); @@ -1465,6 +1536,8 @@ ZoomVerb::perform(SPAction *action, void *data, void *pdata) default: break; } + + dt->updateNow(); } // end of sp_verb_action_zoom_perform() @@ -1520,6 +1593,9 @@ DialogVerb::perform(SPAction *action, void *data, void *pdata) case SP_VERB_DIALOG_SCRIPT: dt->_dlg_mgr->showDialog("Script"); break; + case SP_VERB_DIALOG_UNDO_HISTORY: + dt->_dlg_mgr->showDialog("UndoHistory"); + break; case SP_VERB_DIALOG_TOGGLE: inkscape_dialogs_toggle(); break; @@ -1530,90 +1606,9 @@ DialogVerb::perform(SPAction *action, void *data, void *pdata) sp_item_dialog(); break; #ifdef WITH_INKBOARD - case SP_VERB_DIALOG_WHITEBOARD_CONNECT: { - // We need to ensure that this dialog is associated with the correct SessionManager, - // since the user may have opened a new document (and hence swapped SessionManager - // instances) sometime before this dialog invocation - Inkscape::UI::Dialog::WhiteboardConnectDialogImpl *dlg = dynamic_cast< Inkscape::UI::Dialog::WhiteboardConnectDialogImpl *>(dt->_dlg_mgr->getDialog("WhiteboardConnect")); - dlg->setSessionManager(); - dt->_dlg_mgr->showDialog("WhiteboardConnect"); - break; - } - case SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER: { - //sp_whiteboard_sharewithuser_dialog(NULL); - Inkscape::Whiteboard::SessionManager *sm = SP_ACTIVE_DESKTOP->whiteboard_session_manager(); - if (sm->session_data && sm->session_data->status[Inkscape::Whiteboard::LOGGED_IN]) { - // We need to ensure that this dialog is associated with the correct SessionManager, - // since the user may have opened a new document (and hence swapped SessionManager - // instances) sometime before this dialog invocation - Inkscape::UI::Dialog::WhiteboardShareWithUserDialogImpl *dlg = dynamic_cast< Inkscape::UI::Dialog::WhiteboardShareWithUserDialogImpl *>(dt->_dlg_mgr->getDialog("WhiteboardShareWithUser")); - dlg->setSessionManager(); - dt->_dlg_mgr->showDialog("WhiteboardShareWithUser"); - } else { - Gtk::MessageDialog dlg(_("You need to connect to a Jabber server before sharing a document with another user."), true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_CLOSE); - dlg.run(); - } - break; - } - case SP_VERB_DIALOG_WHITEBOARD_SHAREWITHCHAT: { - Inkscape::Whiteboard::SessionManager *sm = SP_ACTIVE_DESKTOP->whiteboard_session_manager(); - if (sm->session_data && sm->session_data->status[Inkscape::Whiteboard::LOGGED_IN]) { - // We need to ensure that this dialog is associated with the correct SessionManager, - // since the user may have opened a new document (and hence swapped SessionManager - // instances) sometime before this dialog invocation - Inkscape::UI::Dialog::WhiteboardShareWithChatroomDialogImpl *dlg = dynamic_cast< Inkscape::UI::Dialog::WhiteboardShareWithChatroomDialogImpl *>(dt->_dlg_mgr->getDialog("WhiteboardShareWithChat")); - dlg->setSessionManager(); - dt->_dlg_mgr->showDialog("WhiteboardShareWithChat"); - } else { - Gtk::MessageDialog dlg(_("You need to connect to a Jabber server before sharing a document with a chatroom."), true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_CLOSE); - dlg.run(); - } - break; - } - - case SP_VERB_DIALOG_WHITEBOARD_DUMPXMLTRACKER: - if (SP_ACTIVE_DESKTOP->whiteboard_session_manager()->node_tracker()) { - SP_ACTIVE_DESKTOP->whiteboard_session_manager()->node_tracker()->dump(); - } else { - g_log(NULL, G_LOG_LEVEL_DEBUG, _("XML node tracker has not been initialized; nothing to dump")); - } - break; - case SP_VERB_DIALOG_WHITEBOARD_OPENSESSIONFILE: { - Gtk::FileChooserDialog sessionfiledlg(_("Open session file"), Gtk::FILE_CHOOSER_ACTION_OPEN); - sessionfiledlg.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - sessionfiledlg.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); - - int result = sessionfiledlg.run(); - switch (result) { - case Gtk::RESPONSE_OK: - { - SP_ACTIVE_DESKTOP->whiteboard_session_manager()->clearDocument(); - SP_ACTIVE_DESKTOP->whiteboard_session_manager()->loadSessionFile(sessionfiledlg.get_filename()); - dt->_dlg_mgr->showDialog("SessionPlayer"); - //SP_ACTIVE_DESKTOP->whiteboard_session_manager()->session_player()->start(); - break; - } - case Gtk::RESPONSE_CANCEL: - default: - break; - } - break; - } - - case SP_VERB_DIALOG_WHITEBOARD_DISCONNECT_FROM_SESSION: + case SP_VERB_XMPP_CLIENT: { - Inkscape::Whiteboard::SessionManager *sm = SP_ACTIVE_DESKTOP->whiteboard_session_manager(); - if (sm->session_data && sm->session_data->status[Inkscape::Whiteboard::IN_WHITEBOARD]) { - SP_ACTIVE_DESKTOP->whiteboard_session_manager()->disconnectFromDocument(); - } - break; - } - case SP_VERB_DIALOG_WHITEBOARD_DISCONNECT_FROM_SERVER: - { - Inkscape::Whiteboard::SessionManager *sm = SP_ACTIVE_DESKTOP->whiteboard_session_manager(); - if (sm->session_data && sm->session_data->status[Inkscape::Whiteboard::LOGGED_IN]) { - SP_ACTIVE_DESKTOP->whiteboard_session_manager()->disconnectFromServer(); - } + Inkscape::Whiteboard::SessionManager::showClient(); break; } #endif @@ -1623,6 +1618,9 @@ DialogVerb::perform(SPAction *action, void *data, void *pdata) case SP_VERB_DIALOG_EXTENSIONEDITOR: dt->_dlg_mgr->showDialog("ExtensionEditor"); break; + case SP_VERB_DIALOG_LAYERS: + show_panel( Inkscape::UI::Dialogs::LayersPanel::getInstance(), "dialogs.layers", SP_VERB_DIALOG_LAYERS ); + break; default: break; } @@ -1713,48 +1711,48 @@ TutorialVerb::perform(SPAction *action, void *data, void *pdata) * is called. */ SPActionEventVector FileVerb::vector = - {{NULL},FileVerb::perform, NULL, NULL, NULL}; + {{NULL},FileVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined edit verb is * called. */ SPActionEventVector EditVerb::vector = - {{NULL},EditVerb::perform, NULL, NULL, NULL}; + {{NULL},EditVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined selection * verb is called */ SPActionEventVector SelectionVerb::vector = - {{NULL},SelectionVerb::perform, NULL, NULL, NULL}; + {{NULL},SelectionVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined layer * verb is called */ SPActionEventVector LayerVerb::vector = - {{NULL}, LayerVerb::perform, NULL, NULL, NULL}; + {{NULL}, LayerVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined object * editing verb is called */ SPActionEventVector ObjectVerb::vector = - {{NULL},ObjectVerb::perform, NULL, NULL, NULL}; + {{NULL},ObjectVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined context * verb is called */ SPActionEventVector ContextVerb::vector = - {{NULL},ContextVerb::perform, NULL, NULL, NULL}; + {{NULL},ContextVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined zoom verb * is called */ SPActionEventVector ZoomVerb::vector = - {{NULL},ZoomVerb::perform, NULL, NULL, NULL}; + {{NULL},ZoomVerb::perform, NULL, NULL, NULL, NULL}; /** @@ -1762,23 +1760,31 @@ SPActionEventVector ZoomVerb::vector = * is called */ SPActionEventVector DialogVerb::vector = - {{NULL},DialogVerb::perform, NULL, NULL, NULL}; + {{NULL},DialogVerb::perform, NULL, NULL, NULL, NULL}; /** * Action vector to define functions called if a staticly defined help verb * is called */ SPActionEventVector HelpVerb::vector = - {{NULL},HelpVerb::perform, NULL, NULL, NULL}; + {{NULL},HelpVerb::perform, NULL, NULL, NULL, NULL}; - -/* *********** Effect Last ********** */ /** * Action vector to define functions called if a staticly defined tutorial verb * is called */ SPActionEventVector TutorialVerb::vector = - {{NULL},TutorialVerb::perform, NULL, NULL, NULL}; + {{NULL},TutorialVerb::perform, NULL, NULL, NULL, NULL}; + +/** + * Action vector to define functions called if a staticly defined tutorial verb + * is called + */ +SPActionEventVector TextVerb::vector = + {{NULL},TextVerb::perform, NULL, NULL, NULL, NULL}; + + +/* *********** Effect Last ********** */ /** \brief A class to represent the last effect issued */ class EffectLastVerb : public Verb { @@ -1804,7 +1810,7 @@ public: * The vector to attach in the last effect verb. */ SPActionEventVector EffectLastVerb::vector = - {{NULL},EffectLastVerb::perform, NULL, NULL, NULL}; + {{NULL},EffectLastVerb::perform, NULL, NULL, NULL, NULL}; /** \brief Create an action for a \c EffectLastVerb \param view Which view the action should be created for @@ -1847,6 +1853,79 @@ EffectLastVerb::perform(SPAction *action, void *data, void *pdata) } /* *********** End Effect Last ********** */ +/* *********** Fit Canvas ********** */ + +/** \brief A class to represent the canvas fitting verbs */ +class FitCanvasVerb : public Verb { +private: + static void perform(SPAction *action, void *mydata, void *otherdata); + static SPActionEventVector vector; +protected: + virtual SPAction *make_action(Inkscape::UI::View::View *view); +public: + /** \brief Use the Verb initializer with the same parameters. */ + FitCanvasVerb(unsigned int const code, + gchar const *id, + gchar const *name, + gchar const *tip, + gchar const *image) : + Verb(code, id, name, tip, image) + { + set_default_sensitive(false); + } +}; /* FitCanvasVerb class */ + +/** + * The vector to attach in the fit canvas verb. + */ +SPActionEventVector FitCanvasVerb::vector = + {{NULL},FitCanvasVerb::perform, NULL, NULL, NULL, NULL}; + +/** \brief Create an action for a \c FitCanvasVerb + \param view Which view the action should be created for + \return The built action. + + Calls \c make_action_helper with the \c vector. +*/ +SPAction * +FitCanvasVerb::make_action(Inkscape::UI::View::View *view) +{ + SPAction *action = make_action_helper(view, &vector); + return action; +} + +/** \brief Decode the verb code and take appropriate action */ +void +FitCanvasVerb::perform(SPAction *action, void *data, void *pdata) +{ + SPDesktop *dt = static_cast(sp_action_get_view(action)); + if (!dt) return; + SPDocument *doc = sp_desktop_document(dt); + if (!doc) return; + + switch ((long) data) { + case SP_VERB_FIT_CANVAS_TO_SELECTION: + fit_canvas_to_selection(dt); + break; + case SP_VERB_FIT_CANVAS_TO_DRAWING: + fit_canvas_to_drawing(doc); + break; + case SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING: + fit_canvas_to_selection_or_drawing(dt); + break; + default: + return; + } + + return; +} +/* *********** End Fit Canvas ********** */ + + + + + + /* these must be in the same order as the SP_VERB_* enum in "verbs.h" */ Verb *Verb::_base_verbs[] = { /* Header */ @@ -1895,7 +1974,7 @@ Verb *Verb::_base_verbs[] = { new EditVerb(SP_VERB_EDIT_COPY, "EditCopy", N_("_Copy"), N_("Copy selection to clipboard"), GTK_STOCK_COPY), new EditVerb(SP_VERB_EDIT_PASTE, "EditPaste", N_("_Paste"), - N_("Paste objects from clipboard to mouse point"), GTK_STOCK_PASTE), + N_("Paste objects from clipboard to mouse point, or paste text"), GTK_STOCK_PASTE), new EditVerb(SP_VERB_EDIT_PASTE_STYLE, "EditPasteStyle", N_("Paste _Style"), N_("Apply the style of the copied object to selection"), "selection_paste_style"), new EditVerb(SP_VERB_EDIT_PASTE_SIZE, "EditPasteSize", N_("Paste Si_ze"), @@ -2186,7 +2265,7 @@ Verb *Verb::_base_verbs[] = { N_("Edit global Inkscape preferences"), GTK_STOCK_PREFERENCES ), new DialogVerb(SP_VERB_DIALOG_NAMEDVIEW, "DialogDocumentProperties", N_("_Document Properties..."), N_("Edit properties of this document (to be saved with the document)"), GTK_STOCK_PROPERTIES ), - new DialogVerb(SP_VERB_DIALOG_METADATA, "DialogMetadata", N_("_Document Metadata..."), + new DialogVerb(SP_VERB_DIALOG_METADATA, "DialogMetadata", N_("Document _Metadata..."), N_("Edit document metadata (to be saved with the document)"), NULL ), new DialogVerb(SP_VERB_DIALOG_FILL_STROKE, "DialogFillStroke", N_("_Fill and Stroke..."), N_("Edit objects' style, such as color or stroke width"), "fill_and_stroke"), @@ -2197,6 +2276,8 @@ Verb *Verb::_base_verbs[] = { N_("Precisely control objects' transformations"), "object_trans"), new DialogVerb(SP_VERB_DIALOG_ALIGN_DISTRIBUTE, "DialogAlignDistribute", N_("_Align and Distribute..."), N_("Align and distribute objects"), "object_align"), + new DialogVerb(SP_VERB_DIALOG_UNDO_HISTORY, "DialogUndoHistory", N_("Undo _History..."), + N_("Undo History"), "edit_undo_history"), new DialogVerb(SP_VERB_DIALOG_TEXT, "DialogText", N_("_Text and Font..."), N_("View and select font family, font size and other text properties"), "object_font"), new DialogVerb(SP_VERB_DIALOG_XML_EDITOR, "DialogXMLEditor", N_("_XML Editor..."), @@ -2215,27 +2296,15 @@ Verb *Verb::_base_verbs[] = { new DialogVerb(SP_VERB_DIALOG_ITEM, "DialogObjectProperties", N_("_Object Properties..."), N_("Edit the ID, locked and visible status, and other object properties"), "dialog_item_properties"), #ifdef WITH_INKBOARD - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_CONNECT, "DialogWhiteboardConnect", - N_("_Connect to Jabber server..."), N_("Connect to a Jabber server"), NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER, "DialogWhiteboardShareWithUser", - N_("Share with _user..."), N_("Establish a whiteboard session with another Jabber user"), NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_SHAREWITHCHAT, "DialogWhiteboardShareWithChat", - N_("Share with _chatroom..."), N_("Join a chatroom to start a new whiteboard session or join one in progress"), NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_DUMPXMLTRACKER, "DialogWhiteboardDumpXMLTracker", - N_("_Dump XML node tracker"), N_("Dump the contents of the XML tracker to the console"), NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_OPENSESSIONFILE, "DialogWhiteboardOpenSessionFile", - N_("_Open session file..."), N_("Open and browse through records of past whiteboard sessions"), NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_SESSIONPLAYBACK, "DialogWhiteboardSessionPlayback", - N_("Session file playback"), "", NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_DISCONNECT_FROM_SESSION, "DialogWhiteboardDisconnectSession", - N_("_Disconnect from session"), "", NULL), - new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_DISCONNECT_FROM_SERVER, "DialogWhiteboardDisconnectServer", - N_("Disconnect from _server"), "", NULL), + new DialogVerb(SP_VERB_XMPP_CLIENT, "DialogXmppClient", + N_("_Instant Messaging..."), N_("Jabber Instant Messaging Client"), NULL), #endif new DialogVerb(SP_VERB_DIALOG_INPUT, "DialogInput", N_("_Input Devices..."), N_("Configure extended input devices, such as a graphics tablet"), NULL), new DialogVerb(SP_VERB_DIALOG_EXTENSIONEDITOR, "org.inkscape.dialogs.extensioneditor", N_("_Extensions..."), N_("Query information about extensions"), NULL), + new DialogVerb(SP_VERB_DIALOG_LAYERS, "DialogLayers", N_("Layer_s..."), + N_("View Layers"), NULL), /* Help */ new HelpVerb(SP_VERB_HELP_KEYS, "HelpKeys", N_("_Keys and Mouse"), @@ -2246,6 +2315,8 @@ Verb *Verb::_base_verbs[] = { N_("Memory usage information"), NULL), new HelpVerb(SP_VERB_HELP_ABOUT, "HelpAbout", N_("_About Inkscape"), N_("Inkscape version, authors, license"), /*"help_about"*/"inkscape_options"), + //new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), + // N_("Distribution terms"), /*"show_license"*/"inkscape_options"), /* Tutorials */ new TutorialVerb(SP_VERB_TUTORIAL_BASIC, "TutorialsBasic", N_("Inkscape: _Basic"), @@ -2266,12 +2337,19 @@ Verb *Verb::_base_verbs[] = { /* Effect */ new EffectLastVerb(SP_VERB_EFFECT_LAST, "EffectLast", N_("Previous Effect"), - N_("Repeat the last effect with the same settings"), NULL/*"tutorial_tips"*/), + N_("Repeat the last effect with the same settings"), NULL), new EffectLastVerb(SP_VERB_EFFECT_LAST_PREF, "EffectLastPref", N_("Previous Effect Settings..."), - N_("Repeat the last effect with new settings"), NULL/*"tutorial_tips"*/), - + N_("Repeat the last effect with new settings"), NULL), + + /* Fit Page */ + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION, "FitCanvasToSelection", N_("Fit Page to Selection"), + N_("Fit the page to the current selection"), NULL), + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_DRAWING, "FitCanvasToDrawing", N_("Fit Page to Drawing"), + N_("Fit the page to the drawing"), NULL), + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING, "FitCanvasToSelectionOrDrawing", N_("Fit Page to Selection or Drawing"), + N_("Fit the page to the current selection or the drawing if there is no selection"), NULL), /* Footer */ - new Verb(SP_VERB_LAST, NULL, NULL, NULL, NULL) + new Verb(SP_VERB_LAST, " '\"invalid id", NULL, NULL, NULL) };