diff options
Diffstat (limited to 'pokemodr/PokeModrUI.cpp')
| -rw-r--r-- | pokemodr/PokeModrUI.cpp | 86 |
1 files changed, 74 insertions, 12 deletions
diff --git a/pokemodr/PokeModrUI.cpp b/pokemodr/PokeModrUI.cpp index 8720b245..95b6879e 100644 --- a/pokemodr/PokeModrUI.cpp +++ b/pokemodr/PokeModrUI.cpp @@ -20,16 +20,16 @@ // with this program. If not, see <http://www.gnu.org/licenses/>. ///////////////////////////////////////////////////////////////////////////// -// Until QAction promotion is allowed in Qt Designer #include <kaction.h> -#include <kicon.h> - #include <kfiledialog.h> +#include <kicon.h> #include <klocalizedstring.h> #include <kmenu.h> #include <kmenubar.h> #include <kmessagebox.h> +#include <kstandardaction.h> #include <kstandarddirs.h> +#include <ktoolbar.h> #include <kurl.h> #include <QListIterator> @@ -56,7 +56,65 @@ PokeModrUI::PokeModrUI(KConfigGroup cfg, KConfigGroup history, QWidget* parent) setupUi(this); QMetaObject::connectSlotsByName(this); recent.loadEntries(history); - menuBar()->addMenu(customHelpMenu(false)); + KMenuBar* menubar = new KMenuBar(this); + KMenu* menuFile = new KMenu("&File", menubar); + menuFile->addAction(KStandardAction::openNew(this, SLOT(on_actionNew_triggered()), menuFile)); + menuFile->addAction(KStandardAction::open(this, SLOT(on_actionOpen_triggered()), menuFile)); + menuFile->addAction(KStandardAction::openRecent(this, SLOT(openPokeMod(const KUrl&)), menuFile)); + menuFile->addSeparator(); + menuFile->addAction(KStandardAction::save(this, SLOT(on_actionSave_triggered()), menuFile)); + menuFile->addAction(KStandardAction::saveAs(this, SLOT(on_actionSaveAs_triggered()), menuFile)); + menuFile->addSeparator(); + menuFile->addAction(KStandardAction::quit(this, SLOT(on_actionQuit_triggered()), 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(on_actionCut_triggered())); + 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(on_actionCopy_triggered())); + 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(on_actionPaste_triggered())); + menuEdit->addSeparator(); + menuEdit->addAction(KStandardAction::preferences(this, SLOT(on_actionPreferences_triggered()), menuEdit)); + menubar->addMenu(menuEdit); + menubar->addMenu(customHelpMenu(false)); + setMenuBar(menubar); + KToolBar* toolbar = new KToolBar("toolbar", this, Qt::TopToolBarArea, false, true, true); + toolbar->addAction(KStandardAction::openNew(this, SLOT(on_actionNew_triggered()), toolbar)); + toolbar->addAction(KStandardAction::open(this, SLOT(on_actionOpen_triggered()), toolbar)); + toolbar->addAction(KStandardAction::openRecent(this, SLOT(openPokeMod(const KUrl&)), toolbar)); + toolbar->addSeparator(); + toolbar->addAction(KStandardAction::save(this, SLOT(on_actionSave_triggered()), toolbar)); + toolbar->addAction(KStandardAction::saveAs(this, SLOT(on_actionSaveAs_triggered()), toolbar)); + toolbar->addSeparator(); + toolbar->addAction(KStandardAction::cut(toolbar)); + 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(on_actionCut_triggered())); + KAction* toolbarCopy = new KAction(KIcon("edit-copy"), "Cop&y Object", toolbar); + toolbar->addAction(toolbarCopy); + connect(toolbarCopy, SIGNAL(triggered()), this, SLOT(on_actionCopy_triggered())); + KAction* toolbarPaste = new KAction(KIcon("edit-paste"), "Past&e Object", toolbar); + toolbar->addAction(toolbarPaste); + connect(toolbarPaste, SIGNAL(triggered()), this, SLOT(on_actionPaste_triggered())); + toolbar->addSeparator(); + toolbar->addAction(KStandardAction::preferences(this, SLOT(on_actionPreferences_triggered()), toolbar)); + toolbar->addSeparator(); + toolbar->addAction(KStandardAction::quit(this, SLOT(on_actionQuit_triggered()), toolbar)); + addToolBar(toolbar); splitter->setSizes(QList<int>() << cfg.readEntry("treeWidth", 100) << cfg.readEntry("panelWidth", 100)); // if (cfg.readEntry("reloadOnStart", false)) // { @@ -84,6 +142,8 @@ void PokeModrUI::openPokeMod(const KUrl& path) if (path.isLocalFile()) { pokemods.append(new Pokemod(path.path())); + recent.addUrl(path); + recent.saveEntries(config); rebuildTree(); } } @@ -165,20 +225,22 @@ void PokeModrUI::on_actionSaveAs_triggered() { } -void PokeModrUI::on_actionSaveAll_triggered() -{ - if (formPanel->widget()) - static_cast<ObjectUI*>(formPanel->widget())->on_buttonApply_clicked(); - for (QListIterator<Pokemod*> i(pokemods); i.hasNext(); ) - i.next()->save(); -} - void PokeModrUI::on_actionQuit_triggered() { while (pokemods.size()) closePokeMod(); if (clipboard) delete clipboard; + close(); +} + +void PokeModrUI::on_actionCut_triggered() +{ +// if (!treePokemod->currentItem()) +// return; +// if (clipboard) +// delete clipboard; +// clipboard = static_cast<PokeModTreeItem*>(treePokemod->currentItem())->cut(); } void PokeModrUI::on_actionCopy_triggered() |
