Adding upstream version 0.9.0+20150926.

upstream/0.9.0+20150926
Alf Gaida 9 years ago
parent 53f8a9df5a
commit 49e61c24e6

@ -19,7 +19,6 @@ set(${PROJECT_NAME}_SOURCES
shortcut_selector.cpp shortcut_selector.cpp
${${PROJECT_NAME}_PATH_TO_DAEMON}/meta_types.cpp ${${PROJECT_NAME}_PATH_TO_DAEMON}/meta_types.cpp
edit_action_dialog.cpp edit_action_dialog.cpp
shortcut_delegate.cpp
) )
set(${PROJECT_NAME}_FORMS set(${PROJECT_NAME}_FORMS

@ -91,12 +91,6 @@ QVariant DefaultModel::data(const QModelIndex &index, int role) const
break; break;
case Qt::EditRole: case Qt::EditRole:
if ((index.row() >= 0) && (index.row() < rowCount()) && (index.column() >= 0) && (index.column() < columnCount()))
switch (index.column())
{
case 1:
return mContent[mContent.keys()[index.row()]].shortcut;
}
break; break;
case Qt::FontRole: case Qt::FontRole:
@ -179,25 +173,11 @@ Qt::ItemFlags DefaultModel::flags(const QModelIndex &index) const
{ {
result |= Qt::ItemIsUserCheckable; result |= Qt::ItemIsUserCheckable;
} }
if (index.column() == 1)
{
result |= Qt::ItemIsEditable;
}
return result; return result;
} }
bool DefaultModel::setData(const QModelIndex &index, const QVariant &value, int role) bool DefaultModel::setData(const QModelIndex &index, const QVariant &value, int role)
{ {
switch (role)
{
case Qt::EditRole:
if ((index.row() >= 0) && (index.row() < rowCount()) && index.column() == 1)
{
mActions->changeShortcut(mContent.keys()[index.row()], value.toString());
return true;
}
break;
}
return false; return false;
} }

@ -29,7 +29,6 @@
#include "actions.h" #include "actions.h"
#include "default_model.h" #include "default_model.h"
#include "edit_action_dialog.h" #include "edit_action_dialog.h"
#include "shortcut_delegate.h"
#include <QItemSelectionModel> #include <QItemSelectionModel>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
@ -66,8 +65,6 @@ MainWindow::MainWindow(QWidget *parent)
mSelectionModel = new QItemSelectionModel(actions_TV->model()); mSelectionModel = new QItemSelectionModel(actions_TV->model());
actions_TV->setSelectionModel(mSelectionModel); actions_TV->setSelectionModel(mSelectionModel);
actions_TV->setItemDelegateForColumn(1, new ShortcutDelegate(mActions, this));
connect(mSelectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)), SLOT(selectionChanged(QItemSelection, QItemSelection))); connect(mSelectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)), SLOT(selectionChanged(QItemSelection, QItemSelection)));
connect(mActions, SIGNAL(daemonDisappeared()), SLOT(daemonDisappeared())); connect(mActions, SIGNAL(daemonDisappeared()), SLOT(daemonDisappeared()));
@ -173,9 +170,6 @@ void MainWindow::on_actions_TV_doubleClicked(const QModelIndex &index)
} }
break; break;
case 1:
break;
default: default:
editAction(index); editAction(index);
} }
@ -185,18 +179,14 @@ void MainWindow::editAction(const QModelIndex &index)
{ {
qulonglong id = 0; qulonglong id = 0;
if (index.isValid()) if (!index.isValid())
{ return;
id = mDefaultModel->id(mSortFilterProxyModel->mapToSource(index)); id = mDefaultModel->id(mSortFilterProxyModel->mapToSource(index));
}
if (!mEditActionDialog) if (!mEditActionDialog)
{
mEditActionDialog = new EditActionDialog(mActions, this); mEditActionDialog = new EditActionDialog(mActions, this);
}
if (mEditActionDialog->load(id)) if (mEditActionDialog->load(id))
{
mEditActionDialog->exec(); mEditActionDialog->exec();
}
} }

@ -1,72 +0,0 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXDE-Qt - a lightweight, Qt based, desktop toolset
* http://razor-qt.org
*
* Copyright: 2013 Razor team
* Authors:
* Kuzma Shapran <kuzma.shapran@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "shortcut_delegate.h"
#include "shortcut_selector.h"
#include "actions.h"
#include <QTimer>
ShortcutDelegate::ShortcutDelegate(Actions *actions, QObject *parent)
: QItemDelegate(parent)
, mActions(actions)
{
}
QWidget *ShortcutDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/* option */, const QModelIndex &/* index */) const
{
ShortcutSelector *button = new ShortcutSelector(mActions, parent);
button->autoApplyShortcut();
QTimer::singleShot(0, button, SLOT(click()));
return button;
}
void ShortcutDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
ShortcutSelector *button = static_cast<ShortcutSelector*>(editor);
if (button->isGrabbing())
button->cancelNow();
model->setData(index, button->text(), Qt::EditRole);
}
void ShortcutDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &/* index */) const
{
editor->setGeometry(option.rect);
}
void ShortcutDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
static_cast<QAbstractButton*>(editor)->setText(index.model()->data(index, Qt::EditRole).toString());
}
QSize ShortcutDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QSize sizeHint = QItemDelegate::sizeHint(option , index);
sizeHint.setHeight(sizeHint.height() + 15);
return sizeHint;
}

@ -1,57 +0,0 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXDE-Qt - a lightweight, Qt based, desktop toolset
* http://razor-qt.org
*
* Copyright: 2013 Razor team
* Authors:
* Kuzma Shapran <kuzma.shapran@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef GLOBAL_ACTION_CONFIG__SHORTCUT_DELEGATE__INCLUDED
#define GLOBAL_ACTION_CONFIG__SHORTCUT_DELEGATE__INCLUDED
#include <QItemDelegate>
class Actions;
class ShortcutDelegate : public QItemDelegate
{
Q_OBJECT
public:
explicit ShortcutDelegate(Actions *actions, QObject *parent = 0);
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
private:
Actions *mActions;
};
#endif // GLOBAL_ACTION_CONFIG__SHORTCUT_DELEGATE__INCLUDED
Loading…
Cancel
Save