From 5e3e4a16cd0910e2e58e03dab83019079948e62d Mon Sep 17 00:00:00 2001 From: Randy Baumgarte Date: Wed, 1 Sep 2010 15:23:28 -0400 Subject: [PATCH] Change the editor button bar from a QHBoxLayout to a QToolBar. This will allow the window to be sized smaller than the maximum width of the button bar. Hiding & showing is also moved from the Edit/Preferences dialog box to a context menu. --- src/cx/fbn/nevernote/NeverNote.java | 66 +-- src/cx/fbn/nevernote/dialog/ConfigDialog.java | 56 +-- .../dialog/ConfigShowEditorButtonsPage.java | 521 --------------------- src/cx/fbn/nevernote/gui/BrowserWindow.java | 233 ++++++--- src/cx/fbn/nevernote/gui/EditorButtonBar.java | 82 ++++ 5 files changed, 278 insertions(+), 680 deletions(-) delete mode 100644 src/cx/fbn/nevernote/dialog/ConfigShowEditorButtonsPage.java create mode 100644 src/cx/fbn/nevernote/gui/EditorButtonBar.java diff --git a/src/cx/fbn/nevernote/NeverNote.java b/src/cx/fbn/nevernote/NeverNote.java index 230cd27..2399e93 100644 --- a/src/cx/fbn/nevernote/NeverNote.java +++ b/src/cx/fbn/nevernote/NeverNote.java @@ -85,7 +85,6 @@ import com.trolltech.qt.gui.QCloseEvent; import com.trolltech.qt.gui.QColor; import com.trolltech.qt.gui.QComboBox; import com.trolltech.qt.gui.QComboBox.InsertPolicy; -import com.trolltech.qt.gui.QCursor; import com.trolltech.qt.gui.QDesktopServices; import com.trolltech.qt.gui.QDialog; import com.trolltech.qt.gui.QFileDialog; @@ -3383,49 +3382,32 @@ public class NeverNote extends QMainWindow{ } // Show editor buttons private void showEditorButtons() { + browserWindow.buttonLayout.setVisible(true); + browserWindow.undoAction.setVisible(false); + browserWindow.undoButton.setVisible(false); - browserWindow.redoButton.setVisible(false); - browserWindow.cutButton.setVisible(false); - browserWindow.copyButton.setVisible(false); - browserWindow.pasteButton.setVisible(false); - browserWindow.strikethroughButton.setVisible(false); - browserWindow.underlineButton.setVisible(false); - browserWindow.boldButton.setVisible(false); - browserWindow.italicButton.setVisible(false); - browserWindow.hlineButton.setVisible(false); - browserWindow.indentButton.setVisible(false); - browserWindow.outdentButton.setVisible(false); - browserWindow.fontList.setVisible(false); - browserWindow.fontSize.setVisible(false); - browserWindow.fontColor.setVisible(false); - browserWindow.fontHilight.setVisible(false); - browserWindow.leftAlignButton.setVisible(false); - browserWindow.centerAlignButton.setVisible(false); - browserWindow.rightAlignButton.setVisible(false); - browserWindow.indentButton.setVisible(false); - browserWindow.outdentButton.setVisible(false); - browserWindow.undoButton.setVisible(Global.isEditorButtonVisible("undo")); - browserWindow.redoButton.setVisible(Global.isEditorButtonVisible("redo")); - browserWindow.cutButton.setVisible(Global.isEditorButtonVisible("cut")); - browserWindow.copyButton.setVisible(Global.isEditorButtonVisible("copy")); - browserWindow.pasteButton.setVisible(Global.isEditorButtonVisible("paste")); - browserWindow.strikethroughButton.setVisible(Global.isEditorButtonVisible("strikethrough")); - browserWindow.underlineButton.setVisible(Global.isEditorButtonVisible("underline")); - browserWindow.boldButton.setVisible(Global.isEditorButtonVisible("bold")); - browserWindow.italicButton.setVisible(Global.isEditorButtonVisible("italic")); - browserWindow.hlineButton.setVisible(Global.isEditorButtonVisible("hline")); - browserWindow.indentButton.setVisible(Global.isEditorButtonVisible("indent")); - browserWindow.outdentButton.setVisible(Global.isEditorButtonVisible("outdent")); - browserWindow.bulletListButton.setVisible(Global.isEditorButtonVisible("bulletList")); - browserWindow.numberListButton.setVisible(Global.isEditorButtonVisible("numberList")); - browserWindow.fontList.setVisible(Global.isEditorButtonVisible("font")); - browserWindow.fontSize.setVisible(Global.isEditorButtonVisible("fontSize")); - browserWindow.fontColor.setVisible(Global.isEditorButtonVisible("fontColor")); - browserWindow.fontHilight.setVisible(Global.isEditorButtonVisible("fontHilight")); - browserWindow.leftAlignButton.setVisible(Global.isEditorButtonVisible("alignLeft")); - browserWindow.centerAlignButton.setVisible(Global.isEditorButtonVisible("alignCenter")); - browserWindow.rightAlignButton.setVisible(Global.isEditorButtonVisible("alignRight")); + browserWindow.undoAction.setVisible(Global.isEditorButtonVisible("undo")); + browserWindow.redoAction.setVisible(Global.isEditorButtonVisible("redo")); + browserWindow.cutAction.setVisible(Global.isEditorButtonVisible("cut")); + browserWindow.copyAction.setVisible(Global.isEditorButtonVisible("copy")); + browserWindow.pasteAction.setVisible(Global.isEditorButtonVisible("paste")); + browserWindow.strikethroughAction.setVisible(Global.isEditorButtonVisible("strikethrough")); + browserWindow.underlineAction.setVisible(Global.isEditorButtonVisible("underline")); + browserWindow.boldAction.setVisible(Global.isEditorButtonVisible("bold")); + browserWindow.italicAction.setVisible(Global.isEditorButtonVisible("italic")); + browserWindow.hlineAction.setVisible(Global.isEditorButtonVisible("hline")); + browserWindow.indentAction.setVisible(Global.isEditorButtonVisible("indent")); + browserWindow.outdentAction.setVisible(Global.isEditorButtonVisible("outdent")); + browserWindow.bulletListAction.setVisible(Global.isEditorButtonVisible("bulletList")); + browserWindow.numberListAction.setVisible(Global.isEditorButtonVisible("numberList")); + browserWindow.fontListAction.setVisible(Global.isEditorButtonVisible("font")); + browserWindow.fontSizeAction.setVisible(Global.isEditorButtonVisible("fontSize")); + browserWindow.fontColorAction.setVisible(Global.isEditorButtonVisible("fontColor")); + browserWindow.fontHilightAction.setVisible(Global.isEditorButtonVisible("fontHilight")); + browserWindow.leftAlignAction.setVisible(Global.isEditorButtonVisible("alignLeft")); + browserWindow.centerAlignAction.setVisible(Global.isEditorButtonVisible("alignCenter")); + browserWindow.rightAlignAction.setVisible(Global.isEditorButtonVisible("alignRight")); } private void duplicateNote(String guid) { diff --git a/src/cx/fbn/nevernote/dialog/ConfigDialog.java b/src/cx/fbn/nevernote/dialog/ConfigDialog.java index 587faba..45237a8 100644 --- a/src/cx/fbn/nevernote/dialog/ConfigDialog.java +++ b/src/cx/fbn/nevernote/dialog/ConfigDialog.java @@ -47,7 +47,6 @@ public class ConfigDialog extends QDialog { private final ConfigDebugPage debugPage; private final ConfigAppearancePage appearancePage; private final ConfigIndexPage indexPage; - private final ConfigShowEditorButtonsPage editorButtonsPage; public ConfigDialog(QWidget parent) { @@ -63,11 +62,9 @@ public class ConfigDialog extends QDialog { appearancePage = new ConfigAppearancePage(this); indexPage = new ConfigIndexPage(this); debugPage = new ConfigDebugPage(this); - editorButtonsPage = new ConfigShowEditorButtonsPage(this); pagesWidget.addWidget(appearancePage); pagesWidget.addWidget(indexPage); pagesWidget.addWidget(connectionPage); - pagesWidget.addWidget(editorButtonsPage); pagesWidget.addWidget(debugPage); QPushButton cancelButton = new QPushButton(tr("Cancel")); @@ -175,28 +172,7 @@ public class ConfigDialog extends QDialog { Global.setTimeFormat(timeFmt); Global.setSyncInterval(connectionPage.getSyncInterval()); - - - Global.saveEditorButtonsVisible("undo", editorButtonsPage.showUndo()); - Global.saveEditorButtonsVisible("redo", editorButtonsPage.showRedo()); - Global.saveEditorButtonsVisible("cut", editorButtonsPage.showCut()); - Global.saveEditorButtonsVisible("copy", editorButtonsPage.showCopy()); - Global.saveEditorButtonsVisible("paste", editorButtonsPage.showPaste()); - Global.saveEditorButtonsVisible("underline", editorButtonsPage.showUnderline()); - Global.saveEditorButtonsVisible("strikethrough", editorButtonsPage.showStrikethrough()); - Global.saveEditorButtonsVisible("italic", editorButtonsPage.showItalic()); - Global.saveEditorButtonsVisible("bold", editorButtonsPage.showBold()); - Global.saveEditorButtonsVisible("font", editorButtonsPage.showFont()); - Global.saveEditorButtonsVisible("fontSize", editorButtonsPage.showFontSize()); - Global.saveEditorButtonsVisible("fontColor", editorButtonsPage.showFontColor()); - Global.saveEditorButtonsVisible("fontHilight", editorButtonsPage.showFontHilight()); - Global.saveEditorButtonsVisible("indent", editorButtonsPage.showIndent()); - Global.saveEditorButtonsVisible("outdent", editorButtonsPage.showOutdent()); - Global.saveEditorButtonsVisible("numberList", editorButtonsPage.showNumberList()); - Global.saveEditorButtonsVisible("bulletList", editorButtonsPage.showBulletList()); - Global.saveEditorButtonsVisible("alignCenter", editorButtonsPage.showAlignCenter()); - Global.saveEditorButtonsVisible("alignLeft", editorButtonsPage.showAlignLeft()); - Global.saveEditorButtonsVisible("alignRight", editorButtonsPage.showAlignRight()); + close(); } @Override @@ -236,12 +212,6 @@ public class ConfigDialog extends QDialog { configButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); configButton.setIcon(new QIcon(iconPath+"synchronize.png")); - QListWidgetItem editorButton = new QListWidgetItem(contentsWidget); - editorButton.setText(tr("Hide Edit Buttons")); - editorButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); - editorButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); - editorButton.setIcon(new QIcon(iconPath+"scissors.jpg")); - QListWidgetItem debugButton = new QListWidgetItem(contentsWidget); debugButton.setText(tr("Debugging")); debugButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); @@ -301,29 +271,7 @@ public class ConfigDialog extends QDialog { appearancePage.setTimeFormat(Global.getTimeFormat()); appearancePage.setStyle(Global.getStyle()); appearancePage.setStandardPalette(Global.useStandardPalette()); - - editorButtonsPage.setUndo(Global.isEditorButtonVisible("undo")); - editorButtonsPage.setRedo(Global.isEditorButtonVisible("redo")); - editorButtonsPage.setCut(Global.isEditorButtonVisible("cut")); - editorButtonsPage.setCopy(Global.isEditorButtonVisible("copy")); - editorButtonsPage.setPaste(Global.isEditorButtonVisible("paste")); - editorButtonsPage.setBold(Global.isEditorButtonVisible("bold")); - editorButtonsPage.setItalic(Global.isEditorButtonVisible("italic")); - editorButtonsPage.setUnderline(Global.isEditorButtonVisible("underline")); - editorButtonsPage.setStrikethrough(Global.isEditorButtonVisible("strikethrough")); - editorButtonsPage.setIndent(Global.isEditorButtonVisible("indent")); - editorButtonsPage.setHline(Global.isEditorButtonVisible("hline")); - editorButtonsPage.setOutdent(Global.isEditorButtonVisible("outdent")); - editorButtonsPage.setBulletList(Global.isEditorButtonVisible("bulletList")); - editorButtonsPage.setNumberList(Global.isEditorButtonVisible("numberList")); - editorButtonsPage.setFont(Global.isEditorButtonVisible("font")); - editorButtonsPage.setFontSize(Global.isEditorButtonVisible("fontSize")); - editorButtonsPage.setFontColor(Global.isEditorButtonVisible("fontColor")); - editorButtonsPage.setFontHighlight(Global.isEditorButtonVisible("fontHilight")); - editorButtonsPage.setAlignLeft(Global.isEditorButtonVisible("alignLeft")); - editorButtonsPage.setAlignCenter(Global.isEditorButtonVisible("alignCenter")); - editorButtonsPage.setAlignRight(Global.isEditorButtonVisible("alignRight")); - + debugPage.setDebugLevel(Global.getMessageLevel()); debugPage.setCarriageReturnFix(Global.enableCarriageReturnFix()); diff --git a/src/cx/fbn/nevernote/dialog/ConfigShowEditorButtonsPage.java b/src/cx/fbn/nevernote/dialog/ConfigShowEditorButtonsPage.java deleted file mode 100644 index e234f96..0000000 --- a/src/cx/fbn/nevernote/dialog/ConfigShowEditorButtonsPage.java +++ /dev/null @@ -1,521 +0,0 @@ -/* - * This file is part of NeverNote - * Copyright 2009 Randy Baumgarte - * - * This file may be licensed under the terms of of the - * GNU General Public License Version 2 (the ``GPL''). - * - * Software distributed under the License is distributed - * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either - * express or implied. See the GPL for the specific language - * governing rights and limitations. - * - * You should have received a copy of the GPL along with this - * program. If not, go to http://www.gnu.org/licenses/gpl.html - * or write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * -*/ - -package cx.fbn.nevernote.dialog; - -import com.trolltech.qt.gui.QComboBox; -import com.trolltech.qt.gui.QGridLayout; -import com.trolltech.qt.gui.QGroupBox; -import com.trolltech.qt.gui.QHBoxLayout; -import com.trolltech.qt.gui.QRadioButton; -import com.trolltech.qt.gui.QWidget; - -public class ConfigShowEditorButtonsPage extends QWidget { - private final QRadioButton showUndo; - private final QRadioButton hideUndo; - private final QRadioButton showRedo; - private final QRadioButton hideRedo; - private final QRadioButton showCut; - private final QRadioButton hideCut; - private final QRadioButton showCopy; - private final QRadioButton hideCopy; - private final QRadioButton showPaste; - private final QRadioButton hidePaste; - private final QRadioButton showBold; - private final QRadioButton hideBold; - private final QRadioButton showItalic; - private final QRadioButton hideItalic; - private final QRadioButton showUnderline; - private final QRadioButton hideUnderline; - private final QRadioButton showStrikethrough; - private final QRadioButton hideStrikethrough; - private final QRadioButton showHline; - private final QRadioButton hideHline; - private final QRadioButton showOutdent; - private final QRadioButton hideOutdent; - private final QRadioButton showIndent; - private final QRadioButton hideIndent; - private final QRadioButton showBulletList; - private final QRadioButton hideBulletList; - private final QRadioButton showNumberList; - private final QRadioButton hideNumberList; - private final QRadioButton showFont; - private final QRadioButton hideFont; - private final QRadioButton showFontSize; - private final QRadioButton hideFontSize; - private final QRadioButton showFontColor; - private final QRadioButton hideFontColor; - private final QRadioButton showFontHighlight; - private final QRadioButton hideFontHighlight; - private final QRadioButton showAlignLeft; - private final QRadioButton hideAlignLeft; - private final QRadioButton showAlignCenter; - private final QRadioButton hideAlignCenter; - private final QRadioButton showAlignRight; - private final QRadioButton hideAlignRight; - - QComboBox messageCombo; - public ConfigShowEditorButtonsPage(QWidget parent) { - super(parent); - - // Undo Button - QGroupBox undoGroup = new QGroupBox(tr("Undo")); - QHBoxLayout undoLayout = new QHBoxLayout(); - showUndo = new QRadioButton(tr("Show")); - hideUndo = new QRadioButton(tr("Hide")); - undoLayout.addWidget(showUndo); - undoLayout.addWidget(hideUndo); - undoLayout.setStretch(1, 100); - undoGroup.setLayout(undoLayout); - - - // Redo Button - QGroupBox redoGroup = new QGroupBox(tr("Redo")); - QHBoxLayout redoLayout = new QHBoxLayout(); - showRedo = new QRadioButton(tr("Show")); - hideRedo = new QRadioButton(tr("Hide")); - redoLayout.addWidget(showRedo); - redoLayout.addWidget(hideRedo); - redoLayout.setStretch(1, 100); - redoGroup.setLayout(redoLayout); - - - // Paste button - QGroupBox pasteGroup = new QGroupBox(tr("Paste")); - QHBoxLayout pasteLayout = new QHBoxLayout(); - showPaste = new QRadioButton(tr("Show")); - hidePaste = new QRadioButton(tr("Hide")); - pasteLayout.addWidget(showPaste); - pasteLayout.addWidget(hidePaste); - pasteLayout.setStretch(1, 100); - pasteGroup.setLayout(pasteLayout); - - // Copy button - QGroupBox copyGroup = new QGroupBox(tr("Copy")); - QHBoxLayout copyLayout = new QHBoxLayout(); - showCopy = new QRadioButton(tr("Show")); - hideCopy = new QRadioButton(tr("Hide")); - copyLayout.addWidget(showCopy); - copyLayout.addWidget(hideCopy); - copyLayout.setStretch(1, 100); - copyGroup.setLayout(copyLayout); - - - // Cut Button - QGroupBox cutGroup = new QGroupBox(tr("Cut")); - QHBoxLayout cutLayout = new QHBoxLayout(); - showCut = new QRadioButton(tr("Show")); - hideCut = new QRadioButton(tr("Hide")); - cutLayout.addWidget(showCut); - cutLayout.addWidget(hideCut); - cutLayout.setStretch(1, 100); - cutGroup.setLayout(cutLayout); - - // Notebook Column - QGroupBox underlineGroup = new QGroupBox(tr("Underline")); - QHBoxLayout underlineLayout = new QHBoxLayout(); - showUnderline = new QRadioButton(tr("Show")); - hideUnderline = new QRadioButton(tr("Hide")); - underlineLayout.addWidget(showUnderline); - underlineLayout.addWidget(hideUnderline); - underlineLayout.setStretch(1, 100); - underlineGroup.setLayout(underlineLayout); - - // Bold Button - QGroupBox boldGroup = new QGroupBox(tr("Bold")); - QHBoxLayout boldLayout = new QHBoxLayout(); - showBold = new QRadioButton(tr("Show")); - hideBold = new QRadioButton(tr("Hide")); - boldLayout.addWidget(showBold); - boldLayout.addWidget(hideBold); - boldLayout.setStretch(1, 100); - boldGroup.setLayout(boldLayout); - - - // Italic Button - QGroupBox italicGroup = new QGroupBox(tr("Italic")); - QHBoxLayout italicLayout = new QHBoxLayout(); - showItalic = new QRadioButton(tr("Show")); - hideItalic = new QRadioButton(tr("Hide")); - italicLayout.addWidget(showItalic); - italicLayout.addWidget(hideItalic); - italicLayout.setStretch(1, 100); - italicGroup.setLayout(italicLayout); - - // Strikethrough Button - QGroupBox strikethroughGroup = new QGroupBox(tr("Strikethrough")); - QHBoxLayout strikethroughLayout = new QHBoxLayout(); - showStrikethrough = new QRadioButton(tr("Show")); - hideStrikethrough = new QRadioButton(tr("Hide")); - strikethroughLayout.addWidget(showStrikethrough); - strikethroughLayout.addWidget(hideStrikethrough); - strikethroughLayout.setStretch(1, 100); - strikethroughGroup.setLayout(strikethroughLayout); - - - // Hline Button - QGroupBox hlineGroup = new QGroupBox(tr("Horizontal Line")); - QHBoxLayout hlineLayout = new QHBoxLayout(); - showHline = new QRadioButton(tr("Show")); - hideHline = new QRadioButton(tr("Hide")); - hlineLayout.addWidget(showHline); - hlineLayout.addWidget(hideHline); - hlineLayout.setStretch(1, 100); - hlineGroup.setLayout(hlineLayout); - - // Outdent Button - QGroupBox outdentGroup = new QGroupBox(tr("Outdent")); - QHBoxLayout outdentLayout = new QHBoxLayout(); - showOutdent = new QRadioButton(tr("Show")); - hideOutdent = new QRadioButton(tr("Hide")); - outdentLayout.addWidget(showOutdent); - outdentLayout.addWidget(hideOutdent); - outdentLayout.setStretch(1, 100); - outdentGroup.setLayout(outdentLayout); - - // Indent Button - QGroupBox indentGroup = new QGroupBox(tr("Indent")); - QHBoxLayout indentLayout = new QHBoxLayout(); - showIndent = new QRadioButton(tr("Show")); - hideIndent = new QRadioButton(tr("Hide")); - indentLayout.addWidget(showIndent); - indentLayout.addWidget(hideIndent); - indentLayout.setStretch(1, 100); - indentGroup.setLayout(indentLayout); - - // Bullet List Button - QGroupBox bulletListGroup = new QGroupBox(tr("Bullet List")); - QHBoxLayout bulletListLayout = new QHBoxLayout(); - showBulletList = new QRadioButton(tr("Show")); - hideBulletList = new QRadioButton(tr("Hide")); - bulletListLayout.addWidget(showBulletList); - bulletListLayout.addWidget(hideBulletList); - bulletListLayout.setStretch(1, 100); - bulletListGroup.setLayout(bulletListLayout); - - // Number List Button - QGroupBox numberListGroup = new QGroupBox(tr("Numbered List")); - QHBoxLayout numberListLayout = new QHBoxLayout(); - showNumberList = new QRadioButton(tr("Show")); - hideNumberList = new QRadioButton(tr("Hide")); - numberListLayout.addWidget(showNumberList); - numberListLayout.addWidget(hideNumberList); - numberListLayout.setStretch(1, 100); - numberListGroup.setLayout(numberListLayout); - - // Font drop down list - QGroupBox fontGroup = new QGroupBox(tr("Fonts")); - QHBoxLayout fontLayout = new QHBoxLayout(); - showFont = new QRadioButton(tr("Show")); - hideFont = new QRadioButton(tr("Hide")); - fontLayout.addWidget(showFont); - fontLayout.addWidget(hideFont); - fontLayout.setStretch(1, 100); - fontGroup.setLayout(fontLayout); - - // Font sizes drop down list - QGroupBox fontSizeGroup = new QGroupBox(tr("Font Size")); - QHBoxLayout fontSizeLayout = new QHBoxLayout(); - showFontSize = new QRadioButton(tr("Show")); - hideFontSize = new QRadioButton(tr("Hide")); - fontSizeLayout.addWidget(showFontSize); - fontSizeLayout.addWidget(hideFontSize); - fontSizeLayout.setStretch(1, 100); - fontSizeGroup.setLayout(fontSizeLayout); - - // Font color button - QGroupBox fontColorGroup = new QGroupBox(tr("Font Color")); - QHBoxLayout fontColorLayout = new QHBoxLayout(); - showFontColor = new QRadioButton(tr("Show")); - hideFontColor = new QRadioButton(tr("Hide")); - fontColorLayout.addWidget(showFontColor); - fontColorLayout.addWidget(hideFontColor); - fontColorLayout.setStretch(1, 100); - fontColorGroup.setLayout(fontColorLayout); - - // highlight button - QGroupBox fontHighlightGroup = new QGroupBox(tr("Text Highlight")); - QHBoxLayout fontHighlightLayout = new QHBoxLayout(); - showFontHighlight = new QRadioButton(tr("Show")); - hideFontHighlight = new QRadioButton(tr("Hide")); - fontHighlightLayout.addWidget(showFontHighlight); - fontHighlightLayout.addWidget(hideFontHighlight); - fontHighlightLayout.setStretch(1, 100); - fontHighlightGroup.setLayout(fontHighlightLayout); - - // Align Left - QGroupBox alignLeftGroup = new QGroupBox(tr("Align Left")); - QHBoxLayout alignLeftLayout = new QHBoxLayout(); - showAlignLeft = new QRadioButton(tr("Show")); - hideAlignLeft = new QRadioButton(tr("Hide")); - alignLeftLayout.addWidget(showAlignLeft); - alignLeftLayout.addWidget(hideAlignLeft); - alignLeftLayout.setStretch(1, 100); - alignLeftGroup.setLayout(alignLeftLayout); - - // Align Center - QGroupBox alignCenterGroup = new QGroupBox(tr("Align Center")); - QHBoxLayout alignCenterLayout = new QHBoxLayout(); - showAlignCenter = new QRadioButton(tr("Show")); - hideAlignCenter = new QRadioButton(tr("Hide")); - alignCenterLayout.addWidget(showAlignCenter); - alignCenterLayout.addWidget(hideAlignCenter); - alignCenterLayout.setStretch(1, 100); - alignCenterGroup.setLayout(alignCenterLayout); - - // Align Right - QGroupBox alignRightGroup = new QGroupBox(tr("Align Right")); - QHBoxLayout alignRightLayout = new QHBoxLayout(); - showAlignRight = new QRadioButton(tr("Show")); - hideAlignRight = new QRadioButton(tr("Hide")); - alignRightLayout.addWidget(showAlignRight); - alignRightLayout.addWidget(hideAlignRight); - alignRightLayout.setStretch(1, 100); - alignRightGroup.setLayout(alignRightLayout); - - QGridLayout mainLayout = new QGridLayout(); - mainLayout.addWidget(undoGroup, 0,0); - mainLayout.addWidget(redoGroup, 0,1); - mainLayout.addWidget(cutGroup, 0,2); - mainLayout.addWidget(copyGroup, 1,0); - mainLayout.addWidget(pasteGroup, 1,1); - mainLayout.addWidget(boldGroup, 1,2); - mainLayout.addWidget(italicGroup, 2,0); - mainLayout.addWidget(underlineGroup, 2,1); - mainLayout.addWidget(strikethroughGroup, 2,2); - mainLayout.addWidget(hlineGroup, 3,0); - mainLayout.addWidget(indentGroup, 3,1); - mainLayout.addWidget(outdentGroup, 3,2); - mainLayout.addWidget(bulletListGroup, 4,0); - mainLayout.addWidget(numberListGroup, 4,1); - mainLayout.addWidget(fontGroup, 5,0); - mainLayout.addWidget(fontSizeGroup, 5,1); - mainLayout.addWidget(fontColorGroup, 5,2); - mainLayout.addWidget(fontHighlightGroup, 4,2); - mainLayout.addWidget(alignLeftGroup, 6,0); - mainLayout.addWidget(alignCenterGroup, 6,1); - mainLayout.addWidget(alignRightGroup, 6,2); - - mainLayout.setColumnStretch(3, 100); - mainLayout.setRowStretch(7, 100); - setLayout(mainLayout); - } - - public void setUndo(boolean value) { - if (value) - showUndo.click(); - else - hideUndo.click(); - } - - public void setRedo(boolean value) { - if (value) - showRedo.click(); - else - hideRedo.click(); - } - - public void setCut(boolean value) { - if (value) - showCut.click(); - else - hideCut.click(); - } - - public void setCopy(boolean value) { - if (value) - showCopy.click(); - else - hideCopy.click(); - } - - public void setPaste(boolean value) { - if (value) - showPaste.click(); - else - hidePaste.click(); - } - public void setUnderline(boolean value) { - if (value) - showUnderline.click(); - else - hideUnderline.click(); - } - public void setBold(boolean value) { - if (value) - showBold.click(); - else - hideBold.click(); - } - public void setItalic(boolean value) { - if (value) - showItalic.click(); - else - hideItalic.click(); - } - public void setStrikethrough(boolean value) { - if (value) - showStrikethrough.click(); - else - hideStrikethrough.click(); - } - public void setHline(boolean value) { - if (value) - showHline.click(); - else - hideHline.click(); - } - public void setIndent(boolean value) { - if (value) - showIndent.click(); - else - hideIndent.click(); - } - public void setOutdent(boolean value) { - if (value) - showOutdent.click(); - else - hideOutdent.click(); - } - public void setBulletList(boolean value) { - if (value) - showBulletList.click(); - else - hideBulletList.click(); - } - public void setNumberList(boolean value) { - if (value) - showNumberList.click(); - else - hideNumberList.click(); - } - public void setFont(boolean value) { - if (value) - showFont.click(); - else - hideFont.click(); - } - public void setFontSize(boolean value) { - if (value) - showFontSize.click(); - else - hideFontSize.click(); - } - public void setFontColor(boolean value) { - if (value) - showFontColor.click(); - else - hideFontColor.click(); - } - public void setFontHighlight(boolean value) { - if (value) - showFontHighlight.click(); - else - hideFontHighlight.click(); - } - public void setAlignLeft(boolean value) { - if (value) - showAlignLeft.click(); - else - hideAlignLeft.click(); - } - public void setAlignCenter(boolean value) { - if (value) - showAlignCenter.click(); - else - hideAlignCenter.click(); - } - public void setAlignRight(boolean value) { - if (value) - showAlignRight.click(); - else - hideAlignRight.click(); - } - - - - public boolean showUndo() { - return showUndo.isChecked(); - } - public boolean showCut() { - return showCut.isChecked(); - } - public boolean showRedo() { - return showRedo.isChecked(); - } - public boolean showCopy() { - return showCopy.isChecked(); - } - public boolean showPaste() { - return showPaste.isChecked(); - } - public boolean showBold() { - return showBold.isChecked(); - } - public boolean showUnderline() { - return showUnderline.isChecked(); - } - public boolean showItalic() { - return showItalic.isChecked(); - } - public boolean showStrikethrough() { - return showStrikethrough.isChecked(); - } - public boolean showHline() { - return showHline.isChecked(); - } - public boolean showIndent() { - return showIndent.isChecked(); - } - public boolean showOutdent() { - return showOutdent.isChecked(); - } - public boolean showNumberList() { - return showNumberList.isChecked(); - } - public boolean showBulletList() { - return showBulletList.isChecked(); - } - public boolean showFont() { - return showFont.isChecked(); - } - public boolean showFontSize() { - return showFontSize.isChecked(); - } - public boolean showFontColor() { - return showFontColor.isChecked(); - } - public boolean showFontHilight() { - return showFontHighlight.isChecked(); - } - public boolean showAlignCenter() { - return showAlignCenter.isChecked(); - } public - boolean showAlignLeft() { - return showAlignLeft.isChecked(); - } - public boolean showAlignRight() { - return showAlignRight.isChecked(); - } - - - - - -} \ No newline at end of file diff --git a/src/cx/fbn/nevernote/gui/BrowserWindow.java b/src/cx/fbn/nevernote/gui/BrowserWindow.java index ef50a6f..77542c4 100644 --- a/src/cx/fbn/nevernote/gui/BrowserWindow.java +++ b/src/cx/fbn/nevernote/gui/BrowserWindow.java @@ -50,6 +50,7 @@ import com.trolltech.qt.core.QFileSystemWatcher; import com.trolltech.qt.core.QIODevice; import com.trolltech.qt.core.QMimeData; import com.trolltech.qt.core.QUrl; +import com.trolltech.qt.gui.QAction; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QCalendarWidget; import com.trolltech.qt.gui.QClipboard; @@ -119,6 +120,7 @@ public class BrowserWindow extends QWidget { private final QLabel notebookLabel; private final QLabel createdLabel; public final QComboBox fontSize; + public final QAction fontSizeAction; private boolean extendedOn; public boolean buttonsVisible; private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/"); @@ -138,26 +140,43 @@ public class BrowserWindow extends QWidget { private final QCalendarWidget subjectCalendarWidget; public final QPushButton undoButton; + public final QAction undoAction; public final QPushButton redoButton; + public final QAction redoAction; public final QPushButton cutButton; + public final QAction cutAction; public final QPushButton copyButton; + public final QAction copyAction; public final QPushButton pasteButton; + public final QAction pasteAction; public final QPushButton boldButton; + public final QAction boldAction; public final QPushButton underlineButton; + public final QAction underlineAction; public final QPushButton italicButton; + public final QAction italicAction; public final Signal0 focusLost; public final NoteResourceSignal resourceSignal; public QPushButton rightAlignButton; + public final QAction rightAlignAction; public QPushButton leftAlignButton; + public final QAction leftAlignAction; public QPushButton centerAlignButton; + public final QAction centerAlignAction; public final QPushButton strikethroughButton; + public final QAction strikethroughAction; public final QPushButton hlineButton; + public final QAction hlineAction; public final QPushButton indentButton; + public final QAction indentAction; public final QPushButton outdentButton; + public final QAction outdentAction; public final QPushButton bulletListButton; + public final QAction bulletListAction; public final QPushButton numberListButton; + public final QAction numberListAction; public final QShortcut focusTitleShortcut; public final QShortcut focusTagShortcut; @@ -165,10 +184,14 @@ public class BrowserWindow extends QWidget { public final QShortcut focusUrlShortcut; public final QShortcut focusAuthorShortcut; + public EditorButtonBar buttonLayout; public final QComboBox fontList; + public final QAction fontListAction; public final QPushButton fontColor; + public final QAction fontColorAction; private final ColorMenu fontColorMenu; public final QPushButton fontHilight; + public final QAction fontHilightAction; // public final ColorComboBox fontHilight; private final ColorMenu fontHilightColorMenu; public final QFileSystemWatcher fileWatcher; @@ -339,49 +362,68 @@ public class BrowserWindow extends QWidget { bulletListButton = newEditorButton("bulletList", tr("Bullet List")); numberListButton = newEditorButton("numberList", tr("Number List")); - - QHBoxLayout buttonLayout; - buttonLayout = new QHBoxLayout(); - buttonLayout.setSpacing(0); - v.addLayout(buttonLayout); - buttonLayout.addWidget(undoButton); - buttonLayout.addWidget(redoButton); - - buttonLayout.addWidget(newSeparator(), 0); - buttonLayout.addWidget(cutButton); - buttonLayout.addWidget(copyButton); - buttonLayout.addWidget(pasteButton); - - buttonLayout.addWidget(newSeparator(), 0); - buttonLayout.addWidget(boldButton); - buttonLayout.addWidget(italicButton); - buttonLayout.addWidget(underlineButton); - buttonLayout.addWidget(strikethroughButton); + buttonLayout = new EditorButtonBar(); +// buttonLayout.setSpacing(0); + v.addWidget(buttonLayout); - buttonLayout.addWidget(newSeparator(), 0); - buttonLayout.addWidget(leftAlignButton); - buttonLayout.addWidget(centerAlignButton); - buttonLayout.addWidget(rightAlignButton); - - buttonLayout.addWidget(newSeparator(), 0); - buttonLayout.addWidget(hlineButton); + undoAction = buttonLayout.addWidget(undoButton); + buttonLayout.toggleUndoVisible.triggered.connect(this, "toggleUndoVisible(Boolean)"); + redoAction = buttonLayout.addWidget(redoButton); + buttonLayout.toggleRedoVisible.triggered.connect(this, "toggleRedoVisible(Boolean)"); + + buttonLayout.addWidget(newSeparator()); + cutAction = buttonLayout.addWidget(cutButton); + buttonLayout.toggleCutVisible.triggered.connect(this, "toggleCutVisible(Boolean)"); + copyAction = buttonLayout.addWidget(copyButton); + buttonLayout.toggleCopyVisible.triggered.connect(this, "toggleCopyVisible(Boolean)"); + pasteAction = buttonLayout.addWidget(pasteButton); + buttonLayout.togglePasteVisible.triggered.connect(this, "togglePasteVisible(Boolean)"); + + buttonLayout.addWidget(newSeparator()); + boldAction = buttonLayout.addWidget(boldButton); + buttonLayout.toggleBoldVisible.triggered.connect(this, "toggleBoldVisible(Boolean)"); + italicAction = buttonLayout.addWidget(italicButton); + buttonLayout.toggleItalicVisible.triggered.connect(this, "toggleItalicVisible(Boolean)"); + underlineAction = buttonLayout.addWidget(underlineButton); + buttonLayout.toggleUnderlineVisible.triggered.connect(this, "toggleUnderlineVisible(Boolean)"); + strikethroughAction = buttonLayout.addWidget(strikethroughButton); + buttonLayout.toggleStrikethroughVisible.triggered.connect(this, "toggleStrikethroughVisible(Boolean)"); - buttonLayout.addWidget(indentButton); - buttonLayout.addWidget(outdentButton); - buttonLayout.addWidget(bulletListButton); - buttonLayout.addWidget(numberListButton); + + buttonLayout.addWidget(newSeparator()); + leftAlignAction = buttonLayout.addWidget(leftAlignButton); + buttonLayout.toggleLeftAlignVisible.triggered.connect(this, "toggleLeftAlignVisible(Boolean)"); + centerAlignAction = buttonLayout.addWidget(centerAlignButton); + buttonLayout.toggleCenterAlignVisible.triggered.connect(this, "toggleCenterAlignVisible(Boolean)"); + rightAlignAction = buttonLayout.addWidget(rightAlignButton); + buttonLayout.toggleRightAlignVisible.triggered.connect(this, "toggleRightAlignVisible(Boolean)"); + + buttonLayout.addWidget(newSeparator()); + hlineAction = buttonLayout.addWidget(hlineButton); + buttonLayout.toggleHLineVisible.triggered.connect(this, "toggleHLineVisible(Boolean)"); + + indentAction = buttonLayout.addWidget(indentButton); + buttonLayout.toggleIndentVisible.triggered.connect(this, "toggleIndentVisible(Boolean)"); + outdentAction = buttonLayout.addWidget(outdentButton); + buttonLayout.toggleOutdentVisible.triggered.connect(this, "toggleOutdentVisible(Boolean)"); + bulletListAction = buttonLayout.addWidget(bulletListButton); + buttonLayout.toggleBulletListVisible.triggered.connect(this, "toggleBulletListVisible(Boolean)"); + numberListAction = buttonLayout.addWidget(numberListButton); + buttonLayout.toggleNumberListVisible.triggered.connect(this, "toggleNumberListVisible(Boolean)"); // Setup the font & font size combo boxes - buttonLayout.addWidget(newSeparator(), 0); + buttonLayout.addWidget(newSeparator()); fontList = new QComboBox(); fontSize = new QComboBox(); fontList.setToolTip("Font"); fontSize.setToolTip("Font Size"); fontList.activated.connect(this, "fontChanged(String)"); fontSize.activated.connect(this, "fontSizeChanged(String)"); - buttonLayout.addWidget(fontList, 0); - buttonLayout.addWidget(fontSize, 0); + fontListAction = buttonLayout.addWidget(fontList); + buttonLayout.toggleFontVisible.triggered.connect(this, "toggleFontListVisible(Boolean)"); + fontSizeAction = buttonLayout.addWidget(fontSize); + buttonLayout.toggleFontSizeVisible.triggered.connect(this, "toggleFontSizeVisible(Boolean)"); QFontDatabase fonts = new QFontDatabase(); List fontFamilies = fonts.families(); for (int i = 0; i < fontFamilies.size(); i++) { @@ -391,21 +433,22 @@ public class BrowserWindow extends QWidget { } } - buttonLayout.addWidget(newSeparator(), 0); +// buttonLayout.addWidget(newSeparator(), 0); fontColor = newEditorButton("fontColor", tr("Font Color")); fontColorMenu = new ColorMenu(this); fontColor.setMenu(fontColorMenu.getMenu()); fontColorMenu.getMenu().triggered.connect(this, "fontColorClicked()"); - buttonLayout.addWidget(fontColor); + fontColorAction = buttonLayout.addWidget(fontColor); + buttonLayout.toggleFontColorVisible.triggered.connect(this, "toggleFontColorVisible(Boolean)"); fontHilight = newEditorButton("fontHilight", tr("Font Hilight Color")); fontHilightColorMenu = new ColorMenu(this); fontHilight.setMenu(fontHilightColorMenu.getMenu()); fontHilightColorMenu.getMenu().triggered.connect(this, "fontHilightClicked()"); - buttonLayout.addWidget(fontHilight); + fontHilightAction = buttonLayout.addWidget(fontHilight); + buttonLayout.toggleFontHilight.triggered.connect(this, "toggleFontHilightVisible(Boolean)"); - buttonLayout.addWidget(new QLabel(), 1); +// buttonLayout.addWidget(new QLabel(), 1); v.addWidget(browser, 1); -// v.addLayout(buttonLayout,0); setLayout(v); browser.downloadAttachmentRequested.connect(this, @@ -648,33 +691,8 @@ public class BrowserWindow extends QWidget { public void hideButtons() { + undoButton.parentWidget().setVisible(false); buttonsVisible = false; - - undoButton.setVisible(false); - redoButton.setVisible(false); - cutButton.setVisible(false); - copyButton.setVisible(false); - pasteButton.setVisible(false); - boldButton.setVisible(false); - underlineButton.setVisible(false); - italicButton.setVisible(false); - - rightAlignButton.setVisible(false); - leftAlignButton.setVisible(false); - centerAlignButton.setVisible(false); - - strikethroughButton.setVisible(false); - hlineButton.setVisible(false); - indentButton.setVisible(false); - outdentButton.setVisible(false); - bulletListButton.setVisible(false); - numberListButton.setVisible(false); - - fontList.setVisible(false); - fontSize.setVisible(false); - fontColor.setVisible(false); - fontHilight.setVisible(false); - } @@ -2453,4 +2471,93 @@ public class BrowserWindow extends QWidget { // browser.previousPageAction.setVisible(false); } */ + + private void toggleUndoVisible(Boolean toggle) { + undoAction.setVisible(toggle); + Global.saveEditorButtonsVisible("undo", toggle); + } + private void toggleRedoVisible(Boolean toggle) { + redoAction.setVisible(toggle); + Global.saveEditorButtonsVisible("redo", toggle); + } + private void toggleCutVisible(Boolean toggle) { + cutAction.setVisible(toggle); + Global.saveEditorButtonsVisible("cut", toggle); + } + private void toggleCopyVisible(Boolean toggle) { + copyAction.setVisible(toggle); + Global.saveEditorButtonsVisible("copy", toggle); + } + private void togglePasteVisible(Boolean toggle) { + pasteAction.setVisible(toggle); + Global.saveEditorButtonsVisible("paste", toggle); + } + private void toggleBoldVisible(Boolean toggle) { + boldAction.setVisible(toggle); + Global.saveEditorButtonsVisible("bold", toggle); + } + private void toggleItalicVisible(Boolean toggle) { + italicAction.setVisible(toggle); + Global.saveEditorButtonsVisible("italic", toggle); + } + private void toggleUnderlineVisible(Boolean toggle) { + underlineAction.setVisible(toggle); + Global.saveEditorButtonsVisible("underline", toggle); + } + private void toggleStrikethroughVisible(Boolean toggle) { + strikethroughAction.setVisible(toggle); + Global.saveEditorButtonsVisible("strikethrough", toggle); + } + private void toggleLeftAlignVisible(Boolean toggle) { + leftAlignAction.setVisible(toggle); + Global.saveEditorButtonsVisible("alignLeft", toggle); + } + private void toggleRightAlignVisible(Boolean toggle) { + rightAlignAction.setVisible(toggle); + Global.saveEditorButtonsVisible("alignRight", toggle); + } + private void toggleCenterAlignVisible(Boolean toggle) { + centerAlignAction.setVisible(toggle); + Global.saveEditorButtonsVisible("alignCenter", toggle); + } + private void toggleHLineVisible(Boolean toggle) { + hlineAction.setVisible(toggle); + Global.saveEditorButtonsVisible("hline", toggle); + } + private void toggleIndentVisible(Boolean toggle) { + indentAction.setVisible(toggle); + Global.saveEditorButtonsVisible("indent", toggle); + } + private void toggleOutdentVisible(Boolean toggle) { + outdentAction.setVisible(toggle); + Global.saveEditorButtonsVisible("outdent", toggle); + } + private void toggleBulletListVisible(Boolean toggle) { + bulletListAction.setVisible(toggle); + Global.saveEditorButtonsVisible("bulletList", toggle); + } + private void toggleNumberListVisible(Boolean toggle) { + numberListAction.setVisible(toggle); + Global.saveEditorButtonsVisible("numberList", toggle); + } + private void toggleFontListVisible(Boolean toggle) { + fontListAction.setVisible(toggle); + Global.saveEditorButtonsVisible("font", toggle); + } + private void toggleFontColorVisible(Boolean toggle) { + fontColorAction.setVisible(toggle); + Global.saveEditorButtonsVisible("fontColor", toggle); + } + private void toggleFontSizeVisible(Boolean toggle) { + fontSizeAction.setVisible(toggle); + Global.saveEditorButtonsVisible("fontSize", toggle); + } + private void toggleFontHilightVisible(Boolean toggle) { + fontHilightAction.setVisible(toggle); + Global.saveEditorButtonsVisible("fontHilight", toggle); + } + + + + } diff --git a/src/cx/fbn/nevernote/gui/EditorButtonBar.java b/src/cx/fbn/nevernote/gui/EditorButtonBar.java new file mode 100644 index 0000000..1d701af --- /dev/null +++ b/src/cx/fbn/nevernote/gui/EditorButtonBar.java @@ -0,0 +1,82 @@ +package cx.fbn.nevernote.gui; + +import com.trolltech.qt.gui.QAction; +import com.trolltech.qt.gui.QContextMenuEvent; +import com.trolltech.qt.gui.QMenu; +import com.trolltech.qt.gui.QToolBar; + +import cx.fbn.nevernote.Global; + +public class EditorButtonBar extends QToolBar { + QMenu contextMenu; + QAction toggleUndoVisible; + QAction toggleRedoVisible; + QAction toggleCutVisible; + QAction toggleCopyVisible; + QAction toggleCopyBoldVisible; + QAction togglePasteVisible; + QAction toggleBoldVisible; + QAction toggleUnderlineVisible; + QAction toggleItalicVisible; + QAction toggleRightAlignVisible; + QAction toggleLeftAlignVisible; + QAction toggleCenterAlignVisible; + + QAction toggleStrikethroughVisible; + QAction toggleHLineVisible; + QAction toggleIndentVisible; + QAction toggleOutdentVisible; + QAction toggleBulletListVisible; + QAction toggleNumberListVisible; + + QAction toggleFontVisible; + QAction toggleFontSizeVisible; + QAction toggleFontColorVisible; + QAction toggleFontHilight; + + + + public EditorButtonBar() { + contextMenu = new QMenu(); + + toggleUndoVisible = addAction("undo" ,tr("Undo")); + toggleRedoVisible = addAction("redo", tr("Redo Change")); + toggleCutVisible = addAction("cut", tr("Cut")); + toggleCopyVisible = addAction("copy", tr("Copy")); + togglePasteVisible = addAction("paste", tr("Paste")); + toggleBoldVisible = addAction("bold", tr("Bold")); + toggleItalicVisible = addAction("italic", tr("Italic")); + toggleUnderlineVisible = addAction("underline", tr("Underline")); + toggleStrikethroughVisible = addAction("strikethrough", tr("Strikethrough")); + + toggleLeftAlignVisible = addAction("alignLeft", tr("Left Align")); + toggleCenterAlignVisible = addAction("alignCenter", tr("Center Align")); + toggleRightAlignVisible = addAction("alignRight", tr("Right Align")); + + toggleHLineVisible = addAction("hline", tr("Insert Horizontal Line")); + toggleIndentVisible = addAction("indent", tr("Shift Right")); + toggleOutdentVisible = addAction("outdent", tr("Shift Left")); + toggleBulletListVisible = addAction("bulletList", tr("Bullet List")); + toggleNumberListVisible = addAction("numberList", tr("Number List")); + + toggleFontVisible = addAction("font", "Font"); + toggleFontSizeVisible = addAction("fontSize", "Font Size"); + toggleFontColorVisible = addAction("fontColor", "Font Color"); + toggleFontHilight = addAction("fontHilight", "Font Hilight"); + } + + + private QAction addAction(String config, String name) { + QAction newAction = new QAction(this); + newAction.setText(name); + newAction.setCheckable(true); + newAction.setChecked(Global.isEditorButtonVisible(config)); + contextMenu.addAction(newAction); + return newAction; + } + + @Override + public void contextMenuEvent(QContextMenuEvent event) { + contextMenu.exec(event.globalPos()); + } +} -- 2.11.0