Skip to content

Commit 718f9be

Browse files
v1.2.6
1 parent 4ebd829 commit 718f9be

File tree

6 files changed

+32
-10
lines changed

6 files changed

+32
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ Thumbs.db
6060
*.opensdf
6161
*.vcxproj
6262
*vcxproj.*
63+
.vs
6364

6465
# MinGW generated files
6566
*.Debug

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
**v1.2.6**
2+
* Fixed bugs in named property viewer.
3+
* Fixed a bug where sorting caused various tables to display incorrectly (forgot to turn off sorting while editing them and turn it back on afterwards).
4+
15
**v1.2.5**
26
* Fixed issue that cause the multiple viewer to not clear it's data.
37

README.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Credits
7777
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
7878
:target: LICENSE.txt
7979

80-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-1.2.5-blue.svg
81-
:target: https://pypi.org/project/msg-explorer/1.2.5/
80+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-1.2.6-blue.svg
81+
:target: https://pypi.org/project/msg-explorer/1.2.6/
8282

8383
.. |PyPI2| image:: https://img.shields.io/badge/python-3.6+-brightgreen.svg
8484
:target: https://www.python.org/downloads/release/python-367/

msg_explorer/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
# along with this program. If not, see <http://www.gnu.org/licenses/>.
2828

2929
__author__ = 'Destiny Peterson'
30-
__date__ = '2022-06-23'
31-
__version__ = '1.2.5'
30+
__date__ = '2022-06-25'
31+
__version__ = '1.2.6'
3232

3333
# When this module is imported, we should try to compile the forms. They only
3434
# compile when they are outdated.

msg_explorer/attachments_browser.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,23 @@ def msgOpened(self, msgFile):
4242
self.ui.tableAttachments.setRowCount(totalAttachments)
4343
indexPostfix = ' (Regular)' if self.__isSigned else ''
4444
count = 0
45+
self.ui.tableAttachments.setSortingEnabled(False)
4546
for index, att in enumerate(msgFile._rawAttachments if self.__isSigned else msgFile.attachments):
4647
self.ui.tableAttachments.setItem(index, 0, QTableWidgetItem(str(index) + indexPostfix))
4748
if isinstance(att, extract_msg.Attachment):
4849
self.ui.tableAttachments.setItem(index, 1, QTableWidgetItem("OK"))
49-
self.ui.tableAttachments.setItem(index, 2, QTableWidgetItem(att.shortFilename))
50-
self.ui.tableAttachments.setItem(index, 3, QTableWidgetItem(att.longFilename))
51-
self.ui.tableAttachments.setItem(index, 4, QTableWidgetItem(att.cid))
52-
self.ui.tableAttachments.setItem(index, 5, QTableWidgetItem(att.mimetype))
53-
self.ui.tableAttachments.setItem(index, 6, QTableWidgetItem("Not Rendered" if att.renderingPosition and att.renderingPosition == 0xFFFFFFFF else str(att.renderingPosition)))
5450
elif isinstance(att, extract_msg.attachment.BrokenAttachment):
5551
self.ui.tableAttachments.setItem(index, 1, QTableWidgetItem("Broken"))
5652
elif isinstance(att, extract_msg.attachment.UnsupportedAttachment):
5753
self.ui.tableAttachments.setItem(index, 1, QTableWidgetItem("Unsupported"))
5854
else:
5955
self.ui.tableAttachments.setItem(index, 1, QTableWidgetItem("Unknown Type"))
56+
self.ui.tableAttachments.setItem(index, 2, QTableWidgetItem(att.shortFilename))
57+
self.ui.tableAttachments.setItem(index, 3, QTableWidgetItem(att.longFilename))
58+
self.ui.tableAttachments.setItem(index, 4, QTableWidgetItem(att.cid))
59+
print(att.mimetype)
60+
self.ui.tableAttachments.setItem(index, 5, QTableWidgetItem(att.mimetype))
61+
self.ui.tableAttachments.setItem(index, 6, QTableWidgetItem("Not Rendered" if att.renderingPosition and att.renderingPosition == 0xFFFFFFFF else str(att.renderingPosition)))
6062
count += 1
6163
if self.__isSigned:
6264
# If it's signed, also display the regular attachments.
@@ -67,6 +69,8 @@ def msgOpened(self, msgFile):
6769
self.ui.tableAttachments.setItem(count + index, 3, QTableWidgetItem(att.name))
6870
self.ui.tableAttachments.setItem(count + index, 5, QTableWidgetItem(att.mimetype))
6971

