X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fmainframe.cpp;h=2b71c92391e1d758287bbecb3145689c13737876;hb=03c2a5a99fbab9e208789ec1e8872b112c2a1caa;hp=eb8734cfa8e041fd5f75b0dbca832ccf73f4dde7;hpb=c8a08caf81f17ec0f421e341b38afa80af1df5dd;p=xonotic%2Fnetradiant.git diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index eb8734cf..2b71c923 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -1186,9 +1186,9 @@ void SelectFaceMode() class CloneSelected : public scene::Graph::Walker { - bool doFixNames; + bool doMakeUnique; public: - CloneSelected(bool d): doFixNames(d) { } + CloneSelected(bool d): doMakeUnique(d) { } bool pre(const scene::Path& path, scene::Instance& instance) const { if(path.size() == 1) @@ -1218,16 +1218,17 @@ public: && selectable->isSelected()) { NodeSmartReference clone(Node_Clone(path.top())); - Map_gatherNamespaced(clone); + if(doMakeUnique) + Map_gatherNamespaced(clone); Node_getTraversable(path.parent().get())->insert(clone); } } } }; -void Scene_Clone_Selected(scene::Graph& graph, bool doFixNames) +void Scene_Clone_Selected(scene::Graph& graph, bool doMakeUnique) { - graph.traverse(CloneSelected(doFixNames)); + graph.traverse(CloneSelected(doMakeUnique)); Map_mergeClonedNames(); } @@ -1306,11 +1307,11 @@ void Selection_Clone() } } -void Selection_Clone_FixNames() +void Selection_Clone_MakeUnique() { if(GlobalSelectionSystem().Mode() == SelectionSystem::ePrimitive) { - UndoableCommand undo("cloneSelected"); + UndoableCommand undo("cloneSelectedMakeUnique"); Scene_Clone_Selected(GlobalSceneGraph(), true); @@ -1993,6 +1994,7 @@ GtkMenuItem* create_edit_menu() create_menu_item_with_mnemonic(menu, "P_aste To Camera", "PasteToCamera"); menu_separator(menu); create_menu_item_with_mnemonic(menu, "_Duplicate", "CloneSelection"); + create_menu_item_with_mnemonic(menu, "Duplicate, make uni_que", "CloneSelectionAndMakeUnique"); create_menu_item_with_mnemonic(menu, "D_elete", "DeleteSelection"); menu_separator(menu); create_menu_item_with_mnemonic(menu, "Pa_rent", "ParentSelection"); @@ -3319,13 +3321,12 @@ void GlobalGL_sharedContextCreated() GlobalShaderCache().realise(); Textures_Realise(); -#if defined(WIN32) - g_font = glfont_create("courier new 8"); -#elif defined(__linux__) - g_font = glfont_create("fixed 8"); -#else - g_font = glfont_create("courier 8"); -#endif + /* use default font here (Sans 10 is gtk default) */ + GtkSettings *settings = gtk_settings_get_default(); + gchar *fontname; + g_object_get(settings, "gtk-font-name", &fontname, NULL); + g_font = glfont_create(fontname); + GlobalOpenGL().m_font = g_font.getDisplayList(); GlobalOpenGL().m_fontHeight = g_font.getPixelHeight(); } @@ -3408,7 +3409,7 @@ void MainFrame_Construct() GlobalCommands_insert("Paste", FreeCaller(), Accelerator('V', (GdkModifierType)GDK_CONTROL_MASK)); GlobalCommands_insert("PasteToCamera", FreeCaller(), Accelerator('V', (GdkModifierType)GDK_MOD1_MASK)); GlobalCommands_insert("CloneSelection", FreeCaller(), Accelerator(GDK_space)); - GlobalCommands_insert("CloneSelectionAndFixNames", FreeCaller(), Accelerator(GDK_space, (GdkModifierType)GDK_SHIFT_MASK)); + GlobalCommands_insert("CloneSelectionAndMakeUnique", FreeCaller(), Accelerator(GDK_space, (GdkModifierType)GDK_SHIFT_MASK)); GlobalCommands_insert("DeleteSelection", FreeCaller(), Accelerator(GDK_BackSpace)); GlobalCommands_insert("ParentSelection", FreeCaller()); GlobalCommands_insert("UnSelectSelection", FreeCaller(), Accelerator(GDK_Escape));