This list is closed, nobody may subscribe to it.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
(34) |
Sep
(63) |
Oct
(3) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(6) |
May
|
Jun
(3) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(8) |
2015 |
Jan
|
Feb
|
Mar
|
Apr
(36) |
May
|
Jun
|
Jul
|
Aug
(12) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(38) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(12) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(2) |
Jun
(48) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2019 |
Jan
(7) |
Feb
|
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ma...@us...> - 2015-08-22 08:09:49
|
Revision: 1422 http://sourceforge.net/p/canorus/code/1422 Author: matevz Date: 2015-08-22 08:09:48 +0000 (Sat, 22 Aug 2015) Log Message: ----------- Fixed compilation errors under mingw. Modified Paths: -------------- trunk/src/score/sheet.cpp Modified: trunk/src/score/sheet.cpp =================================================================== --- trunk/src/score/sheet.cpp 2015-08-22 07:53:18 UTC (rev 1421) +++ trunk/src/score/sheet.cpp 2015-08-22 08:09:48 UTC (rev 1422) @@ -5,7 +5,8 @@ Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE.GPL for details. */ -#include <QHash> +#include <QHash> // used for mapping when cloning the sheet to a new sheet +#include <QObject> // QObject::tr #include "score/document.h" #include "score/context.h" @@ -187,4 +188,4 @@ delete _noteCheckerErrorList[i]; // delete also remove an instance from _noteCheckerErrorList i--; } -} \ No newline at end of file +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-08-22 07:53:19
|
Revision: 1421 http://sourceforge.net/p/canorus/code/1421 Author: matevz Date: 2015-08-22 07:53:18 +0000 (Sat, 22 Aug 2015) Log Message: ----------- Set Qt5 as default and move Qt4 CMakeLists to a new file. Set Python 3 as required and not Python 3.0. Modified Paths: -------------- trunk/CMakeLists.txt trunk/src/CMakeLists.txt Added Paths: ----------- trunk/CMakeListsQt4.txt trunk/src/CMakeListsQt4.txt Removed Paths: ------------- trunk/CMakeListsQt5.txt trunk/src/CMakeListsQt5.txt Modified: trunk/CMakeLists.txt =================================================================== --- trunk/CMakeLists.txt 2015-08-10 04:39:51 UTC (rev 1420) +++ trunk/CMakeLists.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -24,7 +24,7 @@ STRING(REGEX REPLACE "\\\\" "/" MINGW_BIN_DIR "${MINGW_BIN_DIR}") # Replace back slashes to slashes ENDIF(MINGW) -# Set Qt4 bin dir to find QtCore4.dll and other libs to install +# Set Qt5 bin dir to find QtCore5.dll and other libs to install STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}") STRING(REGEX REPLACE "\\\\" "/" QT_BIN_DIR "${QT_BIN_DIR}") # Replace back slashes to slashes @@ -73,11 +73,18 @@ ENDIF(MINGW) #----------------------------------------------------------------------------- -# Search for Qt4. We need the latest version of Qt -SET(QT_MIN_VERSION "4.4.0") +# Search for Qt5. We need the latest version of Qt +SET(QT_MIN_VERSION "5.3.2") -# this line includes FindQt4.cmake, which searches the Qt library and headers -FIND_PACKAGE(Qt4 REQUIRED) +# this line includes FindQt.cmake, which searches the Qt library and headers +FIND_PACKAGE(Qt5Core REQUIRED) +FIND_PACKAGE(Qt5Gui REQUIRED) +FIND_PACKAGE(Qt5Svg REQUIRED) +FIND_PACKAGE(Qt5Widgets REQUIRED) +FIND_PACKAGE(Qt5LinguistTools REQUIRED) +FIND_PACKAGE(Qt5Xml REQUIRED) +FIND_PACKAGE(Qt5Help REQUIRED) +FIND_PACKAGE(Qt5PrintSupport REQUIRED) # in the following lines all the requires include directories are added INCLUDE_DIRECTORIES(src) Added: trunk/CMakeListsQt4.txt =================================================================== --- trunk/CMakeListsQt4.txt (rev 0) +++ trunk/CMakeListsQt4.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -0,0 +1,94 @@ +# The name of our project is "Canorus". CMakeLists files in this project can +# refer to the root source directory of the project as ${CANORUS_SOURCE_DIR} +# and to the root binary directory of the project as ${CANORUS_BINARY_DIR}. +PROJECT(Canorus) + +# Don't build anything unless the version of CMake is high enough. +cmake_minimum_required(VERSION 2.6) + +# Disable ruby support by default +SET(NO_RUBY 1) + +# Enable make uninstall rule +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +# Set MingW bin dir, if MingW present +IF(MINGW) + STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" MINGW_BIN_DIR "${CMAKE_CXX_COMPILER}") + STRING(REGEX REPLACE "\\\\" "/" MINGW_BIN_DIR "${MINGW_BIN_DIR}") # Replace back slashes to slashes +ENDIF(MINGW) + +# Set Qt4 bin dir to find QtCore4.dll and other libs to install +STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}") +STRING(REGEX REPLACE "\\\\" "/" QT_BIN_DIR "${QT_BIN_DIR}") # Replace back slashes to slashes + +#----------------------------------------------------------------------------- +# Canorus version number. +FILE(READ VERSION CANORUS_VERSION) +STRING(REGEX REPLACE "\n" "" CANORUS_VERSION "${CANORUS_VERSION}") # get rid of the newline at the end + +# Set default install path: +# In *nix environments this is /usr/local +# Under M$ Windows this is C:\Program files\Canorus +# On Mac OS X it is /Applications for the .app and /Library/Fonts for the fonts, but see note below +IF(MINGW) + IF (NOT CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "C:/Program files/Canorus") + ENDIF (NOT CMAKE_INSTALL_PREFIX) + SET(CANORUS_INSTALL_DATA_DIR "") + SET(CANORUS_INSTALL_BIN_DIR "") + SET(CANORUS_INSTALL_LIB_DIR "") + +ELSE(MINGW) +IF(APPLE) + # This is where OSX-specific resources and scripts live. + SET(CANORUS_OSX_DIR ${CMAKE_CURRENT_BINARY_DIR}/macosx) + + # "make install" will always install to macosx/package-contents, + # regardless of any -DCMAKE_INSTALL_PREFIX=foo + # To install locally, build a package and use the OSX installer + # TODO: integrate packaging script into CMake so we can just do "make install" + # or similar and have it install and link the libraries properly + SET(CMAKE_INSTALL_PREFIX "${CANORUS_OSX_DIR}/package-contents") + + SET(CANORUS_OSX_APP_DIR "Canorus.app/Contents") + + SET(CANORUS_INSTALL_BIN_DIR ${CANORUS_OSX_APP_DIR}/MacOS) + SET(CANORUS_INSTALL_DATA_DIR ${CANORUS_OSX_APP_DIR}/Resources) + SET(CANORUS_INSTALL_LIB_DIR ${CANORUS_OSX_APP_DIR}/Resources/lib) +ELSE(APPLE) + IF (NOT CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "/usr/local") + ENDIF (NOT CMAKE_INSTALL_PREFIX) + SET(CANORUS_INSTALL_DATA_DIR "share/canorus") + SET(CANORUS_INSTALL_BIN_DIR "bin") + SET(CANORUS_INSTALL_LIB_DIR "lib") +ENDIF(APPLE) +ENDIF(MINGW) + +#----------------------------------------------------------------------------- +# Search for Qt4. We need the latest version of Qt +SET(QT_MIN_VERSION "4.4.0") + +# this line includes FindQt4.cmake, which searches the Qt library and headers +FIND_PACKAGE(Qt4 REQUIRED) + +# in the following lines all the requires include directories are added +INCLUDE_DIRECTORIES(src) +INCLUDE_DIRECTORIES(src/zlib) + +# Recurse into the "src" and "doc" subdirectories. This does not actually +# cause another cmake executable to run. The same process will walk through +# the project's entire directory structure. +ADD_SUBDIRECTORY(src) +ADD_SUBDIRECTORY(doc) + +# Install README, VERSION, COPYING and other raw txt files +INSTALL(FILES AUTHORS DEVELOPERS COPYING NEWS README VERSION DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}") + Deleted: trunk/CMakeListsQt5.txt =================================================================== --- trunk/CMakeListsQt5.txt 2015-08-10 04:39:51 UTC (rev 1420) +++ trunk/CMakeListsQt5.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -1,101 +0,0 @@ -# The name of our project is "Canorus". CMakeLists files in this project can -# refer to the root source directory of the project as ${CANORUS_SOURCE_DIR} -# and to the root binary directory of the project as ${CANORUS_BINARY_DIR}. -PROJECT(Canorus) - -# Don't build anything unless the version of CMake is high enough. -cmake_minimum_required(VERSION 2.6) - -# Disable ruby support by default -SET(NO_RUBY 1) - -# Enable make uninstall rule -CONFIGURE_FILE( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - -ADD_CUSTOM_TARGET(uninstall - "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") - -# Set MingW bin dir, if MingW present -IF(MINGW) - STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" MINGW_BIN_DIR "${CMAKE_CXX_COMPILER}") - STRING(REGEX REPLACE "\\\\" "/" MINGW_BIN_DIR "${MINGW_BIN_DIR}") # Replace back slashes to slashes -ENDIF(MINGW) - -# Set Qt5 bin dir to find QtCore5.dll and other libs to install -STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}") -STRING(REGEX REPLACE "\\\\" "/" QT_BIN_DIR "${QT_BIN_DIR}") # Replace back slashes to slashes - -#----------------------------------------------------------------------------- -# Canorus version number. -FILE(READ VERSION CANORUS_VERSION) -STRING(REGEX REPLACE "\n" "" CANORUS_VERSION "${CANORUS_VERSION}") # get rid of the newline at the end - -# Set default install path: -# In *nix environments this is /usr/local -# Under M$ Windows this is C:\Program files\Canorus -# On Mac OS X it is /Applications for the .app and /Library/Fonts for the fonts, but see note below -IF(MINGW) - IF (NOT CMAKE_INSTALL_PREFIX) - SET(CMAKE_INSTALL_PREFIX "C:/Program files/Canorus") - ENDIF (NOT CMAKE_INSTALL_PREFIX) - SET(CANORUS_INSTALL_DATA_DIR "") - SET(CANORUS_INSTALL_BIN_DIR "") - SET(CANORUS_INSTALL_LIB_DIR "") - -ELSE(MINGW) -IF(APPLE) - # This is where OSX-specific resources and scripts live. - SET(CANORUS_OSX_DIR ${CMAKE_CURRENT_BINARY_DIR}/macosx) - - # "make install" will always install to macosx/package-contents, - # regardless of any -DCMAKE_INSTALL_PREFIX=foo - # To install locally, build a package and use the OSX installer - # TODO: integrate packaging script into CMake so we can just do "make install" - # or similar and have it install and link the libraries properly - SET(CMAKE_INSTALL_PREFIX "${CANORUS_OSX_DIR}/package-contents") - - SET(CANORUS_OSX_APP_DIR "Canorus.app/Contents") - - SET(CANORUS_INSTALL_BIN_DIR ${CANORUS_OSX_APP_DIR}/MacOS) - SET(CANORUS_INSTALL_DATA_DIR ${CANORUS_OSX_APP_DIR}/Resources) - SET(CANORUS_INSTALL_LIB_DIR ${CANORUS_OSX_APP_DIR}/Resources/lib) -ELSE(APPLE) - IF (NOT CMAKE_INSTALL_PREFIX) - SET(CMAKE_INSTALL_PREFIX "/usr/local") - ENDIF (NOT CMAKE_INSTALL_PREFIX) - SET(CANORUS_INSTALL_DATA_DIR "share/canorus") - SET(CANORUS_INSTALL_BIN_DIR "bin") - SET(CANORUS_INSTALL_LIB_DIR "lib") -ENDIF(APPLE) -ENDIF(MINGW) - -#----------------------------------------------------------------------------- -# Search for Qt5. We need the latest version of Qt -SET(QT_MIN_VERSION "5.3.2") - -# this line includes FindQt.cmake, which searches the Qt library and headers -FIND_PACKAGE(Qt5Core REQUIRED) -FIND_PACKAGE(Qt5Gui REQUIRED) -FIND_PACKAGE(Qt5Svg REQUIRED) -FIND_PACKAGE(Qt5Widgets REQUIRED) -FIND_PACKAGE(Qt5LinguistTools REQUIRED) -FIND_PACKAGE(Qt5Xml REQUIRED) -FIND_PACKAGE(Qt5Help REQUIRED) -FIND_PACKAGE(Qt5PrintSupport REQUIRED) - -# in the following lines all the requires include directories are added -INCLUDE_DIRECTORIES(src) -INCLUDE_DIRECTORIES(src/zlib) - -# Recurse into the "src" and "doc" subdirectories. This does not actually -# cause another cmake executable to run. The same process will walk through -# the project's entire directory structure. -ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(doc) - -# Install README, VERSION, COPYING and other raw txt files -INSTALL(FILES AUTHORS DEVELOPERS COPYING NEWS README VERSION DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}") - Modified: trunk/src/CMakeLists.txt =================================================================== --- trunk/src/CMakeLists.txt 2015-08-10 04:39:51 UTC (rev 1420) +++ trunk/src/CMakeLists.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -2,7 +2,7 @@ INCLUDE(CheckLibraryExists) -FIND_PACKAGE(Qt4) +#FIND_PACKAGE(Qt5) # This module is used to resolve the file dependencies # for QT files using an UI (User Interface) Qt file @@ -50,7 +50,10 @@ SET(RUBY_LIBRARY "") ENDIF(RUBY_INCLUDE_PATH AND NOT NO_RUBY) -FIND_PACKAGE(PythonLibs 3.0) +set(Python_ADDITIONAL_VERSIONS 3.4) # Required for Ubuntu LTS 14.04 + +FIND_PACKAGE(PythonLibs 3) + IF(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) MESSAGE("Python Library and Development files found. Python extensions enabled.") # PYTHON_LIBRARY points to C:\PythonXY\pythonXY.dll @@ -192,20 +195,20 @@ # The result of it is stored into Canorus_Resrcs_Srcs # variable. This has to be included later in the # add_executable line. -QT4_ADD_RESOURCES(Canorus_Resrcs_Srcs ${Canorus_Resrcs}) +QT5_ADD_RESOURCES(Canorus_Resrcs_Srcs ${Canorus_Resrcs}) # This scripts runs the user interface compiler uic. # The result of it is stored into Canorus_UIC_Srcs # variable. This has to be included later in the # add_executable line. -QT4_WRAP_UI(Canorus_UIC_Srcs ${Canorus_UIs}) +QT5_WRAP_UI(Canorus_UIC_Srcs ${Canorus_UIs}) # This script runs the meta object compiler moc. # The result of it is stored into Canorus_Gui_MOC_Srcs and Canorus_Core_MOC_Srcs # variable. This has to be included later in the # add_executable line. -QT4_WRAP_CPP(Canorus_Gui_MOC_Srcs ${Canorus_Gui_MOCs}) -QT4_WRAP_CPP(Canorus_Core_MOC_Srcs ${Canorus_Core_MOCs}) +QT5_WRAP_CPP(Canorus_Gui_MOC_Srcs ${Canorus_Gui_MOCs}) +QT5_WRAP_CPP(Canorus_Core_MOC_Srcs ${Canorus_Core_MOCs}) ######################### # List of other sources # @@ -479,10 +482,11 @@ SET(Canorus_OSX_Info ${CANORUS_OSX_DIR}/files/Info.plist) SET(Canorus_OSX_Qt_libs - ${QT_QTCORE_LIBRARY}/Versions/4/QtCore - ${QT_QTGUI_LIBRARY}/Versions/4/QtGui - ${QT_QTXML_LIBRARY}/Versions/4/QtXml - ${QT_QTSVG_LIBRARY}/Versions/4/QtSvg + ${QT_QTCORE_LIBRARY}/Versions/5/QtCore + ${QT_QTGUI_LIBRARY}/Versions/5/QtGui + ${QT_QTWIDGETS_LIBRARY}/Versions/5/QtWidgets + ${QT_QTXML_LIBRARY}/Versions/5/QtXml + ${QT_QTSVG_LIBRARY}/Versions/5/QtSvg ) ENDIF(APPLE) @@ -543,10 +547,21 @@ # This needs to be added in order for #include to work inside .cpp files - it adds src/ to include path INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -# This line adds the include path of the Qt -# directory to the compiler include path -INCLUDE(${QT_USE_FILE}) +# These lines add the include paths of the Qt +# directory to the compiler include paths +INCLUDE_DIRECTORIES(${Qt5Core_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5Gui_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5Svg_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5Xml_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5Help_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${Qt5PrintSupport_INCLUDE_DIRS}) +# FIX: Qt was built with -reduce-relocations +if (Qt5_POSITION_INDEPENDENT_CODE) + SET(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif() + IF(USE_SWIG) INCLUDE(${SWIG_USE_FILE}) SET(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -623,7 +638,7 @@ # command. Never remove that line :-) # Add ${QT_QTTEST_LIBRARY} below to add the Qt Test library as well # Add ${POPPLERQT4_LIBRARY} ${POPPLER_LIBRARY} to reactivate poppler libraries -TARGET_LINK_LIBRARIES(canorus ${QT_LIBRARIES} ${RUBY_LIBRARY} ${PYTHON_LIBRARY} z pthread ) +TARGET_LINK_LIBRARIES(canorus Qt5::Widgets Qt5::Core Qt5::Gui Qt5::Svg Qt5::Xml Qt5::Svg Qt5::Help Qt5::PrintSupport ${RUBY_LIBRARY} ${PYTHON_LIBRARY} z pthread ) # Duma leads to a crash on libfontconfig with Ubuntu (10.04/12.04) # duma ) @@ -671,13 +686,15 @@ ADD_CUSTOM_COMMAND( TARGET canorus PRE_BUILD - COMMAND ${QT_BINARY_DIR}/lupdate + #COMMAND ${QT_BINARY_DIR}/lupdate + COMMAND lupdate ARGS -noobsolete ${Canorus_UIC_Srcs} ${Canorus_Srcs} -ts ${Canorus_Translation_Srcs} lang/template.ts ) ADD_CUSTOM_COMMAND( TARGET canorus PRE_BUILD - COMMAND ${QT_BINARY_DIR}/lrelease + #COMMAND ${QT_BINARY_DIR}/lrelease + COMMAND lrelease ARGS ${Canorus_Translation_Srcs} ) Added: trunk/src/CMakeListsQt4.txt =================================================================== --- trunk/src/CMakeListsQt4.txt (rev 0) +++ trunk/src/CMakeListsQt4.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -0,0 +1,769 @@ +# Define Sources of this Canorus directory + +INCLUDE(CheckLibraryExists) + +FIND_PACKAGE(Qt4) + +# This module is used to resolve the file dependencies +# for QT files using an UI (User Interface) Qt file +# created with the Qt4 designer +# INCLUDE(AddFileDependencies) + +IF(NOT CMAKE_BUILD_TYPE) + SET(CMAKE_BUILD_TYPE Debug) +ENDIF(NOT CMAKE_BUILD_TYPE) + +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fstack-protector-all -Wall -Werror -Wuninitialized -Wtype-limits -Wstack-protector") +SET(CMAKE_C_FLAGS_RELEASE "-O2") + +SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") +SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") + +# Build universal binaries on Mac +IF(APPLE) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ppc -arch i386") + SET(DEFAULT_DATA_DIR "Canorus.app/Contents/Resources") +ENDIF(APPLE) + +####################### +# Scripting detection # +####################### +# The following lines detect scripting environments (SWIG, Ruby, Python etc.) +FIND_PACKAGE(SWIG QUIET) +IF(SWIG_FOUND AND NOT NO_SWIG) + SET(USE_SWIG True) + MESSAGE("SWIG found, using scripting extensions.") +ELSE(SWIG_FOUND AND NOT NO_SWIG) + MESSAGE("SWIG version >=3 *not* found, disabling SWIG!") + SET(NO_RUBY True) + SET(NO_PYTHON True) +ENDIF(SWIG_FOUND AND NOT NO_SWIG) + +FIND_PACKAGE(Ruby) #Setup RUBY_INCLUDE_PATH and RUBY_LIBRARIES +IF(RUBY_INCLUDE_PATH AND NOT NO_RUBY) + MESSAGE("Ruby Library and Development files found. Ruby extensions enabled.") + SET(USE_RUBY True) + # Create empty file as needed so build does not stop here + FILE(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusrubyRUBY_wrap.cxx "") +ELSE(RUBY_INCLUDE_PATH AND NOT NO_RUBY) + MESSAGE("Ruby Library and Development files *not* found. Ruby extensions disabled!") + SET(RUBY_LIBRARY "") +ENDIF(RUBY_INCLUDE_PATH AND NOT NO_RUBY) + +FIND_PACKAGE(PythonLibs 3) +IF(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) + MESSAGE("Python Library and Development files found. Python extensions enabled.") + # PYTHON_LIBRARY points to C:\PythonXY\pythonXY.dll + # PYTHON_LIB should point to C:\PythonXY\Lib + STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" PYTHON_LIB "${PYTHON_LIBRARY}") # remove pythonXY.dll + STRING(REGEX REPLACE "\\\\" "/" PYTHON_LIB "${PYTHON_LIB}") # Replace back slashes to slashes + SET( PYTHON_LIB "${PYTHON_LIB}/Lib/" ) # add /Lib/ + + # Needed on some Linux distros (SuSE, Gentoo) to prevent linking issues (openpty, forkpty) + CHECK_LIBRARY_EXISTS(util openpty "" HAVE_OPENPTY) + IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + IF (HAVE_OPENPTY) + SET(PYTHON_LIBRARY ${PYTHON_LIBRARY} util) + ENDIF (HAVE_OPENPTY) + ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + + SET(USE_PYTHON True) +ELSE(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) + MESSAGE("Python Library and Development files *not* found. Python extensions disabled!") + SET(PYTHON_LIBRARY "") +ENDIF(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) + +################################## +# Poppler detection for printing # +################################## +#FIND_PATH(POPPLER_INCLUDE_PATH +# NAMES poppler-config.h +# PATH_SUFFIXES poppler +# ) +#FIND_LIBRARY(POPPLER_LIBRARY NAMES poppler ) +#FIND_LIBRARY(POPPLERQT4_LIBRARY NAMES poppler-qt4) +#IF(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) +# MESSAGE("Poppler Libraries found. Printing enabled.") +# MESSAGE("Include path: ${POPPLER_INCLUDE_PATH}" ) +# SET(USE_POPPLER True) +# SET(POPPLER_SOURCE control/printctl.cpp) +# SET(POPPLER_HEADER control/printctl.h) +#ELSE(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) +# MESSAGE("Poppler Library and Development files *not* found. Printing disabled!") +# MESSAGE("Path ${POPPLER_INCLUDE_PATH}, Lib ${POPPLER_LIBRARIES}") +# SET(POPPLER_LIBRARY "") +# SET(POPPLER_INCLUDE_PATH "") +# SET(POPPLERQT4_LIBRARY "") +# SET(POPPLER_SOURCE "") +# SET(POPPLER_HEADER "") +#ENDIF(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) + +# Set ZLib sources on windows +FILE(GLOB ZLIB_Srcs "zlib/*.c") + +############################## +# List of Qt4-parsed sources # +############################## +# Define the UI source files used by Canorus +SET(Canorus_UIs # List of .ui forms drawn by qt-designer that need to be compiled + ui/mainwin.ui + ui/settingsdialog.ui + + ui/propertiesdialog.ui + ui/documentproperties.ui + ui/sheetproperties.ui + ui/staffproperties.ui + ui/voiceproperties.ui + ui/lyricscontextproperties.ui + ui/functionmarkcontextproperties.ui + + ui/midirecorder.ui + ui/transposeview.ui +) + +# Define the MOC source files used by Canorus +SET(Canorus_Gui_MOCs # List of classes which Qt needs to produce MOCs for them (in order for events, signals, slots and other macros to work) + core/autorecovery.h + + scoreui/keysignatureui.h + + ui/mainwin.h + ui/settingsdialog.h + ui/propertiesdialog.h + ui/transposeview.h + ui/singleaction.h + + widgets/lcdnumber.h + widgets/view.h + widgets/viewcontainer.h + widgets/scoreview.h + widgets/sourceview.h + widgets/toolbutton.h + widgets/toolbuttonpopup.h + widgets/menutoolbutton.h + widgets/undotoolbutton.h + widgets/pyconsole.h + widgets/midirecorderview.h + widgets/resourceview.h + widgets/helpbrowser.h + widgets/actionseditor.h + widgets/progressstatusbar.h + widgets/tabwidget.h + + control/previewctl.h + control/printctl.h + control/mainwinprogressctl.h + + scorectl/keysignaturectl.h +) + +SET(Canorus_Core_MOCs # MOCs compiled into scripting library as well + import/import.h + export/export.h + export/pdfexport.h + export/svgexport.h + + control/externprogram.h + control/typesetctl.h + + interface/mididevice.h + interface/playback.h + core/midirecorder.h + + interface/pluginaction.h +) + +################ +# Qt4 settings # +################ +# Enable needed Qt modules for Canorus +SET(QT_USE_QTXML True) # Save/Load +SET(QT_USE_QTSVG True) # Icons, Images etc. +SET(QT_USE_QTHELP True) # Inline help browser +SET(QT_USE_QTWEBKIT True) # Inline help browser + +# Add all resources to Canorus_Resrcs (icons, html files etc.) +#SET(Canorus_Resrcs ui/mainwin.qrc) # not needed, all resources are loaded on-the-fly + +# Add all the dependencies needed for the MainWindow +# add_file_dependencies( ui/mainwin.cpp ui/ui_mainwin.h ) + +# This scripts runs the resource compiler rcc. +# The result of it is stored into Canorus_Resrcs_Srcs +# variable. This has to be included later in the +# add_executable line. +QT4_ADD_RESOURCES(Canorus_Resrcs_Srcs ${Canorus_Resrcs}) + +# This scripts runs the user interface compiler uic. +# The result of it is stored into Canorus_UIC_Srcs +# variable. This has to be included later in the +# add_executable line. +QT4_WRAP_UI(Canorus_UIC_Srcs ${Canorus_UIs}) + +# This script runs the meta object compiler moc. +# The result of it is stored into Canorus_Gui_MOC_Srcs and Canorus_Core_MOC_Srcs +# variable. This has to be included later in the +# add_executable line. +QT4_WRAP_CPP(Canorus_Gui_MOC_Srcs ${Canorus_Gui_MOCs}) +QT4_WRAP_CPP(Canorus_Core_MOC_Srcs ${Canorus_Core_MOCs}) + +######################### +# List of other sources # +######################### +SET(Canorus_Core_Srcs # Core sources + core/settings.cpp + core/undocommand.cpp + core/undo.cpp + core/autorecovery.cpp + core/mimedata.cpp + core/file.cpp + core/fileformats.cpp + core/typesetter.cpp + core/tar.cpp + core/archive.cpp + core/midirecorder.cpp + core/muselementfactory.cpp + core/transpose.cpp + core/notechecker.cpp +) + +SET(Canorus_Score_Srcs # Score representation + score/playablelength.cpp + score/diatonicpitch.cpp + score/interval.cpp + score/diatonickey.cpp + + score/document.cpp + score/resource.cpp + score/sheet.cpp + score/notecheckererror.cpp + score/context.cpp + score/staff.cpp + score/functionmarkcontext.cpp + score/figuredbasscontext.cpp + score/lyricscontext.cpp + + score/muselement.cpp + score/voice.cpp + score/barline.cpp + score/clef.cpp + score/keysignature.cpp + score/timesignature.cpp + score/playable.cpp + score/note.cpp + score/slur.cpp + score/tuplet.cpp + score/rest.cpp + score/midinote.cpp + + score/mark.cpp + score/articulation.cpp + score/fermata.cpp + score/repeatmark.cpp + score/tempo.cpp + score/ritardando.cpp + score/text.cpp + score/bookmark.cpp + score/fingering.cpp + score/dynamic.cpp + score/crescendo.cpp + score/instrumentchange.cpp + + score/syllable.cpp + + score/functionmark.cpp + + score/figuredbassmark.cpp +) + +SET(Canorus_Scripting_Srcs # Sources meant for bridging C++<->scripting language + scripting/swigruby.cpp + scripting/swigpython.cpp +) + +SET(Canorus_Widget_Srcs # Sources for all custom widgets present in Canorus + widgets/lcdnumber.cpp + widgets/scoreview.cpp + widgets/sourceview.cpp + widgets/toolbutton.cpp + widgets/toolbuttonpopup.cpp + widgets/menutoolbutton.cpp + widgets/undotoolbutton.cpp + widgets/view.cpp + widgets/viewcontainer.cpp + widgets/pyconsole.cpp + widgets/midirecorderview.cpp + widgets/resourceview.cpp + widgets/helpbrowser.cpp + widgets/actionseditor.cpp + widgets/progressstatusbar.cpp + widgets/tabwidget.cpp +) + +SET(Canorus_Ui_Srcs # Implementations of widgets that have their own .ui qt-designer files + ui/mainwin.cpp + ui/settingsdialog.cpp + ui/propertiesdialog.cpp + ui/transposeview.cpp + ui/singleaction.cpp + + scoreui/keysignatureui.cpp +) + +SET(Canorus_Gui_Ctl_Srcs # Control instances for user interface or views + control/previewctl.cpp + control/printctl.cpp + control/helpctl.cpp + control/mainwinprogressctl.cpp + + scorectl/keysignaturectl.cpp +) + +SET(Canorus_Ctl_Srcs # Control instances for user interface or views and core + control/externprogram.cpp + control/typesetctl.cpp + control/resourcectl.cpp +) + +SET(Canorus_Layout_Srcs # Drawable instances of the data + layout/layoutengine.cpp + + layout/drawable.cpp + + layout/drawablecontext.cpp + layout/drawablenotecheckererror.cpp + layout/drawablestaff.cpp + layout/drawablelyricscontext.cpp + layout/drawablefiguredbasscontext.cpp + layout/drawablefunctionmarkcontext.cpp + + layout/drawablemuselement.cpp + layout/drawablenote.cpp + layout/drawableslur.cpp + layout/drawabletuplet.cpp + layout/drawablerest.cpp + layout/drawablemidinote.cpp + layout/drawableaccidental.cpp + layout/drawableclef.cpp + layout/drawablekeysignature.cpp + layout/drawabletimesignature.cpp + layout/drawablebarline.cpp + layout/drawablemark.cpp + layout/drawablesyllable.cpp + layout/drawablefiguredbassnumber.cpp + layout/drawablefunctionmark.cpp +) + +SET(Canorus_Interface_Srcs # Other interfaces like Engraver, Playback, Plugin manager and others belong here. + interface/playback.cpp + interface/rtmididevice.cpp + interface/mididevice.cpp + interface/pluginmanager.cpp + interface/pluginaction.cpp + interface/plugin.cpp + interface/keybdinput.cpp + + interface/pyconsoleinterface.cpp +) + +SET(Canorus_Export_Srcs # Classes for exporting Canorus data to various file formats + export/export.cpp + export/midiexport.cpp + export/lilypondexport.cpp + export/canorusmlexport.cpp + export/canexport.cpp + export/musicxmlexport.cpp + export/pdfexport.cpp + export/svgexport.cpp +) + +SET(Canorus_Import_Srcs # Classes for import various file formats to Canorus data + import/import.cpp + import/lilypondimport.cpp + import/midiimport.cpp + import/canorusmlimport.cpp + import/canimport.cpp + import/musicxmlimport.cpp +) + +SET(Canorus_RtMidi_Srcs # RtMIDI library + rtmidi/RtMidi.cpp +) + +SET(Canorus_PMIDI_Srcs # PMIDI excerpts + import/pmidi/glib.c + import/pmidi/elements.c + import/pmidi/except.c + import/pmidi/mdutil.c + import/pmidi/midiread.c + import/pmidi/wrapper.c +) + +SET(Canorus_Srcs + main.cpp + canorus.cpp + + ${Canorus_Core_Srcs} + ${Canorus_Score_Srcs} + ${Canorus_Ctl_Srcs} + ${Canorus_Gui_Ctl_Srcs} + ${Canorus_Scripting_Srcs} + ${Canorus_Layout_Srcs} + ${Canorus_Ui_Srcs} + ${Canorus_Interface_Srcs} + ${Canorus_Export_Srcs} + ${Canorus_Import_Srcs} + ${Canorus_RtMidi_Srcs} + ${Canorus_Widget_Srcs} + ${Canorus_PMIDI_Srcs} +) + +SET(Canorus_Swig_Srcs # Sources which Swig needs to build its Python/Ruby module. + ${Canorus_Score_Srcs} + core/transpose.cpp + + core/settings.cpp + core/file.cpp + core/tar.cpp + core/archive.cpp + core/midirecorder.cpp + core/typesetter.cpp + ${Canorus_Import_Srcs} + ${Canorus_Export_Srcs} + ${Canorus_Ctl_Srcs} + ${Canorus_RtMidi_Srcs} + ${Canorus_PMIDI_Srcs} + interface/rtmididevice.cpp + interface/mididevice.cpp + interface/playback.cpp + + interface/pyconsoleinterface.cpp + interface/plugin.cpp + interface/pluginaction.cpp + interface/pluginmanager.cpp + interface/plugins_swig.cpp + scripting/swigpython.cpp + scripting/swigruby.cpp + ${Canorus_Core_MOC_Srcs} +) +IF(MINGW) # Append ZLIB srcs to Swig srcs on Windows + SET( Canorus_Swig_Srcs ${Canorus_Swig_Srcs} ${ZLIB_Srcs} ) +ENDIF(MINGW) + +SET( Canorus_Scripts "scripts" ) # Official scripts shipped with Canorus. + +SET( Canorus_Plugins "plugins" ) # Official plug-ins shipped with Canorus. + +SET( Canorus_Images "ui/images" ) + +SET( Canorus_Examples "../examples" ) + +set_source_files_properties(${Canorus_RtMidi_Srcs} PROPERTIES COMPILE_FLAGS -Wno-stack-protector) +set_source_files_properties(${CANORUS_PYTHON_WRAP_CXX} PROPERTIES COMPILE_FLAGS -Wno-error) + +# Set translation files +FILE(GLOB Canorus_Translation_Srcs "lang/*.ts") # lang/*.ts -> Canorus_Translation_Srcs +STRING(REGEX REPLACE "\\.ts" ".qm" Canorus_Translation_Bins "${Canorus_Translation_Srcs}") # Set Canorus_Translation_Bins to same values as Canorus_Translation_Srcs with different extensions + +SET(Canorus_Fonts # Music fonts needed by Canorus + fonts/CenturySchL-BoldItal.ttf # Century family needed for numbers and signs + fonts/CenturySchL-Bold.ttf + fonts/CenturySchL-Ital.ttf + fonts/CenturySchL-Roma.ttf + fonts/Emmentaler-14.ttf # LilyPond's emmentaler needed for notes, rests, clefs etc. + fonts/FreeSans.ttf # FreeSans needed for function markings +) + +IF(APPLE) + SET(Canorus_OSX_Icon ${CANORUS_OSX_DIR}/files/canorus.icns) + SET(Canorus_OSX_Info ${CANORUS_OSX_DIR}/files/Info.plist) + + SET(Canorus_OSX_Qt_libs + ${QT_QTCORE_LIBRARY}/Versions/4/QtCore + ${QT_QTGUI_LIBRARY}/Versions/4/QtGui + ${QT_QTXML_LIBRARY}/Versions/4/QtXml + ${QT_QTSVG_LIBRARY}/Versions/4/QtSvg + ) +ENDIF(APPLE) + +######################### +# Compiler Define flags # +######################### +# RtMidi cross-platform definitions +IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") #IF(LINUX) isn't supported by CMake yet + ADD_DEFINITIONS(-D__LINUX_ALSASEQ__) +ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") +IF(APPLE) + ADD_DEFINITIONS(-D__MACOSX_CORE__) +ENDIF(APPLE) +IF(MINGW) + ADD_DEFINITIONS(-D__WINDOWS_MM__) +ENDIF(MINGW) + +# Define default data dir, if under POSIX systems. +IF(NOT MINGW) + IF (NOT DEFAULT_DATA_DIR) + ADD_DEFINITIONS(-DDEFAULT_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}\") + ELSE (NOT DEFAULT_DATA_DIR) + ADD_DEFINITIONS(-DDEFAULT_DATA_DIR=\"${DEFAULT_DATA_DIR}\") + ENDIF (NOT DEFAULT_DATA_DIR) +ENDIF(NOT MINGW) + +IF(APPLE) + SET(MACOSX_BUNDLE_INFO_STRING "Free music score editor") + SET(MACOSX_BUNDLE_ICON_FILE canorus.icns) # \todo Copy this file to Applications/canorus.app/Resources when the package is created +ENDIF(APPLE) + +# Define Canorus version +ADD_DEFINITIONS(-DCANORUS_VERSION=\"${CANORUS_VERSION}\") + +# Define Scripting parameters +IF(USE_SWIG) + IF("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") + CONFIGURE_FILE(scripting/canoruspython_2.i scripting/canoruspython.i COPYONLY) + ELSE("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") + CONFIGURE_FILE(scripting/canoruspython_1.i scripting/canoruspython.i COPYONLY) + MESSAGE("Warning: Python Swig 1.x support is deprecated") + ENDIF("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") + ADD_DEFINITIONS(-DUSE_SWIG) +ENDIF(USE_SWIG) +IF(USE_RUBY) + ADD_DEFINITIONS(-DUSE_RUBY) +ENDIF(USE_RUBY) +IF(USE_PYTHON) + ADD_DEFINITIONS(-DUSE_PYTHON) +ENDIF(USE_PYTHON) +#IF(USE_POPPLER) +# ADD_DEFINITIONS(-DUSE_POPPLER) +#ENDIF(USE_POPPLER) + +#################################### +# Include paths and set up targets # +#################################### +# This needs to be added in order for #include to work inside .cpp files - it adds src/ to include path +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + +# This line adds the include path of the Qt +# directory to the compiler include path +INCLUDE(${QT_USE_FILE}) + +IF(USE_SWIG) + INCLUDE(${SWIG_USE_FILE}) + SET(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_SOURCE_DIR}) +ENDIF(USE_SWIG) + +IF(USE_RUBY) + INCLUDE_DIRECTORIES(${RUBY_INCLUDE_PATH}) + SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusruby.i PROPERTIES CPLUSPLUS ON) + + SET(CANORUS_RUBY_WRAP_CXX ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusrubyRUBY_wrap.cxx) + SET_SOURCE_FILES_PROPERTIES(${CANORUS_RUBY_WRAP_CXX} PROPERTIES GENERATED TRUE) + + SWIG_ADD_MODULE(CanorusRuby ruby + ${Canorus_Swig_Srcs} + ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusruby.i + ) + SWIG_LINK_LIBRARIES(CanorusRuby ${RUBY_LIBRARY} ${QT_LIBRARIES}) + SET_TARGET_PROPERTIES( ${SWIG_MODULE_CanorusRuby_REAL_NAME} PROPERTIES COMPILE_FLAGS "-DSWIGCPP" ) +ENDIF(USE_RUBY) + +IF(USE_PYTHON) + INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS}) + SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspython.i PROPERTIES CPLUSPLUS ON) + + SET(CANORUS_PYTHON_WRAP_CXX ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspythonPYTHON_wrap.cxx) + SET_SOURCE_FILES_PROPERTIES(${CANORUS_PYTHON_WRAP_CXX} PROPERTIES GENERATED TRUE) + + SWIG_ADD_MODULE(CanorusPython python # Warning! CMake renames CanorusPython automatically to _CanorusPython + ${Canorus_Swig_Srcs} + ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspython.i + ) + SWIG_LINK_LIBRARIES(CanorusPython ${PYTHON_LIBRARY} ${QT_LIBRARIES}) + SET_TARGET_PROPERTIES( ${SWIG_MODULE_CanorusPython_REAL_NAME} PROPERTIES COMPILE_FLAGS "-DSWIGCPP" ) +ENDIF(USE_PYTHON) + +#IF(USE_POPPLER) +# INCLUDE_DIRECTORIES(${POPPLER_INCLUDE_PATH}) +#ENDIF(USE_POPPLER) + +# Adds Canorus resource file under Windows (Canorus icon etc.). +IF(MINGW) + # CMake currently doesn't support windres yet. Add command manually + FIND_PROGRAM( + WINDRES_PROGRAM windres.exe PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin" + c:/MinGW/bin /MinGW/bin + ) + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/canorusrc.obj + COMMAND ${WINDRES_PROGRAM} + -i canorusrc.rc + -o canorusrc.obj + ) + SET(Canorus_Srcs ${Canorus_Srcs} ${ZLIB_Srcs} canorusrc.obj) +ENDIF(MINGW) + +# This line tells cmake to create the Canorus program. +# All dependent libraries like RtMidi must be added here. +# Attention: In contrast to Makefiles don't add "\" to separate lines +ADD_EXECUTABLE(canorus ${Canorus_UIC_Srcs} ${Canorus_Srcs} + ${Canorus_Core_MOC_Srcs} ${Canorus_Gui_MOC_Srcs} ${Canorus_Resrcs_Srcs} + ${CANORUS_RUBY_WRAP_CXX} + ${CANORUS_PYTHON_WRAP_CXX} + ${MACOSX_BUNDLE} # Works only under Apple - adds the application description, icon etc. +) +IF(USE_RUBY) + ADD_DEPENDENCIES(canorus ${SWIG_MODULE_CanorusRuby_REAL_NAME}) # Build scripting modules first and then Canorus exe +ENDIF(USE_RUBY) +IF(USE_PYTHON) + ADD_DEPENDENCIES(canorus ${SWIG_MODULE_CanorusPython_REAL_NAME}) # Build scripting modules first and then Canorus exe +ENDIF(USE_PYTHON) + +# Here the needed Qt Libraries are added to the link +# command. Never remove that line :-) +# Add ${QT_QTTEST_LIBRARY} below to add the Qt Test library as well +# Add ${POPPLERQT4_LIBRARY} ${POPPLER_LIBRARY} to reactivate poppler libraries +TARGET_LINK_LIBRARIES(canorus ${QT_LIBRARIES} ${RUBY_LIBRARY} ${PYTHON_LIBRARY} z pthread ) +# Duma leads to a crash on libfontconfig with Ubuntu (10.04/12.04) +# duma ) + +############################ +# RtMIDI Library additions # +############################ +IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + TARGET_LINK_LIBRARIES(canorus "asound") + IF(USE_PYTHON) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusPython_REAL_NAME} "asound") + ENDIF(USE_PYTHON) + IF(USE_RUBY) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusRuby_REAL_NAME} "asound") + ENDIF(USE_RUBY) +ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") +IF(APPLE) + TARGET_LINK_LIBRARIES(canorus "-framework CoreMidi") + TARGET_LINK_LIBRARIES(canorus "-framework CoreAudio") + TARGET_LINK_LIBRARIES(canorus "-framework CoreFoundation") + IF(USE_PYTHON) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusPython_REAL_NAME} "-framework CoreMidi") + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusPython_REAL_NAME} "-framework CoreAudio") + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusPython_REAL_NAME} "-framework CoreFoundation") + ENDIF(USE_PYTHON) + IF(USE_RUBY) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusRuby_REAL_NAME} "-framework CoreMidi") + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusRuby_REAL_NAME} "-framework CoreAudio") + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusRuby_REAL_NAME} "-framework CoreFoundation") + ENDIF(USE_RUBY) +ENDIF(APPLE) +IF(MINGW) + TARGET_LINK_LIBRARIES(canorus "winmm.lib") + TARGET_LINK_LIBRARIES(canorus "-mwindows") # Disable console output on Windows + IF(USE_PYTHON) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusPython_REAL_NAME} "winmm.lib") + ENDIF(USE_PYTHON) + IF(USE_RUBY) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_CanorusRuby_REAL_NAME} "winmm.lib") + ENDIF(USE_RUBY) +ENDIF(MINGW) + +############### +# Translation # +############### +ADD_CUSTOM_COMMAND( + TARGET canorus + PRE_BUILD + COMMAND ${QT_BINARY_DIR}/lupdate + ARGS -noobsolete ${Canorus_UIC_Srcs} ${Canorus_Srcs} -ts ${Canorus_Translation_Srcs} lang/template.ts +) +ADD_CUSTOM_COMMAND( + TARGET canorus + PRE_BUILD + COMMAND ${QT_BINARY_DIR}/lrelease + ARGS ${Canorus_Translation_Srcs} +) + +################ +# Installation # +################ +# Install canorus exe and CanorusRuby lib +INSTALL(TARGETS canorus + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR} +) +IF(USE_RUBY) + INSTALL(TARGETS ${SWIG_MODULE_CanorusRuby_REAL_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_LIB_DIR}) + INSTALL(TARGETS ${SWIG_MODULE_CanorusRuby_REAL_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}) +ENDIF(USE_RUBY) +IF(USE_PYTHON) + INSTALL(TARGETS ${SWIG_MODULE_CanorusPython_REAL_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_LIB_DIR}) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CanorusPython.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_LIB_DIR}) + INSTALL(TARGETS ${SWIG_MODULE_CanorusPython_REAL_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CanorusPython.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}) +ENDIF(USE_PYTHON) + +# Install scripts +INSTALL( DIRECTORY ${Canorus_Scripts} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}" ) +# Install plugins +INSTALL( DIRECTORY ${Canorus_Plugins} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}" ) +# Install data - icons, images, sounds etc. +INSTALL( DIRECTORY ${Canorus_Images} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}" ) +# Install translations +INSTALL(FILES ${Canorus_Translation_Bins} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}/lang") +# Install fonts +INSTALL(FILES ${Canorus_Fonts} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}/fonts") +# Install users manual, if it exists +INSTALL(CODE "FILE(MAKE_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}/doc)") +INSTALL(CODE "FILE(MAKE_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}/doc/usersguide)") +FILE(GLOB Canorus_Usersguide RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../doc/usersguide/*.qhc ../doc/usersguide/*.qch) +INSTALL(FILES ${Canorus_Usersguide} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}/doc/usersguide") +# Install examples +INSTALL( DIRECTORY ${Canorus_Examples} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}" ) + +IF(MINGW) + # Install Qt libs + INSTALL( FILES ${QT_BIN_DIR}/QtCore4.dll ${QT_BIN_DIR}/QtGui4.dll ${QT_BIN_DIR}/QtSvg4.dll ${QT_BIN_DIR}/QtXml4.dll ${QT_BIN_DIR}/QtHelp4.dll ${QT_BIN_DIR}/QtSql4.dll ${QT_BIN_DIR}/QtNetwork4.dll ${QT_BIN_DIR}/QtCLucene4.dll DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR} ) + + # Install qsvg plugin for rendering SVG icons + INSTALL( FILES ${QT_PLUGINS_DIR}/iconengines/qsvgicon4.dll DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR}/iconengines" ) + + # Install mingwm10.dll + INSTALL( FILES ${MINGW_BIN_DIR}/mingwm10.dll DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR} ) + + # Install Python libs + IF(USE_PYTHON) + INSTALL( FILES ${PYTHON_LIBRARY} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR} ) # PythonXY.dll + INSTALL( DIRECTORY ${PYTHON_LIB} DESTINATION "${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR}/pythonLib" ) # Python .py files + ENDIF(USE_PYTHON) + + # Install Ruby libs + IF(USE_RUBY) + INSTALL( FILES ${RUBY_LIBRARY} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_BIN_DIR} ) + ENDIF(USE_RUBY) +ENDIF(MINGW) + +IF(APPLE) + # Install icon & Info.plist + INSTALL(FILES ${Canorus_OSX_Icon} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}) + INSTALL(FILES ${Canorus_OSX_Info} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_OSX_APP_DIR}) + + # FIXME: library installations disabled for now since linking bundled libs doesn't work properly. + # -- Sam 2007.06.09 + + # Install Qt libs + #INSTALL(PROGRAMS ${Canorus_OSX_Qt_libs} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_LIB_DIR}) + + # Install Python libs + IF(USE_PYTHON) + # OSX build requires a "framework" build of Python + # in CMakeCache.txt PYTHON_LIBRARY is not a file but '-framework Python' + #SET(OSX_PYTHON_LIB /Library/Frameworks/Python.framework/Versions/Current/Python) + #INSTALL(FILES ${OSX_PYTHON_LIB} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_LIB_DIR}) + ENDIF(USE_PYTHON) + + # Make a list of source libraries so the packaging script knows which symbols to change + # Bundle Qt libs and Python with the .app, OSX comes with the correct version of Ruby already installed + #SET(OSX_installed_libs_file ${CANORUS_OSX_DIR}/OSX_installed_libs.txt) + #SET(OSX_installed_libs ${Canorus_OSX_Qt_libs} ${OSX_PYTHON_LIB}) + #FILE(WRITE ${OSX_installed_libs_file} "") + #FOREACH(file ${OSX_installed_libs}) + # FILE(APPEND ${OSX_installed_libs_file} "${file}\n") + #ENDFOREACH(file) +ENDIF(APPLE) Deleted: trunk/src/CMakeListsQt5.txt =================================================================== --- trunk/src/CMakeListsQt5.txt 2015-08-10 04:39:51 UTC (rev 1420) +++ trunk/src/CMakeListsQt5.txt 2015-08-22 07:53:18 UTC (rev 1421) @@ -1,786 +0,0 @@ -# Define Sources of this Canorus directory - -INCLUDE(CheckLibraryExists) - -#FIND_PACKAGE(Qt5) - -# This module is used to resolve the file dependencies -# for QT files using an UI (User Interface) Qt file -# created with the Qt4 designer -# INCLUDE(AddFileDependencies) - -IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE Debug) -ENDIF(NOT CMAKE_BUILD_TYPE) - -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fstack-protector-all -Wall -Werror -Wuninitialized -Wtype-limits -Wstack-protector") -SET(CMAKE_C_FLAGS_RELEASE "-O2") - -SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") -SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") - -# Build universal binaries on Mac -IF(APPLE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ppc -arch i386") - SET(DEFAULT_DATA_DIR "Canorus.app/Contents/Resources") -ENDIF(APPLE) - -####################### -# Scripting detection # -####################### -# The following lines detect scripting environments (SWIG, Ruby, Python etc.) -FIND_PACKAGE(SWIG QUIET) -IF(SWIG_FOUND AND NOT NO_SWIG) - SET(USE_SWIG True) - MESSAGE("SWIG found, using scripting extensions.") -ELSE(SWIG_FOUND AND NOT NO_SWIG) - MESSAGE("SWIG version >=3 *not* found, disabling SWIG!") - SET(NO_RUBY True) - SET(NO_PYTHON True) -ENDIF(SWIG_FOUND AND NOT NO_SWIG) - -FIND_PACKAGE(Ruby) #Setup RUBY_INCLUDE_PATH and RUBY_LIBRARIES -IF(RUBY_INCLUDE_PATH AND NOT NO_RUBY) - MESSAGE("Ruby Library and Development files found. Ruby extensions enabled.") - SET(USE_RUBY True) - # Create empty file as needed so build does not stop here - FILE(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusrubyRUBY_wrap.cxx "") -ELSE(RUBY_INCLUDE_PATH AND NOT NO_RUBY) - MESSAGE("Ruby Library and Development files *not* found. Ruby extensions disabled!") - SET(RUBY_LIBRARY "") -ENDIF(RUBY_INCLUDE_PATH AND NOT NO_RUBY) - -set(Python_ADDITIONAL_VERSIONS 3.4) # Required for Ubuntu LTS 14.04 - -FIND_PACKAGE(PythonLibs 3) - -IF(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) - MESSAGE("Python Library and Development files found. Python extensions enabled.") - # PYTHON_LIBRARY points to C:\PythonXY\pythonXY.dll - # PYTHON_LIB should point to C:\PythonXY\Lib - STRING(REGEX REPLACE "([^ ]+)[/\\].*" "\\1" PYTHON_LIB "${PYTHON_LIBRARY}") # remove pythonXY.dll - STRING(REGEX REPLACE "\\\\" "/" PYTHON_LIB "${PYTHON_LIB}") # Replace back slashes to slashes - SET( PYTHON_LIB "${PYTHON_LIB}/Lib/" ) # add /Lib/ - - # Needed on some Linux distros (SuSE, Gentoo) to prevent linking issues (openpty, forkpty) - CHECK_LIBRARY_EXISTS(util openpty "" HAVE_OPENPTY) - IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") - IF (HAVE_OPENPTY) - SET(PYTHON_LIBRARY ${PYTHON_LIBRARY} util) - ENDIF (HAVE_OPENPTY) - ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") - - SET(USE_PYTHON True) -ELSE(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) - MESSAGE("Python Library and Development files *not* found. Python extensions disabled!") - SET(PYTHON_LIBRARY "") -ENDIF(PYTHON_INCLUDE_DIRS AND NOT NO_PYTHON) - -################################## -# Poppler detection for printing # -################################## -#FIND_PATH(POPPLER_INCLUDE_PATH -# NAMES poppler-config.h -# PATH_SUFFIXES poppler -# ) -#FIND_LIBRARY(POPPLER_LIBRARY NAMES poppler ) -#FIND_LIBRARY(POPPLERQT4_LIBRARY NAMES poppler-qt4) -#IF(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) -# MESSAGE("Poppler Libraries found. Printing enabled.") -# MESSAGE("Include path: ${POPPLER_INCLUDE_PATH}" ) -# SET(USE_POPPLER True) -# SET(POPPLER_SOURCE control/printctl.cpp) -# SET(POPPLER_HEADER control/printctl.h) -#ELSE(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) -# MESSAGE("Poppler Library and Development files *not* found. Printing disabled!") -# MESSAGE("Path ${POPPLER_INCLUDE_PATH}, Lib ${POPPLER_LIBRARIES}") -# SET(POPPLER_LIBRARY "") -# SET(POPPLER_INCLUDE_PATH "") -# SET(POPPLERQT4_LIBRARY "") -# SET(POPPLER_SOURCE "") -# SET(POPPLER_HEADER "") -#ENDIF(POPPLER_INCLUDE_PATH AND POPPLER_LIBRARY AND POPPLERQT4_LIBRARY) - -# Set ZLib sources on windows -FILE(GLOB ZLIB_Srcs "zlib/*.c") - -############################## -# List of Qt4-parsed sources # -############################## -# Define the UI source files used by Canorus -SET(Canorus_UIs # List of .ui forms drawn by qt-designer that need to be compiled - ui/mainwin.ui - ui/settingsdialog.ui - - ui/propertiesdialog.ui - ui/documentproperties.ui - ui/sheetproperties.ui - ui/staffproperties.ui - ui/voiceproperties.ui - ui/lyricscontextproperties.ui - ui/functionmarkcontextproperties.ui - - ui/midirecorder.ui - ui/transposeview.ui -) - -# Define the MOC source files used by Canorus -SET(Canorus_Gui_MOCs # List of classes which Qt needs to produce MOCs for them (in order for events, signals, slots and other macros to work) - core/autorecovery.h - - scoreui/keysignatureui.h - - ui/mainwin.h - ui/settingsdialog.h - ui/propertiesdialog.h - ui/transposeview.h - ui/singleaction.h - - widgets/lcdnumber.h - widgets/view.h - widgets/viewcontainer.h - widgets/scoreview.h - widgets/sourceview.h - widgets/toolbutton.h - widgets/toolbuttonpopup.h - widgets/menutoolbutton.h - widgets/undotoolbutton.h - widgets/pyconsole.h - widgets/midirecorderview.h - widgets/resourceview.h - widgets/helpbrowser.h - widgets/actionseditor.h - widgets/progressstatusbar.h - widgets/tabwidget.h - - control/previewctl.h - control/printctl.h - control/mainwinprogressctl.h - - scorectl/keysignaturectl.h -) - -SET(Canorus_Core_MOCs # MOCs compiled into scripting library as well - import/import.h - export/export.h - export/pdfexport.h - export/svgexport.h - - control/externprogram.h - control/typesetctl.h - - interface/mididevice.h - interface/playback.h - core/midirecorder.h - - interface/pluginaction.h -) - -################ -# Qt4 settings # -################ -# Enable needed Qt modules for Canorus -SET(QT_USE_QTXML True) # Save/Load -SET(QT_USE_QTSVG True) # Icons, Images etc. -SET(QT_USE_QTHELP True) # Inline help browser -SET(QT_USE_QTWEBKIT True) # Inline help browser - -# Add all resources to Canorus_Resrcs (icons, html files etc.) -#SET(Canorus_Resrcs ui/mainwin.qrc) # not needed, all resources are loaded on-the-fly - -# Add all the dependencies needed for the MainWindow -# add_file_dependencies( ui/mainwin.cpp ui/ui_mainwin.h ) - -# This scripts runs the resource compiler rcc. -# The result of it is stored into Canorus_Resrcs_Srcs -# variable. This has to be included later in the -# add_executable line. -QT5_ADD_RESOURCES(Canorus_Resrcs_Srcs ${Canorus_Resrcs}) - -# This scripts runs the user interface compiler uic. -# The result of it is stored into Canorus_UIC_Srcs -# variable. This has to be included later in the -# add_executable line. -QT5_WRAP_UI(Canorus_UIC_Srcs ${Canorus_UIs}) - -# This script runs the meta object compiler moc. -# The result of it is stored into Canorus_Gui_MOC_Srcs and Canorus_Core_MOC_Srcs -# variable. This has to be included later in the -# add_executable line. -QT5_WRAP_CPP(Canorus_Gui_MOC_Srcs ${Canorus_Gui_MOCs}) -QT5_WRAP_CPP(Canorus_Core_MOC_Srcs ${Canorus_Core_MOCs}) - -######################### -# List of other sources # -######################### -SET(Canorus_Core_Srcs # Core sources - core/settings.cpp - core/undocommand.cpp - core/undo.cpp - core/autorecovery.cpp - core/mimedata.cpp - core/file.cpp - core/fileformats.cpp - core/typesetter.cpp - core/tar.cpp - core/archive.cpp - core/midirecorder.cpp - core/muselementfactory.cpp - core/transpose.cpp - core/notechecker.cpp -) - -SET(Canorus_Score_Srcs # Score representation - score/playablelength.cpp - score/diatonicpitch.cpp - score/interval.cpp - score/diatonickey.cpp - - score/document.cpp - score/resource.cpp - score/sheet.cpp - score/notecheckererror.cpp - score/context.cpp - score/staff.cpp - score/functionmarkcontext.cpp - score/figuredbasscontext.cpp - score/lyricscontext.cpp - - score/muselement.cpp - score/voice.cpp - score/barline.cpp - score/clef.cpp - score/keysignature.cpp - score/timesignature.cpp - score/playable.cpp - score/note.cpp - score/slur.cpp - score/tuplet.cpp - score/rest.cpp - score/midinote.cpp - - score/mark.cpp - score/articulation.cpp - score/fermata.cpp - score/repeatmark.cpp - score/tempo.cpp - score/ritardando.cpp - score/text.cpp - score/bookmark.cpp - score/fingering.cpp - score/dynamic.cpp - score/crescendo.cpp - score/instrumentchange.cpp - - score/syllable.cpp - - score/functionmark.cpp - - score/figuredbassmark.cpp -) - -SET(Canorus_Scripting_Srcs # Sources meant for bridging C++<->scripting language - scripting/swigruby.cpp - scripting/swigpython.cpp -) - -SET(Canorus_Widget_Srcs # Sources for all custom widgets present in Canorus - widgets/lcdnumber.cpp - widgets/scoreview.cpp - widgets/sourceview.cpp - widgets/toolbutton.cpp - widgets/toolbuttonpopup.cpp - widgets/menutoolbutton.cpp - widgets/undotoolbutton.cpp - widgets/view.cpp - widgets/viewcontainer.cpp - widgets/pyconsole.cpp - widgets/midirecorderview.cpp - widgets/resourceview.cpp - widgets/helpbrowser.cpp - widgets/actionseditor.cpp - widgets/progressstatusbar.cpp - widgets/tabwidget.cpp -) - -SET(Canorus_Ui_Srcs # Implementations of widgets that have their own .ui qt-designer files - ui/mainwin.cpp - ui/settingsdialog.cpp - ui/propertiesdialog.cpp - ui/transposeview.cpp - ui/singleaction.cpp - - scoreui/keysignatureui.cpp -) - -SET(Canorus_Gui_Ctl_Srcs # Control instances for user interface or views - control/previewctl.cpp - control/printctl.cpp - control/helpctl.cpp - control/mainwinprogressctl.cpp - - scorectl/keysignaturectl.cpp -) - -SET(Canorus_Ctl_Srcs # Control instances for user interface or views and core - control/externprogram.cpp - control/typesetctl.cpp - control/resourcectl.cpp -) - -SET(Canorus_Layout_Srcs # Drawable instances of the data - layout/layoutengine.cpp - - layout/drawable.cpp - - layout/drawablecontext.cpp - layout/drawablenotecheckererror.cpp - layout/drawablestaff.cpp - layout/drawablelyricscontext.cpp - layout/drawablefiguredbasscontext.cpp - layout/drawablefunctionmarkcontext.cpp - - layout/drawablemuselement.cpp - layout/drawablenote.cpp - layout/drawableslur.cpp - layout/drawabletuplet.cpp - layout/drawablerest.cpp - layout/drawablemidinote.cpp - layout/drawableaccidental.cpp - layout/drawableclef.cpp - layout/drawablekeysignature.cpp - layout/drawabletimesignature.cpp - layout/drawablebarline.cpp - layout/drawablemark.cpp - layout/drawablesyllable.cpp - layout/drawablefiguredbassnumber.cpp - layout/drawablefunctionmark.cpp -) - -SET(Canorus_Interface_Srcs # Other interfaces like Engraver, Playback, Plugin manager and others belong here. - interface/playback.cpp - interface/rtmididevice.cpp - interface/mididevice.cpp - interface/pluginmanager.cpp - interface/pluginaction.cpp - interface/plugin.cpp - interface/keybdinput.cpp - - interface/pyconsoleinterface.cpp -) - -SET(Canorus_Export_Srcs # Classes for exporting Canorus data to various file formats - export/export.cpp - export/midiexport.cpp - export/lilypondexport.cpp - export/canorusmlexport.cpp - export/canexport.cpp - export/musicxmlexport.cpp - export/pdfexport.cpp - export/svgexport.cpp -) - -SET(Canorus_Import_Srcs # Classes for import various file formats to Canorus data - import/import.cpp - import/lilypondimport.cpp - import/midiimport.cpp - import/canorusmlimport.cpp - import/canimport.cpp - import/musicxmlimport.cpp -) - -SET(Canorus_RtMidi_Srcs # RtMIDI library - rtmidi/RtMidi.cpp -) - -SET(Canorus_PMIDI_Srcs # PMIDI excerpts - import/pmidi/glib.c - import/pmidi/elements.c - import/pmidi/except.c - import/pmidi/mdutil.c - import/pmidi/midiread.c - import/pmidi/wrapper.c -) - -SET(Canorus_Srcs - main.cpp - canorus.cpp - - ${Canorus_Core_Srcs} - ${Canorus_Score_Srcs} - ${Canorus_Ctl_Srcs} - ${Canorus_Gui_Ctl_Srcs} - ${Canorus_Scripting_Srcs} - ${Canorus_Layout_Srcs} - ${Canorus_Ui_Srcs} - ${Canorus_Interface_Srcs} - ${Canorus_Export_Srcs} - ${Canorus_Import_Srcs} - ${Canorus_RtMidi_Srcs} - ${Canorus_Widget_Srcs} - ${Canorus_PMIDI_Srcs} -) - -SET(Canorus_Swig_Srcs # Sources which Swig needs to build its Python/Ruby module. - ${Canorus_Score_Srcs} - core/transpose.cpp - - core/settings.cpp - core/file.cpp - core/tar.cpp - core/archive.cpp - core/midirecorder.cpp - core/typesetter.cpp - ${Canorus_Import_Srcs} - ${Canorus_Export_Srcs} - ${Canorus_Ctl_Srcs} - ${Canorus_RtMidi_Srcs} - ${Canorus_PMIDI_Srcs} - interface/rtmididevice.cpp - interface/mididevice.cpp - interface/playback.cpp - - interface/pyconsoleinterface.cpp - interface/plugin.cpp - interface/pluginaction.cpp - interface/pluginmanager.cpp - interface/plugins_swig.cpp - scripting/swigpython.cpp - scripting/swigruby.cpp - ${Canorus_Core_MOC_Srcs} -) -IF(MINGW) # Append ZLIB srcs to Swig srcs on Windows - SET( Canorus_Swig_Srcs ${Canorus_Swig_Srcs} ${ZLIB_Srcs} ) -ENDIF(MINGW) - -SET( Canorus_Scripts "scripts" ) # Official scripts shipped with Canorus. - -SET( Canorus_Plugins "plugins" ) # Official plug-ins shipped with Canorus. - -SET( Canorus_Images "ui/images" ) - -SET( Canorus_Examples "../examples" ) - -set_source_files_properties(${Canorus_RtMidi_Srcs} PROPERTIES COMPILE_FLAGS -Wno-stack-protector) -set_source_files_properties(${CANORUS_PYTHON_WRAP_CXX} PROPERTIES COMPILE_FLAGS -Wno-error) - -# Set translation files -FILE(GLOB Canorus_Translation_Srcs "lang/*.ts") # lang/*.ts -> Canorus_Translation_Srcs -STRING(REGEX REPLACE "\\.ts" ".qm" Canorus_Translation_Bins "${Canorus_Translation_Srcs}") # Set Canorus_Translation_Bins to same values as Canorus_Translation_Srcs with different extensions - -SET(Canorus_Fonts # Music fonts needed by Canorus - fonts/CenturySchL-BoldItal.ttf # Century family needed for numbers and signs - fonts/CenturySchL-Bold.ttf - fonts/CenturySchL-Ital.ttf - fonts/CenturySchL-Roma.ttf - fonts/Emmentaler-14.ttf # LilyPond's emmentaler needed for notes, rests, clefs etc. - fonts/FreeSans.ttf # FreeSans needed for function markings -) - -IF(APPLE) - SET(Canorus_OSX_Icon ${CANORUS_OSX_DIR}/files/canorus.icns) - SET(Canorus_OSX_Info ${CANORUS_OSX_DIR}/files/Info.plist) - - SET(Canorus_OSX_Qt_libs - ${QT_QTCORE_LIBRARY}/Versions/5/QtCore - ${QT_QTGUI_LIBRARY}/Versions/5/QtGui - ${QT_QTWIDGETS_LIBRARY}/Versions/5/QtWidgets - ${QT_QTXML_LIBRARY}/Versions/5/QtXml - ${QT_QTSVG_LIBRARY}/Versions/5/QtSvg - ) -ENDIF(APPLE) - -######################### -# Compiler Define flags # -######################### -# RtMidi cross-platform definitions -IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") #IF(LINUX) isn't supported by CMake yet - ADD_DEFINITIONS(-D__LINUX_ALSASEQ__) -ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") -IF(APPLE) - ADD_DEFINITIONS(-D__MACOSX_CORE__) -ENDIF(APPLE) -IF(MINGW) - ADD_DEFINITIONS(-D__WINDOWS_MM__) -ENDIF(MINGW) - -# Define default data dir, if under POSIX systems. -IF(NOT MINGW) - IF (NOT DEFAULT_DATA_DIR) - ADD_DEFINITIONS(-DDEFAULT_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/${CANORUS_INSTALL_DATA_DIR}\") - ELSE (NOT DEFAULT_DATA_DIR) - ADD_DEFINITIONS(-DDEFAULT_DATA_DIR=\"${DEFAULT_DATA_DIR}\") - ENDIF (NOT DEFAULT_DATA_DIR) -ENDIF(NOT MINGW) - -IF(APPLE) - SET(MACOSX_BUNDLE_INFO_STRING "Free music score editor") - SET(MACOSX_BUNDLE_ICON_FILE canorus.icns) # \todo Copy this file to Applications/canorus.app/Resources when the package is created -ENDIF(APPLE) - -# Define Canorus version -ADD_DEFINITIONS(-DCANORUS_VERSION=\"${CANORUS_VERSION}\") - -# Define Scripting parameters -IF(USE_SWIG) - IF("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") - CONFIGURE_FILE(scripting/canoruspython_2.i scripting/canoruspython.i COPYONLY) - ELSE("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") - CONFIGURE_FILE(scripting/canoruspython_1.i scripting/canoruspython.i COPYONLY) - MESSAGE("Warning: Python Swig 1.x support is deprecated") - ENDIF("${SWIG_VERSION}" VERSION_EQUAL "2.0.4" OR "${SWIG_VERSION}" VERSION_GREATER "2.0.4") - ADD_DEFINITIONS(-DUSE_SWIG) -ENDIF(USE_SWIG) -IF(USE_RUBY) - ADD_DEFINITIONS(-DUSE_RUBY) -ENDIF(USE_RUBY) -IF(USE_PYTHON) - ADD_DEFINITIONS(-DUSE_PYTHON) -ENDIF(USE_PYTHON) -#IF(USE_POPPLER) -# ADD_DEFINITIONS(-DUSE_POPPLER) -#ENDIF(USE_POPPLER) - -#################################### -# Include paths and set up targets # -#################################### -# This needs to be added in order for #include to work inside .cpp files - it adds src/ to include path -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) - -# These lines add the include paths of the Qt -# directory to the compiler include paths -INCLUDE_DIRECTORIES(${Qt5Core_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5Gui_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5Svg_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5Xml_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5Help_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${Qt5PrintSupport_INCLUDE_DIRS}) - -# FIX: Qt was built with -reduce-relocations -if (Qt5_POSITION_INDEPENDENT_CODE) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif() - -IF(USE_SWIG) - INCLUDE(${SWIG_USE_FILE}) - SET(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_SOURCE_DIR}) -ENDIF(USE_SWIG) - -IF(USE_RUBY) - INCLUDE_DIRECTORIES(${RUBY_INCLUDE_PATH}) - SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusruby.i PROPERTIES CPLUSPLUS ON) - - SET(CANORUS_RUBY_WRAP_CXX ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusrubyRUBY_wrap.cxx) - SET_SOURCE_FILES_PROPERTIES(${CANORUS_RUBY_WRAP_CXX} PROPERTIES GENERATED TRUE) - - SWIG_ADD_MODULE(CanorusRuby ruby - ${Canorus_Swig_Srcs} - ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canorusruby.i - ) - SWIG_LINK_LIBRARIES(CanorusRuby ${RUBY_LIBRARY} ${QT_LIBRARIES}) - SET_TARGET_PROPERTIES( ${SWIG_MODULE_CanorusRuby_REAL_NAME} PROPERTIES COMPILE_FLAGS "-DSWIGCPP" ) -ENDIF(USE_RUBY) - -IF(USE_PYTHON) - INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS}) - SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspython.i PROPERTIES CPLUSPLUS ON) - - SET(CANORUS_PYTHON_WRAP_CXX ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspythonPYTHON_wrap.cxx) - SET_SOURCE_FILES_PROPERTIES(${CANORUS_PYTHON_WRAP_CXX} PROPERTIES GENERATED TRUE) - - SWIG_ADD_MODULE(CanorusPython python # Warning! CMake renames CanorusPython automatically to _CanorusPython - ${Canorus_Swig_Srcs} - ${CMAKE_CURRENT_SOURCE_DIR}/scripting/canoruspython.i - ) - SWIG_LINK_LIBRARIES(CanorusPython ${PYTHON_LIBRARY} ${QT_LIBRARIES}) - SET_TARGET_PROPERTIES( ${SWIG_MODULE_CanorusPython_REAL_NAME} PROPERTIES COMPILE_FLAGS "-DSWIGCPP" ) -ENDIF(USE_PYTHON) - -#IF(USE_POPPLER) -# INCLUDE_DIRECTORIES(${POPPLER_INCLUDE_PATH}) -#ENDIF(USE_POPPLER) - -# Adds Canorus resource file under Windows (Canorus icon etc.). -IF(MINGW) - # CMake currently doesn't support windres yet. Add command manually - FIND... [truncated message content] |
From: <su...@us...> - 2015-08-10 04:39:53
|
Revision: 1420 http://sourceforge.net/p/canorus/code/1420 Author: suamor Date: 2015-08-10 04:39:51 +0000 (Mon, 10 Aug 2015) Log Message: ----------- Fix issue with new sheet; add dynamic keyboard helper for keyboard shortcuts Modified Paths: -------------- trunk/src/widgets/scoreview.cpp Added Paths: ----------- trunk/src/core/dynamickeyboard.cpp trunk/src/core/dynamickeyboard.h Added: trunk/src/core/dynamickeyboard.cpp =================================================================== --- trunk/src/core/dynamickeyboard.cpp (rev 0) +++ trunk/src/core/dynamickeyboard.cpp 2015-08-10 04:39:51 UTC (rev 1420) @@ -0,0 +1,86 @@ +/*! + Copyright (c) 2015, Reinhard Katzmann, Matevž Jekovec, Canorus development team + All Rights Reserved. See AUTHORS for a complete list of authors. + + Licensed under the GNU GENERAL PUBLIC LICENSE. See COPYING for details. +*/ + +#include "ui/singleaction.h" +#include "ui/mainwin.h" +#include "dynamickeyboard.h" +#include "canorus.h" +#include "settings.h" + +CAActionDelegate::CAActionDelegate(CAMainWin *mainWin) +{ + _mainWin = mainWin; +} + +// Add a single action to the list of actions from Settings (copy action parameters) +void CAActionDelegate::addSingleAction(const QString &oCommandName, const QString &oDescription, QAction &oAction) +{ + CASingleAction *pMainAction = new CASingleAction(_mainWin); + if( pMainAction ) { + pMainAction->setCommandName(oCommandName); + pMainAction->setDescription(oDescription); + pMainAction->setShortcut(oAction.shortcut()); + pMainAction->setShortCutAsString( oAction.shortcut().toString() ); + //pMainAction->setMidiKeySequence( oMidiKeySequence ); // ToDo + pMainAction->setObjectName(oAction.objectName()); + pMainAction->setActionGroup( oAction.actionGroup() ); + pMainAction->setAutoRepeat( oAction.autoRepeat() ); + pMainAction->setCheckable( oAction.isCheckable() ); + pMainAction->setChecked( oAction.isChecked() ); + pMainAction->setData( oAction.data() ); + CACanorus::settings()->addSingleAction(*pMainAction); + } +} + +// Update an action with the settings parameters of a single action (copy single action parameters) +void CAActionDelegate::updateSingleAction(CASingleAction &oSource, QAction &oAction) +{ + oAction.setText(oSource.getCommandName()); + oAction.setStatusTip(oSource.getDescription()); + oAction.setShortcut(oSource.shortcut()); + //oAction->setMidiKeySequence( oSource.getMidiKeySequence ); // ToDo + oAction.setObjectName( oSource.objectName() ); + oAction.setActionGroup( oSource.actionGroup() ); + oAction.setAutoRepeat( oSource.autoRepeat() ); + oAction.setCheckable( oSource.isCheckable() ); + oAction.setChecked( oSource.isChecked() ); + oAction.setData( oSource.data() ); +} + +// Add Actions from CAMainWin to the list of actions of the settings (initialization) +void CAActionDelegate::addWinActions(QWidget &widget) +{ + // Hard coded description could be changed to Status Tip Text (if available) + //addSingleAction(_mainWin->uiQuit->text(),_mainWin->tr("Exit program"),*_mainWin->uiQuit); + QList<QAction *> actionList = widget.actions(); + QAction *actionEntry; + foreach(actionEntry, actionList) { + addSingleAction( actionEntry->text(), actionEntry->toolTip(), *actionEntry); + } +} + +// Remove all CAMainWin actions from the list of (single) actions in settings (exit program) +void CAActionDelegate::removeMainWinActions() +{ + CASingleAction *poAction; + while( 0 != CACanorus::settings()->getActionList().isEmpty() ) { + poAction = CACanorus::settings()->getActionList().back(); + if( poAction ) { + CACanorus::settings()->deleteSingleAction( poAction->getCommandName(), poAction ); + delete poAction; + poAction = 0; + } + } +} + +// Update all CAMainWin actions using the shortcuts (etc.) read from the settings +void CAActionDelegate::updateMainWinActions() +{ + CASingleAction *poResAction; + CACanorus::settings()->getSingleAction(_mainWin->uiQuit->text(), poResAction); + updateSingleAction(*poResAction,*_mainWin->uiQuit); +} Added: trunk/src/core/dynamickeyboard.h =================================================================== --- trunk/src/core/dynamickeyboard.h (rev 0) +++ trunk/src/core/dynamickeyboard.h 2015-08-10 04:39:51 UTC (rev 1420) @@ -0,0 +1,39 @@ +/*! + Copyright (c) 2015, Reinhard Katzmann, Matevž Jekovec, Canorus development team + All Rights Reserved. See AUTHORS for a complete list of authors. + + Licensed under the GNU GENERAL PUBLIC LICENSE. See COPYING for details. +*/ + +#ifndef DYNAMICKEYBOARD_H_ +#define DYNAMICKEYBOARD_H_ + +#include <QString> +#include <QAction> + +// Helper methods to reduce code ballast in mainwin class +// Keyboard (Midi) Shortcuts that can be changed dynamically + +class CAMainWin; +class CASingleAction; + +class CAActionDelegate +{ +public: + CAActionDelegate(CAMainWin *mainWin); + + void addWinActions(QWidget &widget); + void removeMainWinActions(); + void updateMainWinActions(); + +protected: + void addSingleAction(const QString &oCommandName, const QString &oDescription, QAction &oAction); + void updateSingleAction(CASingleAction &oSource, QAction &oAction); + +private: + CAMainWin *_mainWin; +}; + +#endif // DYNAMICKEYBOARD_H_ + + Modified: trunk/src/widgets/scoreview.cpp =================================================================== --- trunk/src/widgets/scoreview.cpp 2015-04-25 20:02:30 UTC (rev 1419) +++ trunk/src/widgets/scoreview.cpp 2015-08-10 04:39:51 UTC (rev 1420) @@ -983,28 +983,30 @@ p.setPen(Qt::black); // draw the barline marks - CABarline *curBarline = dStaff->getBarline(_worldX+_worldW); - CADrawableBarline *curDBarline = (curBarline?static_cast<CADrawableBarline*>(_mapDrawable.values( dStaff->getBarline(_worldX+width()/_zoom) )[0]):0); + if(dStaff) + { + CABarline *curBarline = dStaff->getBarline(_worldX+_worldW); + CADrawableBarline *curDBarline = (curBarline?static_cast<CADrawableBarline*>(_mapDrawable.values( dStaff->getBarline(_worldX+width()/_zoom) )[0]):0); - // determine the barline number + do we have a pickup measure in the beginning - int dBarlineIdx = dStaff->drawableBarlineList().indexOf(curDBarline); - CADrawableTimeSignature *firstDTimeSig = (dStaff->drawableTimeSignatureList().size()?dStaff->drawableTimeSignatureList()[0]:0); - int barlineOffset = 2; - if (curDBarline && firstDTimeSig && - dStaff->drawableBarlineList()[0]->barline()->timeStart() < firstDTimeSig->timeSignature()->barDuration() ) { - barlineOffset = 1; - } + // determine the barline number + do we have a pickup measure in the beginning + int dBarlineIdx = dStaff->drawableBarlineList().indexOf(curDBarline); + CADrawableTimeSignature *firstDTimeSig = (dStaff->drawableTimeSignatureList().size()?dStaff->drawableTimeSignatureList()[0]:0); + int barlineOffset = 2; + if (curDBarline && firstDTimeSig && + dStaff->drawableBarlineList()[0]->barline()->timeStart() < firstDTimeSig->timeSignature()->barDuration() ) { + barlineOffset = 1; + } - while ( curDBarline && curDBarline->xPos()>_worldX ) { - int center = qRound((curDBarline->xPos()-_worldX)*_zoom); - if (dBarlineIdx!=dStaff->drawableBarlineList().size()-1) { // don't draw the last bar number - p.drawText( center-1, RULER_HEIGHT-2, QString::number(dBarlineIdx+barlineOffset) ); + while ( curDBarline && curDBarline->xPos()>_worldX ) { + int center = qRound((curDBarline->xPos()-_worldX)*_zoom); + if (dBarlineIdx!=dStaff->drawableBarlineList().size()-1) { // don't draw the last bar number + p.drawText( center-1, RULER_HEIGHT-2, QString::number(dBarlineIdx+barlineOffset) ); + } + + dBarlineIdx--; + curDBarline = (dBarlineIdx>=0?dStaff->drawableBarlineList()[dBarlineIdx]:0); } - - dBarlineIdx--; - curDBarline = (dBarlineIdx>=0?dStaff->drawableBarlineList()[dBarlineIdx]:0); - } - + } // TODO: draw the time marks } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-04-25 20:02:37
|
Revision: 1419 http://sourceforge.net/p/canorus/code/1419 Author: matevz Date: 2015-04-25 20:02:30 +0000 (Sat, 25 Apr 2015) Log Message: ----------- Added CANoteChecker and other note checker classes to CMakeListsQt5.txt. Updated Debian based distros Qt5 build instructions. Modified Paths: -------------- trunk/README trunk/src/CMakeListsQt5.txt Modified: trunk/README =================================================================== --- trunk/README 2015-04-18 17:17:16 UTC (rev 1418) +++ trunk/README 2015-04-25 20:02:30 UTC (rev 1419) @@ -55,6 +55,9 @@ Debian based distributions: =========================== +One-liner to install build dependencies: + $ sudo apt-get install libqt5-webkit5-dev libqt5svg-dev qtbase5-dev qttools5-dev + Download the SVN/release version of canorus, go to Canorus root directory and run: $ debian/rules binary Modified: trunk/src/CMakeListsQt5.txt =================================================================== --- trunk/src/CMakeListsQt5.txt 2015-04-18 17:17:16 UTC (rev 1418) +++ trunk/src/CMakeListsQt5.txt 2015-04-25 20:02:30 UTC (rev 1419) @@ -227,6 +227,7 @@ core/midirecorder.cpp core/muselementfactory.cpp core/transpose.cpp + core/notechecker.cpp ) SET(Canorus_Score_Srcs # Score representation @@ -238,6 +239,7 @@ score/document.cpp score/resource.cpp score/sheet.cpp + score/notecheckererror.cpp score/context.cpp score/staff.cpp score/functionmarkcontext.cpp @@ -332,6 +334,7 @@ layout/drawable.cpp layout/drawablecontext.cpp + layout/drawablenotecheckererror.cpp layout/drawablestaff.cpp layout/drawablelyricscontext.cpp layout/drawablefiguredbasscontext.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-18 17:17:18
|
Revision: 1418 http://sourceforge.net/p/canorus/code/1418 Author: suamor Date: 2015-04-18 17:17:16 +0000 (Sat, 18 Apr 2015) Log Message: ----------- ActionsEditor: Replace context by description in some more places SingleAction: Remove context (no longer needed) SettingsDialog: Replace QAction by QSingleAction Settings: Replace/Add QAction by/with QSingleAction (as Base) Modified Paths: -------------- trunk/src/core/settings.cpp trunk/src/core/settings.h trunk/src/ui/settingsdialog.cpp trunk/src/ui/singleaction.cpp trunk/src/ui/singleaction.h trunk/src/widgets/actionseditor.cpp Modified: trunk/src/core/settings.cpp =================================================================== --- trunk/src/core/settings.cpp 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/core/settings.cpp 2015-04-18 17:17:16 UTC (rev 1418) @@ -96,7 +96,7 @@ void CASettings::initSettings() { - _poEmptyEntry = new QAction( this ); + _poEmptyEntry = new CASingleAction( this ); } CASettings::~CASettings() { @@ -104,6 +104,16 @@ if( _poEmptyEntry ) delete _poEmptyEntry; _poEmptyEntry = 0; + if( false == _oActionList.isEmpty() ) + { + CASingleAction *poActionEntry; + foreach(poActionEntry, _oActionList) + { + delete poActionEntry; + poActionEntry = 0; + } + _oActionList.clear(); + } } /*! @@ -340,27 +350,49 @@ Search one single action in the list of actions (-1: entry not found) Returns an empty action element when the command was not found */ -int CASettings::getSingleAction(QString oCommand, QAction *&poResAction) +int CASettings::getSingleAction(QString oCommandName, QAction *&poResAction) { + CASingleAction *poEntryAction; for (int i=0; i < _oActionList.count(); i++) { - poResAction = &getSingleAction(i, _oActionList); - if( poResAction->objectName() == oCommand ) + poEntryAction = _oActionList[i]; + if( poEntryAction->getCommandName() == oCommandName ) + { + poResAction = poEntryAction; return i; + } } poResAction = _poEmptyEntry; - return -1; + return -1; } +int CASettings::getSingleAction(QString oCommandName, CASingleAction *&poResAction) +{ + CASingleAction *poEntryAction; + for (int i=0; i < _oActionList.count(); i++) { + poEntryAction = _oActionList[i]; + if( poEntryAction->getCommandName() == oCommandName ) + { + poResAction = poEntryAction; + return i; + } + } + poResAction = _poEmptyEntry; + return -1; +} + /*! Updates an action in the action list Return 'true' if the update was successfull - Warning: The action cannot be copied! + Warning: 1) The action will not be copied + 2) Only shortcut and no midi information is updated + 3) Description cannot be updated */ bool CASettings::setSingleAction(QAction oSingleAction, int iPos) { bool bRet = false; if( iPos >= 0 && iPos < _oActionList.count() ) { - _oActionList[iPos] = &oSingleAction; + _oActionList[iPos]->setCommandName( oSingleAction.objectName() ); + _oActionList[iPos]->setShortCutAsString( oSingleAction.shortcut().toString() ); bRet = true; } return bRet; @@ -372,13 +404,14 @@ Else: According to Qt doc "assigns the other list to this list" Warning: The actions themselves cannot be copied! */ -void CASettings::setActionList(QList<QAction *> &oActionList) +void CASettings::setActionList(QList<CASingleAction *> &oActionList) { #ifdef COPY_ACTIONLIST_ELEMS_MANUALLY _oActionList.clear(); + CASingleAction *pActionEntry; for (int i=0; i < oActionList.count(); i++) { - poResAction = &getSingleAction(i, oActionList); - addSingleAction(*poResAction); + pActionEntry = &getSingleAction(i, oActionList); + addSingleAction(*pActionEntry); } #else _oActionList = oActionList; @@ -387,21 +420,35 @@ /*! Adds a single action to the action list - Warning: The action cannot be copied! + Warning: The action will be referenced! */ -void CASettings::addSingleAction(QAction oSingleAction) +void CASettings::addSingleAction(CASingleAction &oSingleAction) { - _oActionList.append( &oSingleAction ); + CASingleAction *pActionEntry = new CASingleAction(0); // parent ? + pActionEntry->setCommandName( oSingleAction.getCommandName() ); + pActionEntry->setDescription( oSingleAction.getDescription() ); + pActionEntry->setShortCutAsString( oSingleAction.getShortCutAsString() ); + pActionEntry->setMidiKeySequence( oSingleAction.getMidiKeySequence() ); + pActionEntry->setActionGroup( oSingleAction.actionGroup() ); + pActionEntry->setAutoRepeat( oSingleAction.autoRepeat() ); + pActionEntry->setCheckable( oSingleAction.isCheckable() ); + pActionEntry->setChecked( oSingleAction.isChecked() ); + pActionEntry->setData( oSingleAction.data() ); +#ifdef COPY_ACTIONLIST_ELEMS_MANUALLY + _oActionList.append( pActionEntry ); +#else + _oActionList.append( &oSingleAction ); +#endif } /*! Removes a single action from the action list Return 'true' when succesfull - Warning: The action itself cannot be deleted! + Warning: The action itself is not deleted! */ bool CASettings::deleteSingleAction(QString oCommand) { - QAction *poResAction; + CASingleAction *poResAction; bool bRet = false; int iPos = getSingleAction(oCommand, poResAction); if( iPos >= 0 ) // Double entries should not be in the list @@ -409,6 +456,9 @@ _oActionList.removeOne( poResAction ); bRet = true; } +#ifdef COPY_ACTIONLIST_ELEMS_MANUALLY + delete poResAction; +#endif return bRet; } Modified: trunk/src/core/settings.h =================================================================== --- trunk/src/core/settings.h 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/core/settings.h 2015-04-18 17:17:16 UTC (rev 1418) @@ -11,8 +11,8 @@ #include <QSettings> #ifndef SWIG #include <QColor> -//#include "ui/singleaction.h" -#include <QAction> +#include "ui/singleaction.h" +//#include <QAction> #endif #include <QDir> #include "core/fileformats.h" @@ -140,8 +140,9 @@ inline void setLatestShortcutsDirectory( QDir d ) { _latestShortcutsDirectory = d; } static const QDir DEFAULT_SHORTCUTS_DIRECTORY; #ifndef SWIG - int getSingleAction(QString oCommand, QAction *&poResAction); - /*! + int getSingleAction(QString oCommandName, QAction *&poResAction); + int getSingleAction(QString oCommandName, CASingleAction *&poResAction); + /*! Re one single action in the list of actions Does not check for the correct position in the list to be fast! */ @@ -150,10 +151,10 @@ return *poResAction; } bool setSingleAction(QAction oSingleAction, int iPos); - inline const QList<QAction*>& getActionList() { return _oActionList; } - void setActionList(QList<QAction *> &oActionList); - void addSingleAction(QAction oSingleAction); - bool deleteSingleAction(QString oCommand); + inline const QList<CASingleAction*>& getActionList() { return _oActionList; } + void setActionList(QList<CASingleAction *> &oActionList); + void addSingleAction(CASingleAction &oSingleAction); + bool deleteSingleAction(QString oCommandName); #endif private: @@ -234,8 +235,8 @@ QDir _latestShortcutsDirectory; // save location of shortcuts/midi commands // @ToDo: QAction can be exported to SWIG ? Abstract interface but requires QObject #ifndef SWIG - QList<QAction *> _oActionList; - QAction *_poEmptyEntry; // Entry is unused for search function + QList<CASingleAction *> _oActionList; + CASingleAction *_poEmptyEntry; // Entry is unused for search function #endif }; Modified: trunk/src/ui/settingsdialog.cpp =================================================================== --- trunk/src/ui/settingsdialog.cpp 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/ui/settingsdialog.cpp 2015-04-18 17:17:16 UTC (rev 1418) @@ -193,7 +193,7 @@ { int i; QWidget oSingleActions; // all actions added here - const QList<QAction *> &roSAList = CACanorus::settings()->getActionList(); + const QList<CASingleAction *> &roSAList = CACanorus::settings()->getActionList(); _commandsEditor = new CAActionsEditor( 0 ); _commandsEditor->setObjectName(QString::fromUtf8("commandsEditor")); commandsSettingsVBoxLayout->addWidget(_commandsEditor); Modified: trunk/src/ui/singleaction.cpp =================================================================== --- trunk/src/ui/singleaction.cpp 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/ui/singleaction.cpp 2015-04-18 17:17:16 UTC (rev 1418) @@ -29,12 +29,6 @@ } } -void CASingleAction::setContext( QString oContext ) -{ - if( !oContext.isEmpty() ) - _oContext = oContext; -} - void CASingleAction::setDescription( QString oDescription ) { if( !oDescription.isEmpty() ) Modified: trunk/src/ui/singleaction.h =================================================================== --- trunk/src/ui/singleaction.h 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/ui/singleaction.h 2015-04-18 17:17:16 UTC (rev 1418) @@ -26,7 +26,6 @@ // Getter methods for all single action parameters inline QString getCommandName() { return _oCommandName; } - inline QString getContext() { return _oContext; } inline QString getDescription() { return _oDescription; } inline QString getShortCutAsString() { return _oShortCut; } inline QString getMidiKeySequence() { return _oMidiKeySequence; } @@ -38,7 +37,6 @@ // Setter methods void setCommandName( QString oCommandName ); - void setContext( QString oContext ); void setDescription( QString oDescription ); void setShortCutAsString( QString oShortCut ); void setMidiKeySequence( QString oMidiKeySequence, bool combined = false ); @@ -46,7 +44,6 @@ protected: // Action parameters to be stored / loaded via Settings Dialog QString _oCommandName; - QString _oContext; QString _oDescription; QString _oShortCut; QString _oMidiKeySequence; Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-12 16:39:32 UTC (rev 1417) +++ trunk/src/widgets/actionseditor.cpp 2015-04-18 17:17:16 UTC (rev 1418) @@ -201,7 +201,7 @@ actionsTable->setRowCount( actionsList.count() ); CASingleAction *action; - QString accelText, midi_com, context; + QString accelText, midi_com, description; //#if !USE_SHORTCUTGETTER dont_validate = true; @@ -217,7 +217,7 @@ //#else accelText = action->getShortCutAsString(); //#endif - context = action->getContext(); + description = action->getDescription(); midi_com = action->getMidiKeySequence(); QTableWidgetItem * i_conf = new QTableWidgetItem(); @@ -226,7 +226,7 @@ QTableWidgetItem * i_command = new QTableWidgetItem(action->text()); // Context column - QTableWidgetItem * i_context = new QTableWidgetItem( context ); + QTableWidgetItem * i_context = new QTableWidgetItem( description ); // Shortcut column QTableWidgetItem * i_shortcut = new QTableWidgetItem(accelText); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-12 16:39:39
|
Revision: 1417 http://sourceforge.net/p/canorus/code/1417 Author: suamor Date: 2015-04-12 16:39:32 +0000 (Sun, 12 Apr 2015) Log Message: ----------- Rename getCommand to getCommandName Rename getShortCut to getShortCutAsString Rename getMidiCommand to getMidiKeySequence Add application-specific Getter for Action, ShortCut and Midi Key Sequence Parameters Store Midi Key Sequence Parameter as Integer List Store ShortCut from parent as well to be able to implement Refs access Convert Midi Sequence to Midi Parameters when it is changed. Modified Paths: -------------- trunk/src/ui/singleaction.cpp trunk/src/ui/singleaction.h trunk/src/widgets/actionseditor.cpp Modified: trunk/src/ui/singleaction.cpp =================================================================== --- trunk/src/ui/singleaction.cpp 2015-04-12 16:23:27 UTC (rev 1416) +++ trunk/src/ui/singleaction.cpp 2015-04-12 16:39:32 UTC (rev 1417) @@ -20,12 +20,12 @@ { } -void CASingleAction::setCommand( QString oCommand ) +void CASingleAction::setCommandName( QString oCommandName ) { - if( !oCommand.isEmpty() ) + if( !oCommandName.isEmpty() ) { - _oCommand = oCommand; - setText( oCommand ); + _oCommandName = oCommandName; + setText( oCommandName ); } } @@ -44,20 +44,28 @@ } } -void CASingleAction::setShortCut( QString oShortCut ) +void CASingleAction::setShortCutAsString( QString oShortCut ) { if( !oShortCut.isEmpty() ) { _oShortCut = oShortCut; QAction::setShortcut( oShortCut ); + _oSysShortCut = shortcut(); } } -void CASingleAction::setMidiCommand( QString oMidiCommand, bool combined ) +void CASingleAction::setMidiKeySequence( QString oMidiKeySequence, bool combined ) { - if( !oMidiCommand.isEmpty() ) + if( !oMidiKeySequence.isEmpty() ) { - _oMidiCommand = oMidiCommand; + _oMidiKeySequence = oMidiKeySequence; _bMidiShortCutCombined = combined; + QStringList mksList = oMidiKeySequence.split(" "); + QString le; + _oMidiKeyParameters.clear(); + foreach(le,mksList) + { + _oMidiKeyParameters.push_back(le.toInt()); + } } } Modified: trunk/src/ui/singleaction.h =================================================================== --- trunk/src/ui/singleaction.h 2015-04-12 16:23:27 UTC (rev 1416) +++ trunk/src/ui/singleaction.h 2015-04-12 16:39:32 UTC (rev 1417) @@ -9,6 +9,7 @@ #define _CASINGLEACTION_H_ #include <QAction> +#include <QShortcut> class QString; @@ -24,27 +25,35 @@ ~CASingleAction(); // Getter methods for all single action parameters - inline QString getCommand() { return _oCommand; } + inline QString getCommandName() { return _oCommandName; } inline QString getContext() { return _oContext; } inline QString getDescription() { return _oDescription; } - inline QString getShortCut() { return _oShortCut; } - inline QString getMidiCommand() { return _oMidiCommand; } + inline QString getShortCutAsString() { return _oShortCut; } + inline QString getMidiKeySequence() { return _oMidiKeySequence; } inline bool getMidiShortCutCombined() { return _bMidiShortCutCombined; } + // Application-specific Getter (Refs, so no Setter required) + inline QAction &getAction() { return (QAction &)*this; } + inline QKeySequence &getSysShortCut() { return _oSysShortCut; } + inline QList<int> &getMidiKeyParameters() { return _oMidiKeyParameters; } // Setter methods - void setCommand( QString oCommand ); + void setCommandName( QString oCommandName ); void setContext( QString oContext ); void setDescription( QString oDescription ); - void setShortCut( QString oShortCut ); - void setMidiCommand( QString oMidiCommand, bool combined = false ); + void setShortCutAsString( QString oShortCut ); + void setMidiKeySequence( QString oMidiKeySequence, bool combined = false ); protected: - QString _oCommand; + // Action parameters to be stored / loaded via Settings Dialog + QString _oCommandName; QString _oContext; QString _oDescription; QString _oShortCut; - QString _oMidiCommand; + QString _oMidiKeySequence; bool _bMidiShortCutCombined; + // ShortCut, Midi Key Sequence for the application + QKeySequence _oSysShortCut; + QList<int> _oMidiKeyParameters; }; #endif // _CASINGLEACTION_H_ Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-12 16:23:27 UTC (rev 1416) +++ trunk/src/widgets/actionseditor.cpp 2015-04-12 16:39:32 UTC (rev 1417) @@ -215,10 +215,10 @@ //#if USE_MULTIPLE_SHORTCUTS // accelText = shortcutsToString( action->shortcuts() ); //#else - accelText = action->getShortCut(); + accelText = action->getShortCutAsString(); //#endif context = action->getContext(); - midi_com = action->getMidiCommand(); + midi_com = action->getMidiKeySequence(); QTableWidgetItem * i_conf = new QTableWidgetItem(); @@ -281,7 +281,7 @@ //#else // @ToDo Update Midi/Shortcut corresponding but // Update our own list of settings - action->setShortCut( QKeySequence(i->text()).toString() ); + action->setShortCutAsString( QKeySequence(i->text()).toString() ); //#endif } } @@ -601,7 +601,7 @@ //#if USE_MULTIPLE_SHORTCUTS // accelText = shortcutsToString(action->shortcuts()); //#else - accelText = action->getShortCut(); + accelText = action->getShortCutAsString(); //#endif if( accelText.isEmpty() ) set->setValue(action->text(), "none"); @@ -634,9 +634,9 @@ // accelText = set->value(action->objectName(), current).toString(); // action->setShortcuts( stringToShortcuts( accelText ) ); //#else - accelText = set->value(action->text(), action->getShortCut()).toString(); + accelText = set->value(action->text(), action->getShortCutAsString()).toString(); if( accelText != "none" ) - action->setShortCut( QKeySequence(accelText).toString() ); + action->setShortCutAsString( QKeySequence(accelText).toString() ); //#endif } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-04-12 16:23:30
|
Revision: 1416 http://sourceforge.net/p/canorus/code/1416 Author: matevz Date: 2015-04-12 16:23:27 +0000 (Sun, 12 Apr 2015) Log Message: ----------- Renamed CAStaff::*References -> CAStaff::*Refs(). Removed CAStaff::remove*References and CAStaff::add*References. Added note checker support. Added note checker to CASettings and CASettingsDialog. Removed obsolete CASettings::splitAtQuarterBoundaries(). Modified Paths: -------------- trunk/src/CMakeLists.txt trunk/src/core/settings.cpp trunk/src/core/settings.h trunk/src/import/midiimport.cpp trunk/src/interface/keybdinput.cpp trunk/src/lang/sl.ts trunk/src/layout/kdtree.h trunk/src/layout/layoutengine.cpp trunk/src/layout/layoutengine.h trunk/src/score/muselement.cpp trunk/src/score/muselement.h trunk/src/score/note.cpp trunk/src/score/sheet.cpp trunk/src/score/sheet.h trunk/src/score/staff.cpp trunk/src/score/staff.h trunk/src/score/timesignature.cpp trunk/src/score/timesignature.h trunk/src/score/voice.cpp trunk/src/ui/mainwin.cpp trunk/src/ui/mainwin.h trunk/src/ui/settingsdialog.cpp trunk/src/ui/settingsdialog.ui trunk/src/widgets/scoreview.cpp trunk/src/widgets/scoreview.h Added Paths: ----------- trunk/src/core/notechecker.cpp trunk/src/core/notechecker.h trunk/src/layout/drawablenotecheckererror.cpp trunk/src/layout/drawablenotecheckererror.h trunk/src/score/notecheckererror.cpp trunk/src/score/notecheckererror.h Property Changed: ---------------- trunk/src/lang/ Modified: trunk/src/CMakeLists.txt =================================================================== --- trunk/src/CMakeLists.txt 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/CMakeLists.txt 2015-04-12 16:23:27 UTC (rev 1416) @@ -224,6 +224,7 @@ core/midirecorder.cpp core/muselementfactory.cpp core/transpose.cpp + core/notechecker.cpp ) SET(Canorus_Score_Srcs # Score representation @@ -235,6 +236,7 @@ score/document.cpp score/resource.cpp score/sheet.cpp + score/notecheckererror.cpp score/context.cpp score/staff.cpp score/functionmarkcontext.cpp @@ -329,6 +331,7 @@ layout/drawable.cpp layout/drawablecontext.cpp + layout/drawablenotecheckererror.cpp layout/drawablestaff.cpp layout/drawablelyricscontext.cpp layout/drawablefiguredbasscontext.cpp Copied: trunk/src/core/notechecker.cpp (from rev 1407, trunk/src/core/archive.cpp) =================================================================== --- trunk/src/core/notechecker.cpp (rev 0) +++ trunk/src/core/notechecker.cpp 2015-04-12 16:23:27 UTC (rev 1416) @@ -0,0 +1,67 @@ +/*! + Copyright (c) 2015, Matevž Jekovec, Canorus development team + All Rights Reserved. See AUTHORS for a complete list of authors. + + Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE.GPL for details. +*/ + +#include <QObject> + +#include "core/notechecker.h" +#include "score/sheet.h" +#include "score/staff.h" +#include "score/playablelength.h" +#include "score/timesignature.h" +#include "score/notecheckererror.h" + +/*! + \class CANoteChecker + \brief Class checking the user errors in the score (e.g. too long bars etc.) + + This class is spell checker that provides tools for checking potential + "typing" errors made by the user such as too little notes not filling the bar + and similar. +*/ + +CANoteChecker::CANoteChecker() { +} + +CANoteChecker::~CANoteChecker() { +} + +/*! + Parse/decompress an existing archive +*/ +void CANoteChecker::checkSheet(CASheet *sheet) { + sheet->clearNoteCheckerErrors(); + + // check for incomplete bars + QList<CAStaff*> staffs = sheet->staffList(); + for (int i=0; i<staffs.size(); i++) { + QList<CAMusElement*> timeSigs = staffs[i]->timeSignatureRefs(); + QList<CAMusElement*> barlines = staffs[i]->barlineRefs(); + + if (!timeSigs.size()) { + continue; + } + + int lastTimeSigIdx = 0; + int lastTimeSigRequiredDuration = static_cast<CATimeSignature*>(timeSigs[lastTimeSigIdx])->barDuration(); + int lastBarlineTime = -1; + for (int j=0; j<barlines.size(); j++) { + if (((lastTimeSigIdx+1)<timeSigs.size()) && barlines[j]->timeStart()>timeSigs[lastTimeSigIdx]->timeStart() ) { + // go to next time sig + lastTimeSigIdx++; + lastTimeSigRequiredDuration = static_cast<CATimeSignature*>(timeSigs[lastTimeSigIdx])->barDuration(); + } + + // check the bar duration + if ((lastBarlineTime != -1) && (barlines[j]->timeStart()!=lastBarlineTime+lastTimeSigRequiredDuration)) { + CANoteCheckerError *nce = new CANoteCheckerError(barlines[j], QObject::tr("Bar duration incorrect.")); + sheet->addNoteCheckerError(nce); + } + + lastBarlineTime = barlines[j]->timeStart(); + } + } +} Copied: trunk/src/core/notechecker.h (from rev 1407, trunk/src/core/archive.h) =================================================================== --- trunk/src/core/notechecker.h (rev 0) +++ trunk/src/core/notechecker.h 2015-04-12 16:23:27 UTC (rev 1416) @@ -0,0 +1,21 @@ +/*! + Copyright (c) 2015, Matevž Jekovec, Canorus development team + All Rights Reserved. See AUTHORS for a complete list of authors. + + Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE.GPL for details. +*/ + +#ifndef NOTECHECKER_H_ +#define NOTECHECKER_H_ + +class CASheet; + +class CANoteChecker { +public: + CANoteChecker(); + virtual ~CANoteChecker(); + + void checkSheet(CASheet*); +}; + +#endif /* NOTECHECKER_H_ */ Modified: trunk/src/core/settings.cpp =================================================================== --- trunk/src/core/settings.cpp 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/core/settings.cpp 2015-04-12 16:23:27 UTC (rev 1416) @@ -16,7 +16,7 @@ const bool CASettings::DEFAULT_SHADOW_NOTES_IN_OTHER_STAFFS = false; const bool CASettings::DEFAULT_PLAY_INSERTED_NOTES = true; const bool CASettings::DEFAULT_AUTO_BAR = true; -const bool CASettings::DEFAULT_SPLIT_AT_QUARTER_BOUNDARIES = false; +const bool CASettings::DEFAULT_USE_NOTE_CHECKER = true; const QDir CASettings::DEFAULT_DOCUMENTS_DIRECTORY = QDir::home(); const QDir CASettings::DEFAULT_SHORTCUTS_DIRECTORY = QDir( QDir::homePath() + "/.config/Canorus" ); @@ -114,8 +114,8 @@ setValue( "editor/shadownotesinotherstaffs", shadowNotesInOtherStaffs() ); setValue( "editor/playinsertednotes", playInsertedNotes() ); setValue( "editor/autobar", autoBar() ); - setValue( "editor/splitatquarterboundaries", splitAtQuarterBoundaries() ); - setValue( "editor/showruler", showRuler() ); + setValue( "editor/usenotechecker", useNoteChecker() ); + setValue( "appearance/showruler", showRuler() ); setValue( "files/documentsdirectory", documentsDirectory().absolutePath() ); setValue( "files/defaultsaveformat", defaultSaveFormat() ); @@ -179,16 +179,11 @@ else setAutoBar( DEFAULT_AUTO_BAR ); - if ( contains("editor/splitatquarterboundaries") ) - setSplitAtQuarterBoundaries( value("editor/splitatquarterboundaries").toBool() ); + if ( contains("editor/usenotechecker") ) + setUseNoteChecker( value("editor/usenotechecker").toBool() ); else - setSplitAtQuarterBoundaries( DEFAULT_SPLIT_AT_QUARTER_BOUNDARIES ); + setUseNoteChecker( DEFAULT_USE_NOTE_CHECKER ); - if ( contains("editor/showruler") ) - setShowRuler( value("editor/showruler").toBool() ); - else - setShowRuler( DEFAULT_SHOW_RULER ); - // Saving/Loading settings if ( contains("files/documentsdirectory") ) setDocumentsDirectory( value("files/documentsdirectory").toString() ); @@ -264,6 +259,11 @@ setDisabledElementsColor( value("appearance/disabledelementscolor").value<QColor>() ); else setDisabledElementsColor( DEFAULT_DISABLED_ELEMENTS_COLOR ); + + if ( contains("appearance/showruler") ) + setShowRuler( value("appearance/showruler").toBool() ); + else + setShowRuler( DEFAULT_SHOW_RULER ); #endif // Playback settings Modified: trunk/src/core/settings.h =================================================================== --- trunk/src/core/settings.h 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/core/settings.h 2015-04-12 16:23:27 UTC (rev 1416) @@ -45,9 +45,9 @@ inline bool autoBar() { return _autoBar; } inline void setAutoBar( bool b ) { _autoBar = b; } static const bool DEFAULT_AUTO_BAR; - inline bool splitAtQuarterBoundaries() { return _splitAtQuarterBoundaries; } - inline void setSplitAtQuarterBoundaries( bool b ) { _splitAtQuarterBoundaries = b; } - static const bool DEFAULT_SPLIT_AT_QUARTER_BOUNDARIES; + inline bool useNoteChecker() { return _useNoteChecker; } + inline void setUseNoteChecker( bool b ) { _useNoteChecker = b; } + static const bool DEFAULT_USE_NOTE_CHECKER; ///////////////////////////// // Loading/Saving settings // @@ -169,7 +169,7 @@ bool _shadowNotesInOtherStaffs; bool _playInsertedNotes; bool _autoBar; - bool _splitAtQuarterBoundaries; + bool _useNoteChecker; ///////////////////////////// // Loading/Saving settings // Modified: trunk/src/import/midiimport.cpp =================================================================== --- trunk/src/import/midiimport.cpp 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/import/midiimport.cpp 2015-04-12 16:23:27 UTC (rev 1416) @@ -499,10 +499,10 @@ time == _allChannelsKeySignatures[_actualKeySignatureIndex+1]->timeStart() ) { _actualKeySignatureIndex++; - if ( staff->keySignatureReferences().size() < _actualKeySignatureIndex+1 ) { - staff->addKeySignatureReference( new CAKeySignature( _allChannelsKeySignatures[_actualKeySignatureIndex]->diatonicKey(), staff, time )); + if ( staff->keySignatureRefs().size() < _actualKeySignatureIndex+1 ) { + staff->keySignatureRefs() << new CAKeySignature( _allChannelsKeySignatures[_actualKeySignatureIndex]->diatonicKey(), staff, time ); } - return staff->keySignatureReferences()[_actualKeySignatureIndex]; + return staff->keySignatureRefs()[_actualKeySignatureIndex]; } return 0; } @@ -513,32 +513,32 @@ CAMusElement* CAMidiImport::getOrCreateTimeSignature( int time, int voiceIndex, CAStaff *staff, CAVoice *voice ) { - if (!staff->timeSignatureReferences().size()) { + if (!staff->timeSignatureRefs().size()) { _actualTimeSignatureIndex = 0; int top = _allChannelsTimeSignatures[_actualTimeSignatureIndex]->_top; int bottom = _allChannelsTimeSignatures[_actualTimeSignatureIndex]->_bottom; - staff->addTimeSignatureReference( new CATimeSignature( top, bottom, staff, 0 )); + staff->timeSignatureRefs() << new CATimeSignature( top, bottom, staff, 0 ); // std::cout<<" neue Timesig at "<<time<<", there are " // <<_allChannelsTimeSignatures.size() // <<std::endl; // werden ersetzt: - return staff->timeSignatureReferences()[_actualTimeSignatureIndex]; + return staff->timeSignatureRefs()[_actualTimeSignatureIndex]; } // check if more than one time signature at all if (_actualTimeSignatureIndex < 0 || _allChannelsTimeSignatures.size() > _actualTimeSignatureIndex+1) { // is a new time signature already looming there? if (time >= _allChannelsTimeSignatures[_actualTimeSignatureIndex+1]->_time) { _actualTimeSignatureIndex++; // for each voice we run down the list of time signatures of the sheet, all staffs. - if (staff->timeSignatureReferences().size() >= _actualTimeSignatureIndex+1) { - return staff->timeSignatureReferences()[_actualTimeSignatureIndex]; + if (staff->timeSignatureRefs().size() >= _actualTimeSignatureIndex+1) { + return staff->timeSignatureRefs()[_actualTimeSignatureIndex]; } else { int top = _allChannelsTimeSignatures[_actualTimeSignatureIndex]->_top; int bottom = _allChannelsTimeSignatures[_actualTimeSignatureIndex]->_bottom; - staff->addTimeSignatureReference( new CATimeSignature( top, bottom, staff, 0 )); + staff->timeSignatureRefs() << new CATimeSignature( top, bottom, staff, 0 ); // std::cout<<" new Timesig at "<<time<<", there are " // <<_allChannelsTimeSignatures.size() // <<std::endl; - return staff->timeSignatureReferences()[_actualTimeSignatureIndex]; + return staff->timeSignatureRefs()[_actualTimeSignatureIndex]; } } } Modified: trunk/src/interface/keybdinput.cpp =================================================================== --- trunk/src/interface/keybdinput.cpp 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/interface/keybdinput.cpp 2015-04-12 16:23:27 UTC (rev 1416) @@ -230,8 +230,6 @@ } } } - // TODO only compile test, note yet used - CACanorus::settings()->splitAtQuarterBoundaries(); // We make shure not to try to place a barline inside a chord or inside a tuplet if ( CACanorus::settings()->autoBar() && !appendToChord && (!_tupPla || _tupPla->isFirstInTuplet())) { Index: trunk/src/lang =================================================================== --- trunk/src/lang 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/lang 2015-04-12 16:23:27 UTC (rev 1416) Property changes on: trunk/src/lang ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,13 ## +fr.qm +template.qm +dk.qm +template.ts +hu.qm +he.qm +cs.qm +nb.qm +sl.qm +nl.qm +zh.qm +de.qm +sv.qm Modified: trunk/src/lang/sl.ts =================================================================== --- trunk/src/lang/sl.ts 2015-04-12 10:46:56 UTC (rev 1415) +++ trunk/src/lang/sl.ts 2015-04-12 16:23:27 UTC (rev 1416) @@ -19,72 +19,61 @@ <translation>Ime</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="167"/> + <location filename="../widgets/actionseditor.cpp" line="165"/> <source>&Save shortcuts</source> <translation>&Shrani bližnjice</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="168"/> + <location filename="../widgets/actionseditor.cpp" line="166"/> <source>&Load shortcuts</source> <translation>Na&loži bližnjice</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="172"/> - <source>&Save midi commands</source> - <translation>&Shrani Midi bližnjice</translation> - </message> - <message> - <location filename="../widgets/actionseditor.cpp" line="173"/> - <source>&Load midi commands</source> - <translation>Na&loži Midi bližnjice</translation> - </message> - <message> - <location filename="../widgets/actionseditor.cpp" line="430"/> - <location filename="../widgets/actionseditor.cpp" line="503"/> + <location filename="../widgets/actionseditor.cpp" line="422"/> + <location filename="../widgets/actionseditor.cpp" line="492"/> <source>Shortcut files</source> <translation>Datoteke z bližnjicami</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="436"/> - <location filename="../widgets/actionseditor.cpp" line="507"/> + <location filename="../widgets/actionseditor.cpp" line="428"/> <source>Midi command files</source> <translation>Datoteke z Midi bližnjicami</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="440"/> + <location filename="../widgets/actionseditor.cpp" line="432"/> <source>Choose a filename</source> <translation>Izberite ime datoteke</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="450"/> + <location filename="../widgets/actionseditor.cpp" line="442"/> <source>Confirm overwrite?</source> <translation>Potrdi prepisovanje?</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="451"/> + <location filename="../widgets/actionseditor.cpp" line="443"/> <source>The file %1 already exists. Do you want to overwrite?</source> <translation>Datoteka %1 že obstaja. Ali želiti prepisati datoteko?</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="463"/> - <location filename="../widgets/actionseditor.cpp" line="516"/> + <location filename="../widgets/actionseditor.cpp" line="455"/> + <location filename="../widgets/actionseditor.cpp" line="501"/> <source>Error</source> <translation>Napaka</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="464"/> + <location filename="../widgets/actionseditor.cpp" line="456"/> <source>The file couldn't be saved</source> <translation>Datoteka ni bila shranjena</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="509"/> + <location filename="../widgets/actionseditor.cpp" line="494"/> <source>Choose a file</source> <translation>Izberite datoteko</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="517"/> + <location filename="../widgets/actionseditor.cpp" line="502"/> <source>The file couldn't be loaded</source> <translation>Datoteka ni bila naložena</translation> </message> @@ -224,1613 +213,1613 @@ <context> <name>CAMainWin</name> <message> - <location filename="../ui/mainwin.cpp" line="248"/> + <location filename="../ui/mainwin.cpp" line="250"/> <source>Insert ToolBar</source> <translation>Orodjarna za vstavljanje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="249"/> + <location filename="../ui/mainwin.cpp" line="251"/> <source>Select Context</source> <translation>Izberite trak</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="260"/> + <location filename="../ui/mainwin.cpp" line="262"/> <source>Select Clef</source> <translation>Izberite ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="272"/> + <location filename="../ui/mainwin.cpp" line="274"/> <source>Select Time Signature</source> <translation>Izberite taktovski način</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="281"/> + <location filename="../ui/mainwin.cpp" line="283"/> <source>Select Barline</source> <translation>Izberite taktnico</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="339"/> + <location filename="../ui/mainwin.cpp" line="341"/> <source>Context ToolBar</source> <translation>Orodjarna za trakove</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="353"/> + <location filename="../ui/mainwin.cpp" line="355"/> <source>Voice ToolBar</source> <translation>Orodjarna za glasove</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="364"/> + <location filename="../ui/mainwin.cpp" line="366"/> <source>Select Voice Stem Direction</source> <translation>Izberite smer notnih vratov za glas</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="370"/> + <location filename="../ui/mainwin.cpp" line="372"/> <source>Playable ToolBar</source> <translation>Orodjarna za note in pavze</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="371"/> + <location filename="../ui/mainwin.cpp" line="373"/> <source>Select Length</source> <translation>Izberite dolžino</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="382"/> + <location filename="../ui/mainwin.cpp" line="384"/> <source>Select Note Stem Direction</source> <translation>Izberite smer notnih vratov</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4101"/> + <location filename="../ui/mainwin.cpp" line="4142"/> <source>About Qt</source> <translation>O knjižnici Qt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4115"/> + <location filename="../ui/mainwin.cpp" line="4156"/> <source>About Canorus</source> <translation>O programu Canorus</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1790"/> - <location filename="../ui/mainwin.cpp" line="5396"/> + <location filename="../ui/mainwin.cpp" line="1792"/> + <location filename="../ui/mainwin.cpp" line="5452"/> <source>Staff%1</source> <translation>Črtovje%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1380"/> + <location filename="../ui/mainwin.cpp" line="1382"/> <source>Voice%1</source> <translation>Glas%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1398"/> - <location filename="../ui/mainwin.cpp" line="1405"/> - <location filename="../ui/mainwin.cpp" line="1433"/> - <location filename="../ui/mainwin.cpp" line="3319"/> + <location filename="../ui/mainwin.cpp" line="1400"/> + <location filename="../ui/mainwin.cpp" line="1407"/> + <location filename="../ui/mainwin.cpp" line="1435"/> + <location filename="../ui/mainwin.cpp" line="3356"/> <source>Canorus</source> <translation>Canorus</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1406"/> + <location filename="../ui/mainwin.cpp" line="1408"/> <source>Are you sure do you want to delete voice %1 and all its notes?</source> <translation>Ali res želite zbrisati glas %1 in vse njegove note?</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1434"/> + <location filename="../ui/mainwin.cpp" line="1436"/> <source>Are you sure do you want to delete context %1 and all its contents?</source> <translation>Ali res želite zbrisati trak %1 in vso njegovo vsebino?</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="342"/> + <location filename="../ui/mainwin.cpp" line="344"/> <source>Context name</source> <translation>Ime traku</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="356"/> + <location filename="../ui/mainwin.cpp" line="358"/> <source>Current Voice number</source> <translation>Trenutna številka glasu</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="363"/> + <location filename="../ui/mainwin.cpp" line="365"/> <source>Voice name</source> <translation>Ime glasu</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="718"/> + <location filename="../ui/mainwin.cpp" line="720"/> <source>Voice stem direction</source> <translation>Smer notnih vratov za glas</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="684"/> + <location filename="../ui/mainwin.cpp" line="686"/> <source>Playable length</source> <translation>Notna dolžina</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="695"/> + <location filename="../ui/mainwin.cpp" line="697"/> <source>Note stem direction</source> <translation>Smer notnih vratov</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="335"/> + <location filename="../ui/mainwin.cpp" line="337"/> <source>Sheet ToolBar</source> <translation>Orodjarna za liste</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1399"/> + <location filename="../ui/mainwin.cpp" line="1401"/> <source>Cannot delete the last voice in the staff!</source> <translation>Ni mogoče zbrisati zadnjega glasu v črtovju!</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="405"/> + <location filename="../ui/mainwin.cpp" line="407"/> <source>Time Signature ToolBar</source> <translation>Orodjarna za taktovske načine</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="410"/> + <location filename="../ui/mainwin.cpp" line="412"/> <source>Number of beats</source> <translation>Število dob</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="417"/> + <location filename="../ui/mainwin.cpp" line="419"/> <source>Beat</source> <translation>Doba</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="255"/> + <location filename="../ui/mainwin.cpp" line="257"/> <source>Select Slur Type</source> <translation>Izberite lok</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="262"/> + <location filename="../ui/mainwin.cpp" line="264"/> <source>Treble Clef</source> <translation>Violinski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="264"/> + <location filename="../ui/mainwin.cpp" line="266"/> <source>Bass Clef</source> <translation>Basovski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="269"/> + <location filename="../ui/mainwin.cpp" line="271"/> <source>Alto Clef</source> <translation>Altovski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="257"/> + <location filename="../ui/mainwin.cpp" line="259"/> <source>Tie</source> <translation>Vezaj</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="258"/> + <location filename="../ui/mainwin.cpp" line="260"/> <source>Slur</source> <translation>Lok</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="259"/> + <location filename="../ui/mainwin.cpp" line="261"/> <source>Phrasing Slur</source> <translation>Frazni lok</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="283"/> + <location filename="../ui/mainwin.cpp" line="285"/> <source>Single Barline</source> <translation>Enojna taktnica</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="284"/> + <location filename="../ui/mainwin.cpp" line="286"/> <source>Double Barline</source> <translation>Dvojna taktnica</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="285"/> + <location filename="../ui/mainwin.cpp" line="287"/> <source>End Barline</source> <translation>Končaj</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="286"/> + <location filename="../ui/mainwin.cpp" line="288"/> <source>Dotted Barline</source> <translation>Črtkasta taktnica</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="287"/> + <location filename="../ui/mainwin.cpp" line="289"/> <source>Repeat Open</source> <translation>Ponavljaj Odprt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="288"/> + <location filename="../ui/mainwin.cpp" line="290"/> <source>Repeat Closed</source> <translation>Ponavljaj Zaprt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="366"/> + <location filename="../ui/mainwin.cpp" line="368"/> <source>Voice Stems Neutral</source> <translation>Smeri vratov za glas Nevtralne</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="367"/> + <location filename="../ui/mainwin.cpp" line="369"/> <source>Voice Stems Up</source> <translation>Smeri vratov za glas Gor</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="368"/> + <location filename="../ui/mainwin.cpp" line="370"/> <source>Voice Stems Down</source> <translation>Smeri vratov za glas Dol</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="384"/> + <location filename="../ui/mainwin.cpp" line="386"/> <source>Note Stem Neutral</source> <translation>Smer vratu Nevtralna</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="385"/> + <location filename="../ui/mainwin.cpp" line="387"/> <source>Note Stem Up</source> <translation>Smer vratu Gor</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="386"/> + <location filename="../ui/mainwin.cpp" line="388"/> <source>Note Stem Down</source> <translation>Smer vratu Dol</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="387"/> + <location filename="../ui/mainwin.cpp" line="389"/> <source>Note Stem Preferred</source> <translation>Smer vratu Priporočena</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="289"/> + <location filename="../ui/mainwin.cpp" line="291"/> <source>Repeat Closed-Open</source> <translation>Ponavljaj Zaprt-Odprt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="445"/> - <location filename="../ui/mainwin.cpp" line="463"/> - <location filename="../ui/mainwin.cpp" line="471"/> + <location filename="../ui/mainwin.cpp" line="447"/> + <location filename="../ui/mainwin.cpp" line="465"/> + <location filename="../ui/mainwin.cpp" line="473"/> <source>Tonic</source> <translation>Tonika</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="446"/> - <location filename="../ui/mainwin.cpp" line="464"/> - <location filename="../ui/mainwin.cpp" line="473"/> + <location filename="../ui/mainwin.cpp" line="448"/> + <location filename="../ui/mainwin.cpp" line="466"/> + <location filename="../ui/mainwin.cpp" line="475"/> <source>Subdominant</source> <translation>Subdominanta</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="447"/> - <location filename="../ui/mainwin.cpp" line="465"/> - <location filename="../ui/mainwin.cpp" line="475"/> + <location filename="../ui/mainwin.cpp" line="449"/> + <location filename="../ui/mainwin.cpp" line="467"/> + <location filename="../ui/mainwin.cpp" line="477"/> <source>Dominant</source> <translation>Dominanta</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="448"/> - <location filename="../ui/mainwin.cpp" line="476"/> + <location filename="../ui/mainwin.cpp" line="450"/> + <location filename="../ui/mainwin.cpp" line="478"/> <source>II</source> <translation>II</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="449"/> - <location filename="../ui/mainwin.cpp" line="477"/> + <location filename="../ui/mainwin.cpp" line="451"/> + <location filename="../ui/mainwin.cpp" line="479"/> <source>III</source> <translation>III</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="450"/> - <location filename="../ui/mainwin.cpp" line="478"/> + <location filename="../ui/mainwin.cpp" line="452"/> + <location filename="../ui/mainwin.cpp" line="480"/> <source>VI</source> <translation>VI</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="451"/> - <location filename="../ui/mainwin.cpp" line="479"/> + <location filename="../ui/mainwin.cpp" line="453"/> + <location filename="../ui/mainwin.cpp" line="481"/> <source>VII</source> <translation>VII</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="452"/> + <location filename="../ui/mainwin.cpp" line="454"/> <source>Cadenze</source> <translation>Kadenčni</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="453"/> - <location filename="../ui/mainwin.cpp" line="466"/> - <location filename="../ui/mainwin.cpp" line="472"/> + <location filename="../ui/mainwin.cpp" line="455"/> + <location filename="../ui/mainwin.cpp" line="468"/> + <location filename="../ui/mainwin.cpp" line="474"/> <source>minor Tonic</source> <translation>molova Tonika</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="454"/> - <location filename="../ui/mainwin.cpp" line="467"/> - <location filename="../ui/mainwin.cpp" line="474"/> + <location filename="../ui/mainwin.cpp" line="456"/> + <location filename="../ui/mainwin.cpp" line="469"/> + <location filename="../ui/mainwin.cpp" line="476"/> <source>minor Subdominant</source> <translation>molova Subdominanta</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="455"/> + <location filename="../ui/mainwin.cpp" line="457"/> <source>Napolitan</source> <translation>Napolitanski</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="456"/> + <location filename="../ui/mainwin.cpp" line="458"/> <source>Phrygian</source> <translation>Frigijski</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="457"/> + <location filename="../ui/mainwin.cpp" line="459"/> <source>Lydian</source> <translation>Lidijski</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="458"/> + <location filename="../ui/mainwin.cpp" line="460"/> <source>IV</source> <translation>IV</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="459"/> + <location filename="../ui/mainwin.cpp" line="461"/> <source>V</source> <translation>V</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="443"/> + <location filename="../ui/mainwin.cpp" line="445"/> <source>Select Function Name</source> <translation>Izberite funkcijsko oznako</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="461"/> + <location filename="../ui/mainwin.cpp" line="463"/> <source>Select Chord Area</source> <translation>Izberite akordično območje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="469"/> + <location filename="../ui/mainwin.cpp" line="471"/> <source>Select Tonic Degree</source> <translation>Izberite stopnjo tonike</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="251"/> + <location filename="../ui/mainwin.cpp" line="253"/> <source>New Staff</source> <translation>Novo črtovje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="252"/> + <location filename="../ui/mainwin.cpp" line="254"/> <source>New Lyrics context</source> <translation>Novo besedilo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1807"/> - <location filename="../ui/mainwin.cpp" line="5410"/> + <location filename="../ui/mainwin.cpp" line="1809"/> + <location filename="../ui/mainwin.cpp" line="5466"/> <source>LyricsContext%1</source> <translation>Besedilo%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="345"/> + <location filename="../ui/mainwin.cpp" line="347"/> <source>Stanza number</source> <translation>Številka kitice</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="350"/> + <location filename="../ui/mainwin.cpp" line="352"/> <source>Associated voice</source> <translation>Dodeljen glas</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1357"/> + <location filename="../ui/mainwin.cpp" line="1359"/> <source>new sheet</source> <comment>undo</comment> <translation>nov list</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1378"/> + <location filename="../ui/mainwin.cpp" line="1380"/> <source>new voice</source> <comment>undo</comment> <translation>nov glas</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1412"/> + <location filename="../ui/mainwin.cpp" line="1414"/> <source>voice removal</source> <comment>undo</comment> <translation>odstranitev glasu</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1440"/> + <location filename="../ui/mainwin.cpp" line="1442"/> <source>context removal</source> <comment>undo</comment> <translation>odstranitev traku</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1786"/> + <location filename="../ui/mainwin.cpp" line="1788"/> <source>new staff</source> <comment>undo</comment> <translation>novo črtovje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1798"/> + <location filename="../ui/mainwin.cpp" line="1800"/> <source>new lyrics context</source> <comment>undo</comment> <translation>novo besedilo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2129"/> + <location filename="../ui/mainwin.cpp" line="2131"/> <source>insert barline</source> <comment>undo</comment> <translation>vstavljanje taktnice</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2161"/> + <location filename="../ui/mainwin.cpp" line="2163"/> <source>rise note</source> <comment>undo</comment> <translation>višanje note</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2199"/> + <location filename="../ui/mainwin.cpp" line="2201"/> <source>lower note</source> <comment>undo</comment> <translation>nižanje note</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2244"/> + <location filename="../ui/mainwin.cpp" line="2270"/> <source>add sharp</source> <comment>undo</comment> <translation>dodajanje višaja</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2278"/> + <location filename="../ui/mainwin.cpp" line="2304"/> <source>add flat</source> <comment>undo</comment> <translation>dodajanje nižaja</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2305"/> + <location filename="../ui/mainwin.cpp" line="2331"/> <source>set dotted</source> <comment>undo</comment> <translation>punktacijo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="5138"/> + <location filename="../ui/mainwin.cpp" line="5190"/> <source>deletion of elements</source> <comment>undo</comment> <translation>brisanje elementov</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2483"/> + <location filename="../ui/mainwin.cpp" line="2509"/> <source>insertion of music element</source> <comment>undo</comment> <translation>dodajanje elementov</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3398"/> + <location filename="../ui/mainwin.cpp" line="3435"/> <source>change voice name</source> <comment>undo</comment> <translation>spreminjanje imena glasu</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3554"/> + <location filename="../ui/mainwin.cpp" line="3595"/> <source>lyrics edit</source> <comment>undo</comment> <translation>spreminjanje besedila</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4016"/> + <location filename="../ui/mainwin.cpp" line="4057"/> <source>commit CanorusML source</source> <comment>undo</comment> <translation>potrditev CanorusML izvorne kode</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4035"/> - <location filename="../ui/mainwin.cpp" line="4071"/> + <location filename="../ui/mainwin.cpp" line="4076"/> + <location filename="../ui/mainwin.cpp" line="4112"/> <source>commit LilyPond source</source> <comment>undo</comment> <translation>potrditev LilyPond izvorne kode</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4192"/> + <location filename="../ui/mainwin.cpp" line="4244"/> <source>deletion of the sheet</source> <comment>undo</comment> <translation>brisanje lista</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4251"/> + <location filename="../ui/mainwin.cpp" line="4303"/> <source>change sheet name</source> <comment>undo</comment> <translation>spreminjanje imena lista</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4271"/> + <location filename="../ui/mainwin.cpp" line="4323"/> <source>change context name</source> <comment>undo</comment> <translation>spreminjanje imena traku</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4290"/> + <location filename="../ui/mainwin.cpp" line="4342"/> <source>change stanza number</source> <comment>undo</comment> <translation>spreminjanje številke kitice</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4302"/> + <location filename="../ui/mainwin.cpp" line="4354"/> <source>change associated voice</source> <comment>undo</comment> <translation>dodeljevanje glasu</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4313"/> + <location filename="../ui/mainwin.cpp" line="4365"/> <source>change voice stem direction</source> <comment>undo</comment> <translation>spreminjanje smeri vratov za glas</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4330"/> + <location filename="../ui/mainwin.cpp" line="4382"/> <source>change note stem direction</source> <comment>undo</comment> <translation>spreminjanje smeri vratov not</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4955"/> + <location filename="../ui/mainwin.cpp" line="5007"/> <source>cut</source> <comment>undo</comment> <translation>rezanje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="5370"/> + <location filename="../ui/mainwin.cpp" line="5426"/> <source>paste</source> <comment>undo</comment> <translation>lepljenje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="606"/> + <location filename="../ui/mainwin.cpp" line="608"/> <source>Undo</source> <translation>Razveljavi</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="613"/> + <location filename="../ui/mainwin.cpp" line="615"/> <source>Redo</source> <translation>Uveljavi</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="359"/> + <location filename="../ui/mainwin.cpp" line="361"/> <source>Voice instrument</source> <translation>Inštrument</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="263"/> + <location filename="../ui/mainwin.cpp" line="265"/> <source>French Clef</source> <translation>Francoski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="265"/> + <location filename="../ui/mainwin.cpp" line="267"/> <source>Varbaritone Clef</source> <translation>Varbaritonski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="266"/> + <location filename="../ui/mainwin.cpp" line="268"/> <source>Subbass Clef</source> <translation>Subbasovski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="267"/> + <location filename="../ui/mainwin.cpp" line="269"/> <source>Soprano Clef</source> <translation>Sopranski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="268"/> + <location filename="../ui/mainwin.cpp" line="270"/> <source>Mezzosoprano Clef</source> <translation>Mezzosopranski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="270"/> + <location filename="../ui/mainwin.cpp" line="272"/> <source>Tenor Clef</source> <translation>Tenorski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="271"/> + <location filename="../ui/mainwin.cpp" line="273"/> <source>Baritone Clef</source> <translation>Baritonski ključ</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="419"/> + <location filename="../ui/mainwin.cpp" line="421"/> <source>Clef ToolBar</source> <translation>Orodjarna za ključe</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="426"/> + <location filename="../ui/mainwin.cpp" line="428"/> <source>Clef offset</source> <translation>Odmik ključa</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3380"/> + <location filename="../ui/mainwin.cpp" line="3417"/> <source>change clef offset</source> <comment>undo</comment> <translation>spreminjanje odmika ključa</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3685"/> + <location filename="../ui/mainwin.cpp" line="3726"/> <source>change function</source> <comment>undo</comment> <translation>spreminjanje funkcije</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="460"/> - <location filename="../ui/mainwin.cpp" line="468"/> + <location filename="../ui/mainwin.cpp" line="462"/> + <location filename="../ui/mainwin.cpp" line="470"/> <source>None</source> <translation>Brez</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3708"/> + <location filename="../ui/mainwin.cpp" line="3749"/> <source>change chord area</source> <comment>undo</comment> <translation>spreminjanje akordičnega območja</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3731"/> + <location filename="../ui/mainwin.cpp" line="3772"/> <source>change tonic degree</source> <comment>undo</comment> <translation>spreminjanje glavne veje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3753"/> + <location filename="../ui/mainwin.cpp" line="3794"/> <source>set/unset ellipse</source> <comment>undo</comment> <translation>elipse</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3462"/> + <location filename="../ui/mainwin.cpp" line="3499"/> <source>change playable length</source> <comment>undo</comment> <translation>spreminjanje dolžine</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="290"/> + <location filename="../ui/mainwin.cpp" line="292"/> <source>Select Mark</source> <translation>Izberite Oznako</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="292"/> + <location filename="../ui/mainwin.cpp" line="294"/> <source>Tempo</source> <translation>Tempo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="293"/> + <location filename="../ui/mainwin.cpp" line="295"/> <source>Ritardando</source> <translation>Ritardando</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="294"/> + <location filename="../ui/mainwin.cpp" line="296"/> <source>Accellerando</source> <translation>Accellerando</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="295"/> + <location filename="../ui/mainwin.cpp" line="297"/> <source>Dynamic</source> <translation>Dinamika</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="296"/> + <location filename="../ui/mainwin.cpp" line="298"/> <source>Crescendo</source> <translation>Crescendo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="297"/> + <location filename="../ui/mainwin.cpp" line="299"/> <source>Decrescendo</source> <translation>Decrescendo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="299"/> + <location filename="../ui/mainwin.cpp" line="301"/> <source>Arbitrary Text</source> <translation>Poljubni napis</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="302"/> + <location filename="../ui/mainwin.cpp" line="304"/> <source>Bookmark</source> <translation>Zaznamek</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="303"/> + <location filename="../ui/mainwin.cpp" line="305"/> <source>Rehersal Mark</source> <translation>Vadbena Oznaka</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="298"/> + <location filename="../ui/mainwin.cpp" line="300"/> <source>Fermata</source> <translation>Korona</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="300"/> + <location filename="../ui/mainwin.cpp" line="302"/> <source>Repeat Mark</source> <translation>Oznake za ponavljanje</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="305"/> - <location filename="../ui/mainwin.cpp" line="520"/> + <location filename="../ui/mainwin.cpp" line="307"/> + <location filename="../ui/mainwin.cpp" line="522"/> <source>Instrument Change</source> <translation>Sprememba inštrumenta</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="304"/> + <location filename="../ui/mainwin.cpp" line="306"/> <source>Fingering</source> <translation>Prstni red</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="253"/> + <location filename="../ui/mainwin.cpp" line="255"/> <source>New Figured Bass context</source> <translation>Nove generalbasne oznake</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="306"/> + <location filename="../ui/mainwin.cpp" line="308"/> <source>Articulation Mark</source> <translation>Artikulacijske oznake</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="308"/> + <location filename="../ui/mainwin.cpp" line="310"/> <source>Accent</source> <translation>Akcent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="309"/> + <location filename="../ui/mainwin.cpp" line="311"/> <source>Marcato</source> <translation>Marcato</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="310"/> + <location filename="../ui/mainwin.cpp" line="312"/> <source>Stacatissimo</source> <translation>Stacatissimo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="311"/> + <location filename="../ui/mainwin.cpp" line="313"/> <source>Espressivo</source> <translation>Espressivo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="312"/> + <location filename="../ui/mainwin.cpp" line="314"/> <source>Staccato</source> <translation>Staccato</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="313"/> + <location filename="../ui/mainwin.cpp" line="315"/> <source>Tenuto</source> <translation>Tenuto</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="314"/> + <location filename="../ui/mainwin.cpp" line="316"/> <source>Portato</source> <translation>Portato</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="315"/> + <location filename="../ui/mainwin.cpp" line="317"/> <source>UpBow</source> <translation>Lok Gor</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="316"/> + <location filename="../ui/mainwin.cpp" line="318"/> <source>DownBow</source> <translation>Lok Dol</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="317"/> + <location filename="../ui/mainwin.cpp" line="319"/> <source>Flageloet</source> <translation>Flageloet</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="318"/> + <location filename="../ui/mainwin.cpp" line="320"/> <source>Open</source> <translation>Odprt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="319"/> + <location filename="../ui/mainwin.cpp" line="321"/> <source>Stopped</source> <translation>Zaprt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="320"/> + <location filename="../ui/mainwin.cpp" line="322"/> <source>Turn</source> <translation>Okrasek</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="321"/> + <location filename="../ui/mainwin.cpp" line="323"/> <source>ReverseTurn</source> <translation>Obrnjen okrasek</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="322"/> + <location filename="../ui/mainwin.cpp" line="324"/> <source>Trill</source> <translation>Tril</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="323"/> + <location filename="../ui/mainwin.cpp" line="325"/> <source>Prall</source> <translation>Pral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="324"/> + <location filename="../ui/mainwin.cpp" line="326"/> <source>Mordent</source> <translation>Mordent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="325"/> + <location filename="../ui/mainwin.cpp" line="327"/> <source>Prall-Prall</source> <translation>Pral-Pral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="326"/> + <location filename="../ui/mainwin.cpp" line="328"/> <source>Prall-Mordent</source> <translation>Pral-Mordent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="327"/> + <location filename="../ui/mainwin.cpp" line="329"/> <source>Up-Prall</source> <translation>Zgornji Pral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="328"/> + <location filename="../ui/mainwin.cpp" line="330"/> <source>Down-Prall</source> <translation>Spodnji Pral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="329"/> + <location filename="../ui/mainwin.cpp" line="331"/> <source>Up-Mordent</source> <translation>Zgornji Mordent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="330"/> + <location filename="../ui/mainwin.cpp" line="332"/> <source>Down-Mordent</source> <translation>Spodnji Mordent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="331"/> + <location filename="../ui/mainwin.cpp" line="333"/> <source>Prall-Down</source> <translation>Pral zaključen dol</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="332"/> + <location filename="../ui/mainwin.cpp" line="334"/> <source>Prall-Up</source> <translation>Pral zaključen gor</translation> </message> <message> - <location filenam... [truncated message content] |
From: <su...@us...> - 2015-04-12 10:47:04
|
Revision: 1415 http://sourceforge.net/p/canorus/code/1415 Author: suamor Date: 2015-04-12 10:46:56 +0000 (Sun, 12 Apr 2015) Log Message: ----------- Updated to reflect incompatible CMake and potentially SWIG versions. Modified Paths: -------------- trunk/README Modified: trunk/README =================================================================== --- trunk/README 2015-04-12 09:26:25 UTC (rev 1414) +++ trunk/README 2015-04-12 10:46:56 UTC (rev 1415) @@ -15,9 +15,9 @@ The latest version of Qt4, Swig and CMake is prefered. - Qt development package >=4.4 (http://www.qt-project.org) -- Swig >=2 (http://www.swig.org) +- Swig >=2 (http://www.swig.org). Swig 3.x is not officially supported, but might work - g++ >=4, make (http://gcc.gnu.org, http://www.mingw.org) -- cmake >=2.6.2 (http://www.cmake.org) +- cmake >=2.6.2 (http://www.cmake.org). CMake 3.x is not supported (does not work on SuSE) - Python development package >=3.0 (http://www.python.org) - (optional) Lyx, tex4ht (user's guide) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-12 09:26:32
|
Revision: 1414 http://sourceforge.net/p/canorus/code/1414 Author: suamor Date: 2015-04-12 09:26:25 +0000 (Sun, 12 Apr 2015) Log Message: ----------- Replace COL #define by enum Replace simple bool for the file type by enum Add method to get the file type from a suffix Load: Use all suffix for loading Save: Use single suffix (selectable) for saving Modified Paths: -------------- trunk/src/widgets/actionseditor.cpp trunk/src/widgets/actionseditor.h Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-12 08:55:29 UTC (rev 1413) +++ trunk/src/widgets/actionseditor.cpp 2015-04-12 09:26:25 UTC (rev 1414) @@ -38,6 +38,17 @@ // Number of columns used: Command, Context, Shortcut, Midi Command, Combined #define COL_NUM 5 +// Definition of column positions +enum actionCol +{ +//COL_CONFLICTS = 0 // indicates a conflict (will be done with a color of the conflicting line) + COL_COMMAND = 1, // name of the command (not internal!) + COL_DESCRIPTION = 2, // Context of the command like mode + COL_SHORTCUT = 3, // Keyboard shortcut + COL_MIDI = 4, // Midi command + COL_MIDISCUT = 5 // Requires Midi and Shortcut at one time to be used +}; + /* #if USE_MULTIPLE_SHORTCUTS QString ActionsEditor::shortcutsToString(QList <QKeySequence> shortcuts_list) { @@ -82,14 +93,6 @@ #endif */ -// Definition of column positionst -//#define COL_CONFLICTS 0 // indicates a conflict (will be done with a color of the conflicting line) -#define COL_COMMAND 1 // name of the command (not internal!) -#define COL_DESCRIPTION 2 // Context of the command like mode -#define COL_SHORTCUT 3 // Keyboard shortcut -#define COL_MIDI 4 // Midi command -#define COL_MIDISCUT 5 // Requires Midi and Shortcut at one time to be used - CAActionsEditor::CAActionsEditor(QWidget * parent, Qt::WindowFlags f) : QWidget(parent, f) { @@ -104,7 +107,7 @@ actionsTable->horizontalHeader()->setSectionResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); #else actionsTable->horizontalHeader()->setResizeMode(COL_COMMAND, QHeaderView::Stretch); - actionsTable->horizontalHeader()->setResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); + actionsTable->horizontalHeader()->setResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); #endif actionsTable->setAlternatingRowColors(true); @@ -280,9 +283,21 @@ // Update our own list of settings action->setShortCut( QKeySequence(i->text()).toString() ); //#endif - } + } } +CAActionsEditor::fileType CAActionsEditor::getFType(const QString &suffix) +{ + CAActionsEditor::fileType type; + if( suffix == "cakey" ) + type = FT_SHORTCUT; + if( suffix == "cakmid" ) + type = FT_MIDI; + if( suffix == "cacks" ) + type = FT_MIDISCUT; + return type; +} + //#if !USE_SHORTCUTGETTER void CAActionsEditor::recordAction(QTableWidgetItem * i) { //qDebug("CAActionsEditor::recordAction"); @@ -417,7 +432,7 @@ void CAActionsEditor::saveActionsTable() { QString sk; - sk = tr("Shortcut files") +" (*.cakey);;" + tr("Midi Key files") + " (*.cakmid);;" + tr("Combined Key Sequence files") + "(*.cacks)"; + sk = tr("Shortcut files") +" (*.cakey);;" + tr("Midi Key Sequence files") + " (*.cakmid);;" + tr("Combined Key Sequence files") + "(*.cacks)"; QString s = QFileDialog::getSaveFileName( this, tr("Choose a filename"), @@ -443,7 +458,10 @@ } } latest_dir = QFileInfo(s).absolutePath(); - bool r = saveActionsTable(s, shortCutFileInfo.completeSuffix() == "cakey" ? true : false); + + enum fileType type = getFType( shortCutFileInfo.completeSuffix() ); + + bool r = saveActionsTable(s, type); if (!r) { QMessageBox::warning(this, tr("Error"), tr("The file couldn't be saved"), @@ -452,7 +470,7 @@ } } -bool CAActionsEditor::saveActionsTable(const QString & filename, bool bSCuts/* = true */) { +bool CAActionsEditor::saveActionsTable(const QString & filename, enum fileType type /* = FT_SHORTCUT */) { qDebug("CAActionsEditor::saveActions: '%s'", filename.toUtf8().data()); QFile f( filename ); @@ -465,7 +483,7 @@ for (int row=0; row < actionsTable->rowCount(); row++) { stream << actionsTable->item(row, COL_COMMAND)->text() << "\t" << actionsTable->item(row, COL_DESCRIPTION)->text() << "\t"; - if( bSCuts ) + if( type == FT_SHORTCUT /*|| type == FT_MIDISCUT*/) { accelText = actionsTable->item(row, COL_SHORTCUT)->text(); if( accelText.isEmpty() ) @@ -487,10 +505,12 @@ this, tr("Choose a file"), latest_dir, sk ); - QFileInfo shortCutFileInfo(s); + QFileInfo shortCutFileInfo(s); + enum fileType type = getFType( shortCutFileInfo.completeSuffix() ); + if (!s.isEmpty()) { latest_dir = QFileInfo(s).absolutePath(); - bool r = loadActionsTable(s, shortCutFileInfo.completeSuffix() == "cakey" ? true : false); + bool r = loadActionsTable(s, type); if (!r) { QMessageBox::warning(this, tr("Error"), tr("The file couldn't be loaded"), @@ -499,7 +519,7 @@ } } -bool CAActionsEditor::loadActionsTable(const QString & filename, bool bSCuts/* = true */) { +bool CAActionsEditor::loadActionsTable(const QString & filename, enum fileType type /* = FT_SHORTCUT */) { qDebug("CAActionsEditor::loadActions: '%s'", filename.toUtf8().data()); // Lines with '#' (comments) will be ignored @@ -524,7 +544,7 @@ if (rx.indexIn(line) > -1) { command = rx.cap(1); context = rx.cap(2); - if( bSCuts ) + if( type == FT_SHORTCUT /*|| type == FT_MIDISCUT*/ ) { accelText = rx.cap(3); if( accelText == "none" ) @@ -540,7 +560,7 @@ actionsTable->item(row, COL_SHORTCUT)->setText(accelText); } } - else + if( type == FT_MIDI /*|| type == FT_MIDISCUT*/ ) { midiText = rx.cap(3) + " " + rx.cap(4) + " " + rx.cap(5); qDebug(" command: '%s' context: '%s' midi: '%s'", Modified: trunk/src/widgets/actionseditor.h =================================================================== --- trunk/src/widgets/actionseditor.h 2015-04-12 08:55:29 UTC (rev 1413) +++ trunk/src/widgets/actionseditor.h 2015-04-12 09:26:25 UTC (rev 1414) @@ -30,6 +30,16 @@ Q_OBJECT public: + + // Definition of file type + enum fileType + { + //FT_COMPLETE = 0, // All together like when stored in settings + FT_SHORTCUT = 1, // Keyboard shortcut + FT_MIDI = 2, // Midi command + FT_MIDISCUT = 3 // Requires Midi and Shortcut at one time to be used + }; + // Constructor // Parameters are standard QWidget parameters CAActionsEditor( QWidget * parent = 0, Qt::WindowFlags f = 0 ); @@ -60,12 +70,14 @@ public slots: // save changes from editing (shortcut or midi command) void applyChanges(); - // save action profile (shortcuts or midi commands) separately to disc + // Get file type from suffix + enum fileType getFType(const QString &suffix); + // save action profile (shortcuts or midi commands) separately to disc void saveActionsTable(); - bool saveActionsTable(const QString & filename, bool bSCuts = true); + bool saveActionsTable(const QString & filename, enum fileType type = FT_SHORTCUT); // load action profile (shortcuts or midi commands) separately from disc void loadActionsTable(); - bool loadActionsTable(const QString & filename, bool bSCuts = true); + bool loadActionsTable(const QString & filename, enum fileType type = FT_SHORTCUT); // Add all actions to the table widget void updateView(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <its...@us...> - 2015-04-12 08:55:36
|
Revision: 1413 http://sourceforge.net/p/canorus/code/1413 Author: itsgeorg Date: 2015-04-12 08:55:29 +0000 (Sun, 12 Apr 2015) Log Message: ----------- actionTable mod fixed for Qt4 Modified Paths: -------------- trunk/src/widgets/actionseditor.cpp Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-12 06:19:29 UTC (rev 1412) +++ trunk/src/widgets/actionseditor.cpp 2015-04-12 08:55:29 UTC (rev 1413) @@ -104,7 +104,7 @@ actionsTable->horizontalHeader()->setSectionResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); #else actionsTable->horizontalHeader()->setResizeMode(COL_COMMAND, QHeaderView::Stretch); - actionsTable->horizontalHeader()->setResizeMode(COL_CONTEXT, QHeaderView::Stretch); + actionsTable->horizontalHeader()->setResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); #endif actionsTable->setAlternatingRowColors(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-12 06:19:32
|
Revision: 1412 http://sourceforge.net/p/canorus/code/1412 Author: suamor Date: 2015-04-12 06:19:29 +0000 (Sun, 12 Apr 2015) Log Message: ----------- Use three file types for single midi or shortcut or a combination of both Change file types (still WIP) for these files Use three separate names instead of only filetypes to be able to select the file type (necessary for save, load still uses the combined variant for faster selection) Modified Paths: -------------- trunk/src/widgets/actionseditor.cpp Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-11 20:40:38 UTC (rev 1411) +++ trunk/src/widgets/actionseditor.cpp 2015-04-12 06:19:29 UTC (rev 1412) @@ -417,7 +417,7 @@ void CAActionsEditor::saveActionsTable() { QString sk; - sk = tr("Shortcut files") +" (*.cakey *.camid)"; + sk = tr("Shortcut files") +" (*.cakey);;" + tr("Midi Key files") + " (*.cakmid);;" + tr("Combined Key Sequence files") + "(*.cacks)"; QString s = QFileDialog::getSaveFileName( this, tr("Choose a filename"), @@ -482,7 +482,7 @@ void CAActionsEditor::loadActionsTable() { QString sk; - sk = tr("Shortcut files") +" (*.cakey *.camid)"; + sk = tr("Shortcut files") +" (*.cakey *.cakmid *.cacks)"; QString s = QFileDialog::getOpenFileName( this, tr("Choose a file"), latest_dir, sk ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 20:40:39
|
Revision: 1411 http://sourceforge.net/p/canorus/code/1411 Author: suamor Date: 2015-04-11 20:40:38 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Add basics for possibility of combining Midi with Shortcuts Minor fix for push buttons Modified Paths: -------------- trunk/src/ui/singleaction.cpp trunk/src/ui/singleaction.h trunk/src/widgets/actionseditor.cpp Modified: trunk/src/ui/singleaction.cpp =================================================================== --- trunk/src/ui/singleaction.cpp 2015-04-11 19:56:36 UTC (rev 1410) +++ trunk/src/ui/singleaction.cpp 2015-04-11 20:40:38 UTC (rev 1411) @@ -13,6 +13,7 @@ CASingleAction::CASingleAction( QObject *parent ) : QAction( parent ) { + _bMidiShortCutCombined = false; } CASingleAction::~CASingleAction() @@ -52,8 +53,11 @@ } } -void CASingleAction::setMidiCommand( QString oMidiCommand ) +void CASingleAction::setMidiCommand( QString oMidiCommand, bool combined ) { if( !oMidiCommand.isEmpty() ) + { _oMidiCommand = oMidiCommand; + _bMidiShortCutCombined = combined; + } } Modified: trunk/src/ui/singleaction.h =================================================================== --- trunk/src/ui/singleaction.h 2015-04-11 19:56:36 UTC (rev 1410) +++ trunk/src/ui/singleaction.h 2015-04-11 20:40:38 UTC (rev 1411) @@ -29,13 +29,14 @@ inline QString getDescription() { return _oDescription; } inline QString getShortCut() { return _oShortCut; } inline QString getMidiCommand() { return _oMidiCommand; } + inline bool getMidiShortCutCombined() { return _bMidiShortCutCombined; } // Setter methods void setCommand( QString oCommand ); void setContext( QString oContext ); void setDescription( QString oDescription ); void setShortCut( QString oShortCut ); - void setMidiCommand( QString oMidiCommand ); + void setMidiCommand( QString oMidiCommand, bool combined = false ); protected: QString _oCommand; @@ -43,6 +44,7 @@ QString _oDescription; QString _oShortCut; QString _oMidiCommand; + bool _bMidiShortCutCombined; }; #endif // _CASINGLEACTION_H_ Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-11 19:56:36 UTC (rev 1410) +++ trunk/src/widgets/actionseditor.cpp 2015-04-11 20:40:38 UTC (rev 1411) @@ -35,8 +35,8 @@ #include "canorus.h" #include "core/settings.h" -// Number of columns used: Command, Context, Shortcut, Midi Command -#define COL_NUM 4 +// Number of columns used: Command, Context, Shortcut, Midi Command, Combined +#define COL_NUM 5 /* #if USE_MULTIPLE_SHORTCUTS @@ -88,6 +88,7 @@ #define COL_DESCRIPTION 2 // Context of the command like mode #define COL_SHORTCUT 3 // Keyboard shortcut #define COL_MIDI 4 // Midi command +#define COL_MIDISCUT 5 // Requires Midi and Shortcut at one time to be used CAActionsEditor::CAActionsEditor(QWidget * parent, Qt::WindowFlags f) : QWidget(parent, f) @@ -123,8 +124,8 @@ // this, SLOT(editShortcut()) ); //#endif - saveButton = new QPushButton(this); - loadButton = new QPushButton(this); + saveButton = new QPushButton(this); + loadButton = new QPushButton(this); connect(saveButton, SIGNAL(clicked()), this, SLOT(saveActionsTable())); connect(loadButton, SIGNAL(clicked()), this, SLOT(loadActionsTable())); @@ -157,13 +158,13 @@ void CAActionsEditor::retranslateStrings() { actionsTable->setHorizontalHeaderLabels( QStringList() << - tr("Name") << tr("Description") << tr("Shortcut") << tr("Midi Command") ); + tr("Name") << tr("Description") << tr("Shortcut") << tr("Midi Command") << tr("Combined") ); //saveButton->setIcon(Images::icon("save")); //loadButton->setIcon(Images::icon("open")); - saveButton->setText(tr("&Save shortcuts")); - loadButton->setText(tr("&Load shortcuts")); + saveButton->setText(tr("&Save shortcuts...")); + loadButton->setText(tr("&Load shortcuts...")); //#if USE_SHORTCUTGETTER // editButton->setText(tr("&Change shortcut...")); @@ -249,6 +250,7 @@ actionsTable->setItem(n, COL_DESCRIPTION, i_context ); actionsTable->setItem(n, COL_SHORTCUT, i_shortcut ); actionsTable->setItem(n, COL_MIDI, i_midi ); + actionsTable->setItem(n, COL_MIDISCUT, i_midi ); } hasConflicts(); // Check for conflicts This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-04-11 19:56:43
|
Revision: 1410 http://sourceforge.net/p/canorus/code/1410 Author: matevz Date: 2015-04-11 19:56:36 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Fixed crash when cloning the view. Modified Paths: -------------- trunk/src/widgets/scoreview.cpp Modified: trunk/src/widgets/scoreview.cpp =================================================================== --- trunk/src/widgets/scoreview.cpp 2015-04-11 17:36:39 UTC (rev 1409) +++ trunk/src/widgets/scoreview.cpp 2015-04-11 19:56:36 UTC (rev 1410) @@ -233,17 +233,21 @@ CAScoreView *CAScoreView::clone() { CAScoreView *v = new CAScoreView(_sheet, static_cast<QWidget*>(parent())); + v->rebuild(); + v->setWorldX( worldX(), false ); + v->setWorldY( worldY(), false ); + v->repaint(); - v->importElements(&_drawableMList, &_drawableCList); - return v; } CAScoreView *CAScoreView::clone(QWidget *parent) { CAScoreView *v = new CAScoreView(_sheet, parent); + v->rebuild(); + v->setWorldX( worldX(), false ); + v->setWorldY( worldY(), false ); + v->repaint(); - v->importElements(&_drawableMList, &_drawableCList); - return v; } @@ -383,6 +387,13 @@ return 0; } +/**! + * This function clones the given drawable instances of musElements and contexts. + * + * \obsolete This Function was used in the past when cloning the views to also clone the + * elements. This behaviour was replaced for creating a new drawable instances + * from the scene from scratch. + */ void CAScoreView::importElements(CAKDTree<CADrawableMusElement*> *origDMusElts, CAKDTree<CADrawableContext*> *origDContexts) { QList<CADrawableContext*> drawableContexts = origDContexts->list(); @@ -1151,8 +1162,8 @@ } if (change) { - setWorldHeight((int)(drawableHeight() / _zoom)); - setWorldWidth((int)(drawableWidth() / _zoom)); + setWorldHeight(drawableHeight() / _zoom); + setWorldWidth(drawableWidth() / _zoom); } _holdRepaint = false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 17:36:46
|
Revision: 1409 http://sourceforge.net/p/canorus/code/1409 Author: suamor Date: 2015-04-11 17:36:39 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Remove conflicting column, will be replaced by color mark of a line Rename column "context" to description as the header view text shows it Modified Paths: -------------- trunk/src/widgets/actionseditor.cpp Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-11 16:47:13 UTC (rev 1408) +++ trunk/src/widgets/actionseditor.cpp 2015-04-11 17:36:39 UTC (rev 1409) @@ -35,8 +35,8 @@ #include "canorus.h" #include "core/settings.h" -// Number of columns used: Conflicts, Command, Context, Shortcut, Midi Command -#define COL_NUM 5 +// Number of columns used: Command, Context, Shortcut, Midi Command +#define COL_NUM 4 /* #if USE_MULTIPLE_SHORTCUTS @@ -83,11 +83,11 @@ */ // Definition of column positionst -#define COL_CONFLICTS 0 // indicates a conflict with other shortcut -#define COL_COMMAND 1 // name of the command (not internal!) -#define COL_CONTEXT 2 // Context of the command like mode -#define COL_SHORTCUT 3 // Keyboard shortcut -#define COL_MIDI 4 // Midi command +//#define COL_CONFLICTS 0 // indicates a conflict (will be done with a color of the conflicting line) +#define COL_COMMAND 1 // name of the command (not internal!) +#define COL_DESCRIPTION 2 // Context of the command like mode +#define COL_SHORTCUT 3 // Keyboard shortcut +#define COL_MIDI 4 // Midi command CAActionsEditor::CAActionsEditor(QWidget * parent, Qt::WindowFlags f) : QWidget(parent, f) @@ -100,7 +100,7 @@ #if QT_VERSION >= 0x050000 actionsTable->horizontalHeader()->setSectionResizeMode(COL_COMMAND, QHeaderView::Stretch); - actionsTable->horizontalHeader()->setSectionResizeMode(COL_CONTEXT, QHeaderView::Stretch); + actionsTable->horizontalHeader()->setSectionResizeMode(COL_DESCRIPTION, QHeaderView::Stretch); #else actionsTable->horizontalHeader()->setResizeMode(COL_COMMAND, QHeaderView::Stretch); actionsTable->horizontalHeader()->setResizeMode(COL_CONTEXT, QHeaderView::Stretch); @@ -156,10 +156,10 @@ } void CAActionsEditor::retranslateStrings() { - actionsTable->setHorizontalHeaderLabels( QStringList() << "" << - tr("Shortcut") << tr("Description") << tr("Name") ); + actionsTable->setHorizontalHeaderLabels( QStringList() << + tr("Name") << tr("Description") << tr("Shortcut") << tr("Midi Command") ); - //saveButton->setIcon(Images::icon("save")); + //saveButton->setIcon(Images::icon("save")); //loadButton->setIcon(Images::icon("open")); saveButton->setText(tr("&Save shortcuts")); @@ -244,9 +244,9 @@ //#endif // Add items to table - actionsTable->setItem(n, COL_CONFLICTS, i_conf ); - actionsTable->setItem(n, COL_COMMAND, i_command ); - actionsTable->setItem(n, COL_CONTEXT, i_context ); + //actionsTable->setItem(n, COL_CONFLICTS, i_conf ); + actionsTable->setItem(n, COL_COMMAND, i_command ); + actionsTable->setItem(n, COL_DESCRIPTION, i_context ); actionsTable->setItem(n, COL_SHORTCUT, i_shortcut ); actionsTable->setItem(n, COL_MIDI, i_midi ); @@ -392,8 +392,7 @@ QTableWidgetItem *i; for (int n=0; n < actionsTable->rowCount(); n++) { - //actionsTable->setText( n, COL_CONFLICTS, " "); - i = actionsTable->item( n, COL_CONFLICTS ); + //i = actionsTable->item( n, COL_CONFLICTS ); if (i) i->setIcon( QPixmap() ); i = actionsTable->item(n, iType ); @@ -463,7 +462,7 @@ // @ToDo: Pretty Format output by adding \t as necessary for (int row=0; row < actionsTable->rowCount(); row++) { stream << actionsTable->item(row, COL_COMMAND)->text() << "\t" - << actionsTable->item(row, COL_CONTEXT)->text() << "\t"; + << actionsTable->item(row, COL_DESCRIPTION)->text() << "\t"; if( bSCuts ) { accelText = actionsTable->item(row, COL_SHORTCUT)->text(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 16:47:20
|
Revision: 1408 http://sourceforge.net/p/canorus/code/1408 Author: suamor Date: 2015-04-11 16:47:13 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Save file dialog now differentiate between shortcuts and midi files the same way like load dialog Modified Paths: -------------- trunk/src/widgets/actionseditor.cpp Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-11 15:34:00 UTC (rev 1407) +++ trunk/src/widgets/actionseditor.cpp 2015-04-11 16:47:13 UTC (rev 1408) @@ -415,28 +415,20 @@ } void CAActionsEditor::saveActionsTable() { - QString sk, end; - bool bSCuts = false; - if( actionsTable->column( (QTableWidgetItem *)focusWidget() ) == COL_SHORTCUT ) - { - sk = tr("Shortcut files") +" (*.cakey)"; - end = ".cakey"; - bSCuts = true; - } - else - { - sk = tr("Midi command files") +" (*.camid)"; - end = ".camid"; - } + QString sk; + sk = tr("Shortcut files") +" (*.cakey *.camid)"; + QString s = QFileDialog::getSaveFileName( this, tr("Choose a filename"), latest_dir, sk ); + QFileInfo shortCutFileInfo(s); + if (!s.isEmpty()) { // If filename has no extension, add it - if (QFileInfo(s).suffix().isEmpty()) { + /*if (QFileInfo(s).completeSuffix().isEmpty()) { s = s + end; - } + }*/ if (QFileInfo(s).exists()) { int res = QMessageBox::question( this, tr("Confirm overwrite?"), @@ -450,7 +442,7 @@ } } latest_dir = QFileInfo(s).absolutePath(); - bool r = saveActionsTable(s, bSCuts); + bool r = saveActionsTable(s, shortCutFileInfo.completeSuffix() == "cakey" ? true : false); if (!r) { QMessageBox::warning(this, tr("Error"), tr("The file couldn't be saved"), @@ -490,13 +482,14 @@ void CAActionsEditor::loadActionsTable() { QString sk; sk = tr("Shortcut files") +" (*.cakey *.camid)"; - QString s = QFileDialog::getOpenFileName( + QString s = QFileDialog::getOpenFileName( this, tr("Choose a file"), latest_dir, sk ); + QFileInfo shortCutFileInfo(s); if (!s.isEmpty()) { latest_dir = QFileInfo(s).absolutePath(); - bool r = loadActionsTable(s); + bool r = loadActionsTable(s, shortCutFileInfo.completeSuffix() == "cakey" ? true : false); if (!r) { QMessageBox::warning(this, tr("Error"), tr("The file couldn't be loaded"), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 15:34:03
|
Revision: 1407 http://sourceforge.net/p/canorus/code/1407 Author: suamor Date: 2015-04-11 15:34:00 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Fix Qt4 call (QStringLiteral is Qt5 only) Fix crash with Load Dialog Remove Settings differentiation between Midi and Shortcuts before file dialog is shown (should be a filter selection on dialog instead) Modified Paths: -------------- trunk/src/ui/settingsdialog.cpp trunk/src/widgets/actionseditor.cpp Modified: trunk/src/ui/settingsdialog.cpp =================================================================== --- trunk/src/ui/settingsdialog.cpp 2015-04-11 15:23:23 UTC (rev 1406) +++ trunk/src/ui/settingsdialog.cpp 2015-04-11 15:34:00 UTC (rev 1407) @@ -195,7 +195,7 @@ QWidget oSingleActions; // all actions added here const QList<QAction *> &roSAList = CACanorus::settings()->getActionList(); _commandsEditor = new CAActionsEditor( 0 ); - _commandsEditor->setObjectName(QStringLiteral("commandsEditor")); + _commandsEditor->setObjectName(QString::fromUtf8("commandsEditor")); commandsSettingsVBoxLayout->addWidget(_commandsEditor); // Read all elements from single action list (API requirement) Modified: trunk/src/widgets/actionseditor.cpp =================================================================== --- trunk/src/widgets/actionseditor.cpp 2015-04-11 15:23:23 UTC (rev 1406) +++ trunk/src/widgets/actionseditor.cpp 2015-04-11 15:34:00 UTC (rev 1407) @@ -162,16 +162,8 @@ //saveButton->setIcon(Images::icon("save")); //loadButton->setIcon(Images::icon("open")); - if( actionsTable->column( (QTableWidgetItem *)focusWidget() ) == COL_SHORTCUT ) - { - saveButton->setText(tr("&Save shortcuts")); - loadButton->setText(tr("&Load shortcuts")); - } - else - { - saveButton->setText(tr("&Save midi commands")); - loadButton->setText(tr("&Load midi commands")); - } + saveButton->setText(tr("&Save shortcuts")); + loadButton->setText(tr("&Load shortcuts")); //#if USE_SHORTCUTGETTER // editButton->setText(tr("&Change shortcut...")); @@ -497,19 +489,12 @@ void CAActionsEditor::loadActionsTable() { QString sk; - //bool bSCuts = false; - if( actionsTable->column( (QTableWidgetItem *)focusWidget() ) == COL_SHORTCUT ) - { - sk = tr("Shortcut files") +" (*.cakey)"; - //bSCuts = true; - } - else - sk = tr("Midi command files") +" (*.camid)"; + sk = tr("Shortcut files") +" (*.cakey *.camid)"; QString s = QFileDialog::getOpenFileName( this, tr("Choose a file"), latest_dir, sk ); - if (!s.isEmpty()) { + if (!s.isEmpty()) { latest_dir = QFileInfo(s).absolutePath(); bool r = loadActionsTable(s); if (!r) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-04-11 15:23:31
|
Revision: 1406 http://sourceforge.net/p/canorus/code/1406 Author: matevz Date: 2015-04-11 15:23:23 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Use double and QRectF for CAScoreView::setWorld() functions. Added PageUp, PageDown, Home and End key bindings. Fixed crash in Settings::Appearance dialog. Renamed CADrawableStaff::drawableTimeSignature -> CADrawableStaff::drawableTimeSignatureList. Modified Paths: -------------- trunk/src/interface/keybdinput.cpp trunk/src/layout/drawablestaff.h trunk/src/ui/mainwin.cpp trunk/src/widgets/scoreview.cpp trunk/src/widgets/scoreview.h Modified: trunk/src/interface/keybdinput.cpp =================================================================== --- trunk/src/interface/keybdinput.cpp 2015-04-11 14:31:15 UTC (rev 1405) +++ trunk/src/interface/keybdinput.cpp 2015-04-11 15:23:23 UTC (rev 1406) @@ -260,7 +260,7 @@ // std::cout << " Selektierte Elemente: " << list.size() << " Stück, oben "<<lp.size()<<" und "<<lme.size() << std::endl; // scene tracking - QRect scene = v->worldCoords(); + QRectF scene = v->worldCoords(); int xlast = v->timeToCoordsSimpleVersion( voice->lastTimeStart() ); if ( ((xlast+50) > scene.right()) ) { // the magic number 50 should be defined, ist the width of an element scene.translate( scene.width()/2, 0 ); Modified: trunk/src/layout/drawablestaff.h =================================================================== --- trunk/src/layout/drawablestaff.h 2015-04-11 14:31:15 UTC (rev 1405) +++ trunk/src/layout/drawablestaff.h 2015-04-11 15:23:23 UTC (rev 1406) @@ -50,7 +50,7 @@ CAClef *getClef(double x); CAKeySignature *getKeySignature(double x); - QList<CADrawableTimeSignature *>& drawableTimeSignature() { return _drawableTimeSignatureList; } + QList<CADrawableTimeSignature *>& drawableTimeSignatureList() { return _drawableTimeSignatureList; } CATimeSignature *getTimeSignature(double x); QList<CADrawableBarline *>& drawableBarlineList() { return _drawableBarlineList; } CABarline *getBarline(double x); Modified: trunk/src/ui/mainwin.cpp =================================================================== --- trunk/src/ui/mainwin.cpp 2015-04-11 14:31:15 UTC (rev 1405) +++ trunk/src/ui/mainwin.cpp 2015-04-11 15:23:23 UTC (rev 1406) @@ -26,6 +26,7 @@ #include <QCheckBox> #include <QThread> #include <iostream> +#include <limits> #include "ui/mainwin.h" #include "ui/settingsdialog.h" @@ -1642,7 +1643,7 @@ int curIndex = uiTabWidget->currentIndex(); // save the current state of Views - QList<QRect> worldCoordsList; + QList<QRectF> worldCoordsList; for (int i=0; i<_viewList.size(); i++) if (_viewList[i]->viewType() == CAView::ScoreView) worldCoordsList << static_cast<CAScoreView*>(_viewList[i])->worldCoords(); @@ -2051,16 +2052,16 @@ //int val; switch (e->modifiers()) { case Qt::NoModifier: //scroll horizontally - sv->setWorldX( sv->worldX() - (int)((0.5*e->delta()) / sv->zoom()), CACanorus::settings()->animatedScroll() ); + sv->setWorldX( sv->worldX() - (0.5*e->delta()) / sv->zoom(), CACanorus::settings()->animatedScroll() ); break; case Qt::AltModifier: //scroll horizontally, fast - sv->setWorldX( sv->worldX() - (int)(e->delta() / sv->zoom()), CACanorus::settings()->animatedScroll() ); + sv->setWorldX( sv->worldX() - e->delta() / sv->zoom(), CACanorus::settings()->animatedScroll() ); break; case Qt::ShiftModifier: //scroll vertically - sv->setWorldY( sv->worldY() - (int)((0.5*e->delta()) / sv->zoom()), CACanorus::settings()->animatedScroll() ); + sv->setWorldY( sv->worldY() - (0.5*e->delta()) / sv->zoom(), CACanorus::settings()->animatedScroll() ); break; case 0x0A000000://SHIFT+ALT //scroll vertically, fast - sv->setWorldY( sv->worldY() - (int)(e->delta() / sv->zoom()), CACanorus::settings()->animatedScroll() ); + sv->setWorldY( sv->worldY() - e->delta() / sv->zoom(), CACanorus::settings()->animatedScroll() ); break; case Qt::ControlModifier: //zoom if (e->delta() > 0) @@ -2225,7 +2226,31 @@ } break; } + + case Qt::Key_PageDown: { + v->setWorldX(v->worldX() + v->worldWidth(), CACanorus::settings()->animatedScroll()); + v->repaint(); + break; + } + + case Qt::Key_PageUp: { + v->setWorldX(v->worldX() - v->worldWidth(), CACanorus::settings()->animatedScroll()); + v->repaint(); + break; + } + + case Qt::Key_End: { + v->setWorldX(std::numeric_limits<double>::max(), CACanorus::settings()->animatedScroll()); + v->repaint(); + break; + } + case Qt::Key_Home: { + v->setWorldX(0, CACanorus::settings()->animatedScroll()); + v->repaint(); + break; + } + case Qt::Key_Plus: { if (mode()==InsertMode) { musElementFactory()->addNoteExtraAccs(1); musElementFactory()->addNoteAccs(1); Modified: trunk/src/widgets/scoreview.cpp =================================================================== --- trunk/src/widgets/scoreview.cpp 2015-04-11 14:31:15 UTC (rev 1405) +++ trunk/src/widgets/scoreview.cpp 2015-04-11 15:23:23 UTC (rev 1406) @@ -539,9 +539,9 @@ \warning Repaint is not done automatically! */ -void CAScoreView::setWorldX(int x, bool animate, bool force) { +void CAScoreView::setWorldX(double x, bool animate, bool force) { if (!force) { - int maxX = (getMaxXExtended(_drawableMList) > getMaxXExtended(_drawableCList))?getMaxXExtended(_drawableMList) : getMaxXExtended(_drawableCList); + double maxX = (getMaxXExtended(_drawableMList) > getMaxXExtended(_drawableCList))?getMaxXExtended(_drawableMList) : getMaxXExtended(_drawableCList); if (x > maxX - _worldW) x = maxX - _worldW; if (x < 0) @@ -572,7 +572,7 @@ \warning Repaint is not done automatically! */ -void CAScoreView::setWorldY(int y, bool animate, bool force) { +void CAScoreView::setWorldY(double y, bool animate, bool force) { if (!force) { int maxY = getMaxYExtended(_drawableMList) > getMaxYExtended(_drawableCList)?getMaxYExtended(_drawableMList) : getMaxYExtended(_drawableCList); if (y > maxY - _worldH) @@ -605,7 +605,7 @@ \warning Repaint is not done automatically! */ -void CAScoreView::setWorldWidth(int w, bool force) { +void CAScoreView::setWorldWidth(double w, bool force) { if (!force) { if (w < 1) return; } @@ -613,7 +613,7 @@ _oldWorldW = _worldW; _worldW = w; - int scrollMax; + double scrollMax; if ((scrollMax = ((getMaxXExtended(_drawableMList) > getMaxXExtended(_drawableCList))?getMaxXExtended(_drawableMList):getMaxXExtended(_drawableCList)) - _worldW) >= 0) { if (scrollMax < _worldX) //if you resize the widget at a large zoom level and if the getMax border has been reached setWorldX(scrollMax); //scroll the view away from the border @@ -635,7 +635,7 @@ \warning Repaint is not done automatically! */ -void CAScoreView::setWorldHeight(int h, bool force) { +void CAScoreView::setWorldHeight(double h, bool force) { if (!force) { if (h < 1) return; } @@ -643,7 +643,7 @@ _oldWorldH = _worldH; _worldH = h; - int scrollMax; + double scrollMax; if ((scrollMax = ((getMaxYExtended(_drawableMList) > getMaxYExtended(_drawableCList))?getMaxYExtended(_drawableMList):getMaxYExtended(_drawableCList)) - _worldH) >= 0) { if (scrollMax < _worldY) //if you resize the widget at a large zoom level and if the getMax border has been reached setWorldY(scrollMax); //scroll the view away from the border @@ -665,7 +665,7 @@ \warning Repaint is not done automatically! */ -void CAScoreView::setWorldCoords(QRect coords, bool animate, bool force) { +void CAScoreView::setWorldCoords(QRectF coords, bool animate, bool force) { _checkScrollBarsDeadLock = true; if (!drawableWidth() && !drawableHeight()) @@ -751,10 +751,10 @@ \warning Repaint is not done automatically! */ void CAScoreView::setCenterCoords(double x, double y, bool animate, bool force) { - _checkScrollBarsDeadLock = true; +// _checkScrollBarsDeadLock = true; setWorldX(x - 0.5*_worldW, animate, force); setWorldY(y - 0.5*_worldH, animate, force); - _checkScrollBarsDeadLock = false; +// _checkScrollBarsDeadLock = false; checkScrollBars(); } @@ -967,7 +967,7 @@ // determine the barline number + do we have a pickup measure in the beginning int dBarlineIdx = dStaff->drawableBarlineList().indexOf(curDBarline); - CADrawableTimeSignature *firstDTimeSig = dStaff->drawableTimeSignature()[0]; + CADrawableTimeSignature *firstDTimeSig = (dStaff->drawableTimeSignatureList().size()?dStaff->drawableTimeSignatureList()[0]:0); int barlineOffset = 2; if (curDBarline && firstDTimeSig && dStaff->drawableBarlineList()[0]->barline()->timeStart() < (CAPlayableLength::musicLengthToTimeLength(static_cast<CAPlayableLength::CAMusicLength>(firstDTimeSig->timeSignature()->beat()))*firstDTimeSig->timeSignature()->beats()) ) { @@ -1631,7 +1631,7 @@ Returns the maximum X of the viewable World a little bigger to make insertion at the end easy. */ template <typename T> -int CAScoreView::getMaxXExtended(CAKDTree<T> &v) { +double CAScoreView::getMaxXExtended(CAKDTree<T> &v) { return v.getMaxX() + RIGHT_EXTRA_SPACE; } @@ -1639,7 +1639,7 @@ Returns the maximum Y of the viewable World a little bigger to make insertion at the end easy. */ template <typename T> -int CAScoreView::getMaxYExtended(CAKDTree<T> &v) { +double CAScoreView::getMaxYExtended(CAKDTree<T> &v) { return v.getMaxY() + BOTTOM_EXTRA_SPACE; } Modified: trunk/src/widgets/scoreview.h =================================================================== --- trunk/src/widgets/scoreview.h 2015-04-11 14:31:15 UTC (rev 1405) +++ trunk/src/widgets/scoreview.h 2015-04-11 15:23:23 UTC (rev 1406) @@ -158,20 +158,20 @@ inline const int drawableWidth() { return _canvas->width(); } inline const int drawableHeight() { return _canvas->height(); } - void setWorldX(int x, bool animate=false, bool force=false); - void setWorldY(int y, bool animate=false, bool force=false); - void setWorldWidth(int w, bool force=false); - void setWorldHeight(int h, bool force=false); + void setWorldX(double x, bool animate=false, bool force=false); + void setWorldY(double y, bool animate=false, bool force=false); + void setWorldWidth(double w, bool force=false); + void setWorldHeight(double h, bool force=false); - inline const int worldX() { return _worldX; } - inline const int worldY() { return _worldY; } - inline const int worldWidth() { return _worldW; } - inline const int worldHeight() { return _worldH; } - inline const QRect worldCoords() { return QRect(worldX(), worldY(), worldWidth(), worldHeight()); } + inline const double worldX() { return _worldX; } + inline const double worldY() { return _worldY; } + inline const double worldWidth() { return _worldW; } + inline const double worldHeight() { return _worldH; } + inline const QRectF worldCoords() { return QRectF(worldX(), worldY(), worldWidth(), worldHeight()); } inline const float zoom() { return _zoom; } - void setWorldCoords(const QRect r, bool animate=false, bool force=false); + void setWorldCoords(const QRectF r, bool animate=false, bool force=false); void setWorldCoords(double x, double y, double w, double h, bool animate=false, bool force=false) { setWorldCoords( QRect(x,y,w,h), animate, force); } void setCenterCoords(double x, double y, bool animate=false, bool force=false); @@ -295,8 +295,8 @@ static const int RIGHT_EXTRA_SPACE; // Extra space at the right end to insert new music static const int BOTTOM_EXTRA_SPACE; // Extra space at the bottom end to insert new music static const int RULER_HEIGHT; // Ruler height in pixels - template <typename T> int getMaxXExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting at the end easier - template <typename T> int getMaxYExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting below easies + template <typename T> double getMaxXExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting at the end easier + template <typename T> double getMaxYExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting below easies double _worldX, _worldY, _worldW, _worldH; // Absolute world coordinates of the area the view is currently showing. QPoint _lastMousePressCoords; // Used in multiple selection - coordinates of the upper-left point of the rectangle the user drags in world coordinates This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 14:31:23
|
Revision: 1405 http://sourceforge.net/p/canorus/code/1405 Author: suamor Date: 2015-04-11 14:31:15 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Give Layout a proper name Add Layout to command settings Integrate command settings into settings Modified Paths: -------------- trunk/src/ui/settingsdialog.cpp trunk/src/ui/settingsdialog.ui Modified: trunk/src/ui/settingsdialog.cpp =================================================================== --- trunk/src/ui/settingsdialog.cpp 2015-04-11 14:02:50 UTC (rev 1404) +++ trunk/src/ui/settingsdialog.cpp 2015-04-11 14:31:15 UTC (rev 1405) @@ -8,6 +8,7 @@ #include <QSettings> #include <QDir> #include <QFileDialog> +#include <QBoxLayout> // Python.h needs to be loaded first! #include "canorus.h" @@ -194,6 +195,9 @@ QWidget oSingleActions; // all actions added here const QList<QAction *> &roSAList = CACanorus::settings()->getActionList(); _commandsEditor = new CAActionsEditor( 0 ); + _commandsEditor->setObjectName(QStringLiteral("commandsEditor")); + commandsSettingsVBoxLayout->addWidget(_commandsEditor); + // Read all elements from single action list (API requirement) for(i=0; i< roSAList.size(); ++i) oSingleActions.addAction( roSAList[i] ); Modified: trunk/src/ui/settingsdialog.ui =================================================================== --- trunk/src/ui/settingsdialog.ui 2015-04-11 14:02:50 UTC (rev 1404) +++ trunk/src/ui/settingsdialog.ui 2015-04-11 14:31:15 UTC (rev 1405) @@ -15,13 +15,22 @@ </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="settingsHBoxLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QListWidget" name="uiSettingsList"> <property name="sizePolicy"> @@ -111,13 +120,22 @@ </widget> </item> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="settingsVBoxLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiPageNameLabel"> <property name="font"> @@ -147,7 +165,7 @@ <enum>QFrame::Plain</enum> </property> <property name="currentIndex"> - <number>1</number> + <number>2</number> </property> <widget class="QWidget" name="editorSettings"> <layout class="QVBoxLayout" name="verticalLayout_2"> @@ -219,13 +237,22 @@ <widget class="QWidget" name="appearanceSettings"> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="appearanceVBoxLayout"> <property name="spacing"> <number>0</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QCheckBox" name="uiAntiAliasing"> <property name="toolTip"> @@ -244,13 +271,22 @@ </widget> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxBGLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiBackgroundLabel"> <property name="toolTip"> @@ -291,13 +327,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxFGLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiForegroundLabel"> <property name="toolTip"> @@ -338,13 +383,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxSCLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiSelectionLabel"> <property name="toolTip"> @@ -385,13 +439,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxSCCLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiSelectedContextLabel"> <property name="toolTip"> @@ -432,13 +495,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxSACLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiSelectionAreaLabel"> <property name="toolTip"> @@ -479,13 +551,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxHECLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiHiddenElementsLabel"> <property name="toolTip"> @@ -526,13 +607,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="appearanceHBoxDELayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiDisabledElements"> <property name="toolTip"> @@ -592,17 +682,32 @@ </item> </layout> </widget> - <widget class="QWidget" name="commandsSettings"/> + <widget class="QWidget" name="commandsSettings"> + <layout class="QVBoxLayout" name="verticalLayout_6"> + <item> + <layout class="QVBoxLayout" name="commandsSettingsVBoxLayout"/> + </item> + </layout> + </widget> <widget class="QWidget" name="loadSaveSettings"> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="loadSaveSettingsVBoxLayout"> <property name="spacing"> <number>0</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiDocumentsDirectoryLabel"> <property name="text"> @@ -611,13 +716,22 @@ </widget> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="loadSaveSettingsHBoxDDLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLineEdit" name="uiDocumentsDirectory"/> </item> @@ -653,13 +767,22 @@ </layout> </item> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="loadSaveSettingsDSCVBoxLayout"> <property name="spacing"> <number>0</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiDefaultSaveLabel"> <property name="text"> @@ -680,13 +803,22 @@ </layout> </item> <item> - <layout class="QHBoxLayout"> + <layout class="QHBoxLayout" name="loadSaveSettingsAUHBoxLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiAutoRecoveryLabel"> <property name="sizePolicy"> @@ -746,13 +878,22 @@ <widget class="QWidget" name="midiSettings"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="midiSettingsMIVBoxLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiMidiInLabel"> <property name="text"> @@ -773,13 +914,22 @@ </widget> </item> <item> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="loadSaveSettingsMOVBoxLayout"> <property name="spacing"> <number>6</number> </property> - <property name="margin"> + <property name="leftMargin"> <number>0</number> </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item> <widget class="QLabel" name="uiMidiOutLabel"> <property name="text"> @@ -797,7 +947,7 @@ <widget class="QWidget" name="printingSettings"> <layout class="QVBoxLayout" name="verticalLayout_7"> <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> + <layout class="QHBoxLayout" name="printingSettingsHBoxTLayout"> <item> <widget class="QLabel" name="uiTypesetterLabel"> <property name="sizePolicy"> @@ -827,7 +977,7 @@ </layout> </item> <item> - <layout class="QVBoxLayout" name="verticalLayout_5"> + <layout class="QVBoxLayout" name="printingSettingsVBoxTBLLayout"> <property name="spacing"> <number>0</number> </property> @@ -839,7 +989,7 @@ </widget> </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> + <layout class="QHBoxLayout" name="printingSettingsHBoxTBLLayout"> <item> <widget class="QLineEdit" name="uiTypesetterLocation"> <property name="enabled"> @@ -872,7 +1022,7 @@ </layout> </item> <item> - <layout class="QVBoxLayout" name="verticalLayout_6"> + <layout class="QVBoxLayout" name="printingSettingsVBoxPVLayout"> <property name="spacing"> <number>0</number> </property> @@ -884,7 +1034,7 @@ </widget> </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> + <layout class="QHBoxLayout" name="printingSettingsHBoxPVLayout"> <item> <widget class="QLineEdit" name="uiPdfViewerLocation"> <property name="enabled"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2015-04-11 14:02:52
|
Revision: 1404 http://sourceforge.net/p/canorus/code/1404 Author: matevz Date: 2015-04-11 14:02:50 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Added correct offset to measure numberings. Measure numbering correctly handle the pickup measures. Modified Paths: -------------- trunk/src/layout/drawablestaff.h trunk/src/score/staff.cpp trunk/src/widgets/scoreview.cpp Modified: trunk/src/layout/drawablestaff.h =================================================================== --- trunk/src/layout/drawablestaff.h 2015-04-11 13:59:12 UTC (rev 1403) +++ trunk/src/layout/drawablestaff.h 2015-04-11 14:02:50 UTC (rev 1404) @@ -50,6 +50,7 @@ CAClef *getClef(double x); CAKeySignature *getKeySignature(double x); + QList<CADrawableTimeSignature *>& drawableTimeSignature() { return _drawableTimeSignatureList; } CATimeSignature *getTimeSignature(double x); QList<CADrawableBarline *>& drawableBarlineList() { return _drawableBarlineList; } CABarline *getBarline(double x); Modified: trunk/src/score/staff.cpp =================================================================== --- trunk/src/score/staff.cpp 2015-04-11 13:59:12 UTC (rev 1403) +++ trunk/src/score/staff.cpp 2015-04-11 14:02:50 UTC (rev 1404) @@ -252,7 +252,7 @@ bool CAStaff::remove( CAMusElement *elt, bool updateSignTimes ) { if ( !elt || !voiceList().size() ) return false; - + return voiceList()[0]->remove( elt, updateSignTimes); } Modified: trunk/src/widgets/scoreview.cpp =================================================================== --- trunk/src/widgets/scoreview.cpp 2015-04-11 13:59:12 UTC (rev 1403) +++ trunk/src/widgets/scoreview.cpp 2015-04-11 14:02:50 UTC (rev 1404) @@ -20,6 +20,7 @@ #include <iostream> #include "widgets/scoreview.h" +#include "layout/layoutengine.h" #include "layout/drawable.h" #include "layout/drawablecontext.h" #include "layout/drawablelyricscontext.h" // syllable edit creation @@ -28,8 +29,8 @@ #include "layout/drawablenote.h" #include "layout/drawableaccidental.h" #include "layout/drawablebarline.h" +#include "layout/drawabletimesignature.h" -#include "layout/layoutengine.h" #include "score/document.h" #include "score/sheet.h" #include "score/context.h" @@ -42,6 +43,8 @@ #include "score/syllable.h" #include "score/text.h" #include "score/bookmark.h" +#include "score/timesignature.h" +#include "score/barline.h" #include "canorus.h" #include "core/settings.h" @@ -961,10 +964,21 @@ // draw the barline marks CABarline *curBarline = dStaff->getBarline(_worldX+_worldW); CADrawableBarline *curDBarline = (curBarline?static_cast<CADrawableBarline*>(_mapDrawable.values( dStaff->getBarline(_worldX+width()/_zoom) )[0]):0); + + // determine the barline number + do we have a pickup measure in the beginning int dBarlineIdx = dStaff->drawableBarlineList().indexOf(curDBarline); + CADrawableTimeSignature *firstDTimeSig = dStaff->drawableTimeSignature()[0]; + int barlineOffset = 2; + if (curDBarline && firstDTimeSig && + dStaff->drawableBarlineList()[0]->barline()->timeStart() < (CAPlayableLength::musicLengthToTimeLength(static_cast<CAPlayableLength::CAMusicLength>(firstDTimeSig->timeSignature()->beat()))*firstDTimeSig->timeSignature()->beats()) ) { + barlineOffset = 1; + } + while ( curDBarline && curDBarline->xPos()>_worldX ) { int center = qRound((curDBarline->xPos()-_worldX)*_zoom); - p.drawText( center-1, RULER_HEIGHT-2, QString::number(dBarlineIdx+1) ); + if (dBarlineIdx!=dStaff->drawableBarlineList().size()-1) { // don't draw the last bar number + p.drawText( center-1, RULER_HEIGHT-2, QString::number(dBarlineIdx+barlineOffset) ); + } dBarlineIdx--; curDBarline = (dBarlineIdx>=0?dStaff->drawableBarlineList()[dBarlineIdx]:0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 13:59:14
|
Revision: 1403 http://sourceforge.net/p/canorus/code/1403 Author: suamor Date: 2015-04-11 13:59:12 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Update for Release (Qt5) Modified Paths: -------------- trunk/README Modified: trunk/README =================================================================== --- trunk/README 2015-04-11 10:29:03 UTC (rev 1402) +++ trunk/README 2015-04-11 13:59:12 UTC (rev 1403) @@ -18,9 +18,14 @@ - Swig >=2 (http://www.swig.org) - g++ >=4, make (http://gcc.gnu.org, http://www.mingw.org) - cmake >=2.6.2 (http://www.cmake.org) -- Python development package >=2.5 (http://www.python.org) +- Python development package >=3.0 (http://www.python.org) - (optional) Lyx, tex4ht (user's guide) +Qt5 Build (Experimental, not tested with Qt 5.4.x) +- Qt development package 5.3.2 (http://www.qt-project.org) +- Swig, g++, cmake, python, lyx as above +- copy the CMakeListQt5.txt files (main folder and src) to CMakeList.txt + Runtime dependencies: ===================== - Qt library, same version This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <its...@us...> - 2015-04-11 10:29:05
|
Revision: 1402 http://sourceforge.net/p/canorus/code/1402 Author: itsgeorg Date: 2015-04-11 10:29:03 +0000 (Sat, 11 Apr 2015) Log Message: ----------- German translation fix Modified Paths: -------------- trunk/src/lang/de.ts Modified: trunk/src/lang/de.ts =================================================================== --- trunk/src/lang/de.ts 2015-04-11 10:17:12 UTC (rev 1401) +++ trunk/src/lang/de.ts 2015-04-11 10:29:03 UTC (rev 1402) @@ -1691,6 +1691,11 @@ <translation>Füge Tuplet ein</translation> </message> <message> + <location filename="../ui/mainwin.cpp" line="4105"/> + <source><p><b>Canorus - The next generation music score editor</b></p><p>Version %1<br>(C) 2006-2015 Canorus Development team. All rights reserved.<br>See the file AUTHORS for the list of Canorus developers<br><br>This program is licensed under the GNU General Public License (GPL).<br>See the file LICENSE.GPL for details.<br><br>Homepage: <a href="http://www.canorus.org">http://www.canorus.org</a></p></source> + <translation><p><b>Canorus - Ein Musiknoten-Editor neuer Generation</b></p><p>Version %1<br>(C) 2006-2013 Canorus Entwicklerteam. Alle Rechte vorbehalten.<br>Siehe Datei AUTHORS mit den Namen der Canorus Entwickler.<br><br>Dieses Programm ist mit der GNU General Public License (GPL) lizensiert.<br>Details siehe Datei LICENSE.GPL.<br><br>Homepage: <a href="http://www.canorus.org">http://www.canorus.org</a></p></translation> + </message> + <message> <location filename="../ui/mainwin.cpp" line="4113"/> <source>Canorus is compiled with Python support.</source> <translation>Canorus ist mit Python-Unterstützung übersetzt.</translation> @@ -1823,11 +1828,6 @@ <translation>variiere Dauer</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4105"/> - <source><p><b>Canorus - The next generation music score editor</b></p><p>Version %1<br>(C) 2006-2013 Canorus Development team. All rights reserved.<br>See the file AUTHORS for the list of Canorus developers<br><br>This program is licensed under the GNU General Public License (GPL).<br>See the file LICENSE.GPL for details.<br><br>Homepage: <a href="http://www.canorus.org">http://www.canorus.org</a></p></source> - <translation><p><b>Canorus - Ein Musiknoten-Editor neuer Generation</b></p><p>Version %1<br>(C) 2006-2013 Canorus Entwicklerteam. Alle Rechte vorbehalten.<br>Siehe Datei AUTHORS mit den Namen der Canorus Entwickler.<br><br>Dieses Programm ist mit der GNU General Public License (GPL) lizensiert.<br>Für Details siehe Datei LICENSE.GPL .<br><br>Homepage: <a href="http://www.canorus.org">http://www.canorus.org</a></p></translation> - </message> - <message> <location filename="../ui/mainwin.cpp" line="5625"/> <location filename="../ui/mainwin.cpp" line="5648"/> <source>change fermata type</source> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <its...@us...> - 2015-04-11 10:17:16
|
Revision: 1401 http://sourceforge.net/p/canorus/code/1401 Author: itsgeorg Date: 2015-04-11 10:17:12 +0000 (Sat, 11 Apr 2015) Log Message: ----------- German translation update Modified Paths: -------------- trunk/src/lang/de.ts Modified: trunk/src/lang/de.ts =================================================================== --- trunk/src/lang/de.ts 2015-04-11 09:01:51 UTC (rev 1400) +++ trunk/src/lang/de.ts 2015-04-11 10:17:12 UTC (rev 1401) @@ -1,87 +1,92 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="1.1"> +<!DOCTYPE TS> +<TS version="2.0" language="de_DE"> <context> <name>CAActionsEditor</name> <message> - <location filename="../widgets/actionseditor.cpp" line="155"/> + <location filename="../widgets/actionseditor.cpp" line="160"/> <source>Shortcut</source> - <translation type="unfinished"></translation> + <translation>Tastenkürzel</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="155"/> + <location filename="../widgets/actionseditor.cpp" line="160"/> <source>Description</source> - <translation type="unfinished"></translation> + <translation>Beschreibung</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="155"/> + <location filename="../widgets/actionseditor.cpp" line="160"/> <source>Name</source> - <translation type="unfinished"></translation> + <translation>Name</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="162"/> + <location filename="../widgets/actionseditor.cpp" line="167"/> <source>&Save shortcuts</source> - <translation type="unfinished"></translation> + <translation>Tastenkürzel &speichern</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="163"/> + <location filename="../widgets/actionseditor.cpp" line="168"/> <source>&Load shortcuts</source> - <translation type="unfinished"></translation> + <translation>Tastenkürzel &laden</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="167"/> + <location filename="../widgets/actionseditor.cpp" line="172"/> <source>&Save midi commands</source> - <translation type="unfinished"></translation> + <translation>Midi-Befehle &speichern</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="168"/> + <location filename="../widgets/actionseditor.cpp" line="173"/> <source>&Load midi commands</source> - <translation type="unfinished"></translation> + <translation>Midi-Befehle &laden</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="484"/> + <location filename="../widgets/actionseditor.cpp" line="430"/> + <location filename="../widgets/actionseditor.cpp" line="503"/> <source>Shortcut files</source> - <translation type="unfinished"></translation> + <translation>Tastenkürzel-Datei</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="486"/> + <location filename="../widgets/actionseditor.cpp" line="436"/> + <location filename="../widgets/actionseditor.cpp" line="507"/> <source>Midi command files</source> - <translation type="unfinished"></translation> + <translation>Midi-Befehlsdatei</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="433"/> + <location filename="../widgets/actionseditor.cpp" line="440"/> <source>Choose a filename</source> - <translation type="unfinished"></translation> + <translation>Wähle Dateiname</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="443"/> + <location filename="../widgets/actionseditor.cpp" line="450"/> <source>Confirm overwrite?</source> - <translation type="unfinished"></translation> + <translation>Datei überschreiben?</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="445"/> + <location filename="../widgets/actionseditor.cpp" line="451"/> <source>The file %1 already exists. Do you want to overwrite?</source> - <translation type="unfinished"></translation> + <translation>Die Datei %1 existiert. +Willst du sie überschreiben?</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="495"/> + <location filename="../widgets/actionseditor.cpp" line="463"/> + <location filename="../widgets/actionseditor.cpp" line="516"/> <source>Error</source> - <translation type="unfinished"></translation> + <translation>Error</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="457"/> + <location filename="../widgets/actionseditor.cpp" line="464"/> <source>The file couldn't be saved</source> - <translation type="unfinished"></translation> + <translation>Datei konnte nicht gespeichert werden</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="488"/> + <location filename="../widgets/actionseditor.cpp" line="509"/> <source>Choose a file</source> - <translation type="unfinished"></translation> + <translation>Dateiauswahl</translation> </message> <message> - <location filename="../widgets/actionseditor.cpp" line="496"/> + <location filename="../widgets/actionseditor.cpp" line="517"/> <source>The file couldn't be loaded</source> - <translation type="unfinished"></translation> + <translation>Die Datei konnte nicht geladen werden</translation> </message> </context> <context> @@ -97,7 +102,7 @@ <translation>Dokument Wiederherstellung</translation> </message> <message> - <location filename="../core/autorecovery.cpp" line="142"/> + <location filename="../core/autorecovery.cpp" line="141"/> <source>Previous session of Canorus was unexpectedly closed. The following documents were successfully recovered: @@ -132,1622 +137,1794 @@ <name>CAExport</name> <message> <location filename="../export/export.cpp" line="154"/> - <source>Exporting...</source> - <translation type="unfinished">exportierend...</translation> + <source>Exporting</source> + <translation>Exportierend</translation> </message> <message> <location filename="../export/export.cpp" line="156"/> - <source>Ready.</source> - <translation type="unfinished">Erledigt.</translation> + <location filename="../export/export.cpp" line="160"/> + <source>Ready</source> + <translation>Bereit</translation> </message> <message> <location filename="../export/export.cpp" line="158"/> - <source>Data stream not defined.</source> - <translation type="unfinished">Datenpfad nicht definiert.</translation> + <source>Unable to open file for writing</source> + <translation>Datei kann nicht geschrieben werden</translation> </message> </context> <context> <name>CAImport</name> <message> - <location filename="../import/import.cpp" line="197"/> - <source>Importing...</source> - <translation type="unfinished">Beim Importieren...</translation> - </message> - <message> <location filename="../import/import.cpp" line="199"/> - <source>Ready.</source> - <translation type="unfinished">Beendet.</translation> + <source>Importing</source> + <translation>Import</translation> </message> <message> <location filename="../import/import.cpp" line="201"/> - <source>File not found or data stream not defined.</source> - <translation type="unfinished">File nicht gefunden oder Datenstrom nicht definiert.</translation> + <source>Ready</source> + <translation>Bereit</translation> </message> + <message> + <location filename="../import/import.cpp" line="203"/> + <source>Unable to open file for reading</source> + <translation>Datei kann nicht gelesen werden</translation> + </message> </context> <context> + <name>CAKeySignatureCtl</name> + <message> + <location filename="../scorectl/keysignaturectl.cpp" line="68"/> + <source>change key signature</source> + <comment>undo</comment> + <translatorcomment>rückgängig machen</translatorcomment> + <translation>Schlüssel ändern</translation> + </message> +</context> +<context> + <name>CAKeySignatureUI</name> + <message> + <location filename="../scoreui/keysignatureui.cpp" line="38"/> + <source>Key Signature ToolBar</source> + <translation>Schlüsselauswahl</translation> + </message> +</context> +<context> <name>CALilyPondExport</name> <message> - <location filename="../export/lilypondexport.cpp" line="593"/> + <location filename="../export/lilypondexport.cpp" line="834"/> <source>arr.</source> <comment>arrangement</comment> - <translation type="unfinished">Arr.</translation> + <translatorcomment>Arrangement</translatorcomment> + <translation>Arr.</translation> </message> </context> <context> <name>CALilyPondImport</name> <message> - <location filename="../import/lilypondimport.cpp" line="642"/> + <location filename="../import/lilypondimport.cpp" line="77"/> + <source>Lilypond imported sheet</source> + <translation>Lilypond importiert </translation> + </message> + <message> + <location filename="../import/lilypondimport.cpp" line="719"/> <source>Ready</source> - <translation type="unfinished">Bereit</translation> + <translation>Bereit</translation> </message> <message> - <location filename="../import/lilypondimport.cpp" line="644"/> + <location filename="../import/lilypondimport.cpp" line="721"/> <source>Importing...</source> - <translation type="unfinished">Beim Importieren</translation> + <translation>Importieren...</translation> </message> <message> - <location filename="../import/lilypondimport.cpp" line="646"/> + <location filename="../import/lilypondimport.cpp" line="723"/> <source>Error while importing! Line %1:%2.</source> - <translation type="unfinished">Fehler beim Import! + <translation>Fehler beim Import! Zeile %1:%2.</translation> </message> </context> <context> <name>CAMainWin</name> <message> - <location filename="../ui/mainwin.cpp" line="236"/> + <location filename="../ui/mainwin.cpp" line="248"/> <source>Insert ToolBar</source> <translation>Einfügewerkzeuge</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="237"/> + <location filename="../ui/mainwin.cpp" line="249"/> <source>Select Context</source> <translation>Setze Kontext</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="247"/> + <location filename="../ui/mainwin.cpp" line="260"/> <source>Select Clef</source> <translation>Schlüsselauswahl</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="259"/> + <location filename="../ui/mainwin.cpp" line="272"/> <source>Select Time Signature</source> <translation>Setze Taktmaß</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="268"/> + <location filename="../ui/mainwin.cpp" line="281"/> <source>Select Barline</source> <translation>Taktlinie</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="326"/> + <location filename="../ui/mainwin.cpp" line="339"/> <source>Context ToolBar</source> <translation>Kontextauswahl</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="340"/> + <location filename="../ui/mainwin.cpp" line="353"/> <source>Voice ToolBar</source> <translation>Stimmenauswahl</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="351"/> + <location filename="../ui/mainwin.cpp" line="364"/> <source>Select Voice Stem Direction</source> <translation>Setze Notenhalsrichtung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="357"/> + <location filename="../ui/mainwin.cpp" line="370"/> <source>Playable ToolBar</source> <translation>Wähle Noten und Pausen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="358"/> + <location filename="../ui/mainwin.cpp" line="371"/> <source>Select Length</source> <translation>Bestimme Notendauer</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="369"/> + <location filename="../ui/mainwin.cpp" line="382"/> <source>Select Note Stem Direction</source> <translation>Setze Notenhalsrichtung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3817"/> + <location filename="../ui/mainwin.cpp" line="4101"/> <source>About Qt</source> <translation>Über Qt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3821"/> + <location filename="../ui/mainwin.cpp" line="4115"/> <source>About Canorus</source> <translation>Über Canorus</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="5021"/> + <location filename="../ui/mainwin.cpp" line="1790"/> + <location filename="../ui/mainwin.cpp" line="5396"/> <source>Staff%1</source> <translation>System%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1253"/> + <location filename="../ui/mainwin.cpp" line="1380"/> <source>Voice%1</source> <translation>Stimme%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3077"/> + <location filename="../ui/mainwin.cpp" line="1398"/> + <location filename="../ui/mainwin.cpp" line="1405"/> + <location filename="../ui/mainwin.cpp" line="1433"/> + <location filename="../ui/mainwin.cpp" line="3319"/> <source>Canorus</source> <translation>Canorus</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1279"/> + <location filename="../ui/mainwin.cpp" line="1406"/> <source>Are you sure do you want to delete voice %1 and all its notes?</source> <translation>Sind sie sicher, die Stimme %1 mit ihren Noten zu löschen?</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1307"/> + <location filename="../ui/mainwin.cpp" line="1434"/> <source>Are you sure do you want to delete context %1 and all its contents?</source> <translation>Sind sie sicher, den Kontext %1 mit Inhalt zu löschen?</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="329"/> + <location filename="../ui/mainwin.cpp" line="342"/> <source>Context name</source> <translation>Kontextname</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="343"/> + <location filename="../ui/mainwin.cpp" line="356"/> <source>Current Voice number</source> <translation>Aktuelle Stimme</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="350"/> + <location filename="../ui/mainwin.cpp" line="363"/> <source>Voice name</source> <translation>Stimmbezeichnung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="698"/> + <location filename="../ui/mainwin.cpp" line="718"/> <source>Voice stem direction</source> <translation>Halsrichtung der Stimme</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="660"/> + <location filename="../ui/mainwin.cpp" line="684"/> <source>Playable length</source> <translation>Notendauer</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="671"/> + <location filename="../ui/mainwin.cpp" line="695"/> <source>Note stem direction</source> <translation>Notenhalsrichtung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="322"/> + <location filename="../ui/mainwin.cpp" line="335"/> <source>Sheet ToolBar</source> <translation>Seitenwerkzeuge</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1273"/> + <location filename="../ui/mainwin.cpp" line="1399"/> <source>Cannot delete the last voice in the staff!</source> <translation>Die letzte Stimme des Systems kann nicht gelöscht werden.</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="392"/> - <source>Key Signature ToolBar</source> - <translation>Schlüsselauswahl</translation> - </message> - <message> - <location filename="../ui/mainwin.cpp" line="397"/> + <location filename="../ui/mainwin.cpp" line="405"/> <source>Time Signature ToolBar</source> <translation>Taktmaßauswahl</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="402"/> + <location filename="../ui/mainwin.cpp" line="410"/> <source>Number of beats</source> <translation>Zahl der Taktschläge</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="409"/> + <location filename="../ui/mainwin.cpp" line="417"/> <source>Beat</source> <translation>Takt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="242"/> + <location filename="../ui/mainwin.cpp" line="255"/> <source>Select Slur Type</source> <translation>Wähle Bogen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="249"/> + <location filename="../ui/mainwin.cpp" line="262"/> <source>Treble Clef</source> <translation>Violinschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="251"/> + <location filename="../ui/mainwin.cpp" line="264"/> <source>Bass Clef</source> <translation>Bassschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="256"/> + <location filename="../ui/mainwin.cpp" line="269"/> <source>Alto Clef</source> <translation>Altschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="244"/> + <location filename="../ui/mainwin.cpp" line="257"/> <source>Tie</source> <translation>Haltebogen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="245"/> + <location filename="../ui/mainwin.cpp" line="258"/> <source>Slur</source> <translation>Legatobogen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="246"/> + <location filename="../ui/mainwin.cpp" line="259"/> <source>Phrasing Slur</source> <translation>Phrasierungsbogen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="270"/> + <location filename="../ui/mainwin.cpp" line="283"/> <source>Single Barline</source> <translation>einfacher Taktstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="271"/> + <location filename="../ui/mainwin.cpp" line="284"/> <source>Double Barline</source> <translation>Doppeltaktstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="272"/> + <location filename="../ui/mainwin.cpp" line="285"/> <source>End Barline</source> <translation>Schlußstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="273"/> + <location filename="../ui/mainwin.cpp" line="286"/> <source>Dotted Barline</source> <translation>punktierter Taktstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="274"/> + <location filename="../ui/mainwin.cpp" line="287"/> <source>Repeat Open</source> <translation>Wiederholungsanfang</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="275"/> + <location filename="../ui/mainwin.cpp" line="288"/> <source>Repeat Closed</source> <translation>Wiederholungsende</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="353"/> + <location filename="../ui/mainwin.cpp" line="366"/> <source>Voice Stems Neutral</source> <translation>In Stimme Halsrichtung neutral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="354"/> + <location filename="../ui/mainwin.cpp" line="367"/> <source>Voice Stems Up</source> <translation>In Stimme Halsrichtung nach oben</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="355"/> + <location filename="../ui/mainwin.cpp" line="368"/> <source>Voice Stems Down</source> <translation>In Stimme Halsrichtung nach unten</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="371"/> + <location filename="../ui/mainwin.cpp" line="384"/> <source>Note Stem Neutral</source> <translation>Halsrichtung neutral</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="372"/> + <location filename="../ui/mainwin.cpp" line="385"/> <source>Note Stem Up</source> <translation>Halsrichtung nach oben</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="373"/> + <location filename="../ui/mainwin.cpp" line="386"/> <source>Note Stem Down</source> <translation>Halsrichtung nach unten</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="374"/> + <location filename="../ui/mainwin.cpp" line="387"/> <source>Note Stem Preferred</source> <translation>bevorzugte Halsrichtung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="276"/> + <location filename="../ui/mainwin.cpp" line="289"/> <source>Repeat Closed-Open</source> <translation>Wiederholung Ende und Anfang</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="449"/> + <location filename="../ui/mainwin.cpp" line="445"/> + <location filename="../ui/mainwin.cpp" line="463"/> + <location filename="../ui/mainwin.cpp" line="471"/> <source>Tonic</source> <translation>Tonika</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="451"/> + <location filename="../ui/mainwin.cpp" line="446"/> + <location filename="../ui/mainwin.cpp" line="464"/> + <location filename="../ui/mainwin.cpp" line="473"/> <source>Subdominant</source> <translation>Subdominante</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="453"/> + <location filename="../ui/mainwin.cpp" line="447"/> + <location filename="../ui/mainwin.cpp" line="465"/> + <location filename="../ui/mainwin.cpp" line="475"/> <source>Dominant</source> <translation>Dominante</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="454"/> + <location filename="../ui/mainwin.cpp" line="448"/> + <location filename="../ui/mainwin.cpp" line="476"/> <source>II</source> <translation>II</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="455"/> + <location filename="../ui/mainwin.cpp" line="449"/> + <location filename="../ui/mainwin.cpp" line="477"/> <source>III</source> <translation>III</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="456"/> + <location filename="../ui/mainwin.cpp" line="450"/> + <location filename="../ui/mainwin.cpp" line="478"/> <source>VI</source> <translation>VI</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="457"/> + <location filename="../ui/mainwin.cpp" line="451"/> + <location filename="../ui/mainwin.cpp" line="479"/> <source>VII</source> <translation>VII</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="430"/> + <location filename="../ui/mainwin.cpp" line="452"/> <source>Cadenze</source> <translation>Kadenz</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="450"/> + <location filename="../ui/mainwin.cpp" line="453"/> + <location filename="../ui/mainwin.cpp" line="466"/> + <location filename="../ui/mainwin.cpp" line="472"/> <source>minor Tonic</source> <translation>Molltonika</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="452"/> + <location filename="../ui/mainwin.cpp" line="454"/> + <location filename="../ui/mainwin.cpp" line="467"/> + <location filename="../ui/mainwin.cpp" line="474"/> <source>minor Subdominant</source> <translation>Mollsubdominante</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="433"/> + <location filename="../ui/mainwin.cpp" line="455"/> <source>Napolitan</source> <translation>Neapolitaner</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="434"/> + <location filename="../ui/mainwin.cpp" line="456"/> <source>Phrygian</source> <translation>Phrygisch</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="435"/> + <location filename="../ui/mainwin.cpp" line="457"/> <source>Lydian</source> <translation>Lydisch</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="436"/> + <location filename="../ui/mainwin.cpp" line="458"/> <source>IV</source> <translation>IV</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="437"/> + <location filename="../ui/mainwin.cpp" line="459"/> <source>V</source> <translation>V</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="421"/> + <location filename="../ui/mainwin.cpp" line="443"/> <source>Select Function Name</source> <translation>Wähle Funktionsbezeichnung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="439"/> + <location filename="../ui/mainwin.cpp" line="461"/> <source>Select Chord Area</source> <translation>Wähle Akkordbereich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="447"/> + <location filename="../ui/mainwin.cpp" line="469"/> <source>Select Tonic Degree</source> <translation>Wähle Tonstufe</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="239"/> + <location filename="../ui/mainwin.cpp" line="251"/> <source>New Staff</source> <translation>Neues System</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="240"/> + <location filename="../ui/mainwin.cpp" line="252"/> <source>New Lyrics context</source> <translation>Neuer Textkontext</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="5035"/> + <location filename="../ui/mainwin.cpp" line="1807"/> + <location filename="../ui/mainwin.cpp" line="5410"/> <source>LyricsContext%1</source> <translation>Textkontext%1</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="332"/> + <location filename="../ui/mainwin.cpp" line="345"/> <source>Stanza number</source> <translation>Strophennummer</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="337"/> + <location filename="../ui/mainwin.cpp" line="350"/> <source>Associated voice</source> <translation>zugehörige Stimme</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1230"/> + <location filename="../ui/mainwin.cpp" line="1357"/> <source>new sheet</source> <comment>undo</comment> <translation>Neues Blatt</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1251"/> + <location filename="../ui/mainwin.cpp" line="1378"/> <source>new voice</source> <comment>undo</comment> <translation>Neue Stimme</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1285"/> + <location filename="../ui/mainwin.cpp" line="1412"/> <source>voice removal</source> <comment>undo</comment> <translation>Stimme löschen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1313"/> + <location filename="../ui/mainwin.cpp" line="1440"/> <source>context removal</source> <comment>undo</comment> <translation>Kontext löschen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1628"/> + <location filename="../ui/mainwin.cpp" line="1786"/> <source>new staff</source> <comment>undo</comment> <translation>Neues System</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1640"/> + <location filename="../ui/mainwin.cpp" line="1798"/> <source>new lyrics context</source> <comment>undo</comment> <translation>neuer Textkontext</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1955"/> + <location filename="../ui/mainwin.cpp" line="2129"/> <source>insert barline</source> <comment>undo</comment> <translation>Taktlinie einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="1987"/> + <location filename="../ui/mainwin.cpp" line="2161"/> <source>rise note</source> <comment>undo</comment> <translation>Note erhöhen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2025"/> + <location filename="../ui/mainwin.cpp" line="2199"/> <source>lower note</source> <comment>undo</comment> <translation>Note erniedrigen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2070"/> + <location filename="../ui/mainwin.cpp" line="2244"/> <source>add sharp</source> <comment>undo</comment> <translation>Kreuz hinzufügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2104"/> + <location filename="../ui/mainwin.cpp" line="2278"/> <source>add flat</source> <comment>undo</comment> <translation>B hinzufügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2131"/> + <location filename="../ui/mainwin.cpp" line="2305"/> <source>set dotted</source> <comment>undo</comment> <translation>Punktieren</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4788"/> + <location filename="../ui/mainwin.cpp" line="5138"/> <source>deletion of elements</source> <comment>undo</comment> <translation>Elemente löschen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="2309"/> + <location filename="../ui/mainwin.cpp" line="2483"/> <source>insertion of music element</source> <comment>undo</comment> <translation>Noten und Pausen einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3188"/> + <location filename="../ui/mainwin.cpp" line="3398"/> <source>change voice name</source> <comment>undo</comment> <translation>Stimmenamen ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3337"/> + <location filename="../ui/mainwin.cpp" line="3554"/> <source>lyrics edit</source> <comment>undo</comment> <translation>Text editieren</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3733"/> + <location filename="../ui/mainwin.cpp" line="4016"/> <source>commit CanorusML source</source> <comment>undo</comment> <translation>CanorusML Daten übernehmen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3787"/> + <location filename="../ui/mainwin.cpp" line="4035"/> + <location filename="../ui/mainwin.cpp" line="4071"/> <source>commit LilyPond source</source> <comment>undo</comment> <translation>LilyPond Daten übernehmen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3905"/> + <location filename="../ui/mainwin.cpp" line="4192"/> <source>deletion of the sheet</source> <comment>undo</comment> <translation>Blatt löschen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3963"/> + <location filename="../ui/mainwin.cpp" line="4251"/> <source>change sheet name</source> <comment>undo</comment> <translation>Blattbezeichnung ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3983"/> + <location filename="../ui/mainwin.cpp" line="4271"/> <source>change context name</source> <comment>undo</comment> <translation>Kontextnamen ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4002"/> + <location filename="../ui/mainwin.cpp" line="4290"/> <source>change stanza number</source> <comment>undo</comment> <translation>Strophennummer ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4014"/> + <location filename="../ui/mainwin.cpp" line="4302"/> <source>change associated voice</source> <comment>undo</comment> <translation>zugehörige Stimme ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4025"/> + <location filename="../ui/mainwin.cpp" line="4313"/> <source>change voice stem direction</source> <comment>undo</comment> <translation>Halsrichtung in der Stimme ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4042"/> + <location filename="../ui/mainwin.cpp" line="4330"/> <source>change note stem direction</source> <comment>undo</comment> <translation>Notenhalsrichtung ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="250"/> + <location filename="../ui/mainwin.cpp" line="263"/> <source>French Clef</source> <translation>französischer Violinschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="252"/> + <location filename="../ui/mainwin.cpp" line="265"/> <source>Varbaritone Clef</source> <translation>Baritonschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="253"/> + <location filename="../ui/mainwin.cpp" line="266"/> <source>Subbass Clef</source> <translation>Subbassschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="254"/> + <location filename="../ui/mainwin.cpp" line="267"/> <source>Soprano Clef</source> <translation>Sopranschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="255"/> + <location filename="../ui/mainwin.cpp" line="268"/> <source>Mezzosoprano Clef</source> <translation>Mezzosopranschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="257"/> + <location filename="../ui/mainwin.cpp" line="270"/> <source>Tenor Clef</source> <translation>Tenorschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="258"/> + <location filename="../ui/mainwin.cpp" line="271"/> <source>Baritone Clef</source> <translation>Baritonschlüssel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="346"/> + <location filename="../ui/mainwin.cpp" line="359"/> <source>Voice instrument</source> <translation>Stimmeninstrument</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="411"/> + <location filename="../ui/mainwin.cpp" line="419"/> <source>Clef ToolBar</source> <translation>Schlüsselauswahl</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="418"/> + <location filename="../ui/mainwin.cpp" line="426"/> <source>Clef offset</source> <translation>Schlüsselverschiebung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="583"/> + <location filename="../ui/mainwin.cpp" line="606"/> <source>Undo</source> <translation>Rückgängig</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="590"/> + <location filename="../ui/mainwin.cpp" line="613"/> <source>Redo</source> <translation>Wiederherstellen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3170"/> + <location filename="../ui/mainwin.cpp" line="3380"/> <source>change clef offset</source> <comment>undo</comment> <translation>Schlüsselverschiebung ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4605"/> + <location filename="../ui/mainwin.cpp" line="4955"/> <source>cut</source> <comment>undo</comment> <translation>Ausschneiden</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="4995"/> + <location filename="../ui/mainwin.cpp" line="5370"/> <source>paste</source> <comment>undo</comment> <translation>Einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="446"/> + <location filename="../ui/mainwin.cpp" line="460"/> + <location filename="../ui/mainwin.cpp" line="468"/> <source>None</source> - <translation type="unfinished">Keine</translation> + <translation>Keine</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3131"/> - <source>change key signature</source> - <comment>undo</comment> - <translation>Schlüssel ändern</translation> - </message> - <message> - <location filename="../ui/mainwin.cpp" line="3395"/> + <location filename="../ui/mainwin.cpp" line="3685"/> <source>change function</source> <comment>undo</comment> <translation>Funktionsbeschreibung ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3418"/> + <location filename="../ui/mainwin.cpp" line="3708"/> <source>change chord area</source> <comment>undo</comment> <translation>Akkordbereich ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3441"/> + <location filename="../ui/mainwin.cpp" line="3731"/> <source>change tonic degree</source> <comment>undo</comment> <translation>Tonstufe ändern</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="3463"/> + <location filename="../ui/mainwin.cpp" line="3753"/> <source>set/unset ellipse</source> <comment>undo</comment> <translation>Ellipse ein/aus</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="277"/> + <location filename="../ui/mainwin.cpp" line="290"/> <source>Select Mark</source> - <translation type="unfinished">Wähle Markierung</translation> + <translation>Wähle Markierung</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="279"/> + <location filename="../ui/mainwin.cpp" line="292"/> <source>Tempo</source> - <translation type="unfinished"></translation> + <translation>Tempo</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="280"/> + <location filename="../ui/mainwin.cpp" line="293"/> <source>Ritardando</source> - <translation type="unfinished"></translation> + <translation>Ritardando</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="281"/> + <location filename="../ui/mainwin.cpp" line="294"/> <source>Accellerando</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="282"/> + <location filename="../ui/mainwin.cpp" line="295"/> <source>Dynamic</source> - <translation type="unfinished">Dynamik</translation> + <translation>Dynamik</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="283"/> + <location filename="../ui/mainwin.cpp" line="296"/> <source>Crescendo</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="284"/> + <location filename="../ui/mainwin.cpp" line="297"/> <source>Decrescendo</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="286"/> + <location filename="../ui/mainwin.cpp" line="299"/> <source>Arbitrary Text</source> - <translation type="unfinished">Text</translation> + <translation>Text</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="289"/> + <location filename="../ui/mainwin.cpp" line="302"/> <source>Bookmark</source> - <translation type="unfinished">Lesezeichen</translation> + <translation>Lesezeichen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="290"/> + <location filename="../ui/mainwin.cpp" line="303"/> <source>Rehersal Mark</source> - <translation type="unfinished">Probenzeichen</translation> + <translation>Probezeichen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="285"/> + <location filename="../ui/mainwin.cpp" line="298"/> <source>Fermata</source> - <translation type="unfinished">Fermate</translation> + <translation>Fermate</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="287"/> + <location filename="../ui/mainwin.cpp" line="300"/> <source>Repeat Mark</source> - <translation type="unfinished">Wiederholungszeichen</translation> + <translation>Wiederholungszeichen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="498"/> + <location filename="../ui/mainwin.cpp" line="305"/> + <location filename="../ui/mainwin.cpp" line="520"/> <source>Instrument Change</source> - <translation type="unfinished">Instrumentenwechsel</translation> + <translation>Instrumentenwechsel</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="291"/> + <location filename="../ui/mainwin.cpp" line="304"/> <source>Fingering</source> - <translation type="unfinished">Fingersatz</translation> + <translation>Fingersatz</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="293"/> + <location filename="../ui/mainwin.cpp" line="253"/> + <source>New Figured Bass context</source> + <translation>Neuer Generalbass-Context</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="306"/> <source>Articulation Mark</source> - <translation type="unfinished">Artikulierungszeichen</translation> + <translation>Artikulierungszeichen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="295"/> + <location filename="../ui/mainwin.cpp" line="308"/> <source>Accent</source> - <translation type="unfinished">Akzent</translation> + <translation>Akzent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="296"/> + <location filename="../ui/mainwin.cpp" line="309"/> <source>Marcato</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="297"/> + <location filename="../ui/mainwin.cpp" line="310"/> <source>Stacatissimo</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="298"/> + <location filename="../ui/mainwin.cpp" line="311"/> <source>Espressivo</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="299"/> + <location filename="../ui/mainwin.cpp" line="312"/> <source>Staccato</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="300"/> + <location filename="../ui/mainwin.cpp" line="313"/> <source>Tenuto</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="301"/> + <location filename="../ui/mainwin.cpp" line="314"/> <source>Portato</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="302"/> + <location filename="../ui/mainwin.cpp" line="315"/> <source>UpBow</source> - <translation type="unfinished">Aufstrich</translation> + <translation>Aufstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="303"/> + <location filename="../ui/mainwin.cpp" line="316"/> <source>DownBow</source> - <translation type="unfinished">Abstrich</translation> + <translation>Abstrich</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="304"/> + <location filename="../ui/mainwin.cpp" line="317"/> <source>Flageloet</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="305"/> + <location filename="../ui/mainwin.cpp" line="318"/> <source>Open</source> - <translation type="unfinished">Offen</translation> + <translation>Offen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="306"/> + <location filename="../ui/mainwin.cpp" line="319"/> <source>Stopped</source> - <translation type="unfinished">abgebremst</translation> + <translation>abgebremst</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="307"/> + <location filename="../ui/mainwin.cpp" line="320"/> <source>Turn</source> - <translation type="unfinished">Doppelschlag</translation> + <translation>Doppelschlag</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="308"/> + <location filename="../ui/mainwin.cpp" line="321"/> <source>ReverseTurn</source> - <translation type="unfinished">umgekehrter Doppelschalg</translation> + <translation>umgekehrter Doppelschalg</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="309"/> + <location filename="../ui/mainwin.cpp" line="322"/> <source>Trill</source> - <translation type="unfinished">Triller</translation> + <translation>Triller</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="310"/> + <location filename="../ui/mainwin.cpp" line="323"/> <source>Prall</source> - <translation type="unfinished">Praller</translation> + <translation>Praller</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="311"/> + <location filename="../ui/mainwin.cpp" line="324"/> <source>Mordent</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="312"/> + <location filename="../ui/mainwin.cpp" line="325"/> <source>Prall-Prall</source> - <translation type="unfinished">Doppelpraller</translation> + <translation>Doppelpraller</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="313"/> + <location filename="../ui/mainwin.cpp" line="326"/> <source>Prall-Mordent</source> - <translation type="unfinished">Prallmordent</translation> + <translation>Prallmordent</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="314"/> + <location filename="../ui/mainwin.cpp" line="327"/> <source>Up-Prall</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="315"/> + <location filename="../ui/mainwin.cpp" line="328"/> <source>Down-Prall</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="316"/> + <location filename="../ui/mainwin.cpp" line="329"/> <source>Up-Mordent</source> - <translation type="unfinished"></translation> + <translation>Mordent aufwärts</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="317"/> + <location filename="../ui/mainwin.cpp" line="330"/> <source>Down-Mordent</source> - <translation type="unfinished"></translation> + <translation>Mordetnt abwärts</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="318"/> + <location filename="../ui/mainwin.cpp" line="331"/> <source>Prall-Down</source> - <translation type="unfinished"></translation> + <translation>Praller abwärts</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="319"/> + <location filename="../ui/mainwin.cpp" line="332"/> <source>Prall-Up</source> - <translation type="unfinished"></translation> + <translation>Praller aufwärts</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="320"/> + <location filename="../ui/mainwin.cpp" line="333"/> <source>Line-Prall</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="605"/> + <location filename="../ui/mainwin.cpp" line="428"/> + <source>Figured bass ToolBar</source> + <translation>Generalbass Werkzeuge</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="429"/> + <source>Set/Unset Figured bass number</source> + <translation>Setze/Rücksetze Generalbass-Zahl</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="434"/> + <source>Set/Unset Figured bass accidentals</source> + <translation></translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="436"/> + <source>Double flat</source> + <translation>Doppel-Be</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="437"/> + <source>Flat</source> + <translation>Be</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="438"/> + <source>Neutral</source> + <translation>Neutral</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="439"/> + <source>Sharp</source> + <translation>Kreuz</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="440"/> + <source>Double sharp</source> + <translation>Doppelkreuz</translation> + </message> + <message> + <location filename="../ui/mainwin.cpp" line="628"/> <source>Insert context</source> - <translation type="unfinished">Kontext einfügen</translation> + <translation>Kontext einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="611"/> + <location filename="../ui/mainwin.cpp" line="634"/> <source>Insert slur</source> - <translation type="unfinished">Bogen einfügen</translation> + <translation>Bogen einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="615"/> + <location filename="../ui/mainwin.cpp" line="638"/> <source>Insert clef</source> - <translation type="unfinished">Schlüssel einfügen</translation> + <translation>Schlüssel einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="620"/> + <location filename="../ui/mainwin.cpp" line="643"/> <source>Insert time signature</source> - <translation type="unfinished">Taktmaß einfügen</translation> + <translation>Taktmaß einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="624"/> + <location filename="../ui/mainwin.cpp" line="647"/> <source>Insert barline</source> - <translation type="unfinished">Taktstrich einfügen</translation> + <translation>Taktstrich einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="628"/> + <location filename="../ui/mainwin.cpp" line="651"/> <source>Insert mark</source> - <translation type="unfinished">Markierung einfügen</translation> + <translation>Markierung einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="632"/> + <location filename="../ui/mainwin.cpp" line="655"/> <source>Insert articulation mark</source> - <translation type="unfinished">Artikulierungszeichen einfügen</translation> + <translation>Artikulierungszeichen einfügen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="462"/> + <location filename="../ui/mainwin.cpp" line="484"/> <source>Dynamic marks ToolBar</source> - <translation type="unfinished">Auswahl Dynamikzeichen</translation> + <translation>Auswahl Dynamikzeichen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="463"/> + <location filename="../ui/mainwin.cpp" line="485"/> <source>Select Dynamic</source> - <translation type="unfinished">Dynamikzeichen auswählen</translation> + <translation>Dynamikzeichen auswählen</translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="465"/> + <location filename="../ui/mainwin.cpp" line="487"/> <source>Piano</source> <comment>dynamics</comment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../ui/mainwin.cpp" line="469"/> + <location filename="../ui/mainwin.cpp" line="488"/> + <location filename="../ui/mainwin.cpp" line="489"/> + <location filename="../ui/mainwin.cpp" line="490"/> + <location filename="../ui/mainwin.cpp" line="491"/> <... [truncated message content] |
From: <su...@us...> - 2015-04-11 09:01:58
|
Revision: 1400 http://sourceforge.net/p/canorus/code/1400 Author: suamor Date: 2015-04-11 09:01:51 +0000 (Sat, 11 Apr 2015) Log Message: ----------- 0.7.2rc1 Added Paths: ----------- tags/0.7.2rc1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 09:01:01
|
Revision: 1399 http://sourceforge.net/p/canorus/code/1399 Author: suamor Date: 2015-04-11 09:00:59 +0000 (Sat, 11 Apr 2015) Log Message: ----------- Prepare 0.7.2 RC1 Modified Paths: -------------- trunk/VERSION trunk/src/ui/mainwin.cpp trunk/windows/setup.nsi Modified: trunk/VERSION =================================================================== --- trunk/VERSION 2015-04-11 08:42:15 UTC (rev 1398) +++ trunk/VERSION 2015-04-11 09:00:59 UTC (rev 1399) @@ -1 +1 @@ -0.7.2 +0.7.2rc1 Modified: trunk/src/ui/mainwin.cpp =================================================================== --- trunk/src/ui/mainwin.cpp 2015-04-11 08:42:15 UTC (rev 1398) +++ trunk/src/ui/mainwin.cpp 2015-04-11 09:00:59 UTC (rev 1399) @@ -1,5 +1,5 @@ /*! - Copyright (c) 2006-2009, Reinhard Katzmann, Matevž Jekovec, Canorus development team + Copyright (c) 2006-2015, Reinhard Katzmann, Matevž Jekovec, Canorus development team All Rights Reserved. See AUTHORS for a complete list of authors. Licensed under the GNU GENERAL PUBLIC LICENSE. See COPYING for details. @@ -4104,7 +4104,7 @@ void CAMainWin::on_uiAboutCanorus_triggered() { QString about=tr("<p><b>Canorus - The next generation music score editor</b></p>\ <p>Version %1<br>\ -(C) 2006-2013 Canorus Development team. All rights reserved.<br>\ +(C) 2006-2015 Canorus Development team. All rights reserved.<br>\ See the file AUTHORS for the list of Canorus developers<br><br>\ This program is licensed under the GNU General Public License (GPL).<br>\ See the file LICENSE.GPL for details.<br><br>\ Modified: trunk/windows/setup.nsi =================================================================== --- trunk/windows/setup.nsi 2015-04-11 08:42:15 UTC (rev 1398) +++ trunk/windows/setup.nsi 2015-04-11 09:00:59 UTC (rev 1399) @@ -4,7 +4,7 @@ Name Canorus # Defines !define REGKEY "SOFTWARE\$(^Name)" -!define VERSION 0.7.2 +!define VERSION 0.7.2rc1 !define COMPANY "Matev\x9E Jekovec, Canorus development team" !define URL http://www.canorus.org This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2015-04-11 08:42:23
|
Revision: 1398 http://sourceforge.net/p/canorus/code/1398 Author: suamor Date: 2015-04-11 08:42:15 +0000 (Sat, 11 Apr 2015) Log Message: ----------- 0.7.2 / ChangeLog Modified Paths: -------------- trunk/NEWS trunk/VERSION trunk/windows/setup.nsi Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2015-04-11 00:59:19 UTC (rev 1397) +++ trunk/NEWS 2015-04-11 08:42:15 UTC (rev 1398) @@ -1,3 +1,37 @@ +0.7.2 +===== +- Set SelectMode instead of NoDocumentMode when a new document.was created +- Added ruler to show the bar number on top of the score view +- Updated translations +- Fix some issues to get Canorus running with Qt5 +- Introduced official support for Qt5 +- Bar reference list added to CAStaff +- Fixed Repeat bar lines in lilypond export +- Removed obsolete clipping from CAScoreView +- Add icon for upcoming shortcuts feature +- Added newDocument() fallback for environment without Python. +- Added "Canorus is compiled with Python support." to about dialog box. +- Requires Python 3.x; updated corresponding bindings +- Added basic MusicXML export. +- CATempo: Removed obsolete dotted property +- Lilypond export: Added support for CATempo and CARitardando. +- Scoreview: Fixed crash when adding lines marks +- Added MIDI pitch offset property to voice +- Lilypond export: Fixed indentination +- Lilypond export: Export instrument names. +- Lilypond export: Set rehersal marks drawn in box. +- Fixed horizontal scrolling regression introduced with new speed optimizations. +- Fixed MusicXML import regression introduced in R1282. +- Significant speed improvement for getting the current clef. +- Fixed crash in KDTree when adding notes. +- Significant speed improvement for finding elements in range for canvas. +- Moved drawable map from KDTree to ScoreView. +- Removed several obsolete KDTree functions. +- Removed several obsolete ScoreView functions +- Midi import gives staffs and voices a name +- Compatibility fix with recent Qt4 +- Skipped 0.7.1 Release + 0.7.1 ===== - Updated translations Modified: trunk/VERSION =================================================================== --- trunk/VERSION 2015-04-11 00:59:19 UTC (rev 1397) +++ trunk/VERSION 2015-04-11 08:42:15 UTC (rev 1398) @@ -1 +1 @@ -0.7.1rc1 +0.7.2 Modified: trunk/windows/setup.nsi =================================================================== --- trunk/windows/setup.nsi 2015-04-11 00:59:19 UTC (rev 1397) +++ trunk/windows/setup.nsi 2015-04-11 08:42:15 UTC (rev 1398) @@ -4,7 +4,7 @@ Name Canorus # Defines !define REGKEY "SOFTWARE\$(^Name)" -!define VERSION 0.7.1rc1 +!define VERSION 0.7.2 !define COMPANY "Matev\x9E Jekovec, Canorus development team" !define URL http://www.canorus.org This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |