OSDN Git Service

ショートカットキーによるコピー(カット)&ペースト操作も操作履歴として取得可能にした
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / BrowserWindow.java
index 7a5e5f5..b18d5eb 100644 (file)
@@ -106,6 +106,7 @@ import com.trolltech.qt.gui.QPalette;
 import com.trolltech.qt.gui.QPalette.ColorRole;
 import com.trolltech.qt.gui.QPushButton;
 import com.trolltech.qt.gui.QShortcut;
+import com.trolltech.qt.gui.QSizePolicy;
 import com.trolltech.qt.gui.QSplitter;
 import com.trolltech.qt.gui.QTextEdit;
 import com.trolltech.qt.gui.QTextEdit.LineWrapMode;
@@ -124,6 +125,7 @@ import com.trolltech.qt.webkit.QWebSettings;
 import com.trolltech.qt.webkit.QWebView;
 
 import cx.fbn.nevernote.Global;
+import cx.fbn.nevernote.clipboard.ClipBoardObserver;
 import cx.fbn.nevernote.dialog.EnCryptDialog;
 import cx.fbn.nevernote.dialog.EnDecryptDialog;
 import cx.fbn.nevernote.dialog.GeoDialog;
@@ -135,7 +137,6 @@ import cx.fbn.nevernote.dialog.TableDialog;
 import cx.fbn.nevernote.dialog.TagAssign;
 import cx.fbn.nevernote.evernote.EnCrypt;
 import cx.fbn.nevernote.filters.FilterEditorTags;
-import cx.fbn.nevernote.neighbornote.ClipBoardObserver;
 import cx.fbn.nevernote.signals.NoteResourceSignal;
 import cx.fbn.nevernote.signals.NoteSignal;
 import cx.fbn.nevernote.sql.DatabaseConnection;
@@ -268,7 +269,6 @@ public class BrowserWindow extends QWidget {
        private final QTimer setSourceTimer;
        String latexGuid;  // This is set if we are editing an existing LaTeX formula.  Useful to track guid.
 
-       // ICHANGED
        private final ClipBoardObserver cbObserver;
        
        public static class SuggestionListener implements SpellCheckListener {
@@ -312,7 +312,7 @@ public class BrowserWindow extends QWidget {
        }
 
        
-       // ICHANGED 引数にcbObserverを追加
+       // 引数にcbObserverを追加
        public BrowserWindow(DatabaseConnection c, ClipBoardObserver cbObserver) {
                logger = new ApplicationLogger("browser.log");
                logger.log(logger.HIGH, "Setting up browser");
@@ -336,7 +336,6 @@ public class BrowserWindow extends QWidget {
                authorLabel = new QLabel();
                conn = c;
                
-               // ICHANGED
                this.cbObserver = cbObserver;
                
                focusLost = new Signal0();
@@ -548,8 +547,13 @@ public class BrowserWindow extends QWidget {
                buttonLayout.addWidget(newSeparator());
                fontList = new QComboBox();
                fontSize = new QComboBox();
+               fontList.setMaximumWidth(130);
+               fontSize.setMaximumWidth(45);
+               fontSize.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed);
                fontList.setToolTip("Font");
                fontSize.setToolTip("Font Size");
+               fontList.setStyleSheet("QComboBox {padding: 3px;} ");
+               fontSize.setStyleSheet("QComboBox {padding: 3px;} ");
                fontList.activated.connect(this, "fontChanged(String)");
                fontSize.activated.connect(this, "fontSizeChanged(String)");
                fontListAction = buttonLayout.addWidget(fontList);
@@ -774,11 +778,11 @@ public class BrowserWindow extends QWidget {
 //             QIcon icon = new QIcon(iconPath + name + ".gif");
                QIcon icon = new QIcon(iconPath + name + ".png");
                button.setIcon(icon);
-               // ICHANGED
                button.setIconSize(new QSize(16, 16));
                
                button.setToolTip(toolTip);
                button.clicked.connect(this, name + "Clicked()");
+               button.setStyleSheet("QPushButton {padding: 3px;} ");
                return button;
        }
        // New Editor Button
@@ -787,17 +791,18 @@ public class BrowserWindow extends QWidget {
 //             QIcon icon = new QIcon(iconPath + name + ".gif");
                QIcon icon = new QIcon(iconPath + name + ".png");
                button.setIcon(icon);
-               // ICHANGED
                button.setIconSize(new QSize(16, 16));
                
                button.setToolTip(toolTip);
                button.clicked.connect(this, name + "Clicked()");
+               button.setStyleSheet("QToolButton {padding: 3px;} ");
+               button.setMaximumHeight(22);
                return button;
        }
 
        // New Separator
        private QLabel newSeparator() {
-               return new QLabel("   ");
+               return new QLabel("");
        }
 
        // Set the title in the window
@@ -1092,9 +1097,7 @@ public class BrowserWindow extends QWidget {
        }
 
        // Listener for when cut is clicked
-       @SuppressWarnings("unused")
-       private void cutClicked() {
-               // ICHANGED
+       public void cutClicked() {
                cbObserver.setCopySourceGuid(currentNote.getGuid(), browser.page().selectedText());
                
                browser.page().triggerAction(WebAction.Cut);
@@ -1102,9 +1105,7 @@ public class BrowserWindow extends QWidget {
        }
 
        // Listener when COPY is clicked
-       @SuppressWarnings("unused")
-       private void copyClicked() {
-               // ICHANGED
+       public void copyClicked() {
                cbObserver.setCopySourceGuid(currentNote.getGuid(), browser.page().selectedText());
                
                browser.page().triggerAction(WebAction.Copy);
@@ -1119,7 +1120,7 @@ public class BrowserWindow extends QWidget {
                        return;
                }
                
-               // ICHANGED コピー&ペーストの操作履歴をデータベースに登録
+               // コピー&ペーストの操作履歴をデータベースに登録
                String srcGuid = cbObserver.getSourceGuid();
                String dstGuid = currentNote.getGuid();
                if(srcGuid != null && dstGuid != null){
@@ -1172,7 +1173,7 @@ public class BrowserWindow extends QWidget {
                if (!mime.hasText())
                        return;
                
-               // ICHANGED コピー&ペーストの操作履歴をデータベースに登録
+               // コピー&ペーストの操作履歴をデータベースに登録
                String srcGuid = cbObserver.getSourceGuid();
                String dstGuid = currentNote.getGuid();
                if(srcGuid != null && dstGuid != null){
@@ -1447,7 +1448,6 @@ public class BrowserWindow extends QWidget {
                if (text.trim().equalsIgnoreCase(""))
                        return;
                
-               // ICHANGED
                NoteQuickLinkDialog dialog = new NoteQuickLinkDialog(logger, conn, text, cbObserver);
 
                if (dialog.getResults().size() == 0) {
@@ -1863,6 +1863,10 @@ public class BrowserWindow extends QWidget {
                if (tagEdit.text().equalsIgnoreCase(saveTagList))
                        return;
 
+               if (saveTagList == null) {
+                       return;
+               }
+               
                // We know something has changed...
                String oldTagArray[] = saveTagList.split(Global.tagDelimeter);
                String newTagArray[];