OSDN Git Service

ec8ba1346d986b4b1618bdd7dfbeac8c28a93f01
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / NoteTableContextMenu.java
1 // ICHANGED
2 package cx.fbn.nevernote.gui;
3
4 import com.trolltech.qt.core.Qt;
5 import com.trolltech.qt.gui.QKeyEvent;
6 import com.trolltech.qt.gui.QMenu;
7 import com.trolltech.qt.gui.QMouseEvent;
8
9 public class NoteTableContextMenu extends QMenu {
10         private final TableView parent;
11         
12         public NoteTableContextMenu(TableView tableView) {
13                 this.parent = tableView;
14         }
15
16         
17         @Override
18         protected void mousePressEvent(QMouseEvent event){
19                 super.mousePressEvent(event);
20
21                 int x = event.x();
22                 int y = event.y();
23
24                 if(x < 0 || this.width() < x){
25                         parent.restoreSelectedNoteInfo();
26                 }else if(y < 0 || this.height() < y){
27                         parent.restoreSelectedNoteInfo();
28                 }
29         }
30         
31         // ノートテーブルでマウス右ボタンを押してコンテキストメニューを出し、そのままコンテキストメニュー上を通過してコンテキストメニュー外でボタンを離すと
32         // コンテキストメニューが閉じてしまう問題への対処
33         @Override
34         protected void mouseReleaseEvent(QMouseEvent event){
35                 super.mouseReleaseEvent(event);
36
37                 int x = event.x();
38                 int y = event.y();
39
40                 if(x < 0 || this.width() < x){
41                         parent.restoreSelectedNoteInfo();
42                 }else if(y < 0 || this.height() < y){
43                         parent.restoreSelectedNoteInfo();
44                 }
45         }
46         
47         @Override
48         protected void keyPressEvent(QKeyEvent event){
49                 super.keyPressEvent(event);
50
51                 if(event.key() == Qt.Key.Key_Escape.value()){
52                         parent.restoreSelectedNoteInfo();
53                 }
54         }
55 }