From ff8c440c3a2aeb0e1abc6f93e9dd7775533382ff Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 26 May 2008 01:32:07 +0000 Subject: [FIX] Context menus added [FIX] No more copy/cut/paste for objects; only available from context menus [FIX] Can now add objects during runtime git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@174 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemodr/PokeModrUI.cpp | 38 +++++++------------------------------- 1 file changed, 7 insertions(+), 31 deletions(-) (limited to 'pokemodr/PokeModrUI.cpp') diff --git a/pokemodr/PokeModrUI.cpp b/pokemodr/PokeModrUI.cpp index 7ea15841..7dff096d 100644 --- a/pokemodr/PokeModrUI.cpp +++ b/pokemodr/PokeModrUI.cpp @@ -64,26 +64,13 @@ PokeModrUI::PokeModrUI(KConfigGroup config, KConfigGroup history, QWidget* paren menuFile->addAction(KStandardAction::save(this, SLOT(savePokemod()), menuFile)); menuFile->addAction(KStandardAction::saveAs(this, SLOT(saveAsPokemod()), menuFile)); menuFile->addSeparator(); - menuFile->addAction(KStandardAction::quit(this, SLOT(quit()), menuFile)); + menuFile->addAction(KStandardAction::quit(this, SLOT(closeAllPokemods()), menuFile)); menubar->addMenu(menuFile); KMenu* menuEdit = new KMenu("&Edit", menubar); menuEdit->addAction(KStandardAction::cut(menuEdit)); menuEdit->addAction(KStandardAction::copy(menuEdit)); menuEdit->addAction(KStandardAction::paste(menuEdit)); menuEdit->addSeparator(); - KAction* menuCut = new KAction(KIcon("edit-cut"), "Cu&t Object", menuEdit); - menuCut->setShortcut(KShortcut("Alt+X")); - menuEdit->addAction(menuCut); - connect(menuCut, SIGNAL(triggered()), this, SLOT(cutObject())); - KAction* menuCopy = new KAction(KIcon("edit-copy"), "Cop&y Object", menuEdit); - menuCopy->setShortcut(KShortcut("Alt+C")); - menuEdit->addAction(menuCopy); - connect(menuCopy, SIGNAL(triggered()), this, SLOT(copyObject())); - KAction* menuPaste = new KAction(KIcon("edit-paste"), "Past&e Object", menuEdit); - menuPaste->setShortcut(KShortcut("Alt+V")); - menuEdit->addAction(menuPaste); - connect(menuPaste, SIGNAL(triggered()), this, SLOT(pasteObject())); - menuEdit->addSeparator(); menuEdit->addAction(KStandardAction::preferences(this, SLOT(preferences()), menuEdit)); menubar->addMenu(menuEdit); menubar->addMenu(customHelpMenu(false)); @@ -101,19 +88,9 @@ PokeModrUI::PokeModrUI(KConfigGroup config, KConfigGroup history, QWidget* paren toolbar->addAction(KStandardAction::copy(toolbar)); toolbar->addAction(KStandardAction::paste(toolbar)); toolbar->addSeparator(); - KAction* toolbarCut = new KAction(KIcon("edit-cut"), "Cu&t Object", toolbar); - toolbar->addAction(toolbarCut); - connect(toolbarCut, SIGNAL(triggered()), this, SLOT(cutObject())); - KAction* toolbarCopy = new KAction(KIcon("edit-copy"), "Cop&y Object", toolbar); - toolbar->addAction(toolbarCopy); - connect(toolbarCopy, SIGNAL(triggered()), this, SLOT(copyObject())); - KAction* toolbarPaste = new KAction(KIcon("edit-paste"), "Past&e Object", toolbar); - toolbar->addAction(toolbarPaste); - connect(toolbarPaste, SIGNAL(triggered()), this, SLOT(pasteObject())); - toolbar->addSeparator(); toolbar->addAction(KStandardAction::preferences(this, SLOT(preferences()), toolbar)); toolbar->addSeparator(); - toolbar->addAction(KStandardAction::quit(this, SLOT(quit()), toolbar)); + toolbar->addAction(KStandardAction::quit(this, SLOT(closeAllPokemods()), toolbar)); addToolBar(toolbar); splitter->setSizes(QList() << config.readEntry("treeWidth", 100) << config.readEntry("panelWidth", 100)); connect(buttonApply, SIGNAL(clicked()), this, SLOT(update())); @@ -333,14 +310,11 @@ bool PokeModrUI::closeAllPokemods(const bool force) else ++i; } + if (!pokemods.size() || force) + close(); return !pokemods.size(); } -void PokeModrUI::cutObject() -{ - m_clipboard = treePokemod->cut(treePokemod->currentIndex()); -} - void PokeModrUI::copyObject() { m_clipboard = treePokemod->copy(treePokemod->currentIndex()); @@ -364,6 +338,8 @@ void PokeModrUI::on_splitter_splitterMoved() void PokeModrUI::on_treePokemod_clicked(const QModelIndex& index) { + if (!(treePokemod->model()->flags(index) & Qt::ItemIsSelectable)) + return; ObjectUI* widget = treePokemod->editorWidget(index); if (widget) { @@ -396,5 +372,5 @@ void PokeModrUI::on_treePokemod_customContextMenuRequested(const QPoint& positio { KMenu* menu = treePokemod->contextMenu(treePokemod->indexAt(position)); if (menu) - menu->popup(mapToGlobal(position)); + menu->popup(treePokemod->mapToGlobal(position)); } -- cgit