Changeset 92400 in vbox
- Timestamp:
- Nov 12, 2021 3:07:42 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 148254
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h
r89295 r92400 78 78 79 79 /* Declare global canConvert specializations: */ 80 template<> SHARED_LIBRARY_STUFF bool canConvert<Qt::SortOrder>(); 80 81 template<> SHARED_LIBRARY_STUFF bool canConvert<SizeSuffix>(); 81 82 template<> SHARED_LIBRARY_STUFF bool canConvert<StorageSlot>(); … … 157 158 158 159 /* Declare global conversion specializations: */ 160 template<> SHARED_LIBRARY_STUFF QString toInternalString(const Qt::SortOrder &enmSortOrder); 161 template<> SHARED_LIBRARY_STUFF Qt::SortOrder fromInternalString<Qt::SortOrder>(const QString &strSortOrder); 159 162 template<> SHARED_LIBRARY_STUFF QString toString(const SizeSuffix &sizeSuffix); 160 163 template<> SHARED_LIBRARY_STUFF SizeSuffix fromString<SizeSuffix>(const QString &strSizeSuffix); -
trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp
r91717 r92400 32 32 /* Determines if <Object of type X> can be converted to object of other type. 33 33 * These functions returns 'true' for all allowed conversions. */ 34 template<> bool canConvert<Qt::SortOrder>() { return true; } 34 35 template<> bool canConvert<SizeSuffix>() { return true; } 35 36 template<> bool canConvert<StorageSlot>() { return true; } … … 83 84 84 85 86 /* QString <= Qt::SortOrder: */ 87 template<> QString toInternalString(const Qt::SortOrder &enmSortOrder) 88 { 89 QString strResult; 90 switch (enmSortOrder) 91 { 92 case Qt::AscendingOrder: strResult = "Ascending"; break; 93 case Qt::DescendingOrder: strResult = "Descending"; break; 94 default: 95 { 96 AssertMsgFailed(("No text for sort order=%d", enmSortOrder)); 97 break; 98 } 99 } 100 return strResult; 101 } 102 103 /* Qt::SortOrder <= QString: */ 104 template<> Qt::SortOrder fromInternalString<Qt::SortOrder>(const QString &strSortOrder) 105 { 106 /* Here we have some fancy stuff allowing us 107 * to search through the keys using 'case-insensitive' rule: */ 108 QStringList keys; QList<Qt::SortOrder> values; 109 keys << "Ascending"; values << Qt::AscendingOrder; 110 keys << "Descending"; values << Qt::DescendingOrder; 111 /* Qt::AscendingOrder type for unknown words: */ 112 if (!keys.contains(strSortOrder, Qt::CaseInsensitive)) 113 return Qt::AscendingOrder; 114 /* Corresponding type for known words: */ 115 return values.at(keys.indexOf(QRegExp(strSortOrder, Qt::CaseInsensitive))); 116 } 117 85 118 /* QString <= SizeSuffix: */ 86 119 template<> QString toString(const SizeSuffix &sizeSuffix) -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
r92398 r92400 29 29 const char *UIExtraDataDefs::GUI_InvertMessageOption = "GUI/InvertMessageOption"; 30 30 const char *UIExtraDataDefs::GUI_NotificationCenter_KeepSuccessfullProgresses = "GUI/NotificationCenter/KeepSuccessfullProgresses"; 31 const char *UIExtraDataDefs::GUI_NotificationCenter_Order = "GUI/NotificationCenter/Order"; 31 32 #if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) 32 33 const char *UIExtraDataDefs::GUI_PreventBetaWarning = "GUI/PreventBetaWarning"; -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
r92398 r92400 59 59 /** Holds whether successfull notification-progresses should NOT close automatically. */ 60 60 SHARED_LIBRARY_STUFF extern const char *GUI_NotificationCenter_KeepSuccessfullProgresses; 61 /** Holds notification-center order. */ 62 SHARED_LIBRARY_STUFF extern const char *GUI_NotificationCenter_Order; 61 63 #if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) 62 64 /** Holds version for which user wants to prevent BETA build warning. */ -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
r92398 r92400 1896 1896 << GUI_RestrictedDialogs 1897 1897 << GUI_SuppressMessages << GUI_InvertMessageOption 1898 << GUI_NotificationCenter_KeepSuccessfullProgresses 1898 << GUI_NotificationCenter_KeepSuccessfullProgresses << GUI_NotificationCenter_Order 1899 1899 #ifdef VBOX_GUI_WITH_NETWORK_MANAGER 1900 1900 << GUI_PreventApplicationUpdate << GUI_UpdateDate << GUI_UpdateCheckCount … … 2352 2352 } 2353 2353 2354 Qt::SortOrder UIExtraDataManager::notificationCenterOrder() 2355 { 2356 return gpConverter->fromInternalString<Qt::SortOrder>(extraDataString(GUI_NotificationCenter_Order)); 2357 } 2358 2359 void UIExtraDataManager::setNotificationCenterOrder(Qt::SortOrder enmOrder) 2360 { 2361 const QString strValue = enmOrder == Qt::AscendingOrder ? QString() : gpConverter->toInternalString(enmOrder); 2362 setExtraDataString(GUI_NotificationCenter_Order, strValue); 2363 } 2364 2354 2365 #if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) 2355 2366 QString UIExtraDataManager::preventBetaBuildWarningForVersion() … … 4726 4737 if (strKey.startsWith("GUI/")) 4727 4738 { 4739 /* Notification-center order? */ 4740 if (strKey == GUI_NotificationCenter_Order) 4741 emit sigNotificationCenterOrderChange(); 4728 4742 /* Language changed? */ 4729 4743 if (strKey == GUI_LanguageID) -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
r91713 r92400 66 66 void sigExtraDataChange(const QUuid &uID, const QString &strKey, const QString &strValue); 67 67 68 /** Notifies about notification-center order change. */ 69 void sigNotificationCenterOrderChange(); 70 68 71 /** Notifies about GUI language change. */ 69 72 void sigLanguageChange(QString strLanguage); … … 188 191 /** Defines whether successfull notification-progresses should NOT close (@a fKeep) automatically. */ 189 192 void setKeepSuccessfullNotificationProgresses(bool fKeep); 193 194 /** Returns notification-center order. */ 195 Qt::SortOrder notificationCenterOrder(); 196 /** Defines notification-progresses @a enmOrder. */ 197 void setNotificationCenterOrder(Qt::SortOrder enmOrder); 190 198 191 199 #if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) -
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.cpp
r92295 r92400 148 148 : QIWithRetranslateUI<QWidget>(pParent) 149 149 , m_pModel(0) 150 , m_enmOrder(Qt::AscendingOrder) 150 151 , m_pLayoutMain(0) 151 152 , m_pLayoutButtons(0) … … 352 353 } 353 354 355 void UINotificationCenter::sltHandleOrderChange() 356 { 357 m_enmOrder = gEDataManager->notificationCenterOrder(); 358 sltModelChanged(); 359 } 360 354 361 void UINotificationCenter::sltHandleOpenButtonToggled(bool fToggled) 355 362 { … … 402 409 403 410 /* Populate model contents again: */ 404 foreach (const QUuid &uId, m_pModel->ids()) 405 m_pLayoutItems->addWidget(UINotificationItem::create(this, m_pModel->objectById(uId))); 411 const int iCount = m_pModel->ids().count(); 412 for (int iIndex = 0; iIndex < iCount; ++iIndex) 413 { 414 const QUuid &uId = m_pModel->ids().at(iIndex); 415 m_pLayoutItems->insertWidget(m_enmOrder == Qt::AscendingOrder ? iCount : 0, 416 UINotificationItem::create(this, m_pModel->objectById(uId))); 417 } 406 418 407 419 /* Since there is a scroll-area expanded up to whole … … 443 455 prepareStateMachineSliding(); 444 456 prepareOpenTimer(); 457 458 /* Prepare order: */ 459 m_enmOrder = gEDataManager->notificationCenterOrder(); 460 connect(gEDataManager, &UIExtraDataManager::sigNotificationCenterOrderChange, 461 this, &UINotificationCenter::sltHandleOrderChange); 445 462 446 463 /* Apply language settings: */ -
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.h
r92295 r92400 101 101 private slots: 102 102 103 /** Handles order changes. */ 104 void sltHandleOrderChange(); 105 103 106 /** Issues request to make open button @a fToggled. */ 104 107 void sltHandleOpenButtonToggled(bool fToggled); … … 151 154 /** Holds the model instance. */ 152 155 UINotificationModel *m_pModel; 156 157 /** Holds the order. */ 158 Qt::SortOrder m_enmOrder; 153 159 154 160 /** Holds the main layout instance. */
Note:
See TracChangeset
for help on using the changeset viewer.