72+
self.ui.tableAttachments.setSortingEnabled(True)
73+
7074
@Slot(int, int)
7175
def _cellDoubleClicked(self, row : int, column : int):
7276
"""

msg_explorer/named_properties_viewer.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
# This Python file uses the following encoding: utf-8
2+
import logging
3+
24
import extract_msg
35

46
from PySide6 import QtCore
57
from PySide6 import QtWidgets
68
from PySide6.QtCore import Signal, SIGNAL, Slot, SLOT
7-
from PySide6.QtWidgets import QTableWidgetItem
9+
from PySide6.QtWidgets import QMessageBox, QTableWidgetItem
810

911
from . import utils
1012
from .ui.ui_named_properties_viewer import Ui_NamedPropertiesViewer
1113

1214

15+
logger = logging.getLogger(__name__)
16+
logger.addHandler(logging.NullHandler())
17+
18+
1319
class NamedPIDItem(QTableWidgetItem):
1420
"""
1521
Little bit of a hack to force the Named PID column to sort properly.
@@ -42,14 +48,18 @@ def loadNamed(self):
4248
property, not the data.
4349
"""
4450
self.ui.tableNamedProperties.setRowCount(len(self.__named))
51+
self.ui.tableNamedProperties.setSortingEnabled(False)
4552
for index, key in enumerate(self.__named):
4653
self.ui.tableNamedProperties.setItem(index, 0, QTableWidgetItem(key))
54+
#print(self.__named[key].namedPropertyID)
4755
self.ui.tableNamedProperties.setItem(index, 1, NamedPIDItem(str(self.__named[key].namedPropertyID)))
56+
self.ui.tableNamedProperties.setSortingEnabled(True)
4857

4958
@Slot()
5059
def msgClosed(self):
5160
self.ui.comboBoxInstance.clear()
5261
self.ui.tableNamedProperties.clearContents()
62+
self.ui.tableNamedProperties.setRowCount(0)
5363
self.__msg = None
5464
self.__named = None
5565
self.__attachments = None
@@ -80,6 +90,7 @@ def _cellDoubleClicked(self, row, column):
8090
# path to give to the signal.
8191
for _type in extract_msg.constants.PTYPES:
8292
start[-1] = f'__substg1.0_{code:04X}{_type:04X}'
93+
logger.info(f'Checking for named property stream at {start}')
8394
if self.__msg.exists(start):
8495
return self.namedPropertySelected.emit(start)
8596
else:
@@ -99,6 +110,7 @@ def _comboBoxChanged(self, entry):
99110
getData = attachment.namedProperties.get
100111
getStream = attachment._getTypedStream
101112

113+
self.ui.tableNamedProperties.setSortingEnabled(False)
102114
for index in range(self.ui.tableNamedProperties.rowCount()):
103115
key = self.ui.tableNamedProperties.item(index, 0).data(0)
104116
# We need to figure out what to display for the data.
@@ -110,6 +122,7 @@ def _comboBoxChanged(self, entry):
110122
self.ui.tableNamedProperties.setItem(index, 2, QTableWidgetItem('[Stream]'))
111123
else:
112124
self.ui.tableNamedProperties.setItem(index, 2, QTableWidgetItem(utils.dataToString(data)))
125+
self.ui.tableNamedProperties.setSortingEnabled(True)
113126

114127

115128

0 commit comments

Comments
 (0)