Hello community, here is the log from the commit of package katomic for openSUSE:Factory checked in at 2015-05-11 17:37:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/katomic (Old) and /work/SRC/openSUSE:Factory/.katomic.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "katomic" Changes: -------- --- /work/SRC/openSUSE:Factory/katomic/katomic.changes 2015-03-11 09:45:15.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.katomic.new/katomic.changes 2015-05-11 17:37:56.000000000 +0200 @@ -1,0 +2,22 @@ +Sat Apr 11 12:43:29 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.04.0 + * KDE Applications 15.04.0 + * https://www.kde.org/announcements/announce-applications-15.04.0.php + + +------------------------------------------------------------------- +Sat Mar 21 17:20:15 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.03.95 + * KDE Applications 15.04 RC + + +------------------------------------------------------------------- +Sun Mar 8 12:35:59 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.03.80 + * KDE Applications 15.04 Beta + + +------------------------------------------------------------------- Old: ---- katomic-14.12.3.tar.xz New: ---- katomic-15.04.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ katomic.spec ++++++ --- /var/tmp/diff_new_pack.bxFPk9/_old 2015-05-11 17:37:57.000000000 +0200 +++ /var/tmp/diff_new_pack.bxFPk9/_new 2015-05-11 17:37:57.000000000 +0200 @@ -18,16 +18,33 @@ Name: katomic BuildRequires: libkdegames-devel -BuildRequires: xz +BuildRequires: update-desktop-files +BuildRequires: pkgconfig(Qt5Widgets) +BuildRequires: pkgconfig(Qt5QuickWidgets) +BuildRequires: pkgconfig(Qt5Test) +BuildRequires: kconfig-devel +BuildRequires: kcoreaddons-devel +BuildRequires: kwidgetsaddons-devel +BuildRequires: ki18n-devel +BuildRequires: kguiaddons-devel +BuildRequires: kconfigwidgets-devel +BuildRequires: kitemviews-devel +BuildRequires: kiconthemes-devel +BuildRequires: kxmlgui-devel +BuildRequires: kio-devel +BuildRequires: knotifyconfig-devel +BuildRequires: kdelibs4support-devel +BuildRequires: knewstuff-devel Summary: Sokoban-like logic game License: GPL-2.0+ Group: Amusements/Games/Board/Puzzle Url: http://www.kde.org -Version: 14.12.3 +Version: 15.04.0 Release: 0 Source0: katomic-%{version}.tar.xz +Obsoletes: %{name}5 < %{version} +Provides: %{name}5 = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build -%kde4_runtime_requires %description KAtomic is a thinking game where you have to form chemical molecules @@ -38,14 +55,12 @@ %setup -q -n katomic-%{version} %build - %cmake_kde4 -d build + %cmake_kf5 -d build %make_jobs %install - cd build - %kde4_makeinstall - %suse_update_desktop_file -r katomic Game LogicGame - %kde_post_install + %kf5_makeinstall -C build + %suse_update_desktop_file -r org.kde.katomic Game LogicGame %post -p /sbin/ldconfig @@ -54,12 +69,14 @@ %files %defattr(-,root,root) %doc COPYING COPYING.DOC -%{_kde4_bindir}/katomic -%{_kde4_htmldir}/en/katomic/ -%{_kde4_iconsdir}/hicolor/*/apps/katomic.* -%{_kde4_appsdir}/katomic/ -%{_kde4_appsdir}/kconf_update/katomic-levelset* -%{_kde4_configdir}/katomic.knsrc -%{_kde4_applicationsdir}/katomic.desktop +%{_kf5_bindir}/katomic +%{_kf5_htmldir}/en/katomic/ +%{_kf5_iconsdir}/hicolor/*/apps/katomic.* +%{_kf5_appsdir}/katomic/ +%{_kf5_appsdir}/kconf_update/katomic-levelset* +%{_kf5_configdir}/katomic.knsrc +%{_kf5_applicationsdir}/org.kde.katomic.desktop +%_datadir/appdata/katomic.appdata.xml +%_datadir/kxmlgui5/katomic/ %changelog ++++++ katomic-14.12.3.tar.xz -> katomic-15.04.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/CMakeLists.txt new/katomic-15.04.0/CMakeLists.txt --- old/katomic-14.12.3/CMakeLists.txt 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/CMakeLists.txt 2015-04-06 00:56:33.000000000 +0200 @@ -1,15 +1,39 @@ project(katomic) -if(NOT COMPILING_KDEGAMES) - find_package(KDE4 REQUIRED) - include(KDE4Defaults) - include(MacroLibrary) - find_package(KDEGames 4.9.0 REQUIRED) - - 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") + +find_package(ECM 1.3.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 ) +find_package(KF5 REQUIRED COMPONENTS + CoreAddons + Config + WidgetsAddons + Config + I18n + GuiAddons + ConfigWidgets + ItemViews + IconThemes + XmlGui + KIO + NotifyConfig + NewStuff + ) + +find_package(KF5KDEGames 4.9.0 REQUIRED) + +include(FeatureSummary) +include(ECMInstallIcons) +include(KDEInstallDirs) +include(KDECompilerSettings) +include(KDECMakeSettings) + +add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) +add_definitions(-DTRANSLATION_DOMAIN="katomic") + add_subdirectory( levels ) add_subdirectory( doc ) @@ -28,28 +52,30 @@ levelsetdelegate.cpp chooselevelsetdialog.cpp ) -kde4_add_kcfg_files(katomic_SRCS prefs.kcfgc) -kde4_add_ui_files(katomic_SRCS levelsetwidget.ui) +kconfig_add_kcfg_files(katomic_SRCS prefs.kcfgc) +ki18n_wrap_ui(katomic_SRCS levelsetwidget.ui) -kde4_add_app_icon(katomic_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/hi*-app-katomic.png") -kde4_add_executable(katomic ${katomic_SRCS}) +#kde4_add_app_icon(katomic_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/hi*-app-katomic.png") +add_executable(katomic ${katomic_SRCS}) -target_link_libraries(katomic ${KDE4_KIO_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KNEWSTUFF3_LIBS} kdegames ) +target_link_libraries(katomic KF5::KIOCore KF5::NewStuff KF5KDEGames KF5::I18n KF5::DBusAddons KF5::NewStuff) install(TARGETS katomic ${INSTALL_TARGETS_DEFAULT_ARGS} ) ########### install files ############### -install( PROGRAMS katomic.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) -install( FILES katomicui.rc DESTINATION ${DATA_INSTALL_DIR}/katomic ) +install( PROGRAMS org.kde.katomic.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +install( FILES katomic.appdata.xml DESTINATION ${DATA_INSTALL_DIR}/appdata ) +install( FILES katomicui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/katomic ) install( FILES default_theme.svgz DESTINATION ${DATA_INSTALL_DIR}/katomic/pics/ ) # ^^^ default_theme.desktop is not installed at the moment install( FILES katomic.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) -kde4_install_icons( ${ICON_INSTALL_DIR} ) +ecm_install_icons(ICONS hi128-apps-katomic.png hi16-apps-katomic.png hi22-apps-katomic.png hi32-apps-katomic.png hi48-apps-katomic.png hi64-apps-katomic.png DESTINATION ${ICON_INSTALL_DIR} ) if(NOT WIN32) install( PROGRAMS katomic-levelset-upd.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR} ) install( FILES katomic-levelset.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR} ) endif(NOT WIN32) +feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/chooselevelsetdialog.cpp new/katomic-15.04.0/chooselevelsetdialog.cpp --- old/katomic-14.12.3/chooselevelsetdialog.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/chooselevelsetdialog.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -22,9 +22,14 @@ ********************************************************************/ #include "chooselevelsetdialog.h" -#include <KStandardDirs> -#include <KDebug> -#include <KNS3/KNewStuffButton> + +#include <QDebug> +#include <KNS3/Button> +#include <KConfigGroup> +#include <QDialogButtonBox> +#include <QPushButton> +#include <QVBoxLayout> +#include <QDir> #include "levelset.h" #include "levelsetdelegate.h" @@ -32,12 +37,22 @@ #include "commondefs.h" ChooseLevelSetDialog::ChooseLevelSetDialog(QWidget* parent) - : KDialog(parent) + : QDialog(parent) { setAttribute(Qt::WA_DeleteOnClose); - setCaption(i18n("Level Sets")); - setButtons(KDialog::Ok | KDialog::Apply | KDialog::Cancel); + setWindowTitle(i18n("Level Sets")); + m_buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel|QDialogButtonBox::Apply); + QWidget *mainWidget = new QWidget(this); + QVBoxLayout *mainLayout = new QVBoxLayout; + setLayout(mainLayout); + mainLayout->addWidget(mainWidget); + QPushButton *okButton = m_buttonBox->button(QDialogButtonBox::Ok); + okButton->setDefault(true); + okButton->setShortcut(Qt::CTRL | Qt::Key_Return); + connect(m_buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, this, &ChooseLevelSetDialog::slotOkClicked); + connect(m_buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, this, &ChooseLevelSetDialog::slotApplyClicked); + connect(m_buttonBox, &QDialogButtonBox::rejected, this, &ChooseLevelSetDialog::reject); QWidget* chooseWidget = new QWidget(this); m_ui.setupUi(chooseWidget); @@ -47,15 +62,16 @@ m_ui.m_pbNewStuff->setConfigFile("katomic.knsrc"); - setMainWidget(chooseWidget); + mainLayout->addWidget(chooseWidget); + mainLayout->addWidget(m_buttonBox); + resize(550, 350); loadData(); - connect(m_ui.m_lwLevelSets, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), - SLOT(updateApplyButton())); - connect(m_ui.m_pbNewStuff, SIGNAL(dialogFinished(KNS3::Entry::List)), SLOT(newStuffDone(KNS3::Entry::List))); + connect(m_ui.m_lwLevelSets, &QListWidget::currentItemChanged, this, &ChooseLevelSetDialog::updateApplyButton); + connect(m_ui.m_pbNewStuff, &KNS3::Button::dialogFinished, this, &ChooseLevelSetDialog::newStuffDone); } void ChooseLevelSetDialog::newStuffDone(const KNS3::Entry::List& entries) @@ -67,8 +83,14 @@ void ChooseLevelSetDialog::loadData() { m_ui.m_lwLevelSets->clear(); - - QStringList fileList = KGlobal::dirs()->findAllResources("appdata", "levels/*.dat", KStandardDirs::NoDuplicates); + QStringList fileList; + const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::DataLocation, "levels", QStandardPaths::LocateDirectory); + Q_FOREACH (const QString& dir, dirs) { + const QStringList fileNames = QDir(dir).entryList(QStringList() << QStringLiteral("*.dat")); + Q_FOREACH (const QString& file, fileNames) { + fileList.append(dir + '/' + file); + } + } LevelSet ls; foreach (const QString& fileName, fileList) @@ -78,7 +100,7 @@ if (!visibleName.isEmpty()) { QListWidgetItem* item = new QListWidgetItem; - item->setIcon(KIcon( QLatin1String( "katomic" ))); + item->setIcon(QIcon::fromTheme( QLatin1String( "katomic" ))); item->setText(visibleName); item->setData(KAtomic::LevelSetNameRole, ls.name()); item->setData(KAtomic::LevelSetDescriptionRole, ls.description()); @@ -113,22 +135,28 @@ } } -void ChooseLevelSetDialog::slotButtonClicked(int but) +void ChooseLevelSetDialog::saveSettings() { - if (but == KDialog::Ok || but == KDialog::Apply) - { - QListWidgetItem* item = m_ui.m_lwLevelSets->currentItem(); - if (item) - { - QString levelSetName = item->data(KAtomic::LevelSetNameRole).toString(); - emit levelSetChanged(levelSetName); - - m_gameCurrentLevelSetName = levelSetName; - updateApplyButton(); - } + QListWidgetItem* item = m_ui.m_lwLevelSets->currentItem(); + if (item) + { + QString levelSetName = item->data(KAtomic::LevelSetNameRole).toString(); + emit levelSetChanged(levelSetName); + + m_gameCurrentLevelSetName = levelSetName; + updateApplyButton(); } +} - KDialog::slotButtonClicked(but); +void ChooseLevelSetDialog::slotApplyClicked() +{ + saveSettings(); +} + +void ChooseLevelSetDialog::slotOkClicked() +{ + saveSettings(); + accept(); } void ChooseLevelSetDialog::updateApplyButton() @@ -136,6 +164,6 @@ QListWidgetItem* item = m_ui.m_lwLevelSets->currentItem(); if (item) { - enableButtonApply(item->data(KAtomic::LevelSetNameRole).toString() != m_gameCurrentLevelSetName); + m_buttonBox->button(QDialogButtonBox::Apply)->setEnabled(item->data(KAtomic::LevelSetNameRole).toString() != m_gameCurrentLevelSetName); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/chooselevelsetdialog.h new/katomic-15.04.0/chooselevelsetdialog.h --- old/katomic-14.12.3/chooselevelsetdialog.h 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/chooselevelsetdialog.h 2015-04-06 00:56:33.000000000 +0200 @@ -24,11 +24,11 @@ #ifndef CHOOSE_LEVEL_SET_DIALOG_H #define CHOOSE_LEVEL_SET_DIALOG_H -#include <KDialog> +#include <QDialog> #include "ui_levelsetwidget.h" - -class ChooseLevelSetDialog : public KDialog +class QDialogButtonBox; +class ChooseLevelSetDialog : public QDialog { Q_OBJECT @@ -42,15 +42,18 @@ void levelSetChanged(QString); protected Q_SLOTS: - void slotButtonClicked(int); void newStuffDone(const KNS3::Entry::List& entries); private Q_SLOTS: void updateApplyButton(); + void slotApplyClicked(); + void slotOkClicked(); private: + void saveSettings(); Ui::LevelSetWidget m_ui; QString m_gameCurrentLevelSetName; + QDialogButtonBox *m_buttonBox; }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/doc/CMakeLists.txt new/katomic-15.04.0/doc/CMakeLists.txt --- old/katomic-14.12.3/doc/CMakeLists.txt 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/doc/CMakeLists.txt 2015-04-06 00:56:33.000000000 +0200 @@ -1,4 +1,4 @@ ########### install files ############### # # -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR katomic) +kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR katomic) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/doc/index.docbook new/katomic-15.04.0/doc/index.docbook --- old/katomic-14.12.3/doc/index.docbook 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/doc/index.docbook 2015-04-06 00:56:33.000000000 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" ?> <!--IMPORTANT: please note that'do not change this!' notice does not apply to translators --> -<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [ <!ENTITY kappname "&katomic;"> <!ENTITY kappversion "3.0"><!--Application version. Use this variable everywhere it's needed.--> <!ENTITY package "kdegames"> <!-- do not change this! --> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/fielditem.cpp new/katomic-15.04.0/fielditem.cpp --- old/katomic-14.12.3/fielditem.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/fielditem.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -28,8 +28,8 @@ #include <QPainter> #include <QTimeLine> -#include <kdebug.h> -#include <klocale.h> +#include <QDebug> +#include <KLocalizedString> #include "molecule.h" #include "playfield.h" @@ -50,7 +50,7 @@ setOpacity(0.0); //start invisible m_timeLine = new QTimeLine(200); m_timeLine->setFrameRange( 0, 30 ); - connect(m_timeLine, SIGNAL(valueChanged(qreal)), SLOT(setOpacity(qreal)) ); + connect(m_timeLine, &QTimeLine::valueChanged, this, &ArrowFieldItem::setOpacity); } ArrowFieldItem::~ArrowFieldItem() @@ -197,9 +197,10 @@ // ----------------- MoleculePreviewItem ---------------------------- MoleculePreviewItem::MoleculePreviewItem( PlayField* scene ) - : QGraphicsItem( 0, scene ), m_renderer(scene->renderer()), m_width(0), + : QGraphicsItem( 0 ), m_renderer(scene->renderer()), m_width(0), m_atomSize(20), m_maxAtomSize(30), m_mol( 0 ) { + scene->addItem(this); } MoleculePreviewItem::~MoleculePreviewItem() @@ -262,4 +263,4 @@ painter->restore(); } -#include "fielditem.moc" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/gamewidget.cpp new/katomic-15.04.0/gamewidget.cpp --- old/katomic-14.12.3/gamewidget.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/gamewidget.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -29,12 +29,11 @@ #include <QVBoxLayout> #include <QTimer> // Next Level after N seconds #include <kmessagebox.h> -#include <klocale.h> -#include <kstandarddirs.h> +#include <KLocalizedString> #include <kconfig.h> -#include <kglobalsettings.h> -#include <kfiledialog.h> -#include <kdebug.h> +#include <qfiledialog.h> +#include <QDebug> +#include <QUrl> GameWidget::GameWidget ( const QString& levelSet, QWidget *parent ) : QWidget( parent ), m_allowAnyLevelSwitch( false ), m_moves(0), m_level(0) @@ -66,13 +65,13 @@ top->addWidget(m_view, 1); - connect (m_playField, SIGNAL (gameOver(int)), SLOT(gameOver(int))); - connect (m_playField, SIGNAL (updateMoves(int)), SLOT(updateMoves(int))); + connect(m_playField, &PlayField::gameOver, this, &GameWidget::gameOver); + connect(m_playField, &PlayField::updateMoves, this, &GameWidget::updateMoves); // Next level after some seconds after ending the game. See gameOver, nextLevel and prevLevel m_timer = new QTimer(this); m_timer->setSingleShot(true); - connect (m_timer, SIGNAL(timeout()), this, SLOT(nextLevel())); + connect(m_timer, &QTimer::timeout, this, &GameWidget::nextLevel); setLevelSet(levelSet); } @@ -87,7 +86,7 @@ { if (m_levelSet.name() == levelSet) { - kDebug() << "level set named" << levelSet << "is already loaded"; + //qDebug() << "level set named" << levelSet << "is already loaded"; return true; } @@ -95,7 +94,7 @@ if (!res) { KMessageBox::error(this, i18n("Failed to load level set \"%1\". Check if it is installed on your computer.", levelSet)); - kDebug() << "failed to load levelset" << levelSet; + //qDebug() << "failed to load levelset" << levelSet; return false; } @@ -190,8 +189,9 @@ saveLastPlayedLevel(); } - else - kDebug() << "failed to load level" << l; + else { + //qDebug() << "failed to load level" << l; + } } void GameWidget::restartLevel() @@ -201,7 +201,7 @@ void GameWidget::saveGame() { - QString fileName = KFileDialog::getSaveFileName( KUrl(), "*.katomic", this ); + QString fileName = QFileDialog::getSaveFileName( this, QString(), QString(), "*.katomic" ); if(fileName.isEmpty()) return; KConfig config(fileName, KConfig::SimpleConfig); @@ -213,7 +213,7 @@ void GameWidget::loadGame() { - QString fileName = KFileDialog::getOpenFileName( KUrl(), "*.katomic", this ); + QString fileName = QFileDialog::getOpenFileName( this, QString(), QString(), "*.katomic" ); if(fileName.isEmpty()) return; KConfig config(fileName, KConfig::SimpleConfig); @@ -221,7 +221,7 @@ QString levelSet = gr.readEntry("LevelSet"); if (levelSet.isEmpty()) { - kDebug() << "note: savegame file doesn't contain info about levelset, assuming default one"; + //qDebug() << "note: savegame file doesn't contain info about levelset, assuming default one"; levelSet = DEFAULT_LEVELSET_NAME; } @@ -275,7 +275,7 @@ void GameWidget::saveLastPlayedLevel() { - KSharedConfigPtr cfg = KGlobal::config(); + KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup grp(cfg, m_levelSet.name()); grp.writeEntry("LastPlayedLevel", m_level); @@ -284,27 +284,27 @@ void GameWidget::saveMaxAccessibleLevel(int level) { - KSharedConfigPtr cfg = KGlobal::config(); + KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup grp(cfg, m_levelSet.name()); grp.writeEntry("MaxAccessibleLevel", level); } int GameWidget::lastPlayedLevel() const { - KSharedConfigPtr cfg = KGlobal::config(); + KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup grp(cfg, m_levelSet.name()); int lastPlayed = grp.readEntry("LastPlayedLevel", 1); lastPlayed = qMax(1, lastPlayed); // can't be less than 1 - kDebug() << "last played level:" << lastPlayed; + //qDebug() << "last played level:" << lastPlayed; return lastPlayed; } int GameWidget::maxAccessibleLevel() const { - KSharedConfigPtr cfg = KGlobal::config(); + KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup grp(cfg, m_levelSet.name()); int maxAccessible = grp.readEntry("MaxAccessibleLevel", 1); - kDebug() << "max accessible level:" << maxAccessible; + //qDebug() << "max accessible level:" << maxAccessible; return maxAccessible; } @@ -320,4 +320,4 @@ return m_level > 1; } -#include "gamewidget.moc" + Files old/katomic-14.12.3/hi128-app-katomic.png and new/katomic-15.04.0/hi128-app-katomic.png differ Files old/katomic-14.12.3/hi128-apps-katomic.png and new/katomic-15.04.0/hi128-apps-katomic.png differ Files old/katomic-14.12.3/hi16-app-katomic.png and new/katomic-15.04.0/hi16-app-katomic.png differ Files old/katomic-14.12.3/hi16-apps-katomic.png and new/katomic-15.04.0/hi16-apps-katomic.png differ Files old/katomic-14.12.3/hi22-app-katomic.png and new/katomic-15.04.0/hi22-app-katomic.png differ Files old/katomic-14.12.3/hi22-apps-katomic.png and new/katomic-15.04.0/hi22-apps-katomic.png differ Files old/katomic-14.12.3/hi32-app-katomic.png and new/katomic-15.04.0/hi32-app-katomic.png differ Files old/katomic-14.12.3/hi32-apps-katomic.png and new/katomic-15.04.0/hi32-apps-katomic.png differ Files old/katomic-14.12.3/hi48-app-katomic.png and new/katomic-15.04.0/hi48-app-katomic.png differ Files old/katomic-14.12.3/hi48-apps-katomic.png and new/katomic-15.04.0/hi48-apps-katomic.png differ Files old/katomic-14.12.3/hi64-app-katomic.png and new/katomic-15.04.0/hi64-app-katomic.png differ Files old/katomic-14.12.3/hi64-apps-katomic.png and new/katomic-15.04.0/hi64-apps-katomic.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/highscores.cpp new/katomic-15.04.0/highscores.cpp --- old/katomic-14.12.3/highscores.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/highscores.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -18,15 +18,17 @@ #include "highscores.h" #include <kuser.h> -#include <kstandarddirs.h> + #include <kconfiggroup.h> +#include <QStandardPaths> +#include <KSharedConfig> KAtomicHighscores::KAtomicHighscores() { KUser user; m_playerName = user.property(KUser::FullName).toString().isEmpty() ? user.loginName() : user.property(KUser::FullName).toString(); - m_hsFile = KSharedConfig::openConfig( KStandardDirs::locateLocal("appdata", "highscores"), KConfig::SimpleConfig ); + m_hsFile = KSharedConfig::openConfig( QStandardPaths::writableLocation(QStandardPaths::DataLocation) + QLatin1Char('/') + "highscores", KConfig::SimpleConfig); } bool KAtomicHighscores::addScore( int numMoves, const QString& levelSetName, int level ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/katomic.appdata.xml new/katomic-15.04.0/katomic.appdata.xml --- old/katomic-14.12.3/katomic.appdata.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/katomic-15.04.0/katomic.appdata.xml 2015-04-06 00:56:33.000000000 +0200 @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<component type="desktop"> + <id>org.kde.katomic.desktop</id> + <metadata_license>CC0-1.0</metadata_license> + <project_license>GPL-2.0+</project_license> + <name>KAtomic</name> + <name xml:lang="ast">KAtomic</name> + <name xml:lang="ca">KAtomic</name> + <name xml:lang="cs">KAtomic</name> + <name xml:lang="da">KAtomic</name> + <name xml:lang="de">KAtomic</name> + <name xml:lang="en-GB">KAtomic</name> + <name xml:lang="es">KAtomic</name> + <name xml:lang="fi">KAtomic</name> + <name xml:lang="gl">KAtomic</name> + <name xml:lang="it">KAtomic</name> + <name xml:lang="nl">KAtomic</name> + <name xml:lang="pl">Atomy</name> + <name xml:lang="pt">KAtomic</name> + <name xml:lang="pt-BR">KAtomic</name> + <name xml:lang="ru">KAtomic</name> + <name xml:lang="sk">KAtomic</name> + <name xml:lang="sl">KAtomic</name> + <name xml:lang="sr">К‑атомика</name> + <name xml:lang="sr-Latn">K‑atomika</name> + <name xml:lang="sr-ijekavian">К‑атомика</name> + <name xml:lang="sr-ijekavianlatin">K‑atomika</name> + <name xml:lang="sv">Katom</name> + <name xml:lang="uk">KAtomic</name> + <name xml:lang="x-test">xxKAtomicxx</name> + <name xml:lang="zh-TW">KAtomic</name> + <summary>Sokoban-like Logic Game</summary> + <summary xml:lang="ca">Joc de lògica similar al Sokoban</summary> + <summary xml:lang="cs">Logická hra jako Sokoban</summary> + <summary xml:lang="en-GB">Sokoban-like Logic Game</summary> + <summary xml:lang="es">Juego de lógica parecido al Sokoban</summary> + <summary xml:lang="fi">Sokoban-tyylinen logiikkapeli</summary> + <summary xml:lang="gl">Xogo de lóxica ao estilo do Sokoban</summary> + <summary xml:lang="it">Gioco di logica simile a Sokoban</summary> + <summary xml:lang="nl">Sokoban-achtig logisch spel</summary> + <summary xml:lang="pl">Gra logiczna typu Sokoban</summary> + <summary xml:lang="pt">Jogo de Lógica Semelhante ao Sokoban</summary> + <summary xml:lang="pt-BR">Jogo Lógico parecido com Sokoban</summary> + <summary xml:lang="ru">Логическая игра, произошедшая от игры Sokoban</summary> + <summary xml:lang="sk">Logická hra ako Sokoban</summary> + <summary xml:lang="sl">Logična igra podobna Sokobanu</summary> + <summary xml:lang="sr">Логичка игра налик на Сокобан</summary> + <summary xml:lang="sr-Latn">Logička igra nalik na Sokoban</summary> + <summary xml:lang="sr-ijekavian">Логичка игра налик на Сокобан</summary> + <summary xml:lang="sr-ijekavianlatin">Logička igra nalik na Sokoban</summary> + <summary xml:lang="sv">Sokoban-liknande logiskt spel</summary> + <summary xml:lang="uk">Логічна гра, подібна до гри «Сокобан»</summary> + <summary xml:lang="x-test">xxSokoban-like Logic Gamexx</summary> + <summary xml:lang="zh-TW">倉庫番(sokoban)式的智力遊戲</summary> + <description> + <p> + KAtomic is a fun educational game built around molecular geometry. + It employs simplistic two-dimensional looks at different chemical elements. + </p> + <p xml:lang="ca">El KAtomic és un joc educatiu divertit construït al voltant de la geometria molecular. Fa servir aparences bidimensionals simplificades de elements químics diferents.</p> + <p xml:lang="en-GB">KAtomic is a fun educational game built around molecular geometry. It employs simplistic two-dimensional looks at different chemical elements.</p> + <p xml:lang="es">KAtomic es un divertido juego educativo basado en la geometría molecular. Emplea vistas bidimensionales simplificadas de diferentes elementos químicos.</p> + <p xml:lang="gl">KAtomic é un xogo divertido e educativo sobre xeometría molecular. Nel óllanse visións simplistas en dúas dimensións de varios elementos químicos.</p> + <p xml:lang="it">KAtomic è un gioco divertente ed educativo, basato sulla geometria molecolare. Impiega una rappresentazione bidimensionale semplificata per gli elementi chimici.</p> + <p xml:lang="nl">KAtomic is een leuk educatief spel gebouwd rond moleculaire geometrie. Het gebruikt simplistische tweedimensionale beelden van verschillende chemische elementen.</p> + <p xml:lang="pl">KAtomic jest grą edukującą poprzez zabawę stworzoną wokół geometrii cząsteczek. Gra wykorzystuje proste dwuwymiarowe widoki różnych pierwiastków chemicznych.</p> + <p xml:lang="pt">O KAtomic é um jogo educativo divertido, construído em torno da geometria molecular. Ele aplica vistas simplistas bidimensionais para os diferentes elementos químicos.</p> + <p xml:lang="pt-BR">KAtomic é um jogo educativo divertido, construído em torno da geometria molecular. Ele aplica visuais simplistas bidimensionais para os diferentes elementos químicos.</p> + <p xml:lang="ru">KAtomic — развивающая игра, каждый уровень которой основан на схематическом представлении молекулы химического соединения.</p> + <p xml:lang="sk">KAtomic je zábavná výuková hra založená na molekulárnej geometrii. Používa jednoduchý dvojrozmerný pohľad na rôzne chemické prvky.</p> + <p xml:lang="sl">KAtomic je zabavna in poučna igra, temelječa na geometriji molekul. Predstavlja preprosti dvodimenzionalni pogled na različne kemijske molekule.</p> + <p xml:lang="sr">К‑атомика је забавна образовна игра која се бави молекуларном геометријом. Служи се поједностављеним дводимензионалним приказима разноврсних хемијских једињења.</p> + <p xml:lang="sr-Latn">K‑atomika je zabavna obrazovna igra koja se bavi molekularnom geometrijom. Služi se pojednostavljenim dvodimenzionalnim prikazima raznovrsnih hemijskih jedinjenja.</p> + <p xml:lang="sr-ijekavian">К‑атомика је забавна образовна игра која се бави молекуларном геометријом. Служи се поједностављеним дводимензионалним приказима разноврсних хемијских једињења.</p> + <p xml:lang="sr-ijekavianlatin">K‑atomika je zabavna obrazovna igra koja se bavi molekularnom geometrijom. Služi se pojednostavljenim dvodimenzionalnim prikazima raznovrsnih hemijskih jedinjenja.</p> + <p xml:lang="sv">Katom är ett roligt och lärorikt spel byggt omkring molekylgeometri. Det använder ett förenklat tvådimensionellt utseende för olika kemiska element.</p> + <p xml:lang="uk">KAtomic — цікава навчальна гра у побудову молекул з атомів. У грі ви матимете справу зі спрощеними двовимірними моделями різних хімічних сполук.</p> + <p xml:lang="x-test">xxKAtomic is a fun educational game built around molecular geometry. It employs simplistic two-dimensional looks at different chemical elements.xx</p> + <p xml:lang="zh-TW">KAtomic 是一款教育類的遊戲,以原子模型為背景。</p> + </description> + <url type="homepage">http://games.kde.org/game.php?game=katomic</url> + <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=katomic</url> + <url type="help">http://docs.kde.org/stable/en/kdegames/katomic/index.html</url> + <screenshots> + <screenshot type="default"> + <image>http://kde.org/images/screenshots/katomic.png</image> + </screenshot> + </screenshots> + <project_group>KDE</project_group> +</component> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/katomic.desktop new/katomic-15.04.0/katomic.desktop --- old/katomic-14.12.3/katomic.desktop 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/katomic.desktop 1970-01-01 01:00:00.000000000 +0100 @@ -1,140 +0,0 @@ -[Desktop Entry] -Name=KAtomic -Name[af]=Katomic -Name[ast]=KAtomic -Name[be]=KAtomic -Name[bn]=কে-অ্যাটমিক -Name[br]=KAtomic -Name[bs]=KAtomic -Name[ca]=KAtomic -Name[ca@valencia]=KAtomic -Name[cs]=KAtomic -Name[cy]=KAtomic -Name[da]=KAtomic -Name[de]=KAtomic -Name[el]=KAtomic -Name[en_GB]=KAtomic -Name[eo]=KAtomic -Name[es]=KAtomic -Name[et]=KAtomic -Name[eu]=KAtomic -Name[fa]=اتمی -Name[fi]=KAtomic -Name[fr]=KAtomic -Name[ga]=KAtomic -Name[gl]=KAtomic -Name[he]=KAtomic -Name[hne]=के-एटामिक -Name[hr]=KAtomic -Name[hu]=KAtomic -Name[is]=KAtomic -Name[it]=KAtomic -Name[ja]=KAtomic -Name[kk]=KAtomic -Name[km]=KAtomic -Name[ko]=KAtomic -Name[lt]=KAtomic -Name[lv]=KAtomic -Name[mk]=KAtomic -Name[mr]=के-एटॉमिक -Name[nb]=KAtomic -Name[nds]=KAtomic -Name[ne]=केडीई एटोमिक -Name[nl]=KAtomic -Name[nn]=KAtomic -Name[pa]=ਕੇ-ਪਰਮਾਣੂ -Name[pl]=Atomy -Name[pt]=KAtomic -Name[pt_BR]=KAtomic -Name[ro]=KAtomic -Name[ru]=KAtomic -Name[se]=KAtomic -Name[sk]=KAtomic -Name[sl]=KAtomic -Name[sq]=KAtomic -Name[sr]=К‑атомика -Name[sr@ijekavian]=К‑атомика -Name[sr@ijekavianlatin]=K‑atomika -Name[sr@latin]=K‑atomika -Name[sv]=Katom -Name[ta]=கேஅடாமிக் -Name[te]=కెఎటామిక్ -Name[tg]=KАтомҳо -Name[tr]=KAtomic -Name[ug]=KAtomic -Name[uk]=Веселі атоми -Name[vi]=KAtomic -Name[wa]=KAtomic -Name[xh]=KAtomic -Name[x-test]=xxKAtomicxx -Name[zh_CN]=KAtomic -Name[zh_TW]=KAtomic 原子 -Icon=katomic -Type=Application -Exec=katomic -caption %c -X-DocPath=katomic/index.html -GenericName=Sokoban-like Logic Game -GenericName[ast]=Xuegu de lóxica asemeyáu al Sokoban -GenericName[be]=Лагічная гульня тыпу Sokoban -GenericName[bn]=সোকোবান-এর মত যুক্তির খেলা -GenericName[bs]=Logička igra poput Sokoban-a -GenericName[ca]=Joc de lògica similar al Sokoban -GenericName[ca@valencia]=Joc de lògica similar al Sokoban -GenericName[cs]=Logická hra jako Sokoban -GenericName[cy]=Gêm Resymeg sy'n debyg i Sokoban -GenericName[da]=Sokoban-lignende logisk spil -GenericName[de]=„Sokoban“-Spiel -GenericName[el]=Παιχνίδι λογικής παρόμοιο με το Sokoban -GenericName[en_GB]=Sokoban-like Logic Game -GenericName[eo]=Logikludo simila al Sokoban -GenericName[es]=Juego de lógica similar al Sokoban -GenericName[et]=Sokobani moodi loogikamäng -GenericName[eu]=Sokoban-en antzeko joko logikoa -GenericName[fa]=بازی منطق شبیه Sokoban -GenericName[fi]=Sokoban-tyylinen logiikkapeli -GenericName[fr]=Jeu de logique dans le style de Sokoban -GenericName[ga]=Cluiche Loighce Cosúil le Sokoban -GenericName[gl]=Xogo de lóxica ao estilo do Sokoban -GenericName[he]=חיקוי Sokoban, משחק לוגי -GenericName[hne]=सोकोबान जइसन तर्क वाले खेल -GenericName[hr]=Logička igra poput Sokobana -GenericName[hu]=Sokoban-szerű logikai játék -GenericName[is]=Leikur sem líkist Sokoban -GenericName[it]=Gioco di logica simile a Sokoban -GenericName[ja]=倉庫番のような論理ゲーム -GenericName[kk]=Сокобан-секілді логикалық ойын -GenericName[km]=ល្បែងតក្កដូច Sokoban -GenericName[ko]=소코반 같은 전략 게임 -GenericName[lt]=Sokoban tipo loginis žaidimas -GenericName[lv]=Sokoban līdzīga loģiskā spēle -GenericName[mk]=Логичка игра слична на Сокобан -GenericName[nb]=Sokoban-lignende logikkspill -GenericName[nds]=Sokoban-liek Logikspeel -GenericName[ne]=सोकोबान जस्तै तार्किक खेल -GenericName[nl]=Sokoban-achtig logisch spel -GenericName[nn]=Sokoban-liknande logikkspel -GenericName[pl]=Gra logiczna typu Sokoban -GenericName[pt]=Jogo de Lógica tipo Sokoban -GenericName[pt_BR]=Jogo Lógico parecido com Sokoban -GenericName[ro]=Un joc de logică ca Sokoban -GenericName[ru]=Составление молекул, клон Sokoban -GenericName[se]=Sokoban-lágan logihkkaspeallu -GenericName[sk]=Logická hra ako Sokoban -GenericName[sl]=Logična igra podobna Sokobanu -GenericName[sq]=Lojë logjike e ngjajshme me Sokoban -GenericName[sr]=Логичка игра налик на Сокобан -GenericName[sr@ijekavian]=Логичка игра налик на Сокобан -GenericName[sr@ijekavianlatin]=Logička igra nalik na Sokoban -GenericName[sr@latin]=Logička igra nalik na Sokoban -GenericName[sv]=Sokoban-liknande logiskt spel -GenericName[ta]=சோகோபான் போன்ற லாஜிக் விளையாட்டு -GenericName[tr]=Sokoban-benzeri Mantık Oyunu -GenericName[ug]=Sokoban غا ئوخشايدىغان لوگىكىلىق ئويۇن -GenericName[uk]=Гра на логіку подібна до Сокобану -GenericName[wa]=Djeu di lodjike rishonnant a sokoban -GenericName[x-test]=xxSokoban-like Logic Gamexx -GenericName[zh_CN]=类似推箱子的逻辑游戏 -GenericName[zh_TW]=倉庫番(sokoban)式的智力遊戲 -X-KDE-StartupNotify=true -X-DBUS-StartupType=Multi -Categories=Qt;KDE;Game;StrategyGame; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/levelset.cpp new/katomic-15.04.0/levelset.cpp --- old/katomic-14.12.3/levelset.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/levelset.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -22,13 +22,16 @@ ********************************************************************/ #include "levelset.h" -#include <KStandardDirs> + #include <KConfigGroup> -#include <KDebug> -#include <KLocale> -#include <kdefakes.h> +#include <QDebug> +#include <KLocalizedString> #include <QFileInfo> +#include <string.h> +#include <QStandardPaths> +#include <KSharedConfig> + #include "atom.h" #include "molecule.h" #include "commondefs.h" @@ -97,16 +100,17 @@ bool LevelSet::load(const QString& levelSetName) { - QString file = KStandardDirs::locate("appdata", QString("levels/%1.dat").arg(levelSetName)); + QString file = QStandardPaths::locate(QStandardPaths::DataLocation, QString("levels/%1.dat").arg(levelSetName)); if (file.isEmpty()) { - kDebug() << "level set \"" << levelSetName << "\" data file not found. Check your installation"; + qDebug() << "level set \"" << levelSetName << "\" data file not found. Check your installation"; return false; } bool res = loadFromFile(file); - if (!res) - kDebug() << "warning: failed to load level set" << levelSetName; + if (!res) { + qDebug() << "warning: failed to load level set" << levelSetName; + } return res; } @@ -126,8 +130,9 @@ m_name = QFileInfo(fileName).baseName(); - if (m_levelCount <= 0) - kDebug() << "warning: in level set" << m_name << "level count not specified or invalid"; + if (m_levelCount <= 0) { + //qDebug() << "warning: in level set" << m_name << "level count not specified or invalid"; + } return true; } @@ -184,7 +189,7 @@ { if (line.isEmpty()) { - kDebug() << "error while reading level" << levelNum << "data from" << m_name; + //qDebug() << "error while reading level" << levelNum << "data from" << m_name; return 0; } @@ -237,8 +242,9 @@ current.obj = value.at(0).toLatin1(); value = value.mid(2); - strlcpy(current.conn, value.toAscii(), sizeof(current.conn)); - kWarning( mol->m_atoms.indexOf(current) != -1 ) + strncpy(current.conn, value.toAscii(), sizeof(current.conn)); + if (mol->m_atoms.indexOf(current) != -1) + qWarning() << "OOOPS, duplicate atom definition in" << key; mol->m_atoms.append(current); atom_index++; @@ -282,10 +288,10 @@ bool LevelSet::isDefaultLevelsAvailable() { - QString file = KStandardDirs::locate("appdata", QString("levels/%1.dat").arg(DEFAULT_LEVELSET_NAME)); + QString file = QStandardPaths::locate(QStandardPaths::DataLocation, QString("levels/%1.dat").arg(DEFAULT_LEVELSET_NAME)); if (file.isEmpty()) { - kDebug() << "default level set \"" << DEFAULT_LEVELSET_NAME << "\" data file not found. Check your installation"; + //qDebug() << "default level set \"" << DEFAULT_LEVELSET_NAME << "\" data file not found. Check your installation"; return false; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/levelsetdelegate.cpp new/katomic-15.04.0/levelsetdelegate.cpp --- old/katomic-14.12.3/levelsetdelegate.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/levelsetdelegate.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -25,8 +25,8 @@ #include <QPainter> #include <QApplication> -#include <KGlobalSettings> -#include <KLocale> +#include <KLocalizedString> +#include <QFontDatabase> #include "commondefs.h" @@ -91,7 +91,7 @@ r = r.adjusted(innerSpacing, fm.lineSpacing(), -marginH*2, 0); flags = Qt::AlignLeft | Qt::AlignTop; - p->setFont(KGlobalSettings::smallestReadableFont()); + p->setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont)); QString text = i18n("by %1", authorName); QString authorEmail = index.data(KAtomic::LevelSetAuthorEmailRole).toString(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/levelsetwidget.ui new/katomic-15.04.0/levelsetwidget.ui --- old/katomic-14.12.3/levelsetwidget.ui 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/levelsetwidget.ui 2015-04-06 00:56:33.000000000 +0200 @@ -22,7 +22,7 @@ </widget> </item> <item> - <widget class="KListWidget" name="m_lwLevelSets"/> + <widget class="QListWidget" name="m_lwLevelSets"/> </item> <item> <layout class="QHBoxLayout" name="horizontalLayout"> @@ -68,14 +68,9 @@ </widget> <customwidgets> <customwidget> - <class>KListWidget</class> - <extends>QListWidget</extends> - <header>klistwidget.h</header> - </customwidget> - <customwidget> <class>KNS3::Button</class> <extends>QPushButton</extends> - <header location="global">KNS3/KNewStuffButton</header> + <header location="global">KNS3/Button</header> </customwidget> </customwidgets> <resources/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/main.cpp new/katomic-15.04.0/main.cpp --- old/katomic-14.12.3/main.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/main.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -21,21 +21,23 @@ #include "toplevel.h" -#include <kapplication.h> -#include <klocale.h> -#include <kcmdlineargs.h> -#include <kaboutdata.h> -#include <kglobal.h> +#include <qapplication.h> +#include <KLocalizedString> + +#include <KAboutData> #include <kmessagebox.h> #include <qtimer.h> - +#include <QCommandLineParser> +#include <QCommandLineOption> +#include <kdelibs4configmigrator.h> +#include <KDBusService> #include "levelset.h" static const char description[] = I18N_NOOP("KDE Atomic Entertainment Game"); -static const char version[] = "3.0"; +static const char version[] = "4.0"; // ########################## // # Main # @@ -43,48 +45,58 @@ int main(int argc, char **argv) { - KAboutData aboutData( "katomic", 0, ki18n("KAtomic"), - version, ki18n(description), KAboutData::License_GPL, - ki18n("(c) 1998, Andreas Wuest\n(c) 2007-2009 Dmitry Suzdalev"), KLocalizedString(), "http://games.kde.org/katomic" ); - aboutData.addAuthor(ki18n("Andreas Wuest"), ki18n("Original author"), "andreaswu...@gmx.de"); - aboutData.addAuthor(ki18n("Dmitry Suzdalev"), ki18n("Porting to KDE4. Current maintainer"), "dim...@gmail.com"); - aboutData.addAuthor(ki18n("Stephan Kulow"), KLocalizedString(), "co...@kde.org"); - aboutData.addAuthor(ki18n("Cristian Tibirna"), KLocalizedString(), "tibi...@kde.org"); - aboutData.addCredit(ki18n("Carsten Pfeiffer"), KLocalizedString(), "pfeif...@kde.org"); - aboutData.addCredit(ki18n("Dave Corrie"), KLocalizedString(), "k...@davecorrie.com"); - aboutData.addCredit(ki18n("Kai Jung"), ki18n("6 new levels"), "j...@fh-fresenius.de"); - aboutData.addCredit(ki18n("Danny Allen"), ki18n("Game graphics and application icon"), "da...@dannyallen.co.uk"); - aboutData.addCredit(ki18n("Johann Ollivier Lapeyre"), ki18n("New great SVG artwork for KDE4"), "johann.ollivierlape...@gmail.com"); - aboutData.addCredit(ki18n("Brian Croom"), ki18n("Port to use KGameRenderer"), "brian.s.cr...@gmail.com"); - - KCmdLineArgs::init( argc, argv, &aboutData ); - - KCmdLineOptions options; - options.add("hackmode", ki18n( "Enable access to all levels" )); - KCmdLineArgs::addCmdLineOptions( options ); - KApplication a; - KGlobal::locale()->insertCatalog( QLatin1String( "libkdegames" )); + Kdelibs4ConfigMigrator migrate(QStringLiteral("katomic")); + migrate.setConfigFiles(QStringList() << QStringLiteral("katomicrc")); + migrate.setUiFiles(QStringList() << QStringLiteral("katomicui.rc")); + migrate.migrate(); + QApplication app(argc, argv); + + KAboutData aboutData( "katomic", i18n("KAtomic"), + version, i18n(description), KAboutLicense::GPL, + i18n("(c) 1998, Andreas Wuest\n(c) 2007-2009 Dmitry Suzdalev"), "http://games.kde.org/katomic" ); + aboutData.addAuthor(i18n("Andreas Wuest"), i18n("Original author"), "andreaswu...@gmx.de"); + aboutData.addAuthor(i18n("Dmitry Suzdalev"), i18n("Porting to KDE4. Current maintainer"), "dim...@gmail.com"); + aboutData.addAuthor(i18n("Stephan Kulow"), QString(), "co...@kde.org"); + aboutData.addAuthor(i18n("Cristian Tibirna"), QString(), "tibi...@kde.org"); + aboutData.addCredit(i18n("Carsten Pfeiffer"), QString(), "pfeif...@kde.org"); + aboutData.addCredit(i18n("Dave Corrie"), QString(), "k...@davecorrie.com"); + aboutData.addCredit(i18n("Kai Jung"), i18n("6 new levels"), "j...@fh-fresenius.de"); + aboutData.addCredit(i18n("Danny Allen"), i18n("Game graphics and application icon"), "da...@dannyallen.co.uk"); + aboutData.addCredit(i18n("Johann Ollivier Lapeyre"), i18n("New great SVG artwork for KDE4"), "johann.ollivierlape...@gmail.com"); + aboutData.addCredit(i18n("Brian Croom"), i18n("Port to use KGameRenderer"), "brian.s.cr...@gmail.com"); + + QCommandLineParser parser; + KAboutData::setApplicationData(aboutData); + parser.addVersionOption(); + parser.addHelpOption(); + parser.addOption(QCommandLineOption(QStringList() << QLatin1String("hackmode"), i18n( "Enable access to all levels" ))); + + aboutData.setupCommandLine(&parser); + parser.process(app); + aboutData.processCommandLine(&parser); + + app.setWindowIcon(QIcon::fromTheme(QLatin1String("katomic"))); + KDBusService service; if (!LevelSet::isDefaultLevelsAvailable()) { KMessageBox::error(0, i18n("KAtomic failed to find its default level set and will quit. Please check your installation.")); - QTimer::singleShot(0, &a, SLOT(quit())); + QTimer::singleShot(0, &app, SLOT(quit())); } else { - if ( a.isSessionRestored() ) + if ( app.isSessionRestored() ) RESTORE(AtomTopLevel) else { AtomTopLevel *top = new AtomTopLevel; - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - if ( args->isSet( "hackmode" ) ) + if ( parser.isSet( "hackmode" ) ) top->enableHackMode(); - args->clear(); + top->show(); } } - return a.exec(); + return app.exec(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/org.kde.katomic.desktop new/katomic-15.04.0/org.kde.katomic.desktop --- old/katomic-14.12.3/org.kde.katomic.desktop 1970-01-01 01:00:00.000000000 +0100 +++ new/katomic-15.04.0/org.kde.katomic.desktop 2015-04-06 00:56:33.000000000 +0200 @@ -0,0 +1,141 @@ +[Desktop Entry] +Name=KAtomic +Name[af]=Katomic +Name[ast]=KAtomic +Name[be]=KAtomic +Name[bn]=কে-অ্যাটমিক +Name[br]=KAtomic +Name[bs]=KAtomic +Name[ca]=KAtomic +Name[ca@valencia]=KAtomic +Name[cs]=KAtomic +Name[cy]=KAtomic +Name[da]=KAtomic +Name[de]=KAtomic +Name[el]=KAtomic +Name[en_GB]=KAtomic +Name[eo]=KAtomic +Name[es]=KAtomic +Name[et]=KAtomic +Name[eu]=KAtomic +Name[fa]=اتمی +Name[fi]=KAtomic +Name[fr]=KAtomic +Name[ga]=KAtomic +Name[gl]=KAtomic +Name[he]=KAtomic +Name[hne]=के-एटामिक +Name[hr]=KAtomic +Name[hu]=KAtomic +Name[is]=KAtomic +Name[it]=KAtomic +Name[ja]=KAtomic +Name[kk]=KAtomic +Name[km]=KAtomic +Name[ko]=KAtomic +Name[lt]=KAtomic +Name[lv]=KAtomic +Name[mk]=KAtomic +Name[mr]=के-एटॉमिक +Name[nb]=KAtomic +Name[nds]=KAtomic +Name[ne]=केडीई एटोमिक +Name[nl]=KAtomic +Name[nn]=KAtomic +Name[pa]=ਕੇ-ਪਰਮਾਣੂ +Name[pl]=Atomy +Name[pt]=KAtomic +Name[pt_BR]=KAtomic +Name[ro]=KAtomic +Name[ru]=KAtomic +Name[se]=KAtomic +Name[sk]=KAtomic +Name[sl]=KAtomic +Name[sq]=KAtomic +Name[sr]=К‑атомика +Name[sr@ijekavian]=К‑атомика +Name[sr@ijekavianlatin]=K‑atomika +Name[sr@latin]=K‑atomika +Name[sv]=Katom +Name[ta]=கேஅடாமிக் +Name[te]=కెఎటామిక్ +Name[tg]=KАтомҳо +Name[tr]=KAtomic +Name[ug]=KAtomic +Name[uk]=Веселі атоми +Name[vi]=KAtomic +Name[wa]=KAtomic +Name[xh]=KAtomic +Name[x-test]=xxKAtomicxx +Name[zh_CN]=KAtomic +Name[zh_TW]=KAtomic 原子 +Icon=katomic +Type=Application +Exec=katomic -qwindowtitle %c +X-DocPath=katomic/index.html +GenericName=Sokoban-like Logic Game +GenericName[ast]=Xuegu de lóxica asemeyáu al Sokoban +GenericName[be]=Лагічная гульня тыпу Sokoban +GenericName[bn]=সোকোবান-এর মত যুক্তির খেলা +GenericName[bs]=Logička igra poput Sokoban-a +GenericName[ca]=Joc de lògica similar al Sokoban +GenericName[ca@valencia]=Joc de lògica similar al Sokoban +GenericName[cs]=Logická hra jako Sokoban +GenericName[cy]=Gêm Resymeg sy'n debyg i Sokoban +GenericName[da]=Sokoban-lignende logisk spil +GenericName[de]=„Sokoban“-Spiel +GenericName[el]=Παιχνίδι λογικής παρόμοιο με το Sokoban +GenericName[en_GB]=Sokoban-like Logic Game +GenericName[eo]=Logikludo simila al Sokoban +GenericName[es]=Juego de lógica similar al Sokoban +GenericName[et]=Sokobani moodi loogikamäng +GenericName[eu]=Sokoban-en antzeko joko logikoa +GenericName[fa]=بازی منطق شبیه Sokoban +GenericName[fi]=Sokoban-tyylinen logiikkapeli +GenericName[fr]=Jeu de logique dans le style de Sokoban +GenericName[ga]=Cluiche Loighce Cosúil le Sokoban +GenericName[gl]=Xogo de lóxica ao estilo do Sokoban +GenericName[he]=חיקוי Sokoban, משחק לוגי +GenericName[hne]=सोकोबान जइसन तर्क वाले खेल +GenericName[hr]=Logička igra poput Sokobana +GenericName[hu]=Sokoban-szerű logikai játék +GenericName[is]=Leikur sem líkist Sokoban +GenericName[it]=Gioco di logica simile a Sokoban +GenericName[ja]=倉庫番のような論理ゲーム +GenericName[kk]=Сокобан-секілді логикалық ойын +GenericName[km]=ល្បែងតក្កដូច Sokoban +GenericName[ko]=소코반 같은 전략 게임 +GenericName[lt]=Sokoban tipo loginis žaidimas +GenericName[lv]=Sokoban līdzīga loģiskā spēle +GenericName[mk]=Логичка игра слична на Сокобан +GenericName[nb]=Sokoban-lignende logikkspill +GenericName[nds]=Sokoban-liek Logikspeel +GenericName[ne]=सोकोबान जस्तै तार्किक खेल +GenericName[nl]=Sokoban-achtig logisch spel +GenericName[nn]=Sokoban-liknande logikkspel +GenericName[pl]=Gra logiczna typu Sokoban +GenericName[pt]=Jogo de Lógica tipo Sokoban +GenericName[pt_BR]=Jogo Lógico parecido com Sokoban +GenericName[ro]=Un joc de logică ca Sokoban +GenericName[ru]=Составление молекул, клон Sokoban +GenericName[se]=Sokoban-lágan logihkkaspeallu +GenericName[sk]=Logická hra ako Sokoban +GenericName[sl]=Logična igra podobna Sokobanu +GenericName[sq]=Lojë logjike e ngjajshme me Sokoban +GenericName[sr]=Логичка игра налик на Сокобан +GenericName[sr@ijekavian]=Логичка игра налик на Сокобан +GenericName[sr@ijekavianlatin]=Logička igra nalik na Sokoban +GenericName[sr@latin]=Logička igra nalik na Sokoban +GenericName[sv]=Sokoban-liknande logiskt spel +GenericName[ta]=சோகோபான் போன்ற லாஜிக் விளையாட்டு +GenericName[tr]=Sokoban-benzeri Mantık Oyunu +GenericName[ug]=Sokoban غا ئوخشايدىغان لوگىكىلىق ئويۇن +GenericName[uk]=Гра на логіку подібна до Сокобану +GenericName[wa]=Djeu di lodjike rishonnant a sokoban +GenericName[x-test]=xxSokoban-like Logic Gamexx +GenericName[zh_CN]=类似推箱子的逻辑游戏 +GenericName[zh_TW]=倉庫番(sokoban)式的智力遊戲 +StartupNotify=true +X-DBUS-StartupType=Multi +Categories=Qt;KDE;Game;StrategyGame; +X-DBUS-ServiceName=org.kde.katomic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/playfield.cpp new/katomic-15.04.0/playfield.cpp --- old/katomic-14.12.3/playfield.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/playfield.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -28,13 +28,14 @@ #include <QTimeLine> #include <QPainter> -#include <KStandardDirs> + #include <KConfig> -#include <KDebug> +#include <QDebug> #include <kconfiggroup.h> #include <KGamePopupItem> #include <KgTheme> +#include <QStandardPaths> #include "molecule.h" #include "fielditem.h" @@ -46,7 +47,7 @@ { Theme() : KgTheme("pics/default_theme.desktop") { - setGraphicsPath(KStandardDirs::locate("appdata", "pics/default_theme.svgz")); + setGraphicsPath(QStandardPaths::locate(QStandardPaths::DataLocation, "pics/default_theme.svgz")); } }; @@ -56,7 +57,7 @@ m_levelFinished(false) { m_atomTimeLine = new QTimeLine(300, this); - connect(m_atomTimeLine, SIGNAL(frameChanged(int)), SLOT(atomAnimFrameChanged(int)) ); + connect(m_atomTimeLine, &QTimeLine::frameChanged, this, &PlayField::atomAnimFrameChanged); m_upArrow = new ArrowFieldItem(&m_renderer, Up, this); m_downArrow = new ArrowFieldItem(&m_renderer, Down, this); @@ -86,7 +87,7 @@ { if (!level) { - kDebug() << "level data is null!"; + //qDebug() << "level data is null!"; return; } @@ -124,7 +125,7 @@ { if (!m_levelData || !m_levelData->molecule()) { - kDebug() << "level or molecule data is null!"; + //qDebug() << "level or molecule data is null!"; return; } @@ -160,7 +161,7 @@ void PlayField::resize( int width, int height) { - kDebug() << "resize:" << width << "," << height; + //qDebug() << "resize:" << width << "," << height; setSceneRect( 0, 0, width, height ); // we take 1/4 of width for displaying preview @@ -177,7 +178,7 @@ // if atom animation is running we need to rescale timeline if( isAnimating() ) { - kDebug() << "restarting animation"; + //qDebug() << "restarting animation"; int curTime = m_atomTimeLine->currentTime(); // calculate numCells to move using oldSize int numCells = m_atomTimeLine->endFrame()/oldSize; @@ -573,7 +574,7 @@ { if (!m_levelData || !m_levelData->molecule()) { - kDebug() << "level or molecule data is null!"; + //qDebug() << "level or molecule data is null!"; return false; } // let's assume that molecule is done @@ -608,7 +609,7 @@ { if (!m_levelData) { - kDebug() << "level data is null!"; + //qDebug() << "level data is null!"; return true; } @@ -676,7 +677,7 @@ { if (!m_levelData) { - kDebug() << "level data is null!"; + //qDebug() << "level data is null!"; return; } @@ -767,11 +768,11 @@ { if (!m_levelData || !m_levelData->molecule()) { - kDebug() << "level or molecule data is null!"; + //qDebug() << "level or molecule data is null!"; return QString(); } return m_levelData->molecule()->moleculeName(); } -#include "playfield.moc" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/toplevel.cpp new/katomic-15.04.0/toplevel.cpp --- old/katomic-14.12.3/toplevel.cpp 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/toplevel.cpp 2015-04-06 00:56:33.000000000 +0200 @@ -23,16 +23,16 @@ #include "toplevel.h" -#include <klocale.h> +#include <KLocalizedString> #include <kconfig.h> -#include <kstandarddirs.h> #include <kstandardaction.h> #include <kstandardgameaction.h> #include <kselectaction.h> #include <kactioncollection.h> -#include <kdebug.h> -#include <kicon.h> -#include <kstatusbar.h> +#include <QDebug> +#include <QIcon> +#include <qstatusbar.h> +#include <QLabel> #include "gamewidget.h" #include "playfield.h" @@ -40,10 +40,6 @@ #include "commondefs.h" #include "chooselevelsetdialog.h" -static const int LEVEL_BAR_ID = 0; -static const int CUR_SCORE_BAR_ID = 1; -static const int HIGHSCORE_BAR_ID = 2; -static const int MOLECULE_NAME_ID = 3; AtomTopLevel::AtomTopLevel() { @@ -57,16 +53,19 @@ loadSettings(); setCentralWidget(m_gameWid); - statusBar()->insertItem( i18n("Level:"), LEVEL_BAR_ID , 1); - statusBar()->insertPermanentItem( i18n("Current score:"), CUR_SCORE_BAR_ID, 1); - statusBar()->insertPermanentItem( i18n("Highscore:"), HIGHSCORE_BAR_ID, 1 ); - statusBar()->insertItem( QString(), MOLECULE_NAME_ID , 1); - statusBar()->setItemAlignment(0, Qt::AlignLeft | Qt::AlignVCenter); + mLevel = new QLabel(i18n("Level:")); + mCurrentScore = new QLabel(i18n("Current score:")); + mHighScore = new QLabel(i18n("Highscore:")); + mMoleculeName = new QLabel; + statusBar()->addWidget(mLevel); + statusBar()->addPermanentWidget(mCurrentScore); + statusBar()->addPermanentWidget(mHighScore); + statusBar()->addWidget(mMoleculeName); updateStatusBar( m_gameWid->currentLevel(), m_gameWid->currentScore(), m_gameWid->currentHighScore() ); - connect(m_gameWid, SIGNAL(statsChanged(int,int,int)), SLOT(updateStatusBar(int,int,int))); - connect(m_gameWid, SIGNAL(levelChanged(int)), SLOT(levelHasChanged(int))); + connect(m_gameWid, &GameWidget::statsChanged, this, &AtomTopLevel::updateStatusBar); + connect(m_gameWid, &GameWidget::levelChanged, this, &AtomTopLevel::levelHasChanged); // update next/prev actions levelHasChanged(m_gameWid->currentLevel()); @@ -81,7 +80,7 @@ { // saves last played level and levelset m_gameWid->saveLastPlayedLevel(); - Preferences::self()->writeConfig(); + Preferences::self()->save(); return true; } @@ -102,38 +101,38 @@ m_prevLevelAct = actionCollection()->addAction( QLatin1String( "prev_level" ) ); - m_prevLevelAct->setIcon( KIcon( QLatin1String( "arrow-left" ) ) ); + m_prevLevelAct->setIcon( QIcon::fromTheme( QLatin1String( "arrow-left" ) ) ); m_prevLevelAct->setText( i18n( "Previous Level" ) ); - m_prevLevelAct->setShortcut( Qt::CTRL + Qt::Key_P ); + actionCollection()->setDefaultShortcut(m_prevLevelAct, Qt::CTRL + Qt::Key_P ); addAction( m_prevLevelAct ); connect( m_prevLevelAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(prevLevel()) ); m_nextLevelAct = actionCollection()->addAction( QLatin1String( "next_level" ) ); - m_nextLevelAct->setIcon( KIcon( QLatin1String( "arrow-right" ) ) ); + m_nextLevelAct->setIcon( QIcon::fromTheme( QLatin1String( "arrow-right" ) ) ); m_nextLevelAct->setText( i18n( "Next Level" ) ); - m_nextLevelAct->setShortcut( Qt::CTRL + Qt::Key_N ); + actionCollection()->setDefaultShortcut(m_nextLevelAct, Qt::CTRL + Qt::Key_N ); addAction( m_nextLevelAct ); connect( m_nextLevelAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(nextLevel()) ); QAction* chooseLevelSet = actionCollection()->addAction( QLatin1String( "choose_level_set" ) ); chooseLevelSet->setText( i18n( "Choose level set..." ) ); addAction( chooseLevelSet ); - connect( chooseLevelSet, SIGNAL(triggered(bool)), SLOT(chooseLevelSet()) ); + connect(chooseLevelSet, &QAction::triggered, this, &AtomTopLevel::chooseLevelSet); m_animSpeedAct = new KSelectAction(i18n("Animation Speed"), this); actionCollection()->addAction( QLatin1String( "anim_speed" ), m_animSpeedAct); QStringList acts; acts << i18n("Slow") << i18n("Normal") << i18n("Fast"); m_animSpeedAct->setItems(acts); - connect( m_animSpeedAct, SIGNAL(triggered(int)), SLOT(slotAnimSpeedChanged(int)) ); + connect(m_animSpeedAct, static_cast<void (KSelectAction::*)(int)>(&KSelectAction::triggered), this, &AtomTopLevel::slotAnimSpeedChanged); QAction *undoAll = actionCollection()->addAction( QLatin1String( "move_undo_all" ) ); - undoAll->setIcon( KIcon( QLatin1String( "media-skip-backward" )) ); + undoAll->setIcon( QIcon::fromTheme( QLatin1String( "media-skip-backward" )) ); undoAll->setText( i18n("Undo All") ); connect( undoAll, SIGNAL(triggered(bool)), m_gameWid->playfield(), SLOT(undoAll()) ); QAction *redoAll = actionCollection()->addAction( QLatin1String( "move_redo_all" ) ); - redoAll->setIcon( KIcon( QLatin1String( "media-skip-forward" )) ); + redoAll->setIcon( QIcon::fromTheme( QLatin1String( "media-skip-forward" )) ); redoAll->setText( i18n("Redo All") ); connect( redoAll, SIGNAL(triggered(bool)), m_gameWid->playfield(), SLOT(redoAll()) ); @@ -147,39 +146,39 @@ connect (m_gameWid->playfield(), SIGNAL (enableUndo(bool)), undoAll, SLOT(setEnabled(bool))); connect (m_gameWid->playfield(), SIGNAL (enableRedo(bool)), redoAll, SLOT(setEnabled(bool))); - KAction* atomUpAct = actionCollection()->addAction( QLatin1String( "atom_up" )); + QAction * atomUpAct = actionCollection()->addAction( QLatin1String( "atom_up" )); atomUpAct->setText(i18n("Atom Up")); - atomUpAct->setShortcut(Qt::Key_Up); + actionCollection()->setDefaultShortcut(atomUpAct, Qt::Key_Up); addAction(atomUpAct); - connect(atomUpAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(moveUp())); + connect(atomUpAct, &QAction::triggered, m_gameWid, &GameWidget::moveUp); - KAction* atomDownAct = actionCollection()->addAction( QLatin1String( "atom_down" )); + QAction * atomDownAct = actionCollection()->addAction( QLatin1String( "atom_down" )); atomDownAct->setText(i18n("Atom Down")); - atomDownAct->setShortcut(Qt::Key_Down); + actionCollection()->setDefaultShortcut(atomDownAct,Qt::Key_Down); addAction(atomDownAct); - connect(atomDownAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(moveDown())); + connect(atomDownAct, &QAction::triggered, m_gameWid, &GameWidget::moveDown); - KAction* atomLeftAct = actionCollection()->addAction( QLatin1String( "atom_left" )); + QAction * atomLeftAct = actionCollection()->addAction( QLatin1String( "atom_left" )); atomLeftAct->setText(i18n("Atom Left")); - atomLeftAct->setShortcut(Qt::Key_Left); + actionCollection()->setDefaultShortcut(atomLeftAct,Qt::Key_Left); addAction(atomLeftAct); - connect(atomLeftAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(moveLeft())); + connect(atomLeftAct, &QAction::triggered, m_gameWid, &GameWidget::moveLeft); - KAction* atomRightAct = actionCollection()->addAction( QLatin1String( "atom_right" )); + QAction * atomRightAct = actionCollection()->addAction( QLatin1String( "atom_right" )); atomRightAct->setText(i18n("Atom Right")); - atomRightAct->setShortcut(Qt::Key_Right); + actionCollection()->setDefaultShortcut(atomRightAct,Qt::Key_Right); addAction(atomRightAct); - connect(atomRightAct, SIGNAL(triggered(bool)), m_gameWid, SLOT(moveRight())); + connect(atomRightAct, &QAction::triggered, m_gameWid, &GameWidget::moveRight); - KAction* nextAtomAct = actionCollection()->addAction( QLatin1String( "next_atom" )); + QAction * nextAtomAct = actionCollection()->addAction( QLatin1String( "next_atom" )); nextAtomAct->setText(i18n("Next Atom")); - nextAtomAct->setShortcut(Qt::Key_Tab); + actionCollection()->setDefaultShortcut(nextAtomAct,Qt::Key_Tab); addAction(nextAtomAct); connect(nextAtomAct, SIGNAL(triggered(bool)), m_gameWid->playfield(), SLOT(nextAtom())); - KAction* prevAtomAct = actionCollection()->addAction( QLatin1String( "prev_atom" )); + QAction * prevAtomAct = actionCollection()->addAction( QLatin1String( "prev_atom" )); prevAtomAct->setText(i18n("Previous Atom")); - prevAtomAct->setShortcut(Qt::SHIFT+Qt::Key_Tab); + actionCollection()->setDefaultShortcut(prevAtomAct,Qt::SHIFT+Qt::Key_Tab); addAction(prevAtomAct); connect(prevAtomAct, SIGNAL(triggered(bool)), m_gameWid->playfield(), SLOT(previousAtom())); } @@ -194,24 +193,24 @@ { m_gameWid->playfield()->setAnimationSpeed(speed); Preferences::setAnimationSpeed(speed); - Preferences::self()->writeConfig(); + Preferences::self()->save(); } void AtomTopLevel::updateStatusBar( int level, int score, int highscore ) { - statusBar()->changeItem( i18n("Level: %1 (%2)", level, m_gameWid->levelSet().visibleName()), LEVEL_BAR_ID ); - statusBar()->changeItem( i18n("Current score: %1", score), CUR_SCORE_BAR_ID ); + mLevel->setText(i18n("Level: %1 (%2)", level, m_gameWid->levelSet().visibleName())); + mCurrentScore->setText(i18n("Current score: %1", score)); QString str; if(highscore == 0) str = '-'; else str.setNum(highscore); - statusBar()->changeItem( i18n("Highscore: %1", str), HIGHSCORE_BAR_ID ); + mHighScore->setText(i18n("Highscore: %1", str)); } void AtomTopLevel::enableHackMode() { - kDebug() << "Enabling hack mode"; + //qDebug() << "Enabling hack mode"; m_prevLevelAct->setDisabled(false); m_nextLevelAct->setDisabled(false); m_gameWid->enableSwitchToAnyLevel(); @@ -220,7 +219,7 @@ void AtomTopLevel::levelHasChanged(int level) { // Update level name - statusBar()->changeItem( m_gameWid->currentMolecule(), MOLECULE_NAME_ID); + mMoleculeName->setText(m_gameWid->currentMolecule()); // don't gray out actions in hackmode, else do if(!m_gameWid->switchToAnyLevelAllowed()) updateActionsForLevel(level); @@ -236,7 +235,7 @@ { // will delete itself on close ChooseLevelSetDialog* dlg = new ChooseLevelSetDialog(this); - connect(dlg, SIGNAL(levelSetChanged(QString)), SLOT(changeLevelSet(QString))); + connect(dlg, &ChooseLevelSetDialog::levelSetChanged, this, &AtomTopLevel::changeLevelSet); dlg->setCurrentLevelSet(m_gameWid->levelSet().name()); dlg->show(); @@ -248,4 +247,4 @@ m_gameWid->setLevelSet(levelSet); } -#include "toplevel.moc" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katomic-14.12.3/toplevel.h new/katomic-15.04.0/toplevel.h --- old/katomic-14.12.3/toplevel.h 2014-12-30 09:53:39.000000000 +0100 +++ new/katomic-15.04.0/toplevel.h 2015-04-06 00:56:33.000000000 +0200 @@ -24,8 +24,7 @@ class GameWidget; class KSelectAction; class QAction; -class KAction; - +class QLabel; #include <kxmlguiwindow.h> /** @@ -73,8 +72,12 @@ GameWidget *m_gameWid; QAction *m_redoAct, *m_undoAct; - KAction *m_prevLevelAct, *m_nextLevelAct; + QAction *m_prevLevelAct, *m_nextLevelAct; KSelectAction* m_animSpeedAct; + QLabel *mLevel; + QLabel *mCurrentScore; + QLabel *mHighScore; + QLabel *mMoleculeName; }; #endif