void NMainMenuBar::setupFileMenu() { fileMenu = this->addMenu(tr("&File")); QFont f; f.setPointSize(8); restoreDatabaseAction = new QAction(tr("Restore Database"), this); restoreDatabaseAction->setToolTip(tr("Restore from a backup")); restoreDatabaseAction->setFont(f); connect(restoreDatabaseAction, SIGNAL(triggered()), parent, SLOT(databaseRestore())); setupShortcut(restoreDatabaseAction, QString("File_Restore_Database")); fileMenu->addAction(restoreDatabaseAction); fileMenu->addSeparator(); exitAction = new QAction(tr("Exit"), this); exitAction->setToolTip(tr("Close the program")); connect(exitAction, SIGNAL(triggered()), parent, SLOT(closeNixNote())); exitAction->setShortcut(QKeySequence::Close); exitAction->setIcon(QIcon::fromTheme("exit")); exitAction->setFont(f); //exitAction->setIcon(QFileIconProvider().icon(QFileInfo("/home/randy/Dropbox/nixnote.jar"))); setupShortcut(exitAction, QString("File_Exit")); fileMenu->addAction(exitAction); }
void NMainMenuBar::setupToolsMenu() { toolsMenu = this->addMenu(tr("&Tools")); QFont f; f.setPointSize(8); synchronizeAction = new QAction(tr("Synchronize"), this); synchronizeAction->setToolTip(tr("Close the program")); connect(synchronizeAction, SIGNAL(triggered()), parent, SLOT(synchronize())); setupShortcut(synchronizeAction, QString("Tools_Synchronize")); synchronizeAction->setFont(f); toolsMenu->addAction(synchronizeAction); disconnectAction = new QAction(tr("Disconnect"), this); synchronizeAction->setToolTip(tr("Disconnect from Evernote")); connect(disconnectAction, SIGNAL(triggered()), parent, SLOT(disconnect())); setupShortcut(disconnectAction, QString("Tools_Synchronize")); disconnectAction->setFont(f); toolsMenu->addAction(disconnectAction); disconnectAction->setEnabled(false); }
void NMainMenuBar::setupNoteMenu() { noteMenu = this->addMenu(tr("&Note")); QFont f = global.getGuiFont(QFont()); noteMenu->setFont(f); newNoteAction = new QAction(tr("New &Note"), noteMenu); setupShortcut(newNoteAction, QString("File_Note_Add")); noteMenu->addAction(newNoteAction); connect(newNoteAction, SIGNAL(triggered()), parent, SLOT(newNote())); duplicateNoteAction = new QAction(tr("Dupl&icate Note"), noteMenu); setupShortcut(duplicateNoteAction, QString("File_Note_Duplicate")); noteMenu->addAction(duplicateNoteAction); connect(duplicateNoteAction, SIGNAL(triggered()), parent, SLOT(duplicateCurrentNote())); deleteNoteAction = new QAction(tr("&Delete"), noteMenu); setupShortcut(deleteNoteAction, QString("File_Note_Delete")); noteMenu->addAction(deleteNoteAction); connect(deleteNoteAction, SIGNAL(triggered()), parent, SLOT(deleteCurrentNote())); reindexNoteAction = new QAction(tr("Reindex Note"), noteMenu); setupShortcut(reindexNoteAction, QString("File_Note_Reindex")); noteMenu->addAction(reindexNoteAction); connect(reindexNoteAction, SIGNAL(triggered()), parent, SLOT(reindexCurrentNote())); if (parent->hunspellPluginAvailable) { noteMenu->addSeparator(); spellCheckAction = new QAction(tr("&Spell Check"), noteMenu); // setupShortcut(spellCheckAction, QString("Tools_Spell_Check")); This shortcut is done by the editor button bar noteMenu->addAction(spellCheckAction); connect(spellCheckAction, SIGNAL(triggered()), parent, SLOT(spellCheckCurrentNote())); } noteMenu->addSeparator(); pinNoteAction = new QAction(tr("&Pin Note"), noteMenu); setupShortcut(pinNoteAction, QString("NOTE_PIN")); noteMenu->addAction(pinNoteAction); connect(pinNoteAction, SIGNAL(triggered()), parent, SLOT(pinCurrentNote())); unpinNoteAction = new QAction(tr("&UnPin Note"), noteMenu); setupShortcut(unpinNoteAction, QString("NOTE_UNPIN")); noteMenu->addAction(unpinNoteAction); connect(unpinNoteAction, SIGNAL(triggered()), parent, SLOT(unpinCurrentNote())); }
EditorButtonBar::EditorButtonBar(QWidget *parent) : QToolBar(parent) { contextMenu = new QMenu(); undoVisible = contextMenu->addAction(tr("Undo")); redoVisible = contextMenu->addAction(tr("Redo")); cutVisible = contextMenu->addAction(tr("Cut")); copyVisible = contextMenu->addAction(tr("Copy")); pasteVisible = contextMenu->addAction(tr("Paste")); removeFormatVisible = contextMenu->addAction(tr("Remove Formatting")); boldVisible = contextMenu->addAction(tr("Bold")); italicVisible = contextMenu->addAction(tr("Italics")); superscriptVisible = contextMenu->addAction(tr("Superscript")); subscriptVisible = contextMenu->addAction(tr("Subscript")); underlineVisible = contextMenu->addAction(tr("Underline")); strikethroughVisible = contextMenu->addAction(tr("Strikethrough")); leftJustifyVisible = contextMenu->addAction(tr("Align Left")); centerJustifyVisible = contextMenu->addAction(tr("Align Center")); rightJustifyVisible = contextMenu->addAction(tr("Align Right")); hlineVisible = contextMenu->addAction(tr("Horizontal Line")); insertDatetimeVisible = contextMenu->addAction(tr("Insert Date && Time")); shiftRightVisible = contextMenu->addAction(tr("Shift Right")); shiftLeftVisible = contextMenu->addAction(tr("Shift Left")); bulletListVisible = contextMenu->addAction(tr("Bullet List")); numberListVisible = contextMenu->addAction(tr("Number List")); fontVisible = contextMenu->addAction(tr("Font")); fontSizeVisible = contextMenu->addAction(tr("Font Size")); fontColorVisible = contextMenu->addAction(tr("Font Color")); highlightVisible = contextMenu->addAction(tr("Highlight")); todoVisible = contextMenu->addAction(tr("To-do")); spellCheckButtonVisible = contextMenu->addAction(tr("Spell Check")); insertTableButtonVisible = contextMenu->addAction(tr("Insert Table")); htmlEntitiesButtonVisible = contextMenu->addAction(tr("HTML Entities")); undoVisible->setCheckable(true); redoVisible->setCheckable(true); cutVisible->setCheckable(true); copyVisible->setCheckable(true); pasteVisible->setCheckable(true); removeFormatVisible->setCheckable(true); boldVisible->setCheckable(true); italicVisible->setCheckable(true); underlineVisible->setCheckable(true); strikethroughVisible->setCheckable(true); superscriptVisible->setCheckable(true); subscriptVisible->setCheckable(true); leftJustifyVisible->setCheckable(true); centerJustifyVisible->setCheckable(true); rightJustifyVisible->setCheckable(true); hlineVisible->setCheckable(true); shiftRightVisible->setCheckable(true); shiftLeftVisible->setCheckable(true); bulletListVisible->setCheckable(true); numberListVisible->setCheckable(true); todoVisible->setCheckable(true); fontColorVisible->setCheckable(true); highlightVisible->setCheckable(true); fontColorVisible->setCheckable(true); fontSizeVisible->setCheckable(true); fontVisible->setCheckable(true); spellCheckButtonVisible->setCheckable(true); spellCheckButtonVisible->setChecked(true); insertTableButtonVisible->setCheckable(true); htmlEntitiesButtonVisible->setCheckable(true); insertDatetimeVisible->setCheckable(true); connect(undoVisible, SIGNAL(triggered()), this, SLOT(toggleUndoButtonVisible())); connect(redoVisible, SIGNAL(triggered()), this, SLOT(toggleRedoButtonVisible())); connect(cutVisible, SIGNAL(triggered()), this, SLOT(toggleCutButtonVisible())); connect(copyVisible, SIGNAL(triggered()), this, SLOT(toggleCopyButtonVisible())); connect(pasteVisible, SIGNAL(triggered()), this, SLOT(togglePasteButtonVisible())); connect(removeFormatVisible, SIGNAL(triggered()), this, SLOT(toggleRemoveFormatVisible())); connect(boldVisible, SIGNAL(triggered()), this, SLOT(toggleBoldButtonVisible())); connect(italicVisible, SIGNAL(triggered()), this, SLOT(toggleItalicButtonVisible())); connect(underlineVisible, SIGNAL(triggered()), this, SLOT(toggleUnderlineButtonVisible())); connect(strikethroughVisible, SIGNAL(triggered()), this, SLOT(toggleStrikethroughButtonVisible())); connect(superscriptVisible, SIGNAL(triggered()), this, SLOT(toggleSuperscriptButtonVisible())); connect(subscriptVisible, SIGNAL(triggered()), this, SLOT(toggleSubscriptButtonVisible())); connect(insertDatetimeVisible, SIGNAL(triggered()), this, SLOT(toggleInsertDatetimeVisible())); connect(leftJustifyVisible, SIGNAL(triggered()), this, SLOT(toggleLeftJustifyButtonVisible())); connect(centerJustifyVisible, SIGNAL(triggered()), this, SLOT(toggleCenterJustifyButtonVisible())); connect(rightJustifyVisible, SIGNAL(triggered()), this, SLOT(toggleRightJustifyButtonVisible())); connect(hlineVisible, SIGNAL(triggered()), this, SLOT(toggleHlineButtonVisible())); connect(shiftRightVisible, SIGNAL(triggered()), this, SLOT(toggleShiftRightButtonVisible())); connect(shiftLeftVisible, SIGNAL(triggered()), this, SLOT(toggleShiftLeftButtonVisible())); connect(bulletListVisible, SIGNAL(triggered()), this, SLOT(toggleBulletListButtonVisible())); connect(numberListVisible, SIGNAL(triggered()), this, SLOT(toggleNumberListButtonVisible())); connect(fontVisible, SIGNAL(triggered()), this, SLOT(toggleFontButtonVisible())); connect(fontSizeVisible, SIGNAL(triggered()), this, SLOT(toggleFontSizeButtonVisible())); connect(todoVisible, SIGNAL(triggered()), this, SLOT(toggleTodoButtonVisible())); connect(highlightVisible, SIGNAL(triggered()), this, SLOT(toggleHighlightColorVisible())); connect(fontColorVisible, SIGNAL(triggered()), this, SLOT(toggleFontColorVisible())); connect(insertTableButtonVisible, SIGNAL(triggered()), this, SLOT(toggleInsertTableButtonVisible())); connect(spellCheckButtonVisible, SIGNAL(triggered()), this, SLOT(toggleSpellCheckButtonVisible())); connect(htmlEntitiesButtonVisible, SIGNAL(triggered()), this, SLOT(toggleHtmlEntitiesButtonVisible())); undoButtonAction = this->addAction(global.getIconResource(":undoIcon"), tr("Undo")); undoButtonShortcut = new QShortcut(this); setupShortcut(undoButtonShortcut, "Edit_Undo"); redoButtonAction = this->addAction(global.getIconResource(":redoIcon"), tr("Redo")); redoButtonShortcut = new QShortcut(this); setupShortcut(redoButtonShortcut, "Edit_Redo"); redoButtonShortcut->setContext(Qt::WidgetShortcut); cutButtonAction = this->addAction(global.getIconResource(":cutIcon"), tr("Cut")); cutButtonShortcut = new QShortcut(this); setupShortcut(cutButtonShortcut, "Edit_Cut"); copyButtonAction = this->addAction(global.getIconResource(":copyIcon"), tr("Copy")); copyButtonShortcut = new QShortcut(this); setupShortcut(copyButtonShortcut, "Edit_Copy"); pasteButtonAction = this->addAction(global.getIconResource(":pasteIcon"), tr("Paste")); //this->setupShortcut(pasteButtonAction, "Edit_Paste"); // This is captured in NWebView via a keyevent statement removeFormatButtonAction = this->addAction(global.getIconResource(":eraserIcon"), tr("Remove Formatting")); removeFormatButtonShortcut = new QShortcut(this); this->setupShortcut(removeFormatButtonShortcut, "Edit_Remove_Formatting"); QLOG_DEBUG() << removeFormatButtonShortcut->key(); boldButtonWidget = new QToolButton(this); boldButtonWidget->setIcon(global.getIconResource(":boldIcon")); boldButtonWidget->setText(tr("Bold")); boldButtonAction = this->addWidget(boldButtonWidget); boldButtonShortcut = new QShortcut(this); this->setupShortcut(boldButtonShortcut, "Format_Bold"); italicButtonWidget = new QToolButton(this); italicButtonWidget->setIcon(global.getIconResource(":italicsIcon")); italicButtonWidget->setText(tr("Italics")); italicButtonWidget->setToolTip(tr("Italics")); italicButtonAction = this->addWidget(italicButtonWidget); italicButtonShortcut = new QShortcut(this); this->setupShortcut(italicButtonShortcut, "Format_Italic"); underlineButtonWidget = new QToolButton(this); underlineButtonWidget->setIcon(global.getIconResource(":underlineIcon")); underlineButtonWidget->setText(tr("Underline")); underlineButtonWidget->setToolTip(tr("Underline")); underlineButtonAction = this->addWidget(underlineButtonWidget); underlineButtonShortcut = new QShortcut(this); this->setupShortcut(underlineButtonShortcut, "Format_Underline"); strikethroughButtonAction = this->addAction(global.getIconResource(":strikethroughIcon"), tr("Strikethrough")); strikethroughButtonShortcut = new QShortcut(this); this->setupShortcut(strikethroughButtonShortcut, "Format_Strikethrough"); superscriptButtonAction = this->addAction(global.getIconResource(":superscriptIcon"), tr("Superscript")); superscriptButtonShortcut = new QShortcut(this); this->setupShortcut(superscriptButtonShortcut, "Format_Superscript"); subscriptButtonAction = this->addAction(global.getIconResource(":subscriptIcon"), tr("Subscript")); subscriptButtonShortcut = new QShortcut(this); this->setupShortcut(subscriptButtonShortcut, "Format_Subscript"); centerJustifyButtonAction = this->addAction(global.getIconResource(":centerAlignIcon"), tr("Center")); centerJustifyButtonShortcut = new QShortcut(this); this->setupShortcut(centerJustifyButtonShortcut, "Format_Alignment_Center"); rightJustifyButtonAction = this->addAction(global.getIconResource(":rightAlignIcon"), tr("Right Justify")); rightJustifyButtonShortcut = new QShortcut(this); this->setupShortcut(rightJustifyButtonShortcut, "Format_Alignment_Right"); leftJustifyButtonAction = this->addAction(global.getIconResource(":leftAlignIcon"), tr("Left Justify")); leftJustifyButtonShortcut = new QShortcut(this); this->setupShortcut(leftJustifyButtonShortcut, "Format_Alignment_Left"); hlineButtonAction = this->addAction(global.getIconResource(":hlineIcon"), tr("Horizontal Line")); hlineButtonShortcut = new QShortcut(this); this->setupShortcut(hlineButtonShortcut, "Format_Horizontal_Line"); insertDatetimeButtonWidget = new QToolButton(this); insertDatetimeButtonWidget->setIcon(global.getIconResource(":dateTime")); insertDatetimeButtonWidget->setText(tr("Insert Date & Time")); insertDatetimeButtonWidget->setToolTip(tr("Insert Date & Time")); insertDatetimeButtonAction = this->addWidget(insertDatetimeButtonWidget); insertDatetimeButtonShortcut = new QShortcut(this); insertDatetimeButtonShortcut->setKey(insertDatetimeButtonWidget->shortcut()); shiftRightButtonAction = this->addAction(global.getIconResource(":shiftRightIcon"), tr("Shift Right")); shiftRightButtonShortcut = new QShortcut(this); this->setupShortcut(shiftRightButtonShortcut, "Format_Indent_Increase"); shiftLeftButtonAction = this->addAction(global.getIconResource(":shiftLeftIcon"), tr("Shift Left")); shiftLeftButtonShortcut = new QShortcut(this); this->setupShortcut(shiftLeftButtonShortcut, "Format_Indent_Decrease"); bulletListButtonAction = this->addAction(global.getIconResource(":bulletListIcon"), tr("Bullet List")); bulletListButtonShortcut = new QShortcut(this); this->setupShortcut(bulletListButtonShortcut, "Format_List_Bullet"); numberListButtonAction = this->addAction(global.getIconResource(":numberListIcon"), tr("Number List")); numberListButtonShortcut = new QShortcut(this); this->setupShortcut(numberListButtonShortcut, "Format_List_Numbered"); fontNames = new FontNameComboBox(this); fontSizes = new FontSizeComboBox(this); loadFontNames(); fontButtonAction = addWidget(fontNames); fontSizeButtonAction = addWidget(fontSizes); fontColorMenuWidget = new ColorMenu(); fontColorButtonWidget = new QToolButton(this); fontColorButtonWidget->setAutoRaise(false); fontColorButtonWidget->setMenu(fontColorMenuWidget->getMenu()); fontColorButtonWidget->setIcon(global.getIconResource(":fontColorIcon")); fontColorButtonWidget->setToolTip(tr("Font Color")); fontColorAction = this->addWidget(fontColorButtonWidget); highlightColorMenuWidget = new ColorMenu(); highlightColorMenuWidget->setDefault(Qt::yellow); highlightColorButtonWidget = new QToolButton(this); highlightColorButtonWidget->setAutoRaise(false); highlightColorButtonWidget->setMenu(highlightColorMenuWidget->getMenu()); highlightColorButtonWidget->setIcon(global.getIconResource(":fontHighlightIcon")); highlightColorButtonWidget->setToolTip(tr("Highlight")); highlightColorAction = this->addWidget(highlightColorButtonWidget); highlightColorShortcut = new QShortcut(this); this->setupShortcut(highlightColorShortcut, "Format_Highlight"); todoButtonAction = this->addAction(global.getIconResource(":todoIcon"), tr("Todo")); todoButtonShortcut = new QShortcut(this); this->setupShortcut(todoButtonShortcut, "Edit_Insert_Todo"); spellCheckButtonAction = this->addAction(global.getIconResource(":spellCheckIcon"), tr("Spell Check")); spellCheckButtonShortcut = new QShortcut(this); this->setupShortcut(spellCheckButtonShortcut, "Tools_Spell_Check"); insertTableButtonAction = this->addAction(global.getIconResource(":gridIcon"), tr("Insert Table")); insertTableButtonShortcut = new QShortcut(this); this->setupShortcut(insertTableButtonShortcut, "Edit_Insert_Table"); htmlEntitiesButtonAction = this->addAction(global.getIconResource(":htmlentitiesIcon"), tr("Insert HTML Entities")); htmlEntitiesButtonShortcut = new QShortcut(this); setupShortcut(htmlEntitiesButtonShortcut, "Edit_Insert_Html_Entities"); htmlEntitiesButtonShortcut->setContext(Qt::WidgetShortcut); }
// Override the constructor so we always use a NWebPage // rather than a QWebPage NWebView::NWebView(NBrowserWindow *parent) : QWebView(parent) { this->parent = parent; editorPage = new NWebPage(this); setPage(editorPage); isDirty = false; this->setFont(global.getGuiFont(font())); contextMenu = new QMenu(this); openAction = new QAction(tr("Open"), this); contextMenu->addAction(openAction); contextMenu->addSeparator(); contextMenu->setFont(global.getGuiFont(font())); cutAction = new QAction(tr("Cut"), this); this->setupShortcut(cutAction, "Edit_Cut"); contextMenu->addAction(cutAction); connect(cutAction, SIGNAL(triggered()), parent, SLOT(cutButtonPressed())); copyAction = new QAction(tr("Copy"), this); this->setupShortcut(copyAction, "Edit_Copy"); contextMenu->addAction(copyAction); connect(copyAction, SIGNAL(triggered()), parent, SLOT(copyButtonPressed())); pasteAction = new QAction(tr("Paste"), this); setupShortcut(pasteAction, "Edit_Paste"); contextMenu->addAction(pasteAction); connect(pasteAction, SIGNAL(triggered()), parent, SLOT(pasteButtonPressed())); pasteWithoutFormatAction = new QAction(tr("Paste as Unformatted Text"), this); this->setupShortcut(pasteWithoutFormatAction, "Edit_Paste_Without_Formatting"); contextMenu->addAction(pasteWithoutFormatAction); connect(pasteWithoutFormatAction, SIGNAL(triggered()), parent, SLOT(pasteWithoutFormatButtonPressed())); removeFormattingAction = new QAction(tr("Remove Formatting"), this); this->setupShortcut(removeFormattingAction, "Edit_Remove_Formatting"); contextMenu->addAction(removeFormattingAction); connect(removeFormattingAction, SIGNAL(triggered()), parent, SLOT(removeFormatButtonPressed())); contextMenu->addSeparator(); QMenu *colorMenu = new QMenu(tr("Background Color"), this); colorMenu->setFont(global.getGuiFont(font())); QAction *action = setupColorMenuOption(tr("White")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundWhite())); action = setupColorMenuOption(tr("Red")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundRed())); action = setupColorMenuOption(tr("Blue")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundBlue())); action = setupColorMenuOption(tr("Green")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundGreen())); action = setupColorMenuOption(tr("Yellow")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundYellow())); action = setupColorMenuOption(tr("Black")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundBlack())); action = setupColorMenuOption(tr("Grey")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundGrey())); action = setupColorMenuOption(tr("Purple")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundPurple())); action = setupColorMenuOption(tr("Brown")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundBrown())); action = setupColorMenuOption(tr("Orange")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundOrange())); action = setupColorMenuOption(tr("Powder Blue")); colorMenu->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setBackgroundPowderBlue())); contextMenu->addMenu(colorMenu); contextMenu->addSeparator(); todoAction = new QAction(tr("To-do"), this); contextMenu->addAction(todoAction); this->setupShortcut(todoAction, "Edit_Insert_Todo"); connect(todoAction, SIGNAL(triggered()), parent, SLOT(todoButtonPressed())); contextMenu->addSeparator(); insertHtmlEntitiesAction = new QAction(tr("HTML Entities"),this); contextMenu->addAction(insertHtmlEntitiesAction); this->setupShortcut(insertHtmlEntitiesAction, "Edit_Insert_Html_Entities"); connect(insertHtmlEntitiesAction, SIGNAL(triggered()), parent, SLOT(insertHtmlEntities())); contextMenu->addSeparator(); encryptAction = new QAction(tr("Encrypted Selected Text"), this); contextMenu->addAction(encryptAction); this->setupShortcut(encryptAction, "Edit_EncryptText"); connect(encryptAction, SIGNAL(triggered()), parent, SLOT(encryptButtonPressed())); insertLinkAction = new QAction(tr("Insert Hyperlink"), this); contextMenu->addAction(insertLinkAction); this->setupShortcut(insertLinkAction, "Edit_InsertHyperlink"); connect(insertLinkAction, SIGNAL(triggered()),parent, SLOT(insertLinkButtonPressed())); insertQuickLinkAction = new QAction(tr("Quick Link"), this); contextMenu->addAction(insertQuickLinkAction); this->setupShortcut(insertQuickLinkAction, "Edit_InsertQuickLink"); connect(insertQuickLinkAction, SIGNAL(triggered()),parent, SLOT(insertQuickLinkButtonPressed())); removeLinkAction = new QAction(tr("Remove Hyperlink"), this); contextMenu->addAction(removeLinkAction); this->setupShortcut(removeLinkAction, "Edit_RemoveHyperlink"); connect(removeLinkAction, SIGNAL(triggered()),parent, SLOT(removeLinkButtonPressed())); attachFileAction = new QAction(tr("Attach File"), this); contextMenu->addAction(attachFileAction); this->setupShortcut(attachFileAction, "Edit_Attach_File"); connect(attachFileAction, SIGNAL(triggered()),parent, SLOT(attachFile())); contextMenu->addSeparator(); insertLatexAction = new QAction(tr("Insert LaTeX Formula"), this); contextMenu->addAction(insertLatexAction); this->setupShortcut(insertLatexAction, "Edit_Insert_Latex"); connect(insertLatexAction, SIGNAL(triggered()),parent, SLOT(insertLatexButtonPressed())); contextMenu->addSeparator(); tableMenu = new QMenu(tr("Table"), this); tableMenu->setFont(global.getGuiFont(font())); contextMenu->addMenu(tableMenu); insertTableAction = new QAction(tr("Insert Table"), this); this->setupShortcut(insertTableAction, "Edit_Insert_Table"); tableMenu->addAction(insertTableAction); connect(insertTableAction, SIGNAL(triggered()), parent, SLOT(insertTableButtonPressed())); tableMenu->addSeparator(); insertTableRowAction = new QAction(tr("Insert Row"), this); this->setupShortcut(insertTableRowAction, "Edit_Insert_Table_Row"); tableMenu->addAction(insertTableRowAction); connect(insertTableRowAction, SIGNAL(triggered()), parent, SLOT(insertTableRowButtonPressed())); insertTableColumnAction = new QAction(tr("Insert Column"), this); this->setupShortcut(insertTableColumnAction, "Edit_Insert_Table_Column"); tableMenu->addAction(insertTableColumnAction); connect(insertTableColumnAction, SIGNAL(triggered()), parent, SLOT(insertTableColumnButtonPressed())); tableMenu->addSeparator(); deleteTableRowAction = new QAction(tr("Delete Row"), this); tableMenu->addAction(deleteTableRowAction); this->setupShortcut(deleteTableRowAction, "Edit_Delete_Table_Row"); connect(deleteTableRowAction, SIGNAL(triggered()), parent, SLOT(deleteTableRowButtonPressed())); deleteTableColumnAction = new QAction(tr("Delete Column"), this); tableMenu->addAction(deleteTableColumnAction); this->setupShortcut(deleteTableColumnAction, "Edit_Delete_Table_Column"); connect(deleteTableColumnAction, SIGNAL(triggered()), parent, SLOT(deleteTableColumnButtonPressed())); contextMenu->addSeparator(); imageMenu = new QMenu(tr("Image"), this); imageMenu->setFont(global.getGuiFont(font())); contextMenu->addMenu(imageMenu); downloadImageAction()->setText(tr("Save Image")); imageMenu->addAction(downloadImageAction()); // Don't connect this signal. The download attachmen signal will handle it. Otherwise // the signal fires twice. //connect(editorPage, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest))); imageMenu->addSeparator(); rotateImageLeftAction = new QAction(tr("Rotate Left"), this); imageMenu->addAction(rotateImageLeftAction); this->setupShortcut(rotateImageLeftAction, "Edit_Image_Rotate_Left"); connect(rotateImageLeftAction, SIGNAL(triggered()), parent, SLOT(rotateImageLeftButtonPressed())); rotateImageRightAction = new QAction(tr("Rotate Right"), this); this->setupShortcut(rotateImageRightAction, "Edit_Image_Rotate_Right"); imageMenu->addAction(rotateImageRightAction); connect(rotateImageRightAction, SIGNAL(triggered()), parent, SLOT(rotateImageRightButtonPressed())); contextMenu->addSeparator(); downloadAttachmentAction()->setText(tr("Save Attachment")); contextMenu->addAction(downloadAttachmentAction()); connect(editorPage, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest))); connect(editorPage, SIGNAL(contentsChanged()), this, SLOT(editAlert())); editorPage->setContentEditable(true); // Set some of the menus as disabled until a user selects an image or attachment downloadAttachmentAction()->setEnabled(false); rotateImageRightAction->setEnabled(false); rotateImageLeftAction->setEnabled(false); openAction->setEnabled(false); downloadImageAction()->setEnabled(false); connect(this->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(exposeToJavascript())); //this->setStyleSheet("QWebView,html,body { background-color : red; foreground-color : white; }"); QString qss = global.fileManager.getQssDirPathUser(""); if (qss == "") qss = global.fileManager.getQssDirPath(""); this->settings()->setUserStyleSheetUrl(QUrl("file://"+qss+"editor.css")); }
void NMainMenuBar::setupFileMenu() { QFont f = global.getGuiFont(QFont()); this->setFont(f); fileMenu = this->addMenu(tr("&File")); fileMenu->setFont(f); emailAction = new QAction(tr("Email Note"), this); emailAction->setToolTip(tr("Email a copy of this note")); connect(emailAction, SIGNAL(triggered()), parent, SLOT(emailNote())); setupShortcut(emailAction, QString("File_Email")); fileMenu->addAction(emailAction); printPreviewAction = new QAction(tr("Print Preview Note"), this); printPreviewAction->setToolTip(tr("Print preview of this note")); connect(printPreviewAction, SIGNAL(triggered()), parent, SLOT(printPreviewNote())); setupShortcut(printPreviewAction, QString("File_Print_Preview")); fileMenu->addAction(printPreviewAction); //printPreviewAction->setVisible(false); // for some reason images don't show up in print preview, so this is useless. Check again in Qt5 printAction = new QAction(tr("&Print Note"), this); printAction->setToolTip(tr("Print this note")); connect(printAction, SIGNAL(triggered()), parent, SLOT(printNote())); setupShortcut(printAction, QString("File_Print")); fileMenu->addAction(printAction); fileMenu->addSeparator(); backupDatabaseAction = new QAction(tr("&Backup Database"), this); backupDatabaseAction->setToolTip(tr("Backup database to a file")); connect(backupDatabaseAction, SIGNAL(triggered()), parent, SLOT(databaseBackup())); setupShortcut(backupDatabaseAction, QString("File_Backup_Database")); fileMenu->addAction(backupDatabaseAction); restoreDatabaseAction = new QAction(tr("&Restore Database"), this); restoreDatabaseAction->setToolTip(tr("Restore from a backup")); connect(restoreDatabaseAction, SIGNAL(triggered()), parent, SLOT(databaseRestore())); setupShortcut(restoreDatabaseAction, QString("File_Restore_Database")); fileMenu->addAction(restoreDatabaseAction); fileMenu->addSeparator(); exportNoteAction = new QAction(tr("&Export to NixNote Export"), this); exportNoteAction->setToolTip(tr("Export selected notes to a NNEX file")); connect(exportNoteAction, SIGNAL(triggered()), parent, SLOT(noteExport())); setupShortcut(exportNoteAction, QString("File_Note_Export")); fileMenu->addAction(exportNoteAction); exportAsPdfAction = new QAction(tr("&Export notes as PDF"), this); exportAsPdfAction->setToolTip(tr("Export selected notes to a PDF file")); connect(exportAsPdfAction, SIGNAL(triggered()), parent, SLOT(onExportAsPdf())); setupShortcut(exportAsPdfAction, QString("File_Note_Export_Pdf")); fileMenu->addAction(exportAsPdfAction); importNoteAction = new QAction(tr("&Import notes"), this); importNoteAction->setToolTip(tr("Import notes from an export file")); connect(importNoteAction, SIGNAL(triggered()), parent, SLOT(noteImport())); setupShortcut(importNoteAction, QString("File_Note_Import")); fileMenu->addAction(importNoteAction); fileMenu->addSeparator(); QList<QString> names = global.accountsManager->nameList(); QList<int> ids = global.accountsManager->idList(); QList<QPair<int, QString>> pairList; for (int i = 0; i < ids.size(); i++) { pairList.append(QPair<int, QString>(ids[i], names[i])); } qSort(pairList.begin(), pairList.end(), QPairFirstComparer()); for (int i = 0; i < ids.size(); i++) { QAction *accountAction = new QAction(pairList[i].second + " - (" + QString::number(pairList[i].first) + ")", this); accountAction->setData(pairList[i].first); accountAction->setCheckable(true); if (global.accountsManager->currentId == pairList[i].first) accountAction->setChecked(true); else { accountAction->setText( tr("Switch to ") + pairList[i].second + " - (" + QString::number(pairList[i].first) + ")"); } fileMenu->addAction(accountAction); connect(accountAction, SIGNAL(triggered()), parent, SLOT(switchUser())); userAccountActions.append(accountAction); } addUserAction = new QAction(tr("&Add Another User..."), this); fileMenu->addAction(addUserAction); connect(addUserAction, SIGNAL(triggered()), parent, SLOT(addAnotherUser())); userMaintenanceAction = new QAction(tr("&User Account Maintenance"), this); fileMenu->addAction(userMaintenanceAction); connect(userMaintenanceAction, SIGNAL(triggered()), parent, SLOT(userMaintenance())); fileMenu->addSeparator(); openCloseAction = new QAction(tr("&Open/Close Notebooks"), this); openCloseAction->setToolTip(tr("Open/Close Notebooks")); connect(openCloseAction, SIGNAL(triggered()), parent, SLOT(openCloseNotebooks())); setupShortcut(quitAction, QString("File_Notebook_OpenClose")); fileMenu->addAction(openCloseAction); fileMenu->addSeparator(); quitAction = new QAction(tr("Quit"), this); quitAction->setToolTip(tr("Quit the program")); connect(quitAction, SIGNAL(triggered()), parent, SLOT(quitNixNote())); quitAction->setShortcut(QKeySequence::Close); quitAction->setIcon(QIcon::fromTheme("exit")); setupShortcut(quitAction, QString("File_Exit")); fileMenu->addAction(quitAction); QString menuCss = global.getThemeCss("menuCss"); if (menuCss != "") this->setStyleSheet(menuCss); }
void NMainMenuBar::setupToolsMenu() { toolsMenu = this->addMenu(tr("&Tools")); QFont f = global.getGuiFont(QFont()); toolsMenu->setFont(f); synchronizeAction = new QAction(tr("&Synchronize"), this); synchronizeAction->setToolTip(tr("Synchronize with Evernote")); connect(synchronizeAction, SIGNAL(triggered()), parent, SLOT(synchronize())); toolsMenu->addAction(synchronizeAction); disconnectAction = new QAction(tr("&Disconnect"), this); disconnectAction->setToolTip(tr("Disconnect from Evernote")); connect(disconnectAction, SIGNAL(triggered()), parent, SLOT(disconnect())); setupShortcut(disconnectAction, QString("")); toolsMenu->addAction(disconnectAction); disconnectAction->setEnabled(false); disconnectAction->setVisible(false); /// We can probably delete this whole menu option pauseIndexingAction = new QAction(tr("Pause &indexing"), this); pauseIndexingAction->setToolTip(tr("Temporarily pause indexing")); setupShortcut(pauseIndexingAction, QString("Tools_Pause_Indexing")); connect(pauseIndexingAction, SIGNAL(triggered()), parent, SLOT(pauseIndexing())); pauseIndexingAction->setCheckable(true); toolsMenu->addAction(pauseIndexingAction); pauseIndexingAction->setVisible(global.enableIndexing); disableEditingAction = new QAction(tr("Disable &editing"), this); disableEditingAction->setToolTip(tr("Temporarily disable note editing")); setupShortcut(disableEditingAction, QString("Tools_Disable_Editing")); disableEditingAction->setCheckable(true); disableEditingAction->setChecked(global.disableEditing); connect(disableEditingAction, SIGNAL(triggered()), parent, SLOT(disableEditing())); toolsMenu->addAction(disableEditingAction); toolsMenu->addSeparator(); reindexDatabaseAction = new QAction(tr("&Reindex database"), this); reindexDatabaseAction->setToolTip(tr("Reindex all notes")); setupShortcut(reindexDatabaseAction, QString("Tools_Database_Reindex")); connect(reindexDatabaseAction, SIGNAL(triggered()), parent, SLOT(reindexDatabase())); toolsMenu->addAction(reindexDatabaseAction); reindexDatabaseAction->setVisible(global.enableIndexing); databaseStatusDialogAction = new QAction(tr("&Database status"), this); databaseStatusDialogAction->setToolTip(tr("Database Status")); setupShortcut(databaseStatusDialogAction, QString("Tools_Database_Status")); connect(databaseStatusDialogAction, SIGNAL(triggered()), parent, SLOT(openDatabaseStatus())); toolsMenu->addAction(databaseStatusDialogAction); toolsMenu->addSeparator(); accountDialogAction = new QAction(tr("A&ccount / usage"), this); accountDialogAction->setToolTip(tr("Account and usage information")); connect(accountDialogAction, SIGNAL(triggered()), parent, SLOT(openAccount())); setupShortcut(accountDialogAction, QString("Tools_Account_Information")); toolsMenu->addAction(accountDialogAction); toolsMenu->addSeparator(); importFoldersDialogAction = new QAction(tr("&Import folders"), this); importFoldersDialogAction->setToolTip(tr("Import Folders")); setupShortcut(importFoldersDialogAction, QString("Tools_Import_Folders")); connect(importFoldersDialogAction, SIGNAL(triggered()), parent, SLOT(openImportFolders())); toolsMenu->addAction(importFoldersDialogAction); }
void NMainMenuBar::setupViewMenu() { viewMenu = this->addMenu(tr("&View")); QFont f = global.getGuiFont(QFont()); viewMenu->setFont(f); viewNoteListWide = new QAction(tr("Wide Note List"), this); setupShortcut(viewNoteListWide, "View_Note_List_Wide"); viewMenu->addAction(viewNoteListWide); viewNoteListWide->setCheckable(true); viewNoteListNarrow = new QAction(tr("Narrow Note List"), this); setupShortcut(viewNoteListNarrow, "View_Note_List_Narrow"); viewNoteListNarrow->setCheckable(true); viewMenu->addAction(viewNoteListNarrow); connect(viewNoteListNarrow, SIGNAL(triggered()), parent, SLOT(viewNoteListNarrow())); connect(viewNoteListWide, SIGNAL(triggered()), parent, SLOT(viewNoteListWide())); viewSourceAction = new QAction(tr("&Show Source"), this); setupShortcut(viewSourceAction, "View_Source"); viewMenu->addAction(viewSourceAction); viewHistoryAction = new QAction(tr("Note &History"), this); setupShortcut(viewHistoryAction, "View_Note_History"); viewMenu->addAction(viewHistoryAction); viewMenu->addSeparator(); viewPresentationModeAction = new QAction(tr("&Presentation Mode"), this); setupShortcut(viewPresentationModeAction, "View_Presentation_Mode"); viewMenu->addAction(viewPresentationModeAction); viewLeftPanel = new QAction(tr("Show &Left Panel"), this); setupShortcut(viewLeftPanel, "View_Show_Left_Side"); viewLeftPanel->setCheckable(true); viewLeftPanel->setChecked(true); viewMenu->addAction(viewLeftPanel); connect(viewLeftPanel, SIGNAL(triggered()), parent, SLOT(toggleLeftPanel())); viewFavoritesTree = new QAction(tr("Show &Favorites"), this); setupShortcut(viewFavoritesTree, "View_Show_Favorites_List"); viewFavoritesTree->setCheckable(true); viewFavoritesTree->setChecked(true); viewMenu->addAction(viewFavoritesTree); connect(viewFavoritesTree, SIGNAL(triggered()), parent, SLOT(toggleFavoritesTree())); viewNotebookTree = new QAction(tr("Show &Notebooks"), this); setupShortcut(viewNotebookTree, "View_Show_Notebook_List"); viewNotebookTree->setCheckable(true); viewNotebookTree->setChecked(true); viewMenu->addAction(viewNotebookTree); connect(viewNotebookTree, SIGNAL(triggered()), parent, SLOT(toggleNotebookTree())); viewTagTree = new QAction(tr("Show Ta&gs"), this); setupShortcut(viewTagTree, "View_Show_Tag_List"); viewTagTree->setCheckable(true); viewTagTree->setChecked(true); viewMenu->addAction(viewTagTree); connect(viewTagTree, SIGNAL(triggered()), parent, SLOT(toggleTagTree())); viewSearchTree = new QAction(tr("Show Sa&ved Searches"), this); setupShortcut(viewSearchTree, "View_Show_Saved_Search_List"); viewSearchTree->setCheckable(true); viewSearchTree->setChecked(true); viewMenu->addAction(viewSearchTree); connect(viewSearchTree, SIGNAL(triggered()), parent, SLOT(toggleSavedSearchTree())); viewAttributesTree = new QAction(tr("Show &Attribute Filter"), this); setupShortcut(viewAttributesTree, "View_Attributes_List"); viewAttributesTree->setCheckable(true); viewAttributesTree->setChecked(true); viewMenu->addAction(viewAttributesTree); connect(viewAttributesTree, SIGNAL(triggered()), parent, SLOT(toggleAttributesTree())); viewTrashTree = new QAction(tr("Show T&rash"), this); setupShortcut(viewTrashTree, "View_Trash"); viewTrashTree->setCheckable(true); viewTrashTree->setChecked(true); viewMenu->addAction(viewTrashTree); connect(viewTrashTree, SIGNAL(triggered()), parent, SLOT(toggleTrashTree())); viewNoteList = new QAction(tr("Show N&ote List"), this); setupShortcut(viewNoteList, "View_Show_Note_List"); viewNoteList->setCheckable(true); viewNoteList->setChecked(true); viewMenu->addAction(viewNoteList); connect(viewNoteList, SIGNAL(triggered()), parent, SLOT(toggleNoteList())); viewNotePanel = new QAction(tr("Show Note &Panel"), this); setupShortcut(viewNotePanel, "View_Show_Note_Panel"); viewNotePanel->setCheckable(true); viewNotePanel->setChecked(true); viewMenu->addAction(viewNotePanel); connect(viewNotePanel, SIGNAL(triggered()), parent, SLOT(toggleTabWindow())); viewMenu->addSeparator(); viewExtendedInformation = new QAction(tr("View Note &Info"), this); setupShortcut(viewExtendedInformation, "View_Extended_Information"); viewMenu->addAction(viewExtendedInformation); viewToolbar = new QAction(tr("View &Toolbar"), this); setupShortcut(viewToolbar, "View_Toolbar"); viewMenu->addAction(viewToolbar); viewToolbar->setCheckable(true); viewToolbar->setChecked(true); connect(viewToolbar, SIGNAL(triggered()), parent, SLOT(toggleToolbar())); viewStatusbar = new QAction(tr("View Status&bar"), this); setupShortcut(viewStatusbar, "View_Statusbar"); viewMenu->addAction(viewStatusbar); viewStatusbar->setCheckable(true); connect(viewStatusbar, SIGNAL(triggered()), parent, SLOT(toggleStatusbar())); createSortMenu(viewMenu); }
void NMainMenuBar::setupEditMenu() { editMenu = this->addMenu(tr("&Edit")); QFont f = global.getGuiFont(QFont()); editMenu->setFont(f); undoAction = new QAction(tr("&Undo"), this); setupShortcut(undoAction, QString("Edit_Undo")); editMenu->addAction(undoAction); redoAction = new QAction(tr("&Redo"), this); setupShortcut(redoAction, QString("Edit_Redo")); editMenu->addAction(redoAction); editMenu->addSeparator(); cutAction = new QAction(tr("&Cut"), this); setupShortcut(cutAction, QString("Edit_Cut")); editMenu->addAction(cutAction); copyAction = new QAction(tr("C&opy"), this); setupShortcut(copyAction, QString("Edit_Copy")); editMenu->addAction(copyAction); pasteAction = new QAction(tr("&Paste"), this); setupShortcut(pasteAction, QString("Edit_Paste")); editMenu->addAction(pasteAction); pasteAsTextAction = new QAction(tr("Pas&te as Unformatted Text"), this); setupShortcut(pasteAsTextAction, QString("Edit_Paste_Without_Formatting")); editMenu->addAction(pasteAsTextAction); removeFormattingAction = new QAction(tr("Remo&ve Formatting"), this); //setupShortcut(removeFormjattingAction, QString("Edit_Remove_Formatting")); // For some reason this one makes the editorButtonBar one ambiguous editMenu->addAction(removeFormattingAction); editMenu->addSeparator(); selectAllAction = new QAction(tr("Select &All"), this); setupShortcut(selectAllAction, QString("Edit_Select_All")); editMenu->addAction(selectAllAction); editMenu->addSeparator(); findReplaceMenu = editMenu->addMenu(tr("F&ind and Replace")); findReplaceMenu->setFont(f); searchNotesAction = new QAction(tr("&Search Notes"), this); setupShortcut(searchNotesAction, QString("Edit_Search_Notes")); findReplaceMenu->addAction(searchNotesAction); connect(searchNotesAction, SIGNAL(triggered()), parent->searchText, SLOT(setFocus())); resetSearchAction = new QAction(tr("&Reset Search"), this); setupShortcut(resetSearchAction, QString("Edit_Reset_Search")); findReplaceMenu->addAction(resetSearchAction); connect(resetSearchAction, SIGNAL(triggered()), parent, SLOT(resetView())); findReplaceMenu->addSeparator(); searchFindAction = new QAction(tr("&Find in Note"), this); setupShortcut(searchFindAction, QString("Edit_Search_Find")); findReplaceMenu->addAction(searchFindAction); connect(searchFindAction, SIGNAL(triggered()), parent, SLOT(findInNote())); searchFindNextAction = new QAction(tr("Find &Next"), this); setupShortcut(searchFindNextAction, QString("Edit_Search_Find_Next")); findReplaceMenu->addAction(searchFindNextAction); connect(searchFindNextAction, SIGNAL(triggered()), parent, SLOT(findNextInNote())); searchFindPrevAction = new QAction(tr("Find &Previous"), this); setupShortcut(searchFindPrevAction, QString("Edit_Search_Find_Prev")); findReplaceMenu->addAction(searchFindPrevAction); connect(searchFindPrevAction, SIGNAL(triggered()), parent, SLOT(findPrevInNote())); findReplaceMenu->addSeparator(); searchFindReplaceAction = new QAction(tr("Replace &Within Note..."), this); setupShortcut(searchFindReplaceAction, QString("Edit_Search_Find_Replace")); findReplaceMenu->addAction(searchFindReplaceAction); connect(searchFindReplaceAction, SIGNAL(triggered()), parent, SLOT(findReplaceInNote())); editMenu->addSeparator(); createThemeMenu(editMenu); preferencesAction = new QAction(tr("Preferences"), this); preferencesAction->setMenuRole(QAction::PreferencesRole); setupShortcut(preferencesAction, QString("Edit_Preferences")); editMenu->addAction(preferencesAction); connect(preferencesAction, SIGNAL(triggered()), parent, SLOT(openPreferences())); }