Changeset 8338 in vbox
- Timestamp:
- Apr 23, 2008 5:35:48 PM (17 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/ui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxHardDiskSettings.ui
r8282 r8338 271 271 <variable access="private">CMachine mMachine;</variable> 272 272 <variable access="private">QPopupMenu *mContextMenu;</variable> 273 <variable access="private">bool mCBFocusOut;</variable> 273 274 </variables> 274 275 <signals> -
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxHardDiskSettings.ui.h
r8319 r8338 179 179 } 180 180 181 static int scrollBarWidth() 182 { 183 QListBox lb; 184 lb.setVScrollBarMode (QScrollView::AlwaysOn); 185 return lb.verticalScrollBar()->width(); 186 } 187 181 188 void setText (const QString &aText) 182 189 { … … 475 482 cb->resize (wc, hc); 476 483 477 if (aColumn == mFocusColumn && cb->isHidden()) 478 cb->show(); 484 if (aColumn == mFocusColumn) 485 { 486 if (cb->isHidden()) 487 cb->show(); 488 if (!cb->hasFocus()) 489 cb->setFocus(); 490 } 479 491 else if (aColumn != mFocusColumn && !cb->isHidden()) 480 492 cb->hide(); … … 515 527 { 516 528 mPrevItem = 0; 529 mCBFocusOut = false; 517 530 518 531 /* toolbar */ … … 895 908 896 909 QMouseEvent *e = static_cast<QMouseEvent*> (aEvent); 897 QListViewItem *clickedItem = mLvHD->itemAt ( QPoint (e->x(), e->y()));910 QListViewItem *clickedItem = mLvHD->itemAt (e->pos()); 898 911 HDListItem *item = clickedItem && 899 912 clickedItem->rtti() == HDListItem::HDListItemType ? … … 915 928 916 929 QMouseEvent *e = static_cast<QMouseEvent*> (aEvent); 917 QListViewItem *hoveredItem = mLvHD->itemAt ( QPoint (e->x(), e->y()));930 QListViewItem *hoveredItem = mLvHD->itemAt (e->pos()); 918 931 HDListItem *item = hoveredItem && 919 932 hoveredItem->rtti() == HDListItem::HDListItemType ? … … 933 946 case QEvent::KeyPress: 934 947 { 935 if ( aObject != mLvHD)948 if (!mLvHD->queryList (0, 0, false, true)->contains (aObject)) 936 949 break; 937 950 … … 947 960 item->focusColumn() > 0) 948 961 { 962 mLvHD->setFocus(); 949 963 item->moveFocusToColumn (item->focusColumn() - 1); 950 964 onAfterCurrentChanged (item); 951 965 } 966 return true; 952 967 } else 953 968 /* Process cursor-right as "move focus right" action */ … … 957 972 item->focusColumn() < mLvHD->columns() - 1) 958 973 { 974 mLvHD->setFocus(); 959 975 item->moveFocusToColumn (item->focusColumn() + 1); 960 976 onAfterCurrentChanged (item); 961 977 } 978 return true; 979 } else 980 /* Process cursor-up as "move focus up" action */ 981 if (e->key() == Qt::Key_Up && !e->state()) 982 { 983 if (item && item->focusColumn() != -1 && 984 item->itemAbove()) 985 { 986 mLvHD->setFocus(); 987 mLvHD->setCurrentItem (item->itemAbove()); 988 } 989 return true; 990 } else 991 /* Process cursor-up as "move focus up" action */ 992 if (e->key() == Qt::Key_Down && !e->state()) 993 { 994 if (item && item->focusColumn() != -1 && 995 item->itemBelow()) 996 { 997 mLvHD->setFocus(); 998 mLvHD->setCurrentItem (item->itemBelow()); 999 } 1000 return true; 962 1001 } else 963 1002 /* Process F2/Space as "open combo-box" actions */ … … 967 1006 if (item) 968 1007 item->showEditor(); 1008 return true; 969 1009 } 970 1010 /* Process Ctrl/Alt+Up/Down as "open combo-box" actions */ … … 973 1013 { 974 1014 if (item) 975 {976 1015 item->showEditor(); 977 return true; 978 } 1016 return true; 979 1017 } 980 1018 break; … … 983 1021 case QEvent::FocusIn: 984 1022 { 1023 if (aObject == mLvHD || 1024 aObject->inherits ("HDSlotItem") || 1025 aObject->inherits ("HDVdiItem")) 1026 mCBFocusOut = false; 1027 else if (mCBFocusOut) 1028 { 1029 mCBFocusOut = false; 1030 mLvHD->setFocus(); 1031 focusNextPrevChild (true); 1032 return true; 1033 } 1034 985 1035 if (aObject == mLvHD) 986 1036 onAfterCurrentChanged (mLvHD->currentItem()); … … 989 1039 break; 990 1040 } 1041 case QEvent::FocusOut: 1042 { 1043 if (aObject->className() == "HDSlotItem" || 1044 aObject->className() == "HDVdiItem") 1045 mCBFocusOut = true; 1046 1047 break; 1048 } 991 1049 default: 992 1050 break; … … 1010 1068 (int) (mLvHD->viewport()->width() * 0.4) : minLength; 1011 1069 1012 mLvHD->setColumnWidth (0, minLength + 10 /* little spacing */); 1070 mLvHD->setColumnWidth (0, 1071 minLength /* maximum string width */ + 1072 6 * 2 /* 2 combo-box margin */ + 1073 HDSlotItem::scrollBarWidth() /* scrollbar */); 1013 1074 mLvHD->setColumnWidth (1, mLvHD->viewport()->width() - mLvHD->columnWidth (0)); 1014 1075 }
Note:
See TracChangeset
for help on using the changeset viewer.