[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/step/step
From: Sebastian Voecking <kde () voecking ! net>
Date: 2011-02-05 18:30:11
Message-ID: 20110205183011.C77F53E1F9 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1219022 by voecking:
Cleaned up action handling, use only actions from application's actionCollection in \
the context menu, disable delete action while creating new objects
BUG: 165600
M +2 -2 gasgraphics.cc
M +2 -1 gasgraphics.h
M +11 -5 mainwindow.cc
M +1 -1 mainwindow.h
M +2 -2 softbodygraphics.cc
M +1 -1 softbodygraphics.h
M +8 -8 toolgraphics.cc
M +4 -4 toolgraphics.h
M +4 -2 worldgraphics.cc
M +2 -1 worldgraphics.h
M +2 -2 worldmodel.cc
M +4 -0 worldmodel.h
M +5 -9 worldscene.cc
M +3 -1 worldscene.h
--- trunk/KDE/kdeedu/step/step/gasgraphics.cc #1219021:1219022
@@ -303,7 +303,7 @@
GasMenuHandler* _handler;
};
-void GasMenuHandler::populateMenu(QMenu* menu)
+void GasMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
_createGasParticlesUi = 0;
_createGasParticlesDialog = 0;
@@ -312,7 +312,7 @@
menu->addAction(KIcon("step_object_GasParticle"), i18n("Create particles..."), \
this, SLOT(createGasParticles()));
//menu->addAction(KIcon("edit-clear"), i18n("Clear gas"), this, \
SLOT(clearGas())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
inline StepCore::Gas* GasMenuHandler::gas() const
--- trunk/KDE/kdeedu/step/step/gasgraphics.h #1219021:1219022
@@ -20,6 +20,7 @@
#define STEP_GASGRAPHICS_H
#include "worldgraphics.h"
+#include <kaction.h>
namespace StepCore {
class Gas;
@@ -88,7 +89,7 @@
GasMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
public slots:
void createGasParticles();
--- trunk/KDE/kdeedu/step/step/mainwindow.cc #1219021:1219022
@@ -77,6 +77,7 @@
setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
worldModel = new WorldModel(this);
+ worldModel->setActions(actionCollection());
itemPalette = new ItemPalette(worldModel, this);
itemPalette->setObjectName("itemPalette");
@@ -104,13 +105,15 @@
connect(worldModel, SIGNAL(simulationStopped(int)), this, \
SLOT(simulationStopped(int)));
connect(worldModel->selectionModel(), SIGNAL(selectionChanged(const \
QItemSelection&, const QItemSelection&)),
- this, SLOT(worldSelectionChanged(const \
QItemSelection&, const QItemSelection&))); + this, \
SLOT(worldSelectionChanged())); connect(itemPalette, SIGNAL(beginAddItem(const \
QString&)),
worldScene, SLOT(beginAddItem(const QString&)));
connect(worldScene, SIGNAL(endAddItem(const QString&, bool)),
itemPalette, SLOT(endAddItem(const QString&, \
bool))); connect(worldScene, SIGNAL(linkActivated(const KUrl&)),
infoBrowser, SLOT(openUrl(const KUrl&)));
+ connect(worldScene, SIGNAL(endAddItem(QString, bool)),
+ this, SLOT(worldSelectionChanged()));
setupActions();
@@ -182,7 +185,7 @@
actionDelete = actionCollection()->add<KAction>("edit_delete", worldModel, \
SLOT(deleteSelectedItems())); actionDelete->setText(i18n("&Delete"));
actionDelete->setIcon(KIcon("edit-delete"));
- actionDelete->setShortcut(KShortcut(Qt::CTRL+Qt::Key_Delete));
+ actionDelete->setShortcut(KShortcut(Qt::Key_Delete));
actionDelete->setEnabled(false);
/* Simulation menu */
@@ -546,14 +549,17 @@
else actionRedo->setText(i18n("Re&do: %1", redoText));
}
-void MainWindow::worldSelectionChanged(const QItemSelection&, const QItemSelection&)
+void MainWindow::worldSelectionChanged()
{
- foreach(const QModelIndex &index, \
worldModel->selectionModel()->selection().indexes()) {
- if(worldModel->item(index)) {
+ if (!worldScene->hasItemCreator()) {
+ foreach (const QModelIndex &index,
+ worldModel->selectionModel()->selection().indexes()) {
+ if (index != worldModel->worldIndex() && worldModel->item(index)) {
actionDelete->setEnabled(true);
return;
}
}
+ }
actionDelete->setEnabled(false);
}
--- trunk/KDE/kdeedu/step/step/mainwindow.h #1219021:1219022
@@ -79,7 +79,7 @@
void updateCaption();
void undoTextChanged(const QString& undoText);
void redoTextChanged(const QString& redoText);
- void worldSelectionChanged(const QItemSelection&, const QItemSelection&);
+ void worldSelectionChanged();
/*
protected slots:
--- trunk/KDE/kdeedu/step/step/softbodygraphics.cc #1219021:1219022
@@ -87,7 +87,7 @@
return false;
}
-void SoftBodyMenuHandler::populateMenu(QMenu* menu)
+void SoftBodyMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
_createSoftBodyItemsUi = 0;
_createSoftBodyItemsDialog = 0;
@@ -97,7 +97,7 @@
menu->addAction(KIcon("step_object_GasParticle"), i18n("Create items..."), this, \
SLOT(createSoftBodyItems()));
//menu->addAction(KIcon("edit-clear"), i18n("Clear gas"), this, \
SLOT(clearGas())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
inline StepCore::SoftBody* SoftBodyMenuHandler::softBody() const
--- trunk/KDE/kdeedu/step/step/softbodygraphics.h #1219021:1219022
@@ -53,7 +53,7 @@
SoftBodyMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent), _applied(false) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
bool applied() const { return _applied; }
--- trunk/KDE/kdeedu/step/step/toolgraphics.cc #1219021:1219022
@@ -1074,7 +1074,7 @@
#endif
}
-void GraphMenuHandler::populateMenu(QMenu* menu)
+void GraphMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
_confUi = 0;
_confDialog = 0;
@@ -1083,7 +1083,7 @@
menu->addAction(KIcon("edit-clear"), i18n("Clear graph"), this, \
SLOT(clearGraph()));
menu->addAction(KIcon("configure"), i18n("Configure graph..."), this, \
SLOT(configureGraph())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
inline StepCore::Graph* GraphMenuHandler::graph() const
@@ -1285,7 +1285,7 @@
_lcdNumber->display(value);
}
-void MeterMenuHandler::populateMenu(QMenu* menu)
+void MeterMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
_confUi = 0;
_confDialog = 0;
@@ -1293,7 +1293,7 @@
menu->addAction(KIcon("configure"), i18n("Configure meter..."), this, \
SLOT(configureMeter())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
inline StepCore::Meter* MeterMenuHandler::meter() const
@@ -1580,7 +1580,7 @@
}
}
-void ControllerMenuHandler::populateMenu(QMenu* menu)
+void ControllerMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
_confUi = 0;
_confDialog = 0;
@@ -1591,7 +1591,7 @@
menu->addSeparator();
menu->addAction(KIcon("configure"), i18n("Configure controller..."), this, \
SLOT(configureController())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
inline StepCore::Controller* ControllerMenuHandler::controller() const
@@ -1849,11 +1849,11 @@
WorldScene::SnapSetLocalPosition, 0, movingState, _item);
}
-void TracerMenuHandler::populateMenu(QMenu* menu)
+void TracerMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
menu->addAction(KIcon("edit-clear"), i18n("Clear trace"), this, \
SLOT(clearTracer())); menu->addSeparator();
- ItemMenuHandler::populateMenu(menu);
+ ItemMenuHandler::populateMenu(menu, actions);
}
void TracerMenuHandler::clearTracer()
--- trunk/KDE/kdeedu/step/step/toolgraphics.h #1219021:1219022
@@ -240,7 +240,7 @@
GraphMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
protected slots:
void clearGraph();
@@ -287,7 +287,7 @@
MeterMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
protected slots:
void configureMeter();
@@ -347,7 +347,7 @@
ControllerMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
protected slots:
void incTriggered();
@@ -404,7 +404,7 @@
TracerMenuHandler(StepCore::Object* object, WorldModel* worldModel, QObject* \
parent) : ItemMenuHandler(object, worldModel, parent) {}
- void populateMenu(QMenu* menu);
+ void populateMenu(QMenu* menu, KActionCollection* actions);
protected slots:
void clearTracer();
--- trunk/KDE/kdeedu/step/step/worldgraphics.cc #1219021:1219022
@@ -30,6 +30,7 @@
#include <QPainter>
#include <QTimer>
#include <QMenu>
+#include <KActionCollection>
#include <KIcon>
#include <KLocale>
@@ -740,11 +741,12 @@
{
}
-void ItemMenuHandler::populateMenu(QMenu* menu)
+void ItemMenuHandler::populateMenu(QMenu* menu, KActionCollection* actions)
{
StepCore::Item* item = dynamic_cast<StepCore::Item*>(_object);
if(item && item->world() != item) {
- menu->addAction(KIcon("edit-delete"), i18n("&Delete"), this, \
SLOT(deleteItem())); + menu->addAction(actions->action("edit_delete"));
+ //menu->addAction(KIcon("edit-delete"), i18n("&Delete"), this, \
SLOT(deleteItem())); }
}
--- trunk/KDE/kdeedu/step/step/worldgraphics.h #1219021:1219022
@@ -39,6 +39,7 @@
class WorldScene;
class QEvent;
class QTimer;
+class KActionCollection;
/** \brief Base class for item creators.
*
@@ -430,7 +431,7 @@
/** Populate context menu by item-specific entries.
* Default implementation adds delete action. */
- virtual void populateMenu(QMenu* menu);
+ virtual void populateMenu(QMenu* menu, KActionCollection* actions);
protected slots:
void deleteItem();
--- trunk/KDE/kdeedu/step/step/worldmodel.cc #1219021:1219022
@@ -305,7 +305,7 @@
}
WorldModel::WorldModel(QObject* parent)
- : QAbstractItemModel(parent)
+ : QAbstractItemModel(parent), _actions(0)
{
_selectionModel = new QItemSelectionModel(this, this);
_undoStack = new KUndoStack(this);
@@ -807,7 +807,7 @@
KMenu* menu = new KMenu();
menu->addTitle(index.data(Qt::DisplayRole).toString());
ItemMenuHandler* handler = _worldFactory->newItemMenuHandler(object(index), \
this, menu);
- handler->populateMenu(menu);
+ handler->populateMenu(menu, _actions);
return menu;
}
--- trunk/KDE/kdeedu/step/step/worldmodel.h #1219021:1219022
@@ -203,6 +203,8 @@
/** Pauses the simulation until control returns to event loop */
void simulationPause();
+ void setActions(KActionCollection* actions) { _actions = actions; }
+
public slots:
void simulationStart(); ///< Start simulation
void simulationStop(); ///< Stop simulation
@@ -260,6 +262,8 @@
bool _simulationStopping;
bool _simulationPaused;
+ KActionCollection* _actions;
+
friend class CommandEditProperty;
friend class CommandNewItem;
friend class CommandSetSolver;
--- trunk/KDE/kdeedu/step/step/worldscene.cc #1219021:1219022
@@ -233,15 +233,6 @@
QGraphicsScene::mousePressEvent(mouseEvent);
}
-void WorldScene::keyPressEvent(QKeyEvent* keyEvent)
-{
- if(keyEvent->matches(QKeySequence::Delete)) {
- _worldModel->simulationPause();
- _worldModel->deleteSelectedItems();
- keyEvent->accept();
- } else QGraphicsScene::keyPressEvent(keyEvent);
-}
-
void WorldScene::helpEvent(QGraphicsSceneHelpEvent *helpEvent)
{
helpEvent->accept();
@@ -557,6 +548,11 @@
}
}
+bool WorldScene::hasItemCreator() const
+{
+ return _itemCreator && !_itemCreator->finished();
+}
+
WorldGraphicsView::WorldGraphicsView(WorldScene* worldScene, QWidget* parent)
: QGraphicsView(worldScene, parent)
{
--- trunk/KDE/kdeedu/step/step/worldscene.h #1219021:1219022
@@ -113,6 +113,9 @@
/** Get associated WorldModel */
WorldModel* worldModel() const { return _worldModel; }
+ /** Check if scene has an active item creator */
+ bool hasItemCreator() const;
+
public slots:
/** Begin adding new item. Creates appropriate ItemCreator */
void beginAddItem(const QString& name);
@@ -163,7 +166,6 @@
protected:
bool event(QEvent* event);
void mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent);
- void keyPressEvent(QKeyEvent* keyEvent);
void helpEvent(QGraphicsSceneHelpEvent *helpEvent);
//void contextMenuEvent(QGraphicsSceneContextMenuEvent* contextMenuEvent);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic