diff --git a/.arcconfig b/.arcconfig new file mode 100644 --- /dev/null +++ b/.arcconfig @@ -0,0 +1,3 @@ +{ + "phabricator.uri": "https://phabricator.kde.org/" +} diff --git a/.gitignore b/.gitignore new file mode 100644 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.kdev4/ +build/ +*.kdev4 diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,24 +1,48 @@ project(ksudoku) -if(NOT COMPILING_KDEGAMES) - find_package(KDE4 REQUIRED) - include(KDE4Defaults) - include(MacroLibrary) - find_package(KDEGames 4.9.0 REQUIRED) - - macro_optional_find_package(OpenGL) - macro_log_feature(OPENGL_FOUND "OpenGL" "API for developing portable, interactive 2D and 3Dgraphics applications" "http://mesa3d.sourceforge.net" FALSE "" "Kubrick will not be built and KSudoku will not have Roxdoku support without OpenGL.") - macro_log_feature(QT_QTOPENGL_FOUND "QtOpenGL" "Qt module that make it easy to use OpenGL in Qt apps" "http://doc.trolltech.com/latest/qtopengl.html" FALSE "" "Kubrick will not be built and KSudoku will not have Roxdoku support without QtOpenGL.") - macro_display_feature_log() - - if(OPENGL_FOUND AND QT_QTOPENGL_FOUND) - set(OPENGL_SUPPORT true) - endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND) - - add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) - add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) - include_directories(${KDEGAMES_INCLUDE_DIRS} ${KDE4_INCLUDES} ${QDBUS_INCLUDE_DIRS}) -endif(NOT COMPILING_KDEGAMES) +cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) +set (QT_MIN_VERSION "5.3.0") +set (KF5_MIN_VERSION "5.15.0") + +find_package(ECM 1.7.0 REQUIRED CONFIG) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) + +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Widgets Qml Quick QuickWidgets Svg Test OpenGL) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS + Config + ConfigWidgets + CoreAddons + Crash + DBusAddons + GuiAddons + I18n + ItemModels + KDELibs4Support + KIO + NewStuff + NotifyConfig + TextWidgets + WidgetsAddons + WindowSystem + XmlGui +) + +find_package(KF5KDEGames 4.9.0 REQUIRED) + +find_package(OpenGL) +set_package_properties(OpenGL PROPERTIES DESCRIPTION "API for developing portable, interactive 2D and 3Dgraphics applications" TYPE REQUIRED PURPOSE "Kubrick will not be built and KSudoku will not have Roxdoku support without OpenGL.") + +include(FeatureSummary) +include(ECMAddAppIcon) +include(ECMInstallIcons) +include(KDEInstallDirs) +include(KDECompilerSettings NO_POLICY_SCOPE) +include(KDECMakeSettings) + +if (OPENGL_FOUND) + set(OPENGL_SUPPORT true) +endif() + ##options #OPTION(DEBUG @@ -38,8 +62,12 @@ add_definitions(-DOPENGL_SUPPORT) endif(OPENGL_SUPPORT) -add_subdirectory( src ) -add_subdirectory( doc ) +add_definitions(-DQT_NO_URL_CAST_FROM_STRING) + +add_subdirectory(src) +add_subdirectory(doc) #message(STATUS "ksudoku: DEBUG: ${DEBUG}") #message(STATUS "ksudoku: install prefix: ${CMAKE_INSTALL_PREFIX}") + +feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/INSTALL b/INSTALL --- a/INSTALL +++ b/INSTALL @@ -1,206 +1,3 @@ -Basic Installation -================== - -REQUIREMENTS : - - open gl library (also header files) - mesa3d.org - - glu library (also header files) - mesa3d.org - - kde headers and libs - - -FAST INSTALLATION -as root: -./fastinstall.sh -INSTALLATION - - -1. Open a shell in project directory (the one where this file is located) -2. Ectract project tar -xvvzf ksudoku-0.3.tar.gz -2. Run "./configure --prefix=`kdeconfig --prefix`" - (will install the program in /usr/local/kde, if you want to install - in /usr run "./configure --prefix=/usr") -3. Run "make" -4. Run "make install" as root. -5. Run "ksudoku" (if does not start check point 2) - - -** Building and installing ** - -* Build the makefiles with "cmake ." - (or better: create a directory (say build), and run in - that dir "cmake ..") -* to change settings run "make edit_cache" (optional) -* run "make" -* run "make install" - -* To clean, use "make clean" - -For more make targets run "make help" - -##==## - - - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes a while. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Type `make install' to install the programs and any data files and - documentation. - - 4. You can remove the program binaries and object files from the - source code directory by typing `make clean'. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. +Build instructions can be found at +http://techbase.kde.org/Getting_Started/Build/KDE4 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,2 +1,2 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR ksudoku) +kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR ksudoku) diff --git a/doc/index.docbook b/doc/index.docbook --- a/doc/index.docbook +++ b/doc/index.docbook @@ -1,5 +1,5 @@ - diff --git a/src/hi128-app-ksudoku.png b/src/128-apps-ksudoku.png rename from src/hi128-app-ksudoku.png rename to src/128-apps-ksudoku.png diff --git a/src/hi16-app-ksudoku.png b/src/16-apps-ksudoku.png rename from src/hi16-app-ksudoku.png rename to src/16-apps-ksudoku.png diff --git a/src/hi32-app-ksudoku.png b/src/32-apps-ksudoku.png rename from src/hi32-app-ksudoku.png rename to src/32-apps-ksudoku.png diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,28 +25,32 @@ generator/mathdokugenerator.cpp ) -kde4_add_app_icon(ksudoku_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/ksudoku.png") -kde4_add_executable(ksudoku ${ksudoku_SRCS}) +file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/*-apps-ksudoku.png") +ecm_add_app_icon(ksudoku_SRCS ICONS ${ICONS_SRCS}) +add_executable(ksudoku ${ksudoku_SRCS}) target_link_libraries(ksudoku - ksudoku_gui ksudoku_logic - kdegames kdegamesprivate - ${KDE4_KIO_LIBS} + ksudoku_gui + ksudoku_logic + KF5KDEGames + KF5KDEGamesPrivate + KF5::KIOCore + KF5::Crash ) if(OPENGL_SUPPORT) target_link_libraries(ksudoku - ${QT_QTOPENGL_LIBRARY} ${OPENGL_LIBRARIES} ${CMAKE_DL_LIBS} + Qt5::OpenGL ${OPENGL_LIBRARIES} ${CMAKE_DL_LIBS} ) endif(OPENGL_SUPPORT) -install(TARGETS ksudoku ${INSTALL_TARGETS_DEFAULT_ARGS} ) +install(TARGETS ksudoku ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) ########### next target ############### -add_subdirectory( gui ) -add_subdirectory( logic ) -add_subdirectory( shapes ) -add_subdirectory( themes ) +add_subdirectory(gui) +add_subdirectory(logic) +add_subdirectory(shapes) +add_subdirectory(themes) #set(ksudoku_client_SRCS @@ -61,15 +65,20 @@ -#install(TARGETS ksudoku_client ${INSTALL_TARGETS_DEFAULT_ARGS} ) +#install(TARGETS ksudoku_client ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) ########### install files ############### -install( PROGRAMS gui/org.kde.ksudoku.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) -install( FILES gui/org.kde.ksudoku.appdata.xml DESTINATION ${SHARE_INSTALL_PREFIX}/metainfo ) -install( FILES gui/ksudokuui.rc DESTINATION ${DATA_INSTALL_DIR}/ksudoku ) -install( FILES ksudokurc DESTINATION ${CONFIG_INSTALL_DIR}) - -kde4_install_icons(${ICON_INSTALL_DIR}) - +install(PROGRAMS gui/org.kde.ksudoku.desktop DESTINATION ${KDE_INSTALL_APPDIR}) +install(FILES gui/org.kde.ksudoku.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) +install(FILES gui/ksudokuui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/ksudoku) +install(FILES ksudokurc DESTINATION ${KDE_INSTALL_CONFDIR}) + +ecm_install_icons(ICONS + 128-apps-ksudoku.png + 16-apps-ksudoku.png + 32-apps-ksudoku.png + DESTINATION ${KDE_INSTALL_ICONDIR} + THEME hicolor +) diff --git a/src/generator/state.cpp b/src/generator/state.cpp --- a/src/generator/state.cpp +++ b/src/generator/state.cpp @@ -35,4 +35,4 @@ { } -#include "state.moc" + diff --git a/src/generator/sudokuboard.cpp b/src/generator/sudokuboard.cpp --- a/src/generator/sudokuboard.cpp +++ b/src/generator/sudokuboard.cpp @@ -24,15 +24,15 @@ #include "mathdokugenerator.h" #include // IDW test. -#include +#include #include #include #include #include -#include +#include SudokuBoard::SudokuBoard (SKGraph * graph) : @@ -68,7 +68,7 @@ } else { started = true; - m_stats.seed = time(0); + m_stats.seed = std::time(nullptr); qsrand (m_stats.seed); dbo1 "setSeed(): SEED = %d\n", m_stats.seed); } @@ -874,7 +874,7 @@ guesses.clear(); for (int i = 0; i < original.count(); i++) { - guesses.append (original.at (sequence.at (i))); + guesses.append (original.at (sequence.at (i))); } } dbo2 "Guess "); @@ -909,7 +909,7 @@ BoardContents & SudokuBoard::fillBoard() { // Solve the empty board, thus filling it with values at random. These - // values can be the starting point for generating a puzzle and also the + // values can be the starting point for generating a puzzle and also the // final solution of that puzzle. clear (m_currentValues); @@ -1013,7 +1013,7 @@ int cell = cellList.at (n); m_validCellValues [cell] &= m_requiredGroupValues.at (group); index++; - } + } } dbo2 "Finished setUpValueRequirements()\n"); @@ -1048,7 +1048,7 @@ for (int n = 0; n < m_order; n++) { int cell = cellList.at (n); m_validCellValues [cell] &= bitPattern; - } + } } } @@ -1134,4 +1134,4 @@ return result; } -#include "sudokuboard.moc" + diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -27,26 +27,27 @@ endif(OPENGL_SUPPORT) -kde4_add_ui_files(ksudoku_SRCS welcomescreen.ui configgame.ui) +ki18n_wrap_ui(ksudoku_SRCS welcomescreen.ui configgame.ui) -kde4_add_kcfg_files(ksudoku_SRCS settings.kcfgc ) +kconfig_add_kcfg_files(ksudoku_SRCS settings.kcfgc ) -kde4_add_library(ksudoku_gui STATIC ${ksudoku_SRCS} ${ksudoku_views_SRCS}) +add_library(ksudoku_gui STATIC ${ksudoku_SRCS} ${ksudoku_views_SRCS}) target_link_libraries(ksudoku_gui ksudoku_logic - kdegames - ${KDE4_KDEUI_LIBS} - ${KDE4_KDECORE_LIBS} - ${KDE4_KIO_LIBRARY} - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} + KF5KDEGames + KF5::Archive + KF5::KDELibs4Support + KF5::KIOCore + Qt5::Core + Qt5::Gui + Qt5::Svg ) if(OPENGL_SUPPORT) target_link_libraries(ksudoku_gui ${OPENGL_LIBRARIES} - ${QT_QTOPENGL_LIBRARY}) + Qt5::OpenGL) endif(OPENGL_SUPPORT) @@ -56,7 +57,7 @@ ksudoku_client.cpp ) -#kde4_add_executable(ksudoku_client ${ksudoku_client_SRCS}) +#add_executable(ksudoku_client ${ksudoku_client_SRCS}) #target_link_libraries(ksudoku_client ${QT_AND_KDECORE_LIBRARIES} kdeui) diff --git a/src/gui/config.cpp b/src/gui/config.cpp --- a/src/gui/config.cpp +++ b/src/gui/config.cpp @@ -19,13 +19,13 @@ #include "config.h" -#include +#include #include #include #include "symbols.h" -#include "config.moc" + namespace ksudoku { diff --git a/src/gui/gamevariants.cpp b/src/gui/gamevariants.cpp --- a/src/gui/gamevariants.cpp +++ b/src/gui/gamevariants.cpp @@ -24,12 +24,12 @@ #include #include -#include +#include #include -#include +#include #include -#include "gamevariants.moc" + #include "puzzle.h" @@ -183,13 +183,13 @@ // Show icon - QPixmap iconPixmap = KIcon(icon(index), KIconLoader::global()).pixmap(m_iconWidth, m_iconHeight); + QPixmap iconPixmap = QIcon::fromTheme(icon(index)).pixmap(m_iconWidth, m_iconHeight); painter->drawPixmap(contentRect.left(), (contentRect.height() - iconPixmap.height()) / 2 + contentRect.top(), iconPixmap); contentRect.adjust(iconPixmap.width() + m_separatorPixels*2, 0, 0, 0); // // Show configuration icon // if(configurable(index)) { -// QPixmap configPixmap = KIcon( QLatin1String( "configure" ), KIconLoader::global()).pixmap(32, 32); +// QPixmap configPixmap = QIcon::fromTheme( QLatin1String( "configure" ) ).pixmap(32, 32); // painter->drawPixmap(contentRect.right() - configPixmap.width(), (contentRect.height() - configPixmap.height()) / 2 + contentRect.top(), configPixmap); // contentRect.adjust(0, 0, -(configPixmap.width() + separatorPixels), 0); // } diff --git a/src/gui/ksudoku.h b/src/gui/ksudoku.h --- a/src/gui/ksudoku.h +++ b/src/gui/ksudoku.h @@ -31,7 +31,7 @@ #define USE_UNSTABLE_LIBKDEGAMESPRIVATE_API #include - +class QPrinter; class KUrl; namespace ksudoku { diff --git a/src/gui/ksudoku.cpp b/src/gui/ksudoku.cpp --- a/src/gui/ksudoku.cpp +++ b/src/gui/ksudoku.cpp @@ -26,29 +26,29 @@ #include #include -#include #include #include #include -#include +#include +#include +#include + +#include #include #include -#include +#include #include #define USE_UNSTABLE_LIBKDEGAMESPRIVATE_API #include - -#include -#include - +#include +#include #include -#include -#include +#include +#include #include -#include #include #include "ksview.h" @@ -62,9 +62,11 @@ #include "puzzleprinter.h" #include -#include #include #include +#include +#include +#include #include "gamevariants.h" #include "welcomescreen.h" @@ -149,16 +151,13 @@ m_welcomeScreen = new WelcomeScreen(wrapper, m_gameVariants); wrapper->layout()->addWidget(m_welcomeScreen); - connect(m_welcomeScreen, SIGNAL(newGameStarted(const ::ksudoku::Game&,GameVariant*)), this, SLOT(startGame(const ::ksudoku::Game&))); + connect(m_welcomeScreen, &ksudoku::WelcomeScreen::newGameStarted, this, &KSudoku::startGame); setupStatusBar(m_welcomeScreen->difficulty(), m_welcomeScreen->symmetry()); showWelcomeScreen(); - // Register the gamevariants resource - KGlobal::dirs()->addResourceType ("gamevariant", "data", KCmdLineArgs::aboutData()->appName()); - updateShapesList(); // QTimer *timer = new QTimer( this ); @@ -187,7 +186,17 @@ variant->setIcon("ksudoku-roxdoku_3x3x3"); #endif - QStringList filepaths = KGlobal::dirs()->findAllResources("gamevariant", "*.desktop", KStandardDirs::NoDuplicates); // Find files. + QStringList gamevariantdirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "ksudoku", QStandardPaths::LocateDirectory); + + QStringList filepaths; + Q_FOREACH (const QString& gamevariantdir, gamevariantdirs) { + const QStringList fileNames = QDir(gamevariantdir).entryList(QStringList() << QStringLiteral("*.desktop")); + Q_FOREACH (const QString &file, fileNames) { + if (!filepaths.contains(gamevariantdir + '/' + file)) { + filepaths.append(gamevariantdir + '/' + file); + } + } + } QString variantName; QString variantDescr; @@ -238,8 +247,8 @@ view->setValueListWidget(m_valueListWidget); view->createView(); - connect(view, SIGNAL(valueSelected(int)), m_valueListWidget, SLOT(selectValue(int))); - connect(m_valueListWidget, SIGNAL(valueSelected(int)), view, SLOT(selectValue(int))); + connect(view, &KsView::valueSelected, m_valueListWidget, &ksudoku::ValueListWidget::selectValue); + connect(m_valueListWidget, &ksudoku::ValueListWidget::valueSelected, view, &KsView::selectValue); // connect(view, SIGNAL(valueSelected(int)), SLOT(updateStatusBar())); QWidget* widget = view->widget(); @@ -452,7 +461,7 @@ m_gameActions = new ksudoku::GameActions(actionCollection()); m_gameActions->init(); - KShortcut shortcut; + QKeySequence shortcut; setAcceptDrops(true); @@ -467,36 +476,34 @@ KStandardAction::preferences(this, SLOT(optionsPreferences()), actionCollection()); // Settings: enable messages that the user marked "Do not show again". - KAction* enableMessagesAct = new KAction(i18n("Enable all messages"),0); + QAction* enableMessagesAct = new QAction(i18n("Enable all messages"),0); actionCollection()->addAction("enable_messages", enableMessagesAct); connect(enableMessagesAct, SIGNAL(triggered()), SLOT(enableMessages())); //History KStandardGameAction::undo(this, SLOT(undo()), actionCollection()); KStandardGameAction::redo(this, SLOT(redo()), actionCollection()); - KAction * a = KStandardGameAction::hint(this, SLOT(giveHint()), actionCollection()); + QAction * a = KStandardGameAction::hint(this, SLOT(giveHint()), actionCollection()); // The default value (H) conflicts with the keys assigned // to add letter/numbers to the board. - shortcut = a->shortcut(); - shortcut.setPrimary(QKeySequence(Qt::Key_F2)); - a->setShortcut(shortcut); + actionCollection()->setDefaultShortcut(a, QKeySequence(Qt::Key_F2)); KStandardGameAction::solve(this, SLOT(autoSolve()), actionCollection()); - a = new KAction(this); + a = new QAction(this); actionCollection()->addAction( QLatin1String( "move_dub_puzzle" ), a); a->setText(i18n("Check")); - a->setIcon(KIcon( QLatin1String( "games-endturn" ))); - connect(a, SIGNAL(triggered(bool)), SLOT(dubPuzzle())); + a->setIcon(QIcon::fromTheme( QLatin1String( "games-endturn" ))); + connect(a, &QAction::triggered, this, &KSudoku::dubPuzzle); addAction(a); //WEB - a = new KAction(this); + a = new QAction(this); actionCollection()->addAction( QLatin1String( "home_page" ), a); a->setText(i18n("Home Page")); - a->setIcon(KIcon( QLatin1String( "internet-web-browser" ))); - connect(a, SIGNAL(triggered(bool)), SLOT(homepage())); + a->setIcon(QIcon::fromTheme( QLatin1String( "internet-web-browser" ))); + connect(a, &QAction::triggered, this, &KSudoku::homepage); } void KSudoku::setupStatusBar (int difficulty, int symmetry) @@ -533,8 +540,7 @@ // Set up a combo box for symmetry of puzzle layout. statusBar()->addPermanentWidget (new QLabel (i18n("Symmetry"))); QComboBox * symmetryBox = new QComboBox (this); - QObject::connect(symmetryBox, SIGNAL(activated(int)), - this, SLOT(symmetryChanged(int))); + QObject::connect(symmetryBox, static_cast(&QComboBox::activated), this, &KSudoku::symmetryChanged); symmetryBox->setToolTip(i18nc( "Symmetry of layout of clues when puzzle starts", "Symmetry")); symmetryBox->setWhatsThis(i18n( @@ -674,7 +680,7 @@ // the Open shortcut is pressed (usually CTRL+O) or the Open toolbar // button is clicked // standard filedialog - KUrl Url = KFileDialog::getOpenUrl(KUrl("kfiledialog:///ksudoku"), QString(), this, i18n("Open Location")); + KUrl Url = QFileDialog::getOpenFileUrl(this, i18n("Open Location"), QUrl::fromLocalFile(QDir::homePath()), QString()); if (!Url.isEmpty() && Url.isValid()) { @@ -702,7 +708,7 @@ Game game = currentGame(); if(!game.isValid()) return; - if(game.getUrl().isEmpty()) game.setUrl(KFileDialog::getSaveUrl(KUrl("kfiledialog:///ksudoku"))); + if(game.getUrl().isEmpty()) game.setUrl(QFileDialog::getSaveFileUrl()); if (!game.getUrl().isEmpty() && game.getUrl().isValid()) ksudoku::Serializer::store(game, game.getUrl(), this); } @@ -713,7 +719,7 @@ Game game = currentGame(); if(!game.isValid()) return; - game.setUrl(KFileDialog::getSaveUrl(KUrl("kfiledialog:///ksudoku"))); + game.setUrl(QFileDialog::getSaveFileUrl()); if (!game.getUrl().isEmpty() && game.getUrl().isValid()) gameSave(); } @@ -765,8 +771,8 @@ dialog->addPage(gameConfig, i18nc("Game Section in Config", "Game"), "games-config-options"); dialog->addPage(new KGameThemeSelector(dialog, Settings::self(), KGameThemeSelector::NewStuffDisableDownload), i18n("Theme"), "games-config-theme"); - dialog->setHelp(QString(),"ksudoku"); - connect(dialog, SIGNAL(settingsChanged(QString)), SLOT(updateSettings())); + //QT5 dialog->setHelp(QString(),"ksudoku"); + connect(dialog, &KConfigDialog::settingsChanged, this, &KSudoku::updateSettings); dialog->show(); } @@ -856,12 +862,11 @@ void KSudoku::loadCustomShapeFromPath() { - KUrl Url = KFileDialog::getOpenUrl( KUrl(), QString(), this, i18n("Open Location") ); + QUrl Url = QFileDialog::getOpenFileUrl(this, i18n("Open Location"), QUrl(), QString()); if ( Url.isEmpty() || !Url.isValid() ) { - //TODO ERROR - return; + return; // user cancelled } QString tmpFile; @@ -871,9 +876,8 @@ return; } - KStandardDirs myStdDir; - const QString destDir = myStdDir.saveLocation( "data", /*kapp->instanceName() + TODO PORT */"ksudoku/", true ); - KStandardDirs::makeDir( destDir ); + const QString destDir = QStandardPaths::writableLocation( QStandardPaths::GenericDataLocation ) + QStringLiteral("/ksudoku/"); + QDir().mkpath( destDir ); KTar archive( tmpFile ); @@ -886,7 +890,7 @@ else { //just copy - KIO::file_copy (Url, destDir); + KIO::file_copy (Url, QUrl::fromLocalFile(destDir + '/' + Url.fileName())); } KIO::NetAccess::removeTempFile(tmpFile); @@ -900,7 +904,7 @@ i18n("Enable all messages")); if (result == KMessageBox::Yes) { KMessageBox::enableAllMessages(); - KGlobal::config()->sync(); // Save the changes to disk. + KSharedConfig::openConfig()->sync(); // Save the changes to disk. } } @@ -918,9 +922,8 @@ return false; const KArchiveDirectory *archiveDir = archive.directory(); - KStandardDirs myStdDir; - const QString destDir = myStdDir.saveLocation("data", /*kapp->instanceName() + TODO PORT*/"ksudoku/", true); - KStandardDirs::makeDir(destDir); + const QString destDir = QStandardPaths::writableLocation( QStandardPaths::GenericDataLocation ) + QStringLiteral("/ksudoku/"); + QDir().mkpath(destDir); archiveDir->copyTo(destDir); archive.close(); @@ -937,4 +940,4 @@ -#include "ksudoku.moc" + diff --git a/src/gui/ksudoku_client.cpp b/src/gui/ksudoku_client.cpp --- a/src/gui/ksudoku_client.cpp +++ b/src/gui/ksudoku_client.cpp @@ -18,14 +18,17 @@ ***************************************************************************/ -#include + #include #include #include +#include +#include +#include int main(int argc, char **argv) { - KApplication app(argc, argv, "ksudoku_client", false); + QApplication app(argc, argv); // get our DCOP client and attach so that we may use it DCOPClient *client = app.dcopClient(); diff --git a/src/gui/ksudokugame.cpp b/src/gui/ksudokugame.cpp --- a/src/gui/ksudokugame.cpp +++ b/src/gui/ksudokugame.cpp @@ -29,7 +29,7 @@ #include "globals.h" #include -#include +#include #include @@ -697,7 +697,7 @@ QTime Game::time() const { if(!m_private) return QTime(); - return QTime().addMSecs(msecsElapsed()); + return QTime(0,0).addMSecs(msecsElapsed()); } int Game::msecsElapsed() const { @@ -780,4 +780,4 @@ } -#include "ksudokugame.moc" + diff --git a/src/gui/org.kde.ksudoku.desktop b/src/gui/org.kde.ksudoku.desktop --- a/src/gui/org.kde.ksudoku.desktop +++ b/src/gui/org.kde.ksudoku.desktop @@ -125,3 +125,4 @@ Comment[x-test]=xxKSudoku, Sudoku game & more by KDExx Terminal=false Categories=Qt;KDE;Game;LogicGame; +X-DBUS-ServiceName=org.kde.ksudoku diff --git a/src/gui/puzzleprinter.cpp b/src/gui/puzzleprinter.cpp --- a/src/gui/puzzleprinter.cpp +++ b/src/gui/puzzleprinter.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include "puzzle.h" #include "skgraph.h" diff --git a/src/gui/serializer.cpp b/src/gui/serializer.cpp --- a/src/gui/serializer.cpp +++ b/src/gui/serializer.cpp @@ -29,11 +29,11 @@ #include #include #include -#include +#include #include #include -#include -#include +#include + #include "ksudoku.h" #include "symbols.h" @@ -689,7 +689,7 @@ serializeGame(root, game); - KTemporaryFile file; + QTemporaryFile file; file.open(); QTextStream stream(&file); diff --git a/src/gui/views/ArcBall.h b/src/gui/views/ArcBall.h --- a/src/gui/views/ArcBall.h +++ b/src/gui/views/ArcBall.h @@ -32,7 +32,7 @@ #endif #include -#ifdef Q_WS_MAC +#ifdef Q_OS_MAC #include #include #elif defined(Q_WS_WIN) diff --git a/src/gui/views/gameactions.h b/src/gui/views/gameactions.h --- a/src/gui/views/gameactions.h +++ b/src/gui/views/gameactions.h @@ -23,7 +23,7 @@ #include #include -class KAction; +class QAction; class KActionCollection; class QSignalMapper; @@ -51,7 +51,7 @@ QSignalMapper* m_selectValueMapper; QSignalMapper* m_enterValueMapper; QSignalMapper* m_markValueMapper; - QVector m_actions; + QVector m_actions; }; } diff --git a/src/gui/views/gameactions.cpp b/src/gui/views/gameactions.cpp --- a/src/gui/views/gameactions.cpp +++ b/src/gui/views/gameactions.cpp @@ -20,11 +20,11 @@ #include "gameactions.h" -#include -#include +#include +#include #include #include - +#include namespace ksudoku { GameActions::GameActions(KActionCollection* collection) { @@ -50,95 +50,94 @@ const Qt::Key extras[] = {Qt::Key_0, Qt::Key_Slash, Qt::Key_Minus, /* Qt::Key_Asterisk, */ Qt::Key_Plus, Qt::Key_Space, Qt::Key_Return}; - KAction* a; - KShortcut shortcut; + QAction * a; + QList shortcuts; for(int i = 0; i < 31; ++i) { - a = new KAction(this); + shortcuts.clear(); + a = new QAction(this); m_collection->addAction(QString("val-select%1").arg(i+1,2,10,QChar('0')), a); a->setText(i18n("Select %1 (%2)", QChar('a'+i), i+1)); m_selectValueMapper->setMapping(a, i+1); connect(a, SIGNAL(triggered(bool)), m_selectValueMapper, SLOT(map())); m_actions << a; - a = new KAction(this); + a = new QAction(this); m_collection->addAction(QString("val-enter%1").arg(i+1,2,10,QChar('0')), a); a->setText(i18n("Enter %1 (%2)", QChar('a'+i), i+1)); - shortcut = a->shortcut(); - if (i < 25) {; - // Keys A to Y, for Sudoku puzzles. - shortcut.setPrimary( Qt::Key_A + i); + if (i < 25) { + // Keys A to Y, for Sudoku puzzles. + shortcuts << QKeySequence(Qt::Key_A + i); } else { - // Extras for keying in Mathdoku and Killer Sudoku puzzles. - shortcut.setPrimary (extras[i - 25]); + // Extras for keying in Mathdoku and Killer Sudoku puzzles. + shortcuts << QKeySequence(extras[i - 25]); } - if(i < 9) { - // Keys 1 to 9, for puzzles of order 9 or less. - shortcut.setAlternate( Qt::Key_1 + i); + if (i < 9) { + // Keys 1 to 9, for puzzles of order 9 or less. + shortcuts << QKeySequence(Qt::Key_1 + i); } - a->setShortcut(shortcut); + m_collection->setDefaultShortcuts(a, shortcuts); m_enterValueMapper->setMapping(a, i+1); connect(a, SIGNAL(triggered(bool)), m_enterValueMapper, SLOT(map())); m_actions << a; if (i >= 25) { - continue; + continue; } - a = new KAction(this); + shortcuts.clear(); + a = new QAction(this); m_collection->addAction(QString("val-mark%1").arg(i+1,2,10,QChar('0')), a); a->setText(i18n("Mark %1 (%2)", QChar('a'+i), i+1)); - shortcut = a->shortcut(); - shortcut.setPrimary( QKeySequence(Qt::ShiftModifier | Qt::Key_A + i)); + shortcuts << QKeySequence(Qt::ShiftModifier | (Qt::Key_A + i)); if(i < 9) { - shortcut.setAlternate( QKeySequence(Qt::ShiftModifier | Qt::Key_1 + i)); + shortcuts << QKeySequence(Qt::ShiftModifier | (Qt::Key_1 + i)); } - a->setShortcut(shortcut); + m_collection->setDefaultShortcuts(a, shortcuts); m_markValueMapper->setMapping(a, i+1); connect(a, SIGNAL(triggered(bool)), m_markValueMapper, SLOT(map())); m_actions << a; } - a = new KAction(this); + a = new QAction(this); m_collection->addAction("move_up", a); a->setText(i18n("Move Up")); - a->setShortcut(Qt::Key_Up); + m_collection->setDefaultShortcut(a, Qt::Key_Up); connect(a, SIGNAL(triggered(bool)), SLOT(moveUp())); m_actions << a; - a = new KAction(this); + a = new QAction(this); m_collection->addAction("move_down", a); a->setText(i18n("Move Down")); - a->setShortcut(Qt::Key_Down); + m_collection->setDefaultShortcut(a, Qt::Key_Down); connect(a, SIGNAL(triggered(bool)), SLOT(moveDown())); m_actions << a; - a = new KAction(this); + a = new QAction(this); m_collection->addAction("move_left", a); a->setText(i18n("Move Left")); - a->setShortcut(Qt::Key_Left); + m_collection->setDefaultShortcut(a, Qt::Key_Left); connect(a, SIGNAL(triggered(bool)), SLOT(moveLeft())); m_actions << a; - a = new KAction(this); + a = new QAction(this); m_collection->addAction("move_right", a); a->setText(i18n("Move Right")); - a->setShortcut(Qt::Key_Right); + m_collection->setDefaultShortcut(a, Qt::Key_Right); connect(a, SIGNAL(triggered(bool)), SLOT(moveRight())); m_actions << a; - a = new KAction(this); + a = new QAction(this); m_collection->addAction("move_clear_cell", a); a->setText(i18n("Clear Cell")); - shortcut = a->shortcut(); - shortcut.setPrimary(Qt::Key_Backspace); - shortcut.setAlternate(Qt::Key_Delete); - a->setShortcut(shortcut); + m_collection->setDefaultShortcuts(a, QList() + << QKeySequence(Qt::Key_Backspace) + << QKeySequence(Qt::Key_Delete)); connect(a, SIGNAL(triggered(bool)), SLOT(clearValue())); m_actions << a; } void GameActions::associateWidget(QWidget* widget) { - QVector::iterator it; + QVector::iterator it; for(it = m_actions.begin(); it != m_actions.end(); ++it) { widget->addAction(*it); } @@ -166,4 +165,4 @@ } -#include "gameactions.moc" + diff --git a/src/gui/views/ksview.cpp b/src/gui/views/ksview.cpp --- a/src/gui/views/ksview.cpp +++ b/src/gui/views/ksview.cpp @@ -28,7 +28,7 @@ #include #include -#include "ksview.moc" + #include "puzzle.h" diff --git a/src/gui/views/renderer.h b/src/gui/views/renderer.h --- a/src/gui/views/renderer.h +++ b/src/gui/views/renderer.h @@ -21,14 +21,15 @@ #ifndef _KSUDOKU_RENDERER_H_ #define _KSUDOKU_RENDERER_H_ +#include + #include // #include #include class QPixmap; class QSize; class QSvgRenderer; -class KPixmapCache; namespace ksudoku { @@ -122,7 +123,7 @@ QVector m_markerNames; QString m_currentTheme; QSvgRenderer* m_renderer; - KPixmapCache* m_cache; + KImageCache* m_cache; bool m_mathdokuStyle; }; diff --git a/src/gui/views/renderer.cpp b/src/gui/views/renderer.cpp --- a/src/gui/views/renderer.cpp +++ b/src/gui/views/renderer.cpp @@ -21,9 +21,8 @@ #include "renderer.h" #include -#include -#include +#include #define USE_UNSTABLE_LIBKDEGAMESPRIVATE_API #include @@ -43,8 +42,7 @@ Renderer::Renderer() { m_renderer = new QSvgRenderer(); - m_cache = new KPixmapCache("ksudoku-cache"); - m_cache->setCacheLimit(3*1024); + m_cache = new KImageCache(QStringLiteral("ksudoku-cache"), 3*1024); m_mathdokuStyle = false; if(!loadTheme(Settings::theme())) @@ -84,7 +82,7 @@ if(discardCache) { kDebug() << "discarding cache"; - m_cache->discard(); + m_cache->clear(); } fillNameHashes(); @@ -148,14 +146,14 @@ QPixmap pix; QString cacheName = QString("background_%1x%2").arg(size.width()).arg(size.height()); - if(!m_cache->find(cacheName, pix)) + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size); pix.fill(Qt::transparent); QPainter p(&pix); m_renderer->render(&p, "background"); p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; } @@ -184,7 +182,7 @@ QString cacheName = QString("special_%1_%2").arg(m_specialNames[type]).arg(size); QPixmap pix; - if(!m_cache->find(cacheName, pix)) { + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size, size); pix.fill(Qt::transparent); QPainter p(&pix); @@ -198,7 +196,7 @@ m_renderer->render(&p, m_specialNames[type], r); p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; @@ -216,7 +214,7 @@ QString cacheName = QString("%1_%2_%3_%4").arg(set).arg(symbol).arg(size).arg(type); QPixmap pix; - if(!m_cache->find(cacheName, pix)) { + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size, size); pix.fill(Qt::transparent); QPainter p(&pix); @@ -247,7 +245,7 @@ break; } p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; @@ -300,7 +298,7 @@ QString groupName = QString("markers%1").arg(range); QString cacheName = QString("%1_%2_%3").arg(groupName).arg(symbol).arg(size); QPixmap pix; - if(!m_cache->find(cacheName, pix)) { + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size, size); pix.fill(Qt::transparent); QPainter p(&pix); @@ -316,7 +314,7 @@ m_renderer->render(&p, QString("%1_%2").arg(set).arg(symbol), r); p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; @@ -383,7 +381,7 @@ QString cacheName = QString("contour_%1_%2_%3").arg(m_borderTypes[type]).arg(m_borderNames[border]).arg(size); QPixmap pix; - if(!m_cache->find(cacheName, pix)) { + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size, size); pix.fill(Qt::transparent); QPainter p(&pix); @@ -397,7 +395,7 @@ m_renderer->render(&p, QString("%1_%2").arg(m_borderTypes[type]).arg(m_borderNames[border]), r); p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; @@ -408,7 +406,7 @@ QString cacheName = QString("special_%1_%2").arg(m_special3dNames[type]).arg(size); QPixmap pix; - if(!m_cache->find(cacheName, pix)) { + if(!m_cache->findPixmap(cacheName, &pix)) { pix = QPixmap(size, size); pix.fill(Qt::transparent); QPainter p(&pix); @@ -422,7 +420,7 @@ m_renderer->render(&p, m_special3dNames[type], r); p.end(); - m_cache->insert(cacheName, pix); + m_cache->insertPixmap(cacheName, pix); } return pix; diff --git a/src/gui/views/roxdokuview.cpp b/src/gui/views/roxdokuview.cpp --- a/src/gui/views/roxdokuview.cpp +++ b/src/gui/views/roxdokuview.cpp @@ -31,7 +31,7 @@ //Added by qt3to4: #include #include -#include +#include #include "settings.h" @@ -547,4 +547,4 @@ } -#include "roxdokuview.moc" + diff --git a/src/gui/views/valuelistwidget.cpp b/src/gui/views/valuelistwidget.cpp --- a/src/gui/views/valuelistwidget.cpp +++ b/src/gui/views/valuelistwidget.cpp @@ -19,7 +19,7 @@ #include "valuelistwidget.h" -#include "valuelistwidget.moc" + #include #include diff --git a/src/gui/views/view2d.cpp b/src/gui/views/view2d.cpp --- a/src/gui/views/view2d.cpp +++ b/src/gui/views/view2d.cpp @@ -20,7 +20,7 @@ #include "view2d.h" -#include "view2d.moc" + #include #include diff --git a/src/gui/welcomescreen.cpp b/src/gui/welcomescreen.cpp --- a/src/gui/welcomescreen.cpp +++ b/src/gui/welcomescreen.cpp @@ -20,8 +20,9 @@ #include "welcomescreen.h" #include - +#include #include +#include #include "ksudokugame.h" #include "globals.h" @@ -59,7 +60,7 @@ gameListWidget->setSelectionMode(QAbstractItemView::SingleSelection); // Get the previous puzzle configuration. - KConfigGroup gameGroup (KGlobal::config(), "KSudokuGame"); + KConfigGroup gameGroup (KSharedConfig::openConfig(), "KSudokuGame"); m_selectedPuzzle = gameGroup.readEntry("SelectedPuzzle", 0); m_difficulty = gameGroup.readEntry("Difficulty", (int) VeryEasy); m_symmetry = gameGroup.readEntry("Symmetry" , (int) CENTRAL); @@ -72,15 +73,15 @@ connect(gameListWidget->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(onCurrentVariantChange())); - connect(getNewGameButton, SIGNAL(clicked(bool)), this, SLOT(getNewVariant())); + connect(getNewGameButton, &QPushButton::clicked, this, &WelcomeScreen::getNewVariant); // TODO disabled due to missing per-game config dialog // connect(configureGameButton, SIGNAL(clicked(bool)), this, SLOT(configureVariant())); // connect(playGameButton, SIGNAL(clicked(bool)), this, SLOT(playVariant())); // Disable old create-game code. // connect(gameListWidget, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(playVariant())); // Disable old create-game code. - connect(startEmptyButton, SIGNAL(clicked(bool)), this, SLOT(startEmptyGame())); - connect(puzzleGeneratorButton, SIGNAL(clicked(bool)), this, SLOT(generatePuzzle())); - connect(gameListWidget, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(generatePuzzle())); + connect(startEmptyButton, &QPushButton::clicked, this, &WelcomeScreen::startEmptyGame); + connect(puzzleGeneratorButton, &QPushButton::clicked, this, &WelcomeScreen::generatePuzzle); + connect(gameListWidget, &QListView::doubleClicked, this, &WelcomeScreen::generatePuzzle); // GHNS is not implemented yet, so don't show an unuseful button getNewGameButton->hide(); @@ -169,7 +170,7 @@ QModelIndex index = gameListWidget->currentIndex(); m_selectedPuzzle = index.row(); - KConfigGroup gameGroup (KGlobal::config(), "KSudokuGame"); + KConfigGroup gameGroup (KSharedConfig::openConfig(), "KSudokuGame"); gameGroup.writeEntry("SelectedPuzzle", m_selectedPuzzle); gameGroup.writeEntry("Difficulty", m_difficulty); gameGroup.writeEntry("Symmetry" , m_symmetry); @@ -184,4 +185,4 @@ } -#include "welcomescreen.moc" + diff --git a/src/logic/CMakeLists.txt b/src/logic/CMakeLists.txt --- a/src/logic/CMakeLists.txt +++ b/src/logic/CMakeLists.txt @@ -3,5 +3,5 @@ puzzle.cpp ) -kde4_add_library(ksudoku_logic STATIC ${ksudoku_logic_SRCS}) -target_link_libraries(ksudoku_logic ${QT_QTCORE_LIBRARY}) +add_library(ksudoku_logic STATIC ${ksudoku_logic_SRCS}) +target_link_libraries(ksudoku_logic Qt5::Core) diff --git a/src/logic/puzzle.cpp b/src/logic/puzzle.cpp --- a/src/logic/puzzle.cpp +++ b/src/logic/puzzle.cpp @@ -22,9 +22,8 @@ #include "puzzle.h" #include -#include -#include +#include #include #include "sudokuboard.h" @@ -54,7 +53,7 @@ bool Puzzle::init() { if(m_initialized) return false; - + if(m_withSolution) return false; diff --git a/src/main.cpp b/src/main.cpp --- a/src/main.cpp +++ b/src/main.cpp @@ -21,17 +21,22 @@ ***************************************************************************/ #include "ksudoku.h" -#include + //#include -#include -#include -#include +#include +#include + +#include #include +#include -#include -#include +#include +#include +#include +#include -#include +#include +#include static const char description[] = @@ -42,33 +47,43 @@ int main(int argc, char **argv) { - std::srand(time(0)); + qsrand(std::time(nullptr)); + QApplication app(argc, argv); + KLocalizedString::setApplicationDomain("ksudoku"); - KAboutData about("ksudoku", 0, - ki18n("KSudoku"), + KAboutData about("ksudoku", + i18n("KSudoku"), version, - ki18n("KSudoku - Sudoku games and more"), - KAboutData::License_GPL_V2, - ki18n("(c) 2005-2007 The KSudoku Authors"), - KLocalizedString(), "http://ksudoku.sourceforge.net/"); - about.addAuthor( ki18n("Francesco Rossi"), ki18n("KSudoku Author"), "redsh@email.it" ); - about.addAuthor( ki18n("Johannes Bergmeier"), ki18n("Maintainer"), "Johannes.Bergmeier@gmx.net" ); - about.addAuthor( ki18n("Ian Wadham"), ki18n("New puzzle generator and solver"), "iandw.au@gmail.com" ); - about.addAuthor( ki18n("Mick Kappenburg"), ki18n("Printing and export of 0.4"), "ksudoku@kappendburg.net"); - about.addAuthor( ki18n("Thanks to NeHe for OpenGL tutorials"), KLocalizedString(), "nehe.gamedev.net"); - about.addCredit( ki18n("David Bau"), ki18n("Algorithms for new puzzle generator and solver at davidbau.com/archives/2006/09/04/sudoku_generator.html"), ""); - KCmdLineArgs::init(argc, argv, &about); - - KCmdLineOptions options; - options.add("+[URL]", ki18n( "Document to open" )); - KCmdLineArgs::addCmdLineOptions(options); - KApplication app; - KGlobal::locale()->insertCatalog( QLatin1String( "libkdegames" )); + i18n(description), + KAboutLicense::GPL_V2, + i18n("(c) 2005-2007 The KSudoku Authors"), + QString(), "https://games.kde.org/game.php?game=ksudoku"); + about.addAuthor( i18n("Francesco Rossi"), i18n("KSudoku Author"), "redsh@email.it" ); + about.addAuthor( i18n("Johannes Bergmeier"), i18n("Maintainer"), "Johannes.Bergmeier@gmx.net" ); + about.addAuthor( i18n("Ian Wadham"), i18n("New puzzle generator and solver"), "iandw.au@gmail.com" ); + about.addAuthor( i18n("Mick Kappenburg"), i18n("Printing and export of 0.4"), "ksudoku@kappendburg.net"); + about.addAuthor( i18n("Thanks to NeHe for OpenGL tutorials"), QString(), "nehe.gamedev.net"); + about.addCredit( i18n("David Bau"), i18n("Algorithms for new puzzle generator and solver at davidbau.com/archives/2006/09/04/sudoku_generator.html"), ""); + + KAboutData::setApplicationData(about); + app.setOrganizationDomain(QStringLiteral("kde.org")); + app.setWindowIcon(QIcon::fromTheme(QStringLiteral("ksudoku"))); + + QCommandLineParser parser; + about.setupCommandLine(&parser); + parser.addVersionOption(); + parser.addHelpOption(); + parser.addPositionalArgument(QLatin1String("[URL]"), i18n( "Document to open" )); + + parser.process(app); + about.processCommandLine(&parser); + + KCrash::initialize(); // register ourselves as a dcop client // app.dcopClient()->registerAs(app.name(), false); //TODO PORT - - KConfigDialogManager::changedMap()->insert("ksudoku::SymbolConfigListWidget", SIGNAL(itemChanged(QListWidgetItem*))); + + KConfigDialogManager::changedMap()->insert("ksudoku::SymbolConfigListWidget", SIGNAL(itemChanged(QListWidgetItem*))); // see if we are starting with session management /*if (app.isRestored()) @@ -81,15 +96,14 @@ widget->show(); // no session.. just start up normally - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - if (args->count() != 0) + if (parser.positionalArguments().count() != 0) { - for (int i = 0; i < args->count(); ++i) + for (int i = 0; i < parser.positionalArguments().count(); ++i) { - widget->loadGame(args->url(i)); + widget->loadGame(QUrl::fromUserInput(parser.positionalArguments().at(i), QDir::currentPath())); } } - args->clear(); + //} //TODO PORT return app.exec(); diff --git a/src/shapes/hi128-action-ksudoku-jigsaw.png b/src/shapes/128-actions-ksudoku-jigsaw.png rename from src/shapes/hi128-action-ksudoku-jigsaw.png rename to src/shapes/128-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi128-action-ksudoku-ksudoku_16x16.png b/src/shapes/128-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi128-action-ksudoku-ksudoku_16x16.png rename to src/shapes/128-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi128-action-ksudoku-ksudoku_25x25.png b/src/shapes/128-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi128-action-ksudoku-ksudoku_25x25.png rename to src/shapes/128-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi128-action-ksudoku-ksudoku_4x4.png b/src/shapes/128-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi128-action-ksudoku-ksudoku_4x4.png rename to src/shapes/128-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi128-action-ksudoku-ksudoku_9x9.png b/src/shapes/128-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi128-action-ksudoku-ksudoku_9x9.png rename to src/shapes/128-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi128-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/128-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi128-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/128-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi128-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/128-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi128-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/128-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi128-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/128-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi128-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/128-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi128-action-ksudoku-samurai.png b/src/shapes/128-actions-ksudoku-samurai.png rename from src/shapes/hi128-action-ksudoku-samurai.png rename to src/shapes/128-actions-ksudoku-samurai.png diff --git a/src/shapes/hi128-action-ksudoku-tiny_samurai.png b/src/shapes/128-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi128-action-ksudoku-tiny_samurai.png rename to src/shapes/128-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi128-action-ksudoku-xsudoku.png b/src/shapes/128-actions-ksudoku-xsudoku.png rename from src/shapes/hi128-action-ksudoku-xsudoku.png rename to src/shapes/128-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi128-action-ksudoku.png b/src/shapes/128-actions-ksudoku.png rename from src/shapes/hi128-action-ksudoku.png rename to src/shapes/128-actions-ksudoku.png diff --git a/src/shapes/hi16-action-ksudoku-jigsaw.png b/src/shapes/16-actions-ksudoku-jigsaw.png rename from src/shapes/hi16-action-ksudoku-jigsaw.png rename to src/shapes/16-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi16-action-ksudoku-ksudoku_16x16.png b/src/shapes/16-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi16-action-ksudoku-ksudoku_16x16.png rename to src/shapes/16-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi16-action-ksudoku-ksudoku_25x25.png b/src/shapes/16-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi16-action-ksudoku-ksudoku_25x25.png rename to src/shapes/16-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi16-action-ksudoku-ksudoku_4x4.png b/src/shapes/16-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi16-action-ksudoku-ksudoku_4x4.png rename to src/shapes/16-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi16-action-ksudoku-ksudoku_9x9.png b/src/shapes/16-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi16-action-ksudoku-ksudoku_9x9.png rename to src/shapes/16-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi16-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/16-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi16-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/16-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi16-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/16-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi16-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/16-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi16-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/16-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi16-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/16-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi16-action-ksudoku-samurai.png b/src/shapes/16-actions-ksudoku-samurai.png rename from src/shapes/hi16-action-ksudoku-samurai.png rename to src/shapes/16-actions-ksudoku-samurai.png diff --git a/src/shapes/hi16-action-ksudoku-tiny_samurai.png b/src/shapes/16-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi16-action-ksudoku-tiny_samurai.png rename to src/shapes/16-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi16-action-ksudoku-xsudoku.png b/src/shapes/16-actions-ksudoku-xsudoku.png rename from src/shapes/hi16-action-ksudoku-xsudoku.png rename to src/shapes/16-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi16-action-ksudoku.png b/src/shapes/16-actions-ksudoku.png rename from src/shapes/hi16-action-ksudoku.png rename to src/shapes/16-actions-ksudoku.png diff --git a/src/shapes/hi22-action-ksudoku-jigsaw.png b/src/shapes/22-actions-ksudoku-jigsaw.png rename from src/shapes/hi22-action-ksudoku-jigsaw.png rename to src/shapes/22-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi22-action-ksudoku-ksudoku_16x16.png b/src/shapes/22-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi22-action-ksudoku-ksudoku_16x16.png rename to src/shapes/22-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi22-action-ksudoku-ksudoku_25x25.png b/src/shapes/22-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi22-action-ksudoku-ksudoku_25x25.png rename to src/shapes/22-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi22-action-ksudoku-ksudoku_4x4.png b/src/shapes/22-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi22-action-ksudoku-ksudoku_4x4.png rename to src/shapes/22-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi22-action-ksudoku-ksudoku_9x9.png b/src/shapes/22-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi22-action-ksudoku-ksudoku_9x9.png rename to src/shapes/22-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi22-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/22-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi22-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/22-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi22-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/22-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi22-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/22-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi22-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/22-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi22-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/22-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi22-action-ksudoku-samurai.png b/src/shapes/22-actions-ksudoku-samurai.png rename from src/shapes/hi22-action-ksudoku-samurai.png rename to src/shapes/22-actions-ksudoku-samurai.png diff --git a/src/shapes/hi22-action-ksudoku-tiny_samurai.png b/src/shapes/22-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi22-action-ksudoku-tiny_samurai.png rename to src/shapes/22-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi22-action-ksudoku-xsudoku.png b/src/shapes/22-actions-ksudoku-xsudoku.png rename from src/shapes/hi22-action-ksudoku-xsudoku.png rename to src/shapes/22-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi22-action-ksudoku.png b/src/shapes/22-actions-ksudoku.png rename from src/shapes/hi22-action-ksudoku.png rename to src/shapes/22-actions-ksudoku.png diff --git a/src/shapes/hi32-action-ksudoku-jigsaw.png b/src/shapes/32-actions-ksudoku-jigsaw.png rename from src/shapes/hi32-action-ksudoku-jigsaw.png rename to src/shapes/32-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi32-action-ksudoku-ksudoku_16x16.png b/src/shapes/32-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi32-action-ksudoku-ksudoku_16x16.png rename to src/shapes/32-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi32-action-ksudoku-ksudoku_25x25.png b/src/shapes/32-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi32-action-ksudoku-ksudoku_25x25.png rename to src/shapes/32-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi32-action-ksudoku-ksudoku_4x4.png b/src/shapes/32-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi32-action-ksudoku-ksudoku_4x4.png rename to src/shapes/32-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi32-action-ksudoku-ksudoku_9x9.png b/src/shapes/32-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi32-action-ksudoku-ksudoku_9x9.png rename to src/shapes/32-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi32-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/32-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi32-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/32-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi32-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/32-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi32-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/32-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi32-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/32-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi32-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/32-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi32-action-ksudoku-samurai.png b/src/shapes/32-actions-ksudoku-samurai.png rename from src/shapes/hi32-action-ksudoku-samurai.png rename to src/shapes/32-actions-ksudoku-samurai.png diff --git a/src/shapes/hi32-action-ksudoku-tiny_samurai.png b/src/shapes/32-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi32-action-ksudoku-tiny_samurai.png rename to src/shapes/32-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi32-action-ksudoku-xsudoku.png b/src/shapes/32-actions-ksudoku-xsudoku.png rename from src/shapes/hi32-action-ksudoku-xsudoku.png rename to src/shapes/32-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi32-action-ksudoku.png b/src/shapes/32-actions-ksudoku.png rename from src/shapes/hi32-action-ksudoku.png rename to src/shapes/32-actions-ksudoku.png diff --git a/src/shapes/hi48-action-ksudoku-jigsaw.png b/src/shapes/48-actions-ksudoku-jigsaw.png rename from src/shapes/hi48-action-ksudoku-jigsaw.png rename to src/shapes/48-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi48-action-ksudoku-ksudoku_16x16.png b/src/shapes/48-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi48-action-ksudoku-ksudoku_16x16.png rename to src/shapes/48-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi48-action-ksudoku-ksudoku_25x25.png b/src/shapes/48-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi48-action-ksudoku-ksudoku_25x25.png rename to src/shapes/48-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi48-action-ksudoku-ksudoku_4x4.png b/src/shapes/48-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi48-action-ksudoku-ksudoku_4x4.png rename to src/shapes/48-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi48-action-ksudoku-ksudoku_9x9.png b/src/shapes/48-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi48-action-ksudoku-ksudoku_9x9.png rename to src/shapes/48-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi48-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/48-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi48-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/48-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi48-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/48-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi48-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/48-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi48-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/48-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi48-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/48-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi48-action-ksudoku-samurai.png b/src/shapes/48-actions-ksudoku-samurai.png rename from src/shapes/hi48-action-ksudoku-samurai.png rename to src/shapes/48-actions-ksudoku-samurai.png diff --git a/src/shapes/hi48-action-ksudoku-tiny_samurai.png b/src/shapes/48-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi48-action-ksudoku-tiny_samurai.png rename to src/shapes/48-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi48-action-ksudoku-xsudoku.png b/src/shapes/48-actions-ksudoku-xsudoku.png rename from src/shapes/hi48-action-ksudoku-xsudoku.png rename to src/shapes/48-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi48-action-ksudoku.png b/src/shapes/48-actions-ksudoku.png rename from src/shapes/hi48-action-ksudoku.png rename to src/shapes/48-actions-ksudoku.png diff --git a/src/shapes/hi64-action-ksudoku-jigsaw.png b/src/shapes/64-actions-ksudoku-jigsaw.png rename from src/shapes/hi64-action-ksudoku-jigsaw.png rename to src/shapes/64-actions-ksudoku-jigsaw.png diff --git a/src/shapes/hi64-action-ksudoku-ksudoku_16x16.png b/src/shapes/64-actions-ksudoku-ksudoku_16x16.png rename from src/shapes/hi64-action-ksudoku-ksudoku_16x16.png rename to src/shapes/64-actions-ksudoku-ksudoku_16x16.png diff --git a/src/shapes/hi64-action-ksudoku-ksudoku_25x25.png b/src/shapes/64-actions-ksudoku-ksudoku_25x25.png rename from src/shapes/hi64-action-ksudoku-ksudoku_25x25.png rename to src/shapes/64-actions-ksudoku-ksudoku_25x25.png diff --git a/src/shapes/hi64-action-ksudoku-ksudoku_4x4.png b/src/shapes/64-actions-ksudoku-ksudoku_4x4.png rename from src/shapes/hi64-action-ksudoku-ksudoku_4x4.png rename to src/shapes/64-actions-ksudoku-ksudoku_4x4.png diff --git a/src/shapes/hi64-action-ksudoku-ksudoku_9x9.png b/src/shapes/64-actions-ksudoku-ksudoku_9x9.png rename from src/shapes/hi64-action-ksudoku-ksudoku_9x9.png rename to src/shapes/64-actions-ksudoku-ksudoku_9x9.png diff --git a/src/shapes/hi64-action-ksudoku-roxdoku_3x3x3.png b/src/shapes/64-actions-ksudoku-roxdoku_3x3x3.png rename from src/shapes/hi64-action-ksudoku-roxdoku_3x3x3.png rename to src/shapes/64-actions-ksudoku-roxdoku_3x3x3.png diff --git a/src/shapes/hi64-action-ksudoku-roxdoku_4x4x4.png b/src/shapes/64-actions-ksudoku-roxdoku_4x4x4.png rename from src/shapes/hi64-action-ksudoku-roxdoku_4x4x4.png rename to src/shapes/64-actions-ksudoku-roxdoku_4x4x4.png diff --git a/src/shapes/hi64-action-ksudoku-roxdoku_5x5x5.png b/src/shapes/64-actions-ksudoku-roxdoku_5x5x5.png rename from src/shapes/hi64-action-ksudoku-roxdoku_5x5x5.png rename to src/shapes/64-actions-ksudoku-roxdoku_5x5x5.png diff --git a/src/shapes/hi64-action-ksudoku-samurai.png b/src/shapes/64-actions-ksudoku-samurai.png rename from src/shapes/hi64-action-ksudoku-samurai.png rename to src/shapes/64-actions-ksudoku-samurai.png diff --git a/src/shapes/hi64-action-ksudoku-tiny_samurai.png b/src/shapes/64-actions-ksudoku-tiny_samurai.png rename from src/shapes/hi64-action-ksudoku-tiny_samurai.png rename to src/shapes/64-actions-ksudoku-tiny_samurai.png diff --git a/src/shapes/hi64-action-ksudoku-xsudoku.png b/src/shapes/64-actions-ksudoku-xsudoku.png rename from src/shapes/hi64-action-ksudoku-xsudoku.png rename to src/shapes/64-actions-ksudoku-xsudoku.png diff --git a/src/shapes/hi64-action-ksudoku.png b/src/shapes/64-actions-ksudoku.png rename from src/shapes/hi64-action-ksudoku.png rename to src/shapes/64-actions-ksudoku.png diff --git a/src/shapes/CMakeLists.txt b/src/shapes/CMakeLists.txt --- a/src/shapes/CMakeLists.txt +++ b/src/shapes/CMakeLists.txt @@ -18,7 +18,82 @@ Mathdoku_Settable.desktop Mathdoku_Settable.xml Killer_4x4.desktop Killer_4x4.xml Killer_9x9.desktop Killer_9x9.xml - DESTINATION ${DATA_INSTALL_DIR}/ksudoku + DESTINATION ${KDE_INSTALL_DATADIR}/ksudoku ) -kde4_install_icons(${DATA_INSTALL_DIR}/ksudoku/icons) +ecm_install_icons(ICONS + 128-actions-ksudoku-jigsaw.png + 128-actions-ksudoku-ksudoku_16x16.png + 128-actions-ksudoku-ksudoku_25x25.png + 128-actions-ksudoku-ksudoku_4x4.png + 128-actions-ksudoku-ksudoku_9x9.png + 128-actions-ksudoku-roxdoku_3x3x3.png + 128-actions-ksudoku-roxdoku_4x4x4.png + 128-actions-ksudoku-roxdoku_5x5x5.png + 128-actions-ksudoku-samurai.png + 128-actions-ksudoku-tiny_samurai.png + 128-actions-ksudoku-xsudoku.png + 128-actions-ksudoku.png + 16-actions-ksudoku-jigsaw.png + 16-actions-ksudoku-ksudoku_16x16.png + 16-actions-ksudoku-ksudoku_25x25.png + 16-actions-ksudoku-ksudoku_4x4.png + 16-actions-ksudoku-ksudoku_9x9.png + 16-actions-ksudoku-roxdoku_3x3x3.png + 16-actions-ksudoku-roxdoku_4x4x4.png + 16-actions-ksudoku-roxdoku_5x5x5.png + 16-actions-ksudoku-samurai.png + 16-actions-ksudoku-tiny_samurai.png + 16-actions-ksudoku-xsudoku.png + 16-actions-ksudoku.png + 22-actions-ksudoku-jigsaw.png + 22-actions-ksudoku-ksudoku_16x16.png + 22-actions-ksudoku-ksudoku_25x25.png + 22-actions-ksudoku-ksudoku_4x4.png + 22-actions-ksudoku-ksudoku_9x9.png + 22-actions-ksudoku-roxdoku_3x3x3.png + 22-actions-ksudoku-roxdoku_4x4x4.png + 22-actions-ksudoku-roxdoku_5x5x5.png + 22-actions-ksudoku-samurai.png + 22-actions-ksudoku-tiny_samurai.png + 22-actions-ksudoku-xsudoku.png + 22-actions-ksudoku.png + 32-actions-ksudoku-jigsaw.png + 32-actions-ksudoku-ksudoku_16x16.png + 32-actions-ksudoku-ksudoku_25x25.png + 32-actions-ksudoku-ksudoku_4x4.png + 32-actions-ksudoku-ksudoku_9x9.png + 32-actions-ksudoku-roxdoku_3x3x3.png + 32-actions-ksudoku-roxdoku_4x4x4.png + 32-actions-ksudoku-roxdoku_5x5x5.png + 32-actions-ksudoku-samurai.png + 32-actions-ksudoku-tiny_samurai.png + 32-actions-ksudoku-xsudoku.png + 32-actions-ksudoku.png + 48-actions-ksudoku-jigsaw.png + 48-actions-ksudoku-ksudoku_16x16.png + 48-actions-ksudoku-ksudoku_25x25.png + 48-actions-ksudoku-ksudoku_4x4.png + 48-actions-ksudoku-ksudoku_9x9.png + 48-actions-ksudoku-roxdoku_3x3x3.png + 48-actions-ksudoku-roxdoku_4x4x4.png + 48-actions-ksudoku-roxdoku_5x5x5.png + 48-actions-ksudoku-samurai.png + 48-actions-ksudoku-tiny_samurai.png + 48-actions-ksudoku-xsudoku.png + 48-actions-ksudoku.png + 64-actions-ksudoku-jigsaw.png + 64-actions-ksudoku-ksudoku_16x16.png + 64-actions-ksudoku-ksudoku_25x25.png + 64-actions-ksudoku-ksudoku_4x4.png + 64-actions-ksudoku-ksudoku_9x9.png + 64-actions-ksudoku-roxdoku_3x3x3.png + 64-actions-ksudoku-roxdoku_4x4x4.png + 64-actions-ksudoku-roxdoku_5x5x5.png + 64-actions-ksudoku-samurai.png + 64-actions-ksudoku-tiny_samurai.png + 64-actions-ksudoku-xsudoku.png + 64-actions-ksudoku.png + DESTINATION ${KDE_INSTALL_DATADIR}/ksudoku/icons + THEME hicolor +) diff --git a/src/themes/CMakeLists.txt b/src/themes/CMakeLists.txt --- a/src/themes/CMakeLists.txt +++ b/src/themes/CMakeLists.txt @@ -1,4 +1,4 @@ install( FILES abstraction.svg abstraction.desktop ksudoku_scrible.svg ksudoku_scrible.desktop default.desktop ksudoku_egyptian.svg egyptian_preview.png scribble_preview.png abstraction_preview.png - DESTINATION ${DATA_INSTALL_DIR}/ksudoku/themes + DESTINATION ${KDE_INSTALL_DATADIR}/ksudoku/themes )