diff --git a/krita/CMakeLists.txt b/krita/CMakeLists.txt index da2e001e2f7..e9dd75e130b 100644 --- a/krita/CMakeLists.txt +++ b/krita/CMakeLists.txt @@ -1,151 +1,152 @@ project(krita) # # The reason for this mode is that the Debug mode disable inlining # if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS_KRITADEVS "-O3 -g" CACHE STRING "" FORCE) endif(CMAKE_COMPILER_IS_GNUCXX) if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") endif(MSVC) include(CheckFunctionExists) macro_optional_find_package(GLEW) macro_bool_to_01(GLEW_FOUND HAVE_GLEW) configure_file(config-glew.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-glew.h ) macro_log_feature(HAVE_GLEW "GLEW" "The OpenGL Extension Wrangler Library" "http://glew.sourceforge.net" FALSE "" "Required by the Krita shader filter plugin") if(HAVE_GLEW) message(STATUS "GLEW found!") else(HAVE_GLEW) message(STATUS "GLEW NOT found - krita will not be able to use OpenGL shaders") endif(HAVE_GLEW) if(HAVE_OPENGL) message(STATUS "OpenGL found -- krita will be able to use OpenGL for hardware accelerated rendering.") else(HAVE_OPENGL) message(STATUS "OpenGL NOT found - krita will not be able to use OpenGL for hardware accelerated rendering.") endif(HAVE_OPENGL) macro_optional_find_package(OCIO) macro_log_feature(OCIO_FOUND "OCIO" "The OpenColorIO Library" "http://www.opencolorio.org" FALSE "" "Required by the Krita LUT docker") macro_bool_to_01(OCIO_FOUND HAVE_OCIO) configure_file(config-ocio.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ocio.h ) if(UNIX) set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};m") endif(UNIX) check_function_exists(powf HAVE_POWF) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-powf.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-powf.h) set(LINK_OPENEXR_LIB) if(OPENEXR_FOUND) include_directories(${OPENEXR_INCLUDE_DIR}) set(LINK_OPENEXR_LIB ${OPENEXR_LIBRARIES}) add_definitions(${OPENEXR_DEFINITIONS}) endif(OPENEXR_FOUND) if(WIN32) if(MSVC) # C4522: 'class' : multiple assignment operators specified set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4522") endif(MSVC) endif(WIN32) set(KRITA_INCLUDES # For config-*.h ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/krita/image ${CMAKE_SOURCE_DIR}/krita/image/brushengine ${CMAKE_SOURCE_DIR}/krita/image/tiles ${CMAKE_SOURCE_DIR}/krita/ui ${CMAKE_SOURCE_DIR}/krita/ui/canvas ${CMAKE_SOURCE_DIR}/krita/ui/tool ${CMAKE_SOURCE_DIR}/krita/ui/flake ${CMAKE_SOURCE_DIR}/krita/ui/widgets # For generated files from .ui ${CMAKE_BINARY_DIR}/krita/ui ${PIGMENT_INCLUDES} ${KOTEXT_INCLUDES} ${KOMAIN_INCLUDES} ${CMAKE_SOURCE_DIR}/libs/widgets/resources ${CMAKE_SOURCE_DIR}/libs/widgets/colorwidgets - + ${CMAKE_SOURCE_DIR}/libs/widgetutils + ${EIGEN2_INCLUDE_DIR} # 'Export' this for use by filters CACHE INTERNAL "" ) include_directories(${KRITA_INCLUDES}) if(HAVE_OPENGL) include_directories(${OPENGL_INCLUDE_DIR}) if(HAVE_GLEW) include_directories(${GLEW_INCLUDE_DIR}) endif(HAVE_GLEW) endif(HAVE_OPENGL) add_subdirectory( image ) add_subdirectory( ui ) add_subdirectory( dtd ) add_subdirectory( plugins ) add_subdirectory( data ) add_subdirectory( pics ) add_subdirectory( benchmarks ) set(kritapart_PART_SRCS krita_part_init.cc) kde4_add_plugin(kritapart ${kritapart_PART_SRCS}) target_link_libraries(kritapart kritaui) install(TARGETS kritapart DESTINATION ${PLUGIN_INSTALL_DIR}) set(krita_KDEINIT_SRCS main.cc) kde4_add_app_icon(krita_KDEINIT_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/hi*-app-krita.png") kde4_add_kdeinit_executable(krita ${krita_KDEINIT_SRCS}) if (Q_WS_MAC) set_target_properties(krita PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.template) set_target_properties(krita PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.calligra.krita") set_target_properties(krita PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Krita 2") endif (Q_WS_MAC) target_link_libraries(kdeinit_krita kritaui) target_link_libraries(krita ${QT_QTCORE_LIBRARY} kdeinit_krita) if(CMAKE_SIZEOF_VOID_P EQUAL 8) find_package(OpenCTL) find_package(OpenShiva) find_package(QtShiva ) if(NOT ${OPENCTL_VERSION} VERSION_GREATER 0.9.15.1 ) # Workaround for the following issues: # http://bugs.kde.org/274675 http://bugs.kde.org/248051 # http://redmine.opengtl.org/issues/72 message(status "Found OpenGTL < 0.9.15.1, on a 64 bits system, krita will be forced linked to the libraries to make sure opengtl symbols are available") if(HAVE_OPENSHIVA AND HAVE_QTSHIVA) target_link_libraries(krita ${OPENSHIVA_LDFLAGS}) endif() if(OPENCTL_FOUND AND OPENEXR_FOUND) target_link_libraries(krita ${OPENCTL_LDFLAGS}) endif() endif() endif() install(TARGETS krita ${INSTALL_TARGETS_DEFAULT_ARGS}) install(TARGETS kdeinit_krita ${INSTALL_TARGETS_DEFAULT_ARGS}) install( PROGRAMS krita.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install( FILES kritapart.desktop DESTINATION ${SERVICES_INSTALL_DIR}) install( FILES krita.rc DESTINATION ${DATA_INSTALL_DIR}/krita) diff --git a/krita/ui/CMakeLists.txt b/krita/ui/CMakeLists.txt index cc2efc8968b..2d8abc47169 100644 --- a/krita/ui/CMakeLists.txt +++ b/krita/ui/CMakeLists.txt @@ -1,332 +1,332 @@ include_directories( ${KOTEXT_INCLUDES} ${TEXTLAYOUT_INCLUDES} ${CMAKE_SOURCE_DIR}/libs/pigment/colorprofiles - ${CMAKE_CURRENT_SOURCE_DIR}/flake + ${CMAKE_CURRENT_SOURCE_DIR}/flake ${CMAKE_CURRENT_SOURCE_DIR}/pigment/resources ${CMAKE_CURRENT_SOURCE_DIR}/widgets/resources ${CMAKE_CURRENT_SOURCE_DIR}/openrastertk ${CMAKE_SOURCE_DIR}/krita/image/metadata ${EXIV2_INCLUDE_DIR} ) add_subdirectory( tests ) configure_file(config-processor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-processor.h ) include(kdefx.cmake) set(kritaui_LIB_SRCS canvas/kis_canvas_widget_base.cpp canvas/kis_canvas2.cpp canvas/kis_canvas_controller.cpp canvas/kis_display_filter.cpp canvas/kis_tool_proxy.cpp canvas/kis_canvas_decoration.cc canvas/kis_coordinates_converter.cpp canvas/kis_grid_manager.cpp canvas/kis_grid_painter_configuration.cpp canvas/kis_perspective_grid_manager.cpp canvas/kis_prescaled_projection.cpp canvas/kis_qpainter_canvas.cpp canvas/kis_projection_backend.cpp canvas/kis_update_info.cpp canvas/kis_image_patch.cpp canvas/kis_image_pyramid.cpp dialogs/kis_dlg_adj_layer_props.cc dialogs/kis_dlg_adjustment_layer.cc dialogs/kis_dlg_filter.cpp dialogs/kis_dlg_generator_layer.cpp dialogs/kis_dlg_image_properties.cc dialogs/kis_dlg_layer_properties.cc dialogs/kis_dlg_preferences.cc dialogs/kis_dlg_blacklist_cleanup.cpp flake/kis_node_dummies_graph.cpp flake/kis_dummies_facade_base.cpp flake/kis_dummies_facade.cpp flake/kis_node_shapes_graph.cpp flake/kis_node_shape.cpp flake/kis_shape_controller.cpp flake/kis_shape_layer.cc flake/kis_shape_layer_canvas.cpp flake/kis_shape_selection.cpp flake/kis_shape_selection_canvas.cpp flake/kis_shape_selection_model.cpp kis_autogradient.cc kis_autogradient_resource.cc kis_bookmarked_configurations_editor.cc kis_bookmarked_configurations_model.cc kis_bookmarked_filter_configurations_model.cc kis_canvas_resource_provider.cpp kis_categorized_item_delegate.cpp kis_clipboard.cc kis_config.cc kis_config_notifier.cpp kis_color_data_list.cpp kis_control_frame.cpp kis_composite_ops_model.cc kis_paint_ops_model.cpp kis_cursor.cc kis_custom_palette.cc kis_custom_pattern.cc kis_doc2.cc kis_part2.cpp kis_factory2.cc kis_filter_handler.cc kis_filter_manager.cc kis_filters_model.cc kis_histogram_view.cc kis_image_manager.cc kis_image_view_converter.cpp kis_import_catcher.cc kis_layer_manager.cc kis_mask_manager.cc kis_mimedata.cpp kis_node_commands_adapter.cpp kis_node_manager.cpp kis_node_model.cpp kis_model_index_converter_base.cpp kis_model_index_converter.cpp kis_model_index_converter_show_all.cpp kis_painting_assistant.cc kis_painting_assistants_manager.cc kis_paintop_box.cc kis_palette_manager.cpp kis_popup_palette.cpp kis_png_converter.cpp kis_preference_set_registry.cpp kis_print_job.cpp kis_resource_server_provider.cpp kis_selection_decoration.cc kis_selection_manager.cc kis_statusbar.cc kis_view2.cpp kis_zoom_manager.cc ko_favorite_resource_manager.cpp kis_workspace_resource.cpp kis_mirror_visitor.cpp kisexiv2/kis_exif_io.cpp kisexiv2/kis_exiv2.cpp kisexiv2/kis_iptc_io.cpp kisexiv2/kis_xmp_io.cpp kra/kis_kra_utils.cpp kra/kis_kra_load_visitor.cpp kra/kis_kra_loader.cpp kra/kis_kra_save_visitor.cpp kra/kis_kra_saver.cpp kra/kis_kra_savexml_visitor.cpp opengl/kis_opengl.cpp opengl/kis_opengl_canvas2.cpp opengl/kis_opengl_image_textures.cpp opengl/kis_texture_tile.cpp openrastertk/kis_open_raster_stack_load_visitor.cpp openrastertk/kis_open_raster_stack_save_visitor.cpp recorder/kis_node_query_path_editor.cc recorder/kis_recorded_action_creator.cc recorder/kis_recorded_action_creator_factory.cc recorder/kis_recorded_action_creator_factory_registry.cc recorder/kis_recorded_action_editor_factory.cc recorder/kis_recorded_action_editor_factory_registry.cc recorder/kis_recorded_filter_action_editor.cc recorder/kis_recorded_filter_action_creator.cpp recorder/kis_recorded_paint_action_editor.cc tool/kis_selection_tool_helper.cpp tool/kis_selection_tool_config_widget_helper.cpp tool/kis_shape_tool_helper.cpp tool/kis_tool.cc tool/kis_tool_freehand.cc tool/kis_painting_information_builder.cpp tool/kis_tool_freehand_helper.cpp tool/kis_tool_multihand_helper.cpp tool/kis_figure_painting_tool_helper.cpp tool/kis_recording_adapter.cpp tool/kis_tool_paint.cc tool/kis_tool_shape.cc tool/kis_tool_select_base.cpp tool/kis_tool_ellipse_base.cpp tool/kis_tool_rectangle_base.cpp tool/kis_tool_polyline_base.cpp tool/kis_color_picker_utils.cpp tool/kis_resources_snapshot.cpp tool/strokes/freehand_stroke.cpp tool/strokes/kis_painter_based_stroke_strategy.cpp widgets/kis_channelflags_widget.cpp widgets/kis_cmb_composite.cc widgets/kis_paintop_list_widget.cpp widgets/kis_cmb_idlist.cc widgets/kis_color_space_selector.cc widgets/kis_curve_widget.cpp widgets/kis_custom_image_widget.cc widgets/kis_double_widget.cc widgets/kis_filter_selector_widget.cc widgets/kis_gradient_chooser.cc widgets/kis_gradient_slider_widget.cc widgets/kis_gradient_slider.cpp widgets/kis_iconwidget.cc widgets/kis_mask_widgets.cpp widgets/kis_meta_data_merge_strategy_chooser_widget.cc widgets/kis_multi_bool_filter_widget.cc widgets/kis_multi_double_filter_widget.cc widgets/kis_multi_integer_filter_widget.cc widgets/kis_multipliers_double_slider_spinbox.cpp widgets/kis_paintop_presets_popup.cpp widgets/kis_paintop_presets_chooser_popup.cpp widgets/kis_pattern_chooser.cc widgets/kis_popup_button.cc widgets/kis_preset_chooser.cpp widgets/kis_progress_widget.cpp widgets/kis_selection_options.cc widgets/kis_scratch_pad.cpp widgets/kis_scratch_pad_event_filter.cpp widgets/kis_preset_selector_strip.cpp widgets/kis_tree_view_popup.cc widgets/kis_slider_spin_box.cpp widgets/kis_wdg_generator.cpp widgets/kis_workspace_chooser.cpp widgets/squeezedcombobox.cpp widgets/kis_categorized_list_view.cpp widgets/kis_widget_chooser.cpp widgets/kis_tool_button.cpp widgets/kis_floating_message.cpp # widgets/kis_light_source.cpp # widgets/kis_light_stage.cpp input/kis_input_manager.cpp input/kis_abstract_input_action.cpp input/kis_tool_invocation_action.cpp input/kis_pan_action.cpp input/kis_alternate_invocation_action.cpp input/kis_rotate_canvas_action.cpp input/kis_zoom_action.cpp input/kis_show_palette_action.cpp input/kis_change_primary_setting_action.cpp input/kis_abstract_shortcut.cpp input/kis_single_action_shortcut.cpp input/kis_stroke_shortcut.cpp input/kis_shortcut_matcher.cpp kis_ui_action_factory.cpp kis_ui_action_factory_registry.cpp actions/kis_selection_action_factories.cpp ) if(HAVE_OPENGL) if(HAVE_GLEW) set(kritaui_LIB_SRCS ${kritaui_LIB_SRCS} opengl/kis_opengl_shader.cpp opengl/kis_opengl_fragment_shader.cpp opengl/kis_opengl_vertex_shader.cpp opengl/kis_opengl_program.cpp opengl/kis_opengl_gradient_program.cpp ) endif(HAVE_GLEW) set(kritaui_LIB_SRCS ${kritaui_LIB_SRCS} kis_3d_object_model.cpp ) endif(HAVE_OPENGL) add_definitions(${KDE4_ENABLE_EXCEPTIONS}) kde4_add_ui_files(kritaui_LIB_SRCS forms/wdgfullscreensettings.ui forms/wdgautogradient.ui forms/wdggeneralsettings.ui forms/wdgperformancesettings.ui forms/wdggridsettings.ui forms/wdggenerators.ui forms/wdgcustompalette.ui forms/wdgbookmarkedconfigurationseditor.ui forms/wdgapplyprofile.ui forms/wdgcustompattern.ui forms/wdglayerproperties.ui forms/wdgcolorsettings.ui forms/wdgtabletsettings.ui forms/wdgcolorspaceselector.ui forms/wdgdisplaysettings.ui forms/kis_previewwidgetbase.ui forms/kis_matrix_widget.ui forms/wdgselectionoptions.ui forms/wdgshapeoptions.ui forms/wdgnewimage.ui forms/wdgimageproperties.ui forms/wdgmaskfromselection.ui forms/wdgmasksource.ui forms/wdgfilterdialog.ui forms/wdgmetadatamergestrategychooser.ui forms/wdgpaintoppresets.ui forms/wdgpaintopsettings.ui forms/wdgdlggeneratorlayer.ui forms/wdgfilterselector.ui forms/wdgfilternodecreation.ui forms/wdgpaintactioneditor.ui forms/wdgmultipliersdoublesliderspinbox.ui forms/wdgnodequerypatheditor.ui forms/wdgpresetselectorstrip.ui forms/wdgdlgblacklistcleanup.ui ) kde4_add_library(kritaui SHARED ${kritaui_LIB_SRCS} ) target_link_libraries(kritaui ${X11_X11_LIB}) if(GHNS) - target_link_libraries(kritaui ${KDE4_THREADWEAVER_LIBRARIES} ${KDE4_KFILE_LIBRARY} kritaimage komain kowidgets ${PNG_LIBRARIES} ${EXIV2_LIBRARIES} ${KDE4_KNEWSTUFF3_LIBS}) + target_link_libraries(kritaui ${KDE4_THREADWEAVER_LIBRARIES} ${KDE4_KFILE_LIBRARY} kritaimage komain kowidgets kowidgetutils ${PNG_LIBRARIES} ${EXIV2_LIBRARIES} ${KDE4_KNEWSTUFF3_LIBS}) else(GHNS) - target_link_libraries(kritaui ${KDE4_THREADWEAVER_LIBRARIES} ${KDE4_KFILE_LIBRARY} kritaimage komain kowidgets ${PNG_LIBRARIES} ${EXIV2_LIBRARIES}) + target_link_libraries(kritaui ${KDE4_THREADWEAVER_LIBRARIES} ${KDE4_KFILE_LIBRARY} kritaimage komain kowidgets kowidgetutils ${PNG_LIBRARIES} ${EXIV2_LIBRARIES}) endif (GHNS) if(HAVE_OPENGL) target_link_libraries(kritaui ${OPENGL_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENEXR_LIBRARIES}) set (GL_INTERFACE_LIBRARIES ";${OPENGL_LIBRARIES};${QT_QTOPENGL_LIBRARY}") if(HAVE_GLEW) target_link_libraries(kritaui ${GLEW_LIBRARIES}) endif(HAVE_GLEW) endif(HAVE_OPENGL) target_link_libraries(kritaui LINK_INTERFACE_LIBRARIES kritaimage komain ${GL_INTERFACE_LIBRARIES} ) set_target_properties(kritaui PROPERTIES VERSION ${GENERIC_CALLIGRA_LIB_VERSION} SOVERSION ${GENERIC_CALLIGRA_LIB_SOVERSION} ) install(TARGETS kritaui ${INSTALL_TARGETS_DEFAULT_ARGS}) ########### install files ############### install( FILES canvas/kis_canvas2.h canvas/kis_canvas_decoration.h canvas/kis_coordinates_converter.h tool/kis_tool.h kis_cursor.h kis_view2.h kis_ui_types.h # kis_cmb_composite.h # kis_cmb_idlist.h # kis_color_cup.h # kis_config.h # kis_double_click_event.h # kis_double_widget.h # kis_filter_manager.h # kis_gradient_chooser.h # kis_gradient_slider_widget.h # kis_histogram_view.h # kis_icon_item.h # kis_iconwidget.h # kis_itemchooser.h # kis_label_zoom.h # kis_move_event.h widgets/kis_multi_bool_filter_widget.h widgets/kis_multi_double_filter_widget.h widgets/kis_multi_integer_filter_widget.h # kis_paintop_box.h # kis_previewwidget.h # kis_tool_non_paint.h # kis_tool_paint.h # kis_tool_freehand.h # kis_tool_dummy.h # kis_tool_manager.h # kis_tool_types.h # KoInputDevice.h # canvas/kis_perspective_grid_manager.h DESTINATION ${INCLUDE_INSTALL_DIR}) diff --git a/krita/ui/forms/wdgselectionoptions.ui b/krita/ui/forms/wdgselectionoptions.ui index ff09883e00f..19fc539a2c7 100644 --- a/krita/ui/forms/wdgselectionoptions.ui +++ b/krita/ui/forms/wdgselectionoptions.ui @@ -1,249 +1,184 @@ WdgSelectionOptions 0 0 - 139 - 73 + 271 + 106 0 0 0 - - - - CrossCursor - - - Mode: - - - - - - - - 0 - 0 - - - - - 24 - 16777215 - - + + - Pixel + Intersect (Shortcut T) - + ... true - - true - - + true - - - - - 0 - 0 - - - - - 24 - 16777215 - - + + - Shape + Vector Selection - + ... true - + true - - - - Action: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - 0 - 0 - - - - - 24 - 16777215 - - + Replace (Shortcut R) - + ... true true - + true - - - - - 0 - 0 - - - - - 24 - 16777215 - - + + - Intersect (Shortcut T) + Add (Shortcut A) - + ... true - + true - - - - - 0 - 0 - - - - - 24 - 16777215 - + + + + CrossCursor + + Mode: + + + + + + + Action: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + - Add (Shortcut A) + Pixel Selection - + ... true - + + true + + true - - - - - 0 - 0 - - - - - 24 - 16777215 - - + + Subtract (Shortcut S) - + ... true - + true - + Qt::Horizontal 0 10 Anti-aliasing true + + + KoGroupButton + QToolButton +
KoGroupButton.h
+
+
diff --git a/krita/ui/widgets/kis_selection_options.cc b/krita/ui/widgets/kis_selection_options.cc index beb6f2e87d7..0738cc04e6d 100644 --- a/krita/ui/widgets/kis_selection_options.cc +++ b/krita/ui/widgets/kis_selection_options.cc @@ -1,117 +1,123 @@ /* * Copyright (c) 2005 Boudewijn Rempt * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kis_selection_options.h" #include #include #include #include #include #include #include "kis_types.h" #include "kis_layer.h" #include "kis_image.h" #include "kis_selection.h" #include "kis_paint_device.h" #include "canvas/kis_canvas2.h" #include "kis_view2.h" KisSelectionOptions::KisSelectionOptions(KisCanvas2 * canvas) : m_canvas(canvas) { m_page = new WdgSelectionOptions(this); Q_CHECK_PTR(m_page); QVBoxLayout * l = new QVBoxLayout(this); l->addWidget(m_page); l->addSpacerItem(new QSpacerItem(0,0, QSizePolicy::Preferred, QSizePolicy::Expanding)); l->setContentsMargins(0,0,0,0); m_mode = new QButtonGroup(this); m_mode->addButton(m_page->pixel, PIXEL_SELECTION); m_mode->addButton(m_page->shape, SHAPE_PROTECTION); m_action = new QButtonGroup(this); m_action->addButton(m_page->add, SELECTION_ADD); m_action->addButton(m_page->subtract, SELECTION_SUBTRACT); m_action->addButton(m_page->replace, SELECTION_REPLACE); m_action->addButton(m_page->intersect, SELECTION_INTERSECT); + m_page->pixel->setGroupPosition(KoGroupButton::GroupLeft); + m_page->shape->setGroupPosition(KoGroupButton::GroupRight); m_page->pixel->setIcon(koIcon("select_pixel")); m_page->shape->setIcon(koIcon("select_shape")); + m_page->add->setGroupPosition(KoGroupButton::GroupCenter); + m_page->subtract->setGroupPosition(KoGroupButton::GroupRight); + m_page->replace->setGroupPosition(KoGroupButton::GroupLeft); + m_page->intersect->setGroupPosition(KoGroupButton::GroupCenter); m_page->add->setIcon(koIcon("selection_add")); m_page->subtract->setIcon(koIcon("selection_subtract")); m_page->replace->setIcon(koIcon("selection_replace")); m_page->intersect->setIcon(koIcon("selection_intersect")); connect(m_mode, SIGNAL(buttonClicked(int)), this, SIGNAL(modeChanged(int))); connect(m_action, SIGNAL(buttonClicked(int)), this, SIGNAL(actionChanged(int))); //hide action buttons and antialiasing, if shape selection is active (actions currently don't work on shape selection) connect(m_page->shape, SIGNAL(clicked()), m_page->lblAction, SLOT(hide())); connect(m_page->shape, SIGNAL(clicked()), m_page->add, SLOT(hide())); connect(m_page->shape, SIGNAL(clicked()), m_page->subtract, SLOT(hide())); connect(m_page->shape, SIGNAL(clicked()), m_page->replace, SLOT(hide())); connect(m_page->shape, SIGNAL(clicked()), m_page->intersect, SLOT(hide())); connect(m_page->shape, SIGNAL(clicked()), m_page->chkAntiAliasing, SLOT(hide())); connect(m_page->pixel, SIGNAL(clicked()), m_page->lblAction, SLOT(show())); connect(m_page->pixel, SIGNAL(clicked()), m_page->add, SLOT(show())); connect(m_page->pixel, SIGNAL(clicked()), m_page->subtract, SLOT(show())); connect(m_page->pixel, SIGNAL(clicked()), m_page->replace, SLOT(show())); connect(m_page->pixel, SIGNAL(clicked()), m_page->intersect, SLOT(show())); connect(m_page->pixel, SIGNAL(clicked()), m_page->chkAntiAliasing, SLOT(show())); } KisSelectionOptions::~KisSelectionOptions() { } int KisSelectionOptions::action() { return m_action->checkedId(); } void KisSelectionOptions::setAction(int action) { QAbstractButton* button = m_action->button(action); Q_ASSERT(button); if(button) button->setChecked(true); } bool KisSelectionOptions::antiAliasSelection() { return m_page->chkAntiAliasing->isChecked(); } void KisSelectionOptions::disableAntiAliasSelectionOption() { m_page->chkAntiAliasing->hide(); disconnect(m_page->pixel, SIGNAL(clicked()), m_page->chkAntiAliasing, SLOT(show())); } void KisSelectionOptions::disableSelectionModeOption() { m_page->lblMode->hide(); m_page->pixel->hide(); m_page->shape->hide(); } #include "kis_selection_options.moc"