diff --git a/libs/ui/input/config/kis_input_configuration_page.cpp b/libs/ui/input/config/kis_input_configuration_page.cpp index 3c450fa8e7..769c184024 100644 --- a/libs/ui/input/config/kis_input_configuration_page.cpp +++ b/libs/ui/input/config/kis_input_configuration_page.cpp @@ -1,97 +1,99 @@ /* * This file is part of the KDE project * Copyright (C) 2013 Arjen Hiemstra * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kis_input_configuration_page.h" #include "ui_kis_input_configuration_page.h" #include "input/kis_input_profile_manager.h" #include "input/kis_input_profile.h" #include "kis_edit_profiles_dialog.h" #include "kis_input_profile_model.h" #include "kis_input_configuration_page_item.h" #include #include #include "kis_icon_utils.h" KisInputConfigurationPage::KisInputConfigurationPage(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) { ui = new Ui::KisInputConfigurationPage; + this->setContentsMargins(0,0,0,0); ui->setupUi(this); ui->profileComboBox->setModel(new KisInputProfileModel(ui->profileComboBox)); updateSelectedProfile(); connect(ui->profileComboBox, SIGNAL(currentIndexChanged(QString)), SLOT(changeCurrentProfile(QString))); ui->editProfilesButton->setIcon(KisIconUtils::loadIcon("document-edit")); connect(ui->editProfilesButton, SIGNAL(clicked(bool)), SLOT(editProfilesButtonClicked())); connect(KisInputProfileManager::instance(), SIGNAL(profilesChanged()), SLOT(updateSelectedProfile())); QList actions = KisInputProfileManager::instance()->actions(); Q_FOREACH(KisAbstractInputAction * action, actions) { KisInputConfigurationPageItem *item = new KisInputConfigurationPageItem(this); item->setAction(action); + ui->configurationItemsArea->setSpacing(0); ui->configurationItemsArea->addWidget(item); } } void KisInputConfigurationPage::saveChanges() { KisInputProfileManager::instance()->saveProfiles(); } void KisInputConfigurationPage::revertChanges() { KisInputProfileManager::instance()->loadProfiles(); } void KisInputConfigurationPage::setDefaults() { QDir profileDir(KoResourcePaths::saveLocation("data", "input/", false)); if (profileDir.exists()) { QStringList entries = profileDir.entryList(QStringList() << "*.profile", QDir::NoDot | QDir::NoDotDot); Q_FOREACH(const QString & file, entries) { profileDir.remove(file); } KisInputProfileManager::instance()->loadProfiles(); } } void KisInputConfigurationPage::editProfilesButtonClicked() { KisEditProfilesDialog dialog; dialog.exec(); } void KisInputConfigurationPage::updateSelectedProfile() { if (KisInputProfileManager::instance()->currentProfile()) { ui->profileComboBox->setCurrentItem(KisInputProfileManager::instance()->currentProfile()->name()); } } void KisInputConfigurationPage::changeCurrentProfile(const QString &newProfile) { KisInputProfileManager::instance()->setCurrentProfile(KisInputProfileManager::instance()->profile(newProfile)); } diff --git a/libs/ui/input/config/kis_input_configuration_page_item.cpp b/libs/ui/input/config/kis_input_configuration_page_item.cpp index 83b639a4a6..05a947742e 100644 --- a/libs/ui/input/config/kis_input_configuration_page_item.cpp +++ b/libs/ui/input/config/kis_input_configuration_page_item.cpp @@ -1,92 +1,93 @@ /* * This file is part of the KDE project * Copyright (C) 2013 Arjen Hiemstra * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kis_input_configuration_page_item.h" #include "kis_icon_utils.h" #include "input/kis_abstract_input_action.h" #include "input/kis_input_profile_manager.h" #include "kis_action_shortcuts_model.h" #include "kis_input_type_delegate.h" #include "kis_input_mode_delegate.h" #include "kis_input_editor_delegate.h" #include "ui_kis_input_configuration_page_item.h" #include KisInputConfigurationPageItem::KisInputConfigurationPageItem(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) { ui = new Ui::KisInputConfigurationPageItem; + this->setContentsMargins(0,0,0,0); ui->setupUi(this); m_shortcutsModel = new KisActionShortcutsModel(this); ui->shortcutsView->setModel(m_shortcutsModel); ui->shortcutsView->setItemDelegateForColumn(0, new KisInputTypeDelegate(ui->shortcutsView)); ui->shortcutsView->setItemDelegateForColumn(1, new KisInputEditorDelegate(ui->shortcutsView)); ui->shortcutsView->setItemDelegateForColumn(2, new KisInputModeDelegate(ui->shortcutsView)); ui->shortcutsView->header()->setSectionResizeMode(QHeaderView::Stretch); setExpanded(false); QAction *deleteAction = new QAction(KisIconUtils::loadIcon("edit-delete"), i18n("Delete Shortcut"), ui->shortcutsView); connect(deleteAction, SIGNAL(triggered(bool)), SLOT(deleteShortcut())); ui->shortcutsView->addAction(deleteAction); ui->shortcutsView->setContextMenuPolicy(Qt::ActionsContextMenu); connect(ui->collapseButton, SIGNAL(clicked(bool)), SLOT(setExpanded(bool))); } KisInputConfigurationPageItem::~KisInputConfigurationPageItem() { delete ui; } void KisInputConfigurationPageItem::setAction(KisAbstractInputAction *action) { m_action = action; ui->collapseButton->setText(action->name()); ui->descriptionLabel->setText(action->description()); m_shortcutsModel->setProfile(KisInputProfileManager::instance()->currentProfile()); m_shortcutsModel->setAction(action); qobject_cast(ui->shortcutsView->itemDelegateForColumn(2))->setAction(action); } void KisInputConfigurationPageItem::setExpanded(bool expand) { if (expand) { ui->descriptionLabel->setVisible(true); ui->shortcutsView->setVisible(true); ui->collapseButton->setArrowType(Qt::DownArrow); } else { ui->descriptionLabel->setVisible(false); ui->shortcutsView->setVisible(false); ui->collapseButton->setArrowType(Qt::RightArrow); } } void KisInputConfigurationPageItem::deleteShortcut() { int row = ui->shortcutsView->selectionModel()->currentIndex().row(); if (m_shortcutsModel->canRemoveRow(row)) { m_shortcutsModel->removeRow(row, QModelIndex()); } } diff --git a/libs/ui/input/config/kis_input_configuration_page_item.ui b/libs/ui/input/config/kis_input_configuration_page_item.ui index e9a41fb2fd..14ce4973ae 100644 --- a/libs/ui/input/config/kis_input_configuration_page_item.ui +++ b/libs/ui/input/config/kis_input_configuration_page_item.ui @@ -1,94 +1,94 @@ KisInputConfigurationPageItem 0 0 605 330 0 0 <html><head/><body><p>Action Description</p></body></html> true Qt::Horizontal QSizePolicy::Fixed 20 - 20 + 1 0 0 75 true Action Name true Qt::ToolButtonTextBesideIcon true Qt::RightArrow true false false