Added more action/menu framework.

This commit is contained in:
Jim Evins
2013-10-22 22:46:24 -04:00
parent 5d39bbaf15
commit 0be276e9d3
2 changed files with 371 additions and 18 deletions
+316 -16
View File
@@ -46,7 +46,322 @@ namespace gLabels
} }
void MainWindow::about() void MainWindow::createActions()
{
/* File actions */
fileNewAction = new QAction( tr("&New..."), this );
fileNewAction->setIcon( QIcon::fromTheme( "document-new" ) );
fileNewAction->setShortcut( QKeySequence::New );
fileNewAction->setStatusTip( tr("Create a new file") );
connect( fileNewAction, SIGNAL(triggered()), this, SLOT(fileNew()) );
fileOpenAction = new QAction( tr("&Open..."), this );
fileOpenAction->setIcon( QIcon::fromTheme( "document-open" ) );
fileOpenAction->setShortcut( QKeySequence::Open );
fileOpenAction->setStatusTip( tr("Open a file") );
connect( fileOpenAction, SIGNAL(triggered()), this, SLOT(fileOpen()) );
fileSaveAction = new QAction( tr("&Save"), this );
fileSaveAction->setIcon( QIcon::fromTheme( "document-save" ) );
fileSaveAction->setShortcut( QKeySequence::Save );
fileSaveAction->setStatusTip( tr("Save current file") );
connect( fileSaveAction, SIGNAL(triggered()), this, SLOT(fileSave()) );
fileSaveAsAction = new QAction( tr("Save &As..."), this );
fileSaveAsAction->setIcon( QIcon::fromTheme( "document-save-as" ) );
fileSaveAsAction->setShortcut( QKeySequence::SaveAs );
fileSaveAsAction->setStatusTip( tr("Save current file to a different name") );
connect( fileSaveAsAction, SIGNAL(triggered()), this, SLOT(fileSaveAs()) );
filePrintAction = new QAction( tr("&Print..."), this );
filePrintAction->setIcon( QIcon::fromTheme( "document-print" ) );
filePrintAction->setShortcut( QKeySequence::Print );
filePrintAction->setStatusTip( tr("Print the current file") );
connect( filePrintAction, SIGNAL(triggered()), this, SLOT(filePrint()) );
filePropertiesAction = new QAction( tr("Properties..."), this );
filePropertiesAction->setIcon( QIcon::fromTheme( "document-properties" ) );
filePropertiesAction->setStatusTip( tr("Modify document properties") );
connect( filePropertiesAction, SIGNAL(triggered()), this, SLOT(fileProperties()) );
fileTemplateDesignerAction = new QAction( tr("Template &Designer..."), this );
fileTemplateDesignerAction->setStatusTip( tr("Create custom templates") );
connect( fileTemplateDesignerAction, SIGNAL(triggered()), this, SLOT(fileTemplateDesigner()) );
fileCloseAction = new QAction( tr("&Close"), this );
fileCloseAction->setIcon( QIcon::fromTheme( "window-close" ) );
fileCloseAction->setShortcut( QKeySequence::Close );
fileCloseAction->setStatusTip( tr("Close the current window") );
connect( fileCloseAction, SIGNAL(triggered()), this, SLOT(fileClose()) );
fileExitAction = new QAction( tr("E&xit"), this );
fileExitAction->setIcon( QIcon::fromTheme( "application-exit" ) );
fileExitAction->setShortcut( QKeySequence::Quit );
fileExitAction->setStatusTip( tr("Exit glabels") );
connect( fileExitAction, SIGNAL(triggered()), this, SLOT(fileExit()) );
/* Edit actions */
editUndoAction = new QAction( tr("Undo"), this );
editUndoAction->setIcon( QIcon::fromTheme( "edit-undo" ) );
editUndoAction->setShortcut( QKeySequence::Undo );
editUndoAction->setStatusTip( tr("Undo") );
connect( editUndoAction, SIGNAL(triggered()), this, SLOT(editUndo()) );
editRedoAction = new QAction( tr("Redo"), this );
editRedoAction->setIcon( QIcon::fromTheme( "edit-redo" ) );
editRedoAction->setShortcut( QKeySequence::Redo );
editRedoAction->setStatusTip( tr("Redo") );
connect( editRedoAction, SIGNAL(triggered()), this, SLOT(editRedo()) );
editCutAction = new QAction( tr("Cut"), this );
editCutAction->setIcon( QIcon::fromTheme( "edit-cut" ) );
editCutAction->setShortcut( QKeySequence::Cut );
editCutAction->setStatusTip( tr("Cut the selection") );
connect( editCutAction, SIGNAL(triggered()), this, SLOT(editCut()) );
editCopyAction = new QAction( tr("&Copy"), this );
editCopyAction->setIcon( QIcon::fromTheme( "edit-copy" ) );
editCopyAction->setShortcut( QKeySequence::Copy );
editCopyAction->setStatusTip( tr("Copy the selection") );
connect( editCopyAction, SIGNAL(triggered()), this, SLOT(editCopy()) );
editPasteAction = new QAction( tr("&Paste"), this );
editPasteAction->setIcon( QIcon::fromTheme( "edit-paste" ) );
editPasteAction->setShortcut( QKeySequence::Paste );
editPasteAction->setStatusTip( tr("Paste the clipboard") );
connect( editPasteAction, SIGNAL(triggered()), this, SLOT(editPaste()) );
editDeleteAction = new QAction( tr("&Delete"), this );
editDeleteAction->setIcon( QIcon::fromTheme( "edit-delete" ) );
editDeleteAction->setShortcut( QKeySequence::Delete );
editDeleteAction->setStatusTip( tr("Delete the selected objects") );
connect( editDeleteAction, SIGNAL(triggered()), this, SLOT(editDelete()) );
editSelectAllAction = new QAction( tr("Select &All"), this );
editSelectAllAction->setIcon( QIcon::fromTheme( "edit-select-all" ) );
editSelectAllAction->setShortcut( QKeySequence::SelectAll );
editSelectAllAction->setStatusTip( tr("Select all objects") );
connect( editSelectAllAction, SIGNAL(triggered()), this, SLOT(editSelectAll()) );
editUnSelectAllAction = new QAction( tr("Un-select All"), this );
editUnSelectAllAction->setIcon( QIcon::fromTheme( "edit-unselect-all" ) );
editUnSelectAllAction->setStatusTip( tr("Remove all selections") );
connect( editUnSelectAllAction, SIGNAL(triggered()), this, SLOT(editUnSelectAll()) );
editPreferencesAction = new QAction( tr("Preferences"), this );
editPreferencesAction->setIcon( QIcon::fromTheme( "edit-preferences" ) );
editPreferencesAction->setShortcut( QKeySequence::Preferences );
editPreferencesAction->setStatusTip( tr("Configure the application") );
connect( editPreferencesAction, SIGNAL(triggered()), this, SLOT(editPreferences()) );
/* View actions */
viewZoomInAction = new QAction( tr("Zoom &In"), this );
viewZoomInAction->setIcon( QIcon::fromTheme( "zoom-in" ) );
viewZoomInAction->setShortcut( QKeySequence::ZoomIn );
viewZoomInAction->setStatusTip( tr("Increase magnification") );
connect( viewZoomInAction, SIGNAL(triggered()), this, SLOT(viewZoomIn()) );
viewZoomOutAction = new QAction( tr("Zoom &Out"), this );
viewZoomOutAction->setIcon( QIcon::fromTheme( "zoom-out" ) );
viewZoomOutAction->setShortcut( QKeySequence::ZoomOut );
viewZoomOutAction->setStatusTip( tr("Decrease magnification") );
connect( viewZoomOutAction, SIGNAL(triggered()), this, SLOT(viewZoomOut()) );
viewZoom1to1Action = new QAction( tr("Zoom &1 to 1"), this );
viewZoom1to1Action->setIcon( QIcon::fromTheme( "zoom-original" ) );
viewZoom1to1Action->setStatusTip( tr("Restore scale to 100%") );
connect( viewZoom1to1Action, SIGNAL(triggered()), this, SLOT(viewZoom1to1()) );
viewZoomToFitAction = new QAction( tr("Zoom to &Fit"), this );
viewZoomToFitAction->setIcon( QIcon::fromTheme( "zoom-fit-best" ) );
viewZoomToFitAction->setStatusTip( tr("Set scale to fit window") );
connect( viewZoomToFitAction, SIGNAL(triggered()), this, SLOT(viewZoomToFit()) );
/* Help actions */
helpAboutAction = new QAction( tr("&About..."), this );
helpAboutAction->setIcon( QIcon::fromTheme( "help-about" ) );
helpAboutAction->setStatusTip( tr("About gLabels") );
connect( helpAboutAction, SIGNAL(triggered()), this, SLOT(helpAbout()) );
}
void MainWindow::createMenus()
{
fileMenu = menuBar()->addMenu( tr("&File") );
fileMenu->addAction( fileNewAction );
fileMenu->addAction( fileOpenAction );
fileMenu->addAction( fileSaveAction );
fileMenu->addAction( fileSaveAsAction );
fileMenu->addSeparator();
fileMenu->addAction( filePrintAction );
fileMenu->addSeparator();
fileMenu->addAction( filePropertiesAction );
fileMenu->addAction( fileTemplateDesignerAction );
fileMenu->addSeparator();
fileMenu->addAction( fileCloseAction );
fileMenu->addAction( fileExitAction );
editMenu = menuBar()->addMenu( tr("&Edit") );
editMenu->addAction( editUndoAction );
editMenu->addAction( editRedoAction );
editMenu->addSeparator();
editMenu->addAction( editCutAction );
editMenu->addAction( editCopyAction );
editMenu->addAction( editPasteAction );
editMenu->addAction( editDeleteAction );
editMenu->addSeparator();
editMenu->addAction( editSelectAllAction );
editMenu->addAction( editUnSelectAllAction );
editMenu->addSeparator();
editMenu->addAction( editPreferencesAction );
viewMenu = menuBar()->addMenu( tr("&View") );
viewMenu->addAction( viewZoomInAction );
viewMenu->addAction( viewZoomOutAction );
viewMenu->addAction( viewZoom1to1Action );
viewMenu->addAction( viewZoomToFitAction );
helpMenu = menuBar()->addMenu( tr("&Help") );
helpMenu->addAction( helpAboutAction );
}
void MainWindow::fileNew()
{
std::cout << "ACTION: file->New" << std::endl;
}
void MainWindow::fileOpen()
{
std::cout << "ACTION: file->Open" << std::endl;
}
void MainWindow::fileSave()
{
std::cout << "ACTION: file->Save" << std::endl;
}
void MainWindow::fileSaveAs()
{
std::cout << "ACTION: file->Save As" << std::endl;
}
void MainWindow::filePrint()
{
std::cout << "ACTION: file->Print" << std::endl;
}
void MainWindow::fileProperties()
{
std::cout << "ACTION: file->Properties" << std::endl;
}
void MainWindow::fileTemplateDesigner()
{
std::cout << "ACTION: file->Template Designer" << std::endl;
}
void MainWindow::fileClose()
{
std::cout << "ACTION: file->Close" << std::endl;
}
void MainWindow::fileExit()
{
std::cout << "ACTION: file->Exit" << std::endl;
}
void MainWindow::editUndo()
{
std::cout << "ACTION: edit->Undo" << std::endl;
}
void MainWindow::editRedo()
{
std::cout << "ACTION: edit->Redo" << std::endl;
}
void MainWindow::editCut()
{
std::cout << "ACTION: edit->Cut" << std::endl;
}
void MainWindow::editCopy()
{
std::cout << "ACTION: edit->Copy" << std::endl;
}
void MainWindow::editPaste()
{
std::cout << "ACTION: edit->Paste" << std::endl;
}
void MainWindow::editDelete()
{
std::cout << "ACTION: edit->Delete" << std::endl;
}
void MainWindow::editSelectAll()
{
std::cout << "ACTION: edit->Select All" << std::endl;
}
void MainWindow::editUnSelectAll()
{
std::cout << "ACTION: edit->Un-select All" << std::endl;
}
void MainWindow::editPreferences()
{
std::cout << "ACTION: edit->Preferences" << std::endl;
}
void MainWindow::viewZoomIn()
{
std::cout << "ACTION: edit->Zoom in" << std::endl;
}
void MainWindow::viewZoomOut()
{
std::cout << "ACTION: edit->Zoom out" << std::endl;
}
void MainWindow::viewZoom1to1()
{
std::cout << "ACTION: edit->Zoom 1 to 1" << std::endl;
}
void MainWindow::viewZoomToFit()
{
std::cout << "ACTION: edit->Zoom to fit" << std::endl;
}
void MainWindow::helpAbout()
{ {
QMessageBox aboutBox( QMessageBox::NoIcon, QMessageBox aboutBox( QMessageBox::NoIcon,
tr("About gLabels"), tr("About gLabels"),
@@ -64,19 +379,4 @@ namespace gLabels
aboutBox.exec(); aboutBox.exec();
} }
void MainWindow::createActions()
{
aboutAction = new QAction( tr("&About..."), this );
aboutAction->setStatusTip( tr("About gLabels") );
connect( aboutAction, SIGNAL(triggered()), this, SLOT(about()) );
}
void MainWindow::createMenus()
{
helpMenu = menuBar()->addMenu( tr("&Help") );
helpMenu->addAction( aboutAction );
}
} }
+55 -2
View File
@@ -44,16 +44,69 @@ namespace gLabels
private slots: private slots:
void about(); void fileNew();
void fileOpen();
void fileSave();
void fileSaveAs();
void filePrint();
void fileProperties();
void fileTemplateDesigner();
void fileClose();
void fileExit();
void editUndo();
void editRedo();
void editCut();
void editCopy();
void editPaste();
void editDelete();
void editSelectAll();
void editUnSelectAll();
void editPreferences();
void viewZoomIn();
void viewZoomOut();
void viewZoom1to1();
void viewZoomToFit();
void helpAbout();
private: private:
void createActions(); void createActions();
void createMenus(); void createMenus();
QMenu *fileMenu;
QMenu *editMenu;
QMenu *viewMenu;
QMenu *helpMenu; QMenu *helpMenu;
QAction *aboutAction; QAction *fileNewAction;
QAction *fileOpenAction;
QAction *fileSaveAction;
QAction *fileSaveAsAction;
QAction *filePrintAction;
QAction *filePropertiesAction;
QAction *fileTemplateDesignerAction;
QAction *fileCloseAction;
QAction *fileExitAction;
QAction *editUndoAction;
QAction *editRedoAction;
QAction *editCutAction;
QAction *editCopyAction;
QAction *editPasteAction;
QAction *editDeleteAction;
QAction *editSelectAllAction;
QAction *editUnSelectAllAction;
QAction *editPreferencesAction;
QAction *viewZoomInAction;
QAction *viewZoomOutAction;
QAction *viewZoom1to1Action;
QAction *viewZoomToFitAction;
QAction *helpAboutAction;
}; };