diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,6 +8,10 @@
set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(PROJECT_VERSION ${KDE_APPLICATIONS_VERSION})
+# At least C++14 is required
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR})
include(KDEInstallDirs)
diff --git a/kcontrol/kamera.cpp b/kcontrol/kamera.cpp
--- a/kcontrol/kamera.cpp
+++ b/kcontrol/kamera.cpp
@@ -110,17 +110,17 @@
m_deviceSel->setModel(m_deviceModel);
- connect(m_deviceSel, SIGNAL(customContextMenuRequested(QPoint)),
- SLOT(slot_deviceMenu(QPoint)));
- connect(m_deviceSel, SIGNAL(doubleClicked(QModelIndex)),
- SLOT(slot_configureCamera()));
- connect(m_deviceSel, SIGNAL(activated(QModelIndex)),
- SLOT(slot_deviceSelected(QModelIndex)));
- connect(m_deviceSel, SIGNAL(clicked(QModelIndex)),
- SLOT(slot_deviceSelected(QModelIndex)));
+ connect(m_deviceSel, &QListView::customContextMenuRequested,
+ this, &KKameraConfig::slot_deviceMenu);
+ connect(m_deviceSel, &QListView::doubleClicked,
+ this, &KKameraConfig::slot_configureCamera);
+ connect(m_deviceSel, &QListView::activated,
+ this, &KKameraConfig::slot_deviceSelected);
+ connect(m_deviceSel, &QListView::clicked,
+ this, &KKameraConfig::slot_deviceSelected);
m_deviceSel->setViewMode(QListView::IconMode);
- m_deviceSel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ m_deviceSel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_deviceSel->setContextMenuPolicy(Qt::CustomContextMenu);
// create actions, add to the toolbar
@@ -128,7 +128,7 @@
act = m_actions->addAction("camera_add");
act->setIcon(QIcon::fromTheme("camera-photo"));
act->setText(i18n("Add"));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_addCamera()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_addCamera);
act->setWhatsThis(i18n("Click this button to add a new camera."));
m_toolbar->addAction(act);
m_toolbar->addSeparator();
@@ -136,28 +136,28 @@
act = m_actions->addAction("camera_test");
act->setIcon(QIcon::fromTheme("dialog-ok"));
act->setText(i18n("Test"));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_testCamera()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_testCamera);
act->setWhatsThis(i18n("Click this button to test the connection to the selected camera."));
m_toolbar->addAction(act);
act = m_actions->addAction("camera_remove");
act->setIcon(QIcon::fromTheme("user-trash"));
act->setText(i18n("Remove"));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_removeCamera()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_removeCamera);
act->setWhatsThis(i18n("Click this button to remove the selected camera from the list."));
m_toolbar->addAction(act);
act = m_actions->addAction("camera_configure");
act->setIcon(QIcon::fromTheme("configure"));
act->setText(i18n("Configure..."));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_configureCamera()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_configureCamera);
act->setWhatsThis(i18n("Click this button to change the configuration of the selected camera.
The availability of this feature and the contents of the Configuration dialog depend on the camera model."));
m_toolbar->addAction(act);
act = m_actions->addAction("camera_summary");
act->setIcon(QIcon::fromTheme("hwinfo"));
act->setText(i18n("Information"));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_cameraSummary()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_cameraSummary);
act->setWhatsThis(i18n("Click this button to view a summary of the current status of the selected camera.
The availability of this feature and the contents of the Information dialog depend on the camera model."));
m_toolbar->addAction(act);
m_toolbar->addSeparator();
@@ -165,7 +165,7 @@
act = m_actions->addAction("camera_cancel");
act->setIcon(QIcon::fromTheme("process-stop"));
act->setText(i18n("Cancel"));
- connect(act, SIGNAL(triggered(bool)), this, SLOT(slot_cancelOperation()));
+ connect(act, &QAction::triggered, this, &KKameraConfig::slot_cancelOperation);
act->setWhatsThis(i18n("Click this button to cancel the current camera operation."));
act->setEnabled(false);
m_toolbar->addAction(act);
@@ -211,21 +211,26 @@
KCamera *kcamera;
for (it = groupList.begin(); it != groupList.end(); it++) {
- if (*it != "") {
- KConfigGroup cg(m_config, *it);
- if (cg.readEntry("Path").contains("usb:")) {
- continue;
- }
-
- // Load configuration for Serial port cameras
- qCDebug(KAMERA_KCONTROL) << "Loading configuration for serial port camera: "
- << *it;
- kcamera = new KCamera(*it, cg.readEntry("Path"));
- connect(kcamera, SIGNAL(error(QString)), SLOT(slot_error(QString)));
- connect(kcamera, SIGNAL(error(QString,QString)), SLOT(slot_error(QString,QString)));
- kcamera->load(m_config);
- m_devices[*it] = kcamera;
+ if (*it != "") {
+ KConfigGroup cg(m_config, *it);
+
+ if (cg.readEntry("Path").contains("usb:")) {
+ continue;
}
+
+ // Load configuration for Serial port cameras
+ qCDebug(KAMERA_KCONTROL) << "Loading configuration for serial port camera: "
+ << *it;
+ kcamera = new KCamera(*it, cg.readEntry("Path"));
+ connect(kcamera, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
+ connect(kcamera, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
+ kcamera->load(m_config);
+ m_devices[*it] = kcamera;
+ }
}
m_cancelPending = false;
@@ -263,8 +268,13 @@
qCDebug(KAMERA_KCONTROL) << "Adding USB camera: " << portit.value() << " at " << portit.key();
kcamera = new KCamera(portit.value(), portit.key());
- connect(kcamera, SIGNAL(error(QString)), SLOT(slot_error(QString)));
- connect(kcamera, SIGNAL(error(QString,QString)), SLOT(slot_error(QString,QString)));
+
+ connect(kcamera, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
+ connect(kcamera, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
m_devices[portit.value()] = kcamera;
}
populateDeviceListView();
@@ -319,8 +329,13 @@
void KKameraConfig::slot_addCamera()
{
KCamera *m_device = new KCamera(QString::null, QString()); //krazy:exclusion=nullstrassign for old broken gcc
- connect(m_device, SIGNAL(error(QString)), SLOT(slot_error(QString)));
- connect(m_device, SIGNAL(error(QString,QString)), SLOT(slot_error(QString,QString)));
+
+ connect(m_device, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
+ connect(m_device, qOverload(&KCamera::error),
+ this, qOverload(&KKameraConfig::slot_error));
+
KameraDeviceSelectDialog dialog(this, m_device);
if (dialog.exec() == QDialog::Accepted) {
dialog.save();
diff --git a/kcontrol/kameraconfigdialog.cpp b/kcontrol/kameraconfigdialog.cpp
--- a/kcontrol/kameraconfigdialog.cpp
+++ b/kcontrol/kameraconfigdialog.cpp
@@ -62,8 +62,8 @@
okButton->setDefault(true);
okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &KameraConfigDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &KameraConfigDialog::reject);
okButton->setDefault(true);
setModal( true );
@@ -78,7 +78,7 @@
appendWidget(main, widget);
- connect(okButton,SIGNAL(clicked()),this,SLOT(slotOk()));
+ connect(okButton, &QPushButton::clicked, this, &KameraConfigDialog::slotOk);
mainLayout->addWidget(buttonBox);
}
diff --git a/kcontrol/kameradevice.cpp b/kcontrol/kameradevice.cpp
--- a/kcontrol/kameradevice.cpp
+++ b/kcontrol/kameradevice.cpp
@@ -300,10 +300,11 @@
setModal( true );
m_device = device;
- connect(m_device, SIGNAL(error(QString)),
- SLOT(slot_error(QString)));
- connect(m_device, SIGNAL(error(QString,QString)),
- SLOT(slot_error(QString,QString)));
+ connect(m_device, qOverload(&KCamera::error),
+ this, qOverload(&KameraDeviceSelectDialog::slot_error));
+
+ connect(m_device, qOverload(&KCamera::error),
+ this, qOverload(&KameraDeviceSelectDialog::slot_error));
QWidget *page = new QWidget( this );
@@ -320,10 +321,9 @@
m_modelSel->setModel(m_model);
topLayout->addWidget( m_modelSel );
- connect(m_modelSel, SIGNAL(activated(QModelIndex)),
- SLOT(slot_setModel(QModelIndex)));
- connect(m_modelSel, SIGNAL(clicked(QModelIndex)),
- SLOT(slot_setModel(QModelIndex)));
+ connect(m_modelSel, &QListView::activated, this, &KameraDeviceSelectDialog::slot_setModel);
+ connect(m_modelSel, &QListView::clicked, this, &KameraDeviceSelectDialog::slot_setModel);
+
// make sure listview only as wide as it needs to be
m_modelSel->setSizePolicy(QSizePolicy(QSizePolicy::Maximum,
QSizePolicy::Preferred));
@@ -362,10 +362,9 @@
lay->addWidget(grid2);
lay->addWidget( m_settingsStack );
- connect(m_serialRB, SIGNAL(toggled(bool)),
- this, SLOT(changeCurrentIndex()) );
- connect(m_USBRB, SIGNAL(toggled(bool)),
- this, SLOT(changeCurrentIndex()) );
+ connect(m_serialRB, &QRadioButton::toggled, this, &KameraDeviceSelectDialog::changeCurrentIndex);
+ connect(m_USBRB, &QRadioButton::toggled, this, &KameraDeviceSelectDialog::changeCurrentIndex);
+
// none tab
m_settingsStack->insertWidget(INDEX_NONE,
new QLabel(i18n("No port type selected."),
@@ -400,8 +399,8 @@
// to enableButtonOk(true) in slot_setModel.
okButton->setEnabled(false);
okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
- connect(okButton, SIGNAL(clicked(bool)), SLOT(accept()));
- connect(cancelButton, SIGNAL(clicked(bool)), SLOT(close()));
+ connect(okButton, &QPushButton::clicked, this, &KameraDeviceSelectDialog::accept);
+ connect(cancelButton, &QPushButton::clicked, this, &KameraDeviceSelectDialog::close);
rightLayout->addWidget(m_OkCancelButtonBox);
// query gphoto2 for existing serial ports