5655 } |
5652 } |
5656 break; |
5653 break; |
5657 default: |
5654 default: |
5658 break; |
5655 break; |
5659 } |
5656 } |
5660 |
5657 } // if (QApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) |
5661 if (!icon.isNull()) |
5658 if (!icon.isNull()) |
5662 return icon; |
5659 return icon; |
5663 #if defined(Q_WS_MAC) |
5660 #if defined(Q_WS_MAC) |
5664 OSType iconType = 0; |
5661 if (QApplication::desktopSettingsAware()) { |
5665 switch (standardIcon) { |
5662 OSType iconType = 0; |
5666 case QStyle::SP_MessageBoxQuestion: |
5663 switch (standardIcon) { |
5667 case QStyle::SP_MessageBoxInformation: |
5664 case QStyle::SP_MessageBoxQuestion: |
5668 case QStyle::SP_MessageBoxWarning: |
5665 case QStyle::SP_MessageBoxInformation: |
5669 case QStyle::SP_MessageBoxCritical: |
5666 case QStyle::SP_MessageBoxWarning: |
5670 iconType = kGenericApplicationIcon; |
5667 case QStyle::SP_MessageBoxCritical: |
5671 break; |
5668 iconType = kGenericApplicationIcon; |
5672 case SP_DesktopIcon: |
5669 break; |
5673 iconType = kDesktopIcon; |
5670 case SP_DesktopIcon: |
5674 break; |
5671 iconType = kDesktopIcon; |
5675 case SP_TrashIcon: |
5672 break; |
5676 iconType = kTrashIcon; |
5673 case SP_TrashIcon: |
5677 break; |
5674 iconType = kTrashIcon; |
5678 case SP_ComputerIcon: |
5675 break; |
5679 iconType = kComputerIcon; |
5676 case SP_ComputerIcon: |
5680 break; |
5677 iconType = kComputerIcon; |
5681 case SP_DriveFDIcon: |
5678 break; |
5682 iconType = kGenericFloppyIcon; |
5679 case SP_DriveFDIcon: |
5683 break; |
5680 iconType = kGenericFloppyIcon; |
5684 case SP_DriveHDIcon: |
5681 break; |
5685 iconType = kGenericHardDiskIcon; |
5682 case SP_DriveHDIcon: |
5686 break; |
5683 iconType = kGenericHardDiskIcon; |
5687 case SP_DriveCDIcon: |
5684 break; |
5688 case SP_DriveDVDIcon: |
5685 case SP_DriveCDIcon: |
5689 iconType = kGenericCDROMIcon; |
5686 case SP_DriveDVDIcon: |
5690 break; |
5687 iconType = kGenericCDROMIcon; |
5691 case SP_DriveNetIcon: |
5688 break; |
5692 iconType = kGenericNetworkIcon; |
5689 case SP_DriveNetIcon: |
5693 break; |
5690 iconType = kGenericNetworkIcon; |
5694 case SP_DirOpenIcon: |
5691 break; |
5695 iconType = kOpenFolderIcon; |
5692 case SP_DirOpenIcon: |
5696 break; |
5693 iconType = kOpenFolderIcon; |
5697 case SP_DirClosedIcon: |
5694 break; |
5698 case SP_DirLinkIcon: |
5695 case SP_DirClosedIcon: |
5699 iconType = kGenericFolderIcon; |
5696 case SP_DirLinkIcon: |
5700 break; |
5697 iconType = kGenericFolderIcon; |
5701 case SP_FileLinkIcon: |
5698 break; |
5702 case SP_FileIcon: |
5699 case SP_FileLinkIcon: |
5703 iconType = kGenericDocumentIcon; |
5700 case SP_FileIcon: |
5704 break; |
5701 iconType = kGenericDocumentIcon; |
5705 case SP_DirIcon: { |
5702 break; |
5706 // A rather special case |
5703 case SP_DirIcon: { |
5707 QIcon closeIcon = QStyle::standardIcon(SP_DirClosedIcon, option, widget); |
5704 // A rather special case |
5708 QIcon openIcon = QStyle::standardIcon(SP_DirOpenIcon, option, widget); |
5705 QIcon closeIcon = QStyle::standardIcon(SP_DirClosedIcon, option, widget); |
5709 closeIcon.addPixmap(openIcon.pixmap(16, 16), QIcon::Normal, QIcon::On); |
5706 QIcon openIcon = QStyle::standardIcon(SP_DirOpenIcon, option, widget); |
5710 closeIcon.addPixmap(openIcon.pixmap(32, 32), QIcon::Normal, QIcon::On); |
5707 closeIcon.addPixmap(openIcon.pixmap(16, 16), QIcon::Normal, QIcon::On); |
5711 closeIcon.addPixmap(openIcon.pixmap(64, 64), QIcon::Normal, QIcon::On); |
5708 closeIcon.addPixmap(openIcon.pixmap(32, 32), QIcon::Normal, QIcon::On); |
5712 closeIcon.addPixmap(openIcon.pixmap(128, 128), QIcon::Normal, QIcon::On); |
5709 closeIcon.addPixmap(openIcon.pixmap(64, 64), QIcon::Normal, QIcon::On); |
5713 return closeIcon; |
5710 closeIcon.addPixmap(openIcon.pixmap(128, 128), QIcon::Normal, QIcon::On); |
5714 } |
5711 return closeIcon; |
5715 case SP_TitleBarNormalButton: |
5712 } |
5716 case SP_TitleBarCloseButton: { |
5713 case SP_TitleBarNormalButton: |
5717 QIcon titleBarIcon; |
5714 case SP_TitleBarCloseButton: { |
5718 if (standardIcon == SP_TitleBarCloseButton) { |
5715 QIcon titleBarIcon; |
5719 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/closedock-16.png")); |
5716 if (standardIcon == SP_TitleBarCloseButton) { |
5720 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/closedock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On); |
5717 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/closedock-16.png")); |
5721 } else { |
5718 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/closedock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On); |
5722 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/dockdock-16.png")); |
5719 } else { |
5723 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/dockdock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On); |
5720 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/dockdock-16.png")); |
5724 } |
5721 titleBarIcon.addFile(QLatin1String(":/trolltech/styles/macstyle/images/dockdock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On); |
5725 return titleBarIcon; |
5722 } |
5726 } |
5723 return titleBarIcon; |
5727 default: |
5724 } |
5728 break; |
5725 default: |
5729 } |
5726 break; |
5730 if (iconType != 0) { |
5727 } |
5731 QIcon retIcon; |
5728 if (iconType != 0) { |
5732 IconRef icon; |
5729 QIcon retIcon; |
5733 IconRef overlayIcon = 0; |
5730 IconRef icon; |
5734 if (iconType != kGenericApplicationIcon) { |
5731 IconRef overlayIcon = 0; |
5735 GetIconRef(kOnSystemDisk, kSystemIconsCreator, iconType, &icon); |
5732 if (iconType != kGenericApplicationIcon) { |
5736 } else { |
5733 GetIconRef(kOnSystemDisk, kSystemIconsCreator, iconType, &icon); |
5737 FSRef fsRef; |
5734 } else { |
5738 ProcessSerialNumber psn = { 0, kCurrentProcess }; |
5735 FSRef fsRef; |
5739 GetProcessBundleLocation(&psn, &fsRef); |
5736 ProcessSerialNumber psn = { 0, kCurrentProcess }; |
5740 GetIconRefFromFileInfo(&fsRef, 0, 0, 0, 0, kIconServicesNormalUsageFlag, &icon, 0); |
5737 GetProcessBundleLocation(&psn, &fsRef); |
5741 if (standardIcon == SP_MessageBoxCritical) { |
5738 GetIconRefFromFileInfo(&fsRef, 0, 0, 0, 0, kIconServicesNormalUsageFlag, &icon, 0); |
5742 overlayIcon = icon; |
5739 if (standardIcon == SP_MessageBoxCritical) { |
5743 GetIconRef(kOnSystemDisk, kSystemIconsCreator, kAlertCautionIcon, &icon); |
5740 overlayIcon = icon; |
5744 } |
5741 GetIconRef(kOnSystemDisk, kSystemIconsCreator, kAlertCautionIcon, &icon); |
5745 } |
5742 } |
5746 if (icon) { |
5743 } |
5747 qt_mac_constructQIconFromIconRef(icon, overlayIcon, &retIcon, standardIcon); |
5744 if (icon) { |
5748 ReleaseIconRef(icon); |
5745 qt_mac_constructQIconFromIconRef(icon, overlayIcon, &retIcon, standardIcon); |
5749 } |
5746 ReleaseIconRef(icon); |
5750 if (overlayIcon) |
5747 } |
5751 ReleaseIconRef(overlayIcon); |
5748 if (overlayIcon) |
5752 return retIcon; |
5749 ReleaseIconRef(overlayIcon); |
5753 } |
5750 return retIcon; |
|
5751 } |
|
5752 } // if (QApplication::desktopSettingsAware()) |
5754 #endif // Q_WS_MAC |
5753 #endif // Q_WS_MAC |
5755 } |
|
5756 |
5754 |
5757 switch (standardIcon) { |
5755 switch (standardIcon) { |
5758 #ifndef QT_NO_IMAGEFORMAT_PNG |
5756 #ifndef QT_NO_IMAGEFORMAT_PNG |
5759 case SP_FileDialogNewFolder: |
5757 case SP_FileDialogNewFolder: |
5760 icon.addFile(QLatin1String(":/trolltech/styles/commonstyle/images/newdirectory-16.png")); |
5758 icon.addFile(QLatin1String(":/trolltech/styles/commonstyle/images/newdirectory-16.png")); |