3443 |
3443 |
3444 @return reference to the opensearch manager object (OpenSearchManager) |
3444 @return reference to the opensearch manager object (OpenSearchManager) |
3445 """ |
3445 """ |
3446 return self.searchEdit.openSearchManager() |
3446 return self.searchEdit.openSearchManager() |
3447 |
3447 |
|
3448 def __createTextEncodingAction(self, codec, defaultCodec, parentMenu): |
|
3449 """ |
|
3450 Private method to create an action for the text encoding menu. |
|
3451 |
|
3452 @param codec name of the codec to create an action for |
|
3453 @type str |
|
3454 @param defaultCodec name of the default codec |
|
3455 @type str |
|
3456 @param parentMenu reference to the parent menu |
|
3457 @type QMenu |
|
3458 """ |
|
3459 act = QAction(codec, parentMenu) |
|
3460 act.setData(codec) |
|
3461 act.setCheckable(True) |
|
3462 if defaultCodec == codec: |
|
3463 act.setChecked(True) |
|
3464 |
|
3465 parentMenu.addAction(act) |
|
3466 |
|
3467 def __createTextEncodingSubmenu(self, title, codecNames, parentMenu): |
|
3468 """ |
|
3469 Private method to create a text encoding sub menu. |
|
3470 |
|
3471 @param title title of the menu |
|
3472 @type str |
|
3473 @param codecNames list of codec names for the menu |
|
3474 @type list of str |
|
3475 @param parentMenu reference to the parent menu |
|
3476 @type QMenu |
|
3477 """ |
|
3478 if codecNames: |
|
3479 defaultCodec = \ |
|
3480 QWebSettings.globalSettings().defaultTextEncoding().lower() |
|
3481 |
|
3482 menu = QMenu(title, parentMenu) |
|
3483 for codec in codecNames: |
|
3484 self.__createTextEncodingAction(codec, defaultCodec, menu) |
|
3485 |
|
3486 parentMenu.addMenu(menu) |
|
3487 |
3448 def __aboutToShowTextEncodingMenu(self): |
3488 def __aboutToShowTextEncodingMenu(self): |
3449 """ |
3489 """ |
3450 Private slot to populate the text encoding menu. |
3490 Private slot to populate the text encoding menu. |
3451 """ |
3491 """ |
3452 self.__textEncodingMenu.clear() |
3492 self.__textEncodingMenu.clear() |
3453 |
3493 |
3454 codecs = [] |
3494 codecs = [] |
3455 for codec in QTextCodec.availableCodecs(): |
3495 for mib in QTextCodec.availableMibs(): |
3456 codecs.append(str(codec, encoding="utf-8").lower()) |
3496 codec = str(QTextCodec.codecForMib(mib).name(), |
|
3497 encoding="utf-8").lower() |
|
3498 if codec not in codecs: |
|
3499 codecs.append(codec) |
3457 codecs.sort() |
3500 codecs.sort() |
3458 |
3501 |
3459 defaultTextEncoding = \ |
3502 defaultTextEncoding = \ |
3460 QWebSettings.globalSettings().defaultTextEncoding().lower() |
3503 QWebSettings.globalSettings().defaultTextEncoding().lower() |
3461 if defaultTextEncoding in codecs: |
3504 if defaultTextEncoding in codecs: |
3462 currentCodec = defaultTextEncoding |
3505 currentCodec = defaultTextEncoding |
3463 else: |
3506 else: |
3464 currentCodec = "" |
3507 currentCodec = "system" |
3465 |
3508 |
3466 isDefaultEncodingUsed = True |
3509 isoCodecs = [] |
3467 isoMenu = QMenu(self.tr("ISO"), self.__textEncodingMenu) |
3510 winCodecs = [] |
3468 winMenu = QMenu(self.tr("Windows"), self.__textEncodingMenu) |
3511 isciiCodecs = [] |
3469 isciiMenu = QMenu(self.tr("ISCII"), self.__textEncodingMenu) |
3512 uniCodecs = [] |
3470 uniMenu = QMenu(self.tr("Unicode"), self.__textEncodingMenu) |
3513 ibmCodecs = [] |
3471 otherMenu = QMenu(self.tr("Other"), self.__textEncodingMenu) |
3514 otherCodecs = [] |
3472 ibmMenu = QMenu(self.tr("IBM"), self.__textEncodingMenu) |
|
3473 |
3515 |
3474 for codec in codecs: |
3516 for codec in codecs: |
3475 if codec.startswith(("iso", "latin", "csisolatin")): |
3517 if codec.startswith(("iso", "latin")): |
3476 act = isoMenu.addAction(codec) |
3518 isoCodecs.append(codec) |
3477 elif codec.startswith(("windows", "cp1")): |
3519 elif codec.startswith(("windows")): |
3478 act = winMenu.addAction(codec) |
3520 winCodecs.append(codec) |
3479 elif codec.startswith("iscii"): |
3521 elif codec.startswith("iscii"): |
3480 act = isciiMenu.addAction(codec) |
3522 isciiCodecs.append(codec) |
3481 elif codec.startswith("utf"): |
3523 elif codec.startswith("utf"): |
3482 act = uniMenu.addAction(codec) |
3524 uniCodecs.append(codec) |
3483 elif codec.startswith(("ibm", "csibm", "cp")): |
3525 elif codec.startswith(("ibm")): |
3484 act = ibmMenu.addAction(codec) |
3526 ibmCodecs.append(codec) |
|
3527 elif codec == "system": |
|
3528 self.__createTextEncodingAction(codec, currentCodec, |
|
3529 self.__textEncodingMenu) |
3485 else: |
3530 else: |
3486 act = otherMenu.addAction(codec) |
3531 otherCodecs.append(codec) |
3487 |
3532 |
3488 act.setData(codec) |
3533 self.__createTextEncodingSubmenu(self.tr("ISO"), isoCodecs, |
3489 act.setCheckable(True) |
3534 self.__textEncodingMenu) |
3490 if currentCodec == codec: |
3535 self.__createTextEncodingSubmenu(self.tr("Unicode"), uniCodecs, |
3491 act.setChecked(True) |
3536 self.__textEncodingMenu) |
3492 isDefaultEncodingUsed = False |
3537 self.__createTextEncodingSubmenu(self.tr("Windows"), winCodecs, |
3493 |
3538 self.__textEncodingMenu) |
3494 act = self.__textEncodingMenu.addAction( |
3539 self.__createTextEncodingSubmenu(self.tr("ISCII"), isciiCodecs, |
3495 self.tr("Default Encoding")) |
3540 self.__textEncodingMenu) |
3496 act.setData("") |
3541 self.__createTextEncodingSubmenu(self.tr("IBM"), ibmCodecs, |
3497 act.setCheckable(True) |
3542 self.__textEncodingMenu) |
3498 act.setChecked(isDefaultEncodingUsed) |
3543 self.__createTextEncodingSubmenu(self.tr("Other"), otherCodecs, |
3499 self.__textEncodingMenu.addMenu(uniMenu) |
3544 self.__textEncodingMenu) |
3500 self.__textEncodingMenu.addMenu(isoMenu) |
|
3501 self.__textEncodingMenu.addMenu(winMenu) |
|
3502 self.__textEncodingMenu.addMenu(ibmMenu) |
|
3503 self.__textEncodingMenu.addMenu(isciiMenu) |
|
3504 self.__textEncodingMenu.addMenu(otherMenu) |
|
3505 |
3545 |
3506 def __setTextEncoding(self, act): |
3546 def __setTextEncoding(self, act): |
3507 """ |
3547 """ |
3508 Private slot to set the selected text encoding as the default for |
3548 Private slot to set the selected text encoding as the default for |
3509 this session. |
3549 this session. |