From 30dba52eea33db1c6580cc1901e206eca7efea53 Mon Sep 17 00:00:00 2001 From: Remisa Yousefvand Date: Tue, 14 Jan 2025 22:15:15 +0330 Subject: [PATCH] v0.0.96 --- CHANGELOG.md | 6 + CMakeLists.txt | 336 +++++++++--------- CMakeLists.txt.user | 241 ------------- src/decoding/interpret_as_cesu_8.cpp | 115 ++++++ src/decoding/interpret_as_cesu_8.h | 26 ++ .../interpret_as_dialog.cpp | 9 +- .../interpret_as_dialog.h | 0 .../interpret_as_dialog.ui | 0 src/decoding/interpret_as_euc_jp.cpp | 59 +++ src/decoding/interpret_as_euc_jp.h | 26 ++ src/decoding/interpret_as_gb18030.cpp | 99 ++++++ src/decoding/interpret_as_gb18030.h | 26 ++ src/decoding/interpret_as_gbk.cpp | 59 +++ src/decoding/interpret_as_gbk.h | 26 ++ src/decoding/interpret_as_hz_gb_2312.cpp | 90 +++++ src/decoding/interpret_as_hz_gb_2312.h | 26 ++ src/decoding/interpret_as_ibm_00858.cpp | 106 ++++++ src/decoding/interpret_as_ibm_00858.h | 22 ++ .../interpret_as_ibm_01140.cpp | 0 .../interpret_as_ibm_01140.h | 0 .../interpret_as_ibm_01141.cpp | 0 .../interpret_as_ibm_01141.h | 0 .../interpret_as_ibm_01142.cpp | 0 .../interpret_as_ibm_01142.h | 0 .../interpret_as_ibm_01143.cpp | 0 .../interpret_as_ibm_01143.h | 0 .../interpret_as_ibm_01144.cpp | 0 .../interpret_as_ibm_01144.h | 0 .../interpret_as_ibm_01145.cpp | 0 .../interpret_as_ibm_01145.h | 0 .../interpret_as_ibm_01146.cpp | 0 .../interpret_as_ibm_01146.h | 0 .../interpret_as_ibm_01147.cpp | 0 .../interpret_as_ibm_01147.h | 0 .../interpret_as_ibm_01148.cpp | 0 .../interpret_as_ibm_01148.h | 0 .../interpret_as_ibm_01149.cpp | 0 .../interpret_as_ibm_01149.h | 0 .../interpret_as_ibm_037.cpp | 0 .../interpret_as_ibm_037.h | 0 .../interpret_as_ibm_1026.cpp | 0 .../interpret_as_ibm_1026.h | 0 .../interpret_as_ibm_1047.cpp | 0 .../interpret_as_ibm_1047.h | 0 .../interpret_as_ibm_273.cpp | 0 .../interpret_as_ibm_273.h | 0 .../interpret_as_ibm_277.cpp | 0 .../interpret_as_ibm_277.h | 0 .../interpret_as_ibm_278.cpp | 0 .../interpret_as_ibm_278.h | 0 .../interpret_as_ibm_280.cpp | 0 .../interpret_as_ibm_280.h | 0 .../interpret_as_ibm_284.cpp | 0 .../interpret_as_ibm_284.h | 0 .../interpret_as_ibm_285.cpp | 0 .../interpret_as_ibm_285.h | 0 .../interpret_as_ibm_290.cpp | 0 .../interpret_as_ibm_290.h | 0 .../interpret_as_ibm_297.cpp | 0 .../interpret_as_ibm_297.h | 0 .../interpret_as_ibm_420.cpp | 0 .../interpret_as_ibm_420.h | 0 .../interpret_as_ibm_424.cpp | 0 .../interpret_as_ibm_424.h | 0 .../interpret_as_ibm_437.cpp | 0 .../interpret_as_ibm_437.h | 0 .../interpret_as_ibm_500.cpp | 0 .../interpret_as_ibm_500.h | 0 .../interpret_as_ibm_775.cpp | 0 .../interpret_as_ibm_775.h | 0 .../interpret_as_ibm_850.cpp | 0 .../interpret_as_ibm_850.h | 0 .../interpret_as_ibm_852.cpp | 0 .../interpret_as_ibm_852.h | 0 .../interpret_as_ibm_855.cpp | 0 .../interpret_as_ibm_855.h | 0 .../interpret_as_ibm_857.cpp | 0 .../interpret_as_ibm_857.h | 0 .../interpret_as_ibm_860.cpp | 0 .../interpret_as_ibm_860.h | 0 .../interpret_as_ibm_861.cpp | 0 .../interpret_as_ibm_861.h | 0 .../interpret_as_ibm_862.cpp | 0 .../interpret_as_ibm_862.h | 0 .../interpret_as_ibm_863.cpp | 0 .../interpret_as_ibm_863.h | 0 .../interpret_as_ibm_864.cpp | 0 .../interpret_as_ibm_864.h | 0 .../interpret_as_ibm_865.cpp | 0 .../interpret_as_ibm_865.h | 0 .../interpret_as_ibm_866.cpp | 0 .../interpret_as_ibm_866.h | 0 .../interpret_as_ibm_868.cpp | 0 .../interpret_as_ibm_868.h | 0 .../interpret_as_ibm_869.cpp | 0 .../interpret_as_ibm_869.h | 0 .../interpret_as_ibm_870.cpp | 0 .../interpret_as_ibm_870.h | 0 .../interpret_as_ibm_871.cpp | 0 .../interpret_as_ibm_871.h | 0 .../interpret_as_ibm_918.cpp | 0 .../interpret_as_ibm_918.h | 0 src/decoding/interpret_as_ibm_thai.cpp | 137 +++++++ src/decoding/interpret_as_ibm_thai.h | 22 ++ .../interpret_as_iso_2022_cn.cpp | 0 .../interpret_as_iso_2022_cn.h | 0 .../interpret_as_iso_2022_cn_ext.cpp | 0 .../interpret_as_iso_2022_cn_ext.h | 0 .../interpret_as_iso_2022_jp.cpp | 0 .../interpret_as_iso_2022_jp.h | 0 .../interpret_as_iso_2022_jp_1.cpp | 0 .../interpret_as_iso_2022_jp_1.h | 0 .../interpret_as_iso_2022_jp_2.cpp | 0 .../interpret_as_iso_2022_jp_2.h | 0 .../interpret_as_iso_2022_kr.cpp | 0 .../interpret_as_iso_2022_kr.h | 0 .../interpret_as_iso_8859_1.cpp | 0 .../interpret_as_iso_8859_1.h | 0 .../interpret_as_iso_8859_10.cpp | 0 .../interpret_as_iso_8859_10.h | 0 .../interpret_as_iso_8859_13.cpp | 0 .../interpret_as_iso_8859_13.h | 0 .../interpret_as_iso_8859_14.cpp | 0 .../interpret_as_iso_8859_14.h | 0 .../interpret_as_iso_8859_15.cpp | 0 .../interpret_as_iso_8859_15.h | 0 .../interpret_as_iso_8859_2.cpp | 0 .../interpret_as_iso_8859_2.h | 0 .../interpret_as_iso_8859_3.cpp | 0 .../interpret_as_iso_8859_3.h | 0 .../interpret_as_iso_8859_4.cpp | 0 .../interpret_as_iso_8859_4.h | 0 .../interpret_as_iso_8859_5.cpp | 0 .../interpret_as_iso_8859_5.h | 0 .../interpret_as_iso_8859_6.cpp | 0 .../interpret_as_iso_8859_6.h | 0 .../interpret_as_iso_8859_7.cpp | 0 .../interpret_as_iso_8859_7.h | 0 .../interpret_as_iso_8859_8.cpp | 0 .../interpret_as_iso_8859_8.h | 0 .../interpret_as_iso_8859_9.cpp | 0 .../interpret_as_iso_8859_9.h | 0 .../interpret_as_koi8_r.cpp | 0 .../interpret_as_koi8_r.h | 0 .../interpret_as_koi8_u.cpp | 0 .../interpret_as_koi8_u.h | 0 .../interpret_as_scsu.cpp | 0 .../interpret_as_scsu.h | 0 .../interpret_as_shift_jts.cpp | 0 .../interpret_as_shift_jts.h | 0 .../interpret_as_tis_620.cpp | 0 .../interpret_as_tis_620.h | 0 .../interpret_as_tscii.cpp | 0 .../interpret_as_tscii.h | 0 .../interpret_as_us_ascii.cpp | 0 .../interpret_as_us_ascii.h | 0 .../interpret_as_utf_16.cpp | 0 .../interpret_as_utf_16.h | 0 .../interpret_as_utf_16_be.cpp | 0 .../interpret_as_utf_16_be.h | 0 .../interpret_as_utf_16_le.cpp | 0 .../interpret_as_utf_16_le.h | 0 .../interpret_as_utf_32.cpp | 0 .../interpret_as_utf_32.h | 0 .../interpret_as_utf_32_be.cpp | 0 .../interpret_as_utf_32_be.h | 0 .../interpret_as_utf_32_le.cpp | 0 .../interpret_as_utf_32_le.h | 0 .../interpret_as_utf_7.cpp | 0 .../interpret_as_utf_7.h | 0 .../interpret_as_utf_8.cpp | 0 .../interpret_as_utf_8.h | 0 .../interpret_as_utf_8_without_bom.cpp | 0 .../interpret_as_utf_8_without_bom.h | 0 src/{encoding => decoding}/utf7handler.cpp | 0 src/{encoding => decoding}/utf7handler.h | 0 src/mainwindow.cpp | 188 +++++----- 177 files changed, 1136 insertions(+), 483 deletions(-) delete mode 100644 CMakeLists.txt.user create mode 100644 src/decoding/interpret_as_cesu_8.cpp create mode 100644 src/decoding/interpret_as_cesu_8.h rename src/{encoding => decoding}/interpret_as_dialog.cpp (94%) rename src/{encoding => decoding}/interpret_as_dialog.h (100%) rename src/{encoding => decoding}/interpret_as_dialog.ui (100%) create mode 100644 src/decoding/interpret_as_euc_jp.cpp create mode 100644 src/decoding/interpret_as_euc_jp.h create mode 100644 src/decoding/interpret_as_gb18030.cpp create mode 100644 src/decoding/interpret_as_gb18030.h create mode 100644 src/decoding/interpret_as_gbk.cpp create mode 100644 src/decoding/interpret_as_gbk.h create mode 100644 src/decoding/interpret_as_hz_gb_2312.cpp create mode 100644 src/decoding/interpret_as_hz_gb_2312.h create mode 100644 src/decoding/interpret_as_ibm_00858.cpp create mode 100644 src/decoding/interpret_as_ibm_00858.h rename src/{encoding => decoding}/interpret_as_ibm_01140.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01140.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01141.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01141.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01142.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01142.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01143.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01143.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01144.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01144.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01145.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01145.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01146.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01146.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01147.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01147.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01148.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01148.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_01149.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_01149.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_037.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_037.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_1026.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_1026.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_1047.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_1047.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_273.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_273.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_277.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_277.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_278.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_278.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_280.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_280.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_284.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_284.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_285.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_285.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_290.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_290.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_297.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_297.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_420.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_420.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_424.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_424.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_437.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_437.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_500.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_500.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_775.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_775.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_850.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_850.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_852.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_852.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_855.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_855.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_857.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_857.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_860.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_860.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_861.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_861.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_862.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_862.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_863.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_863.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_864.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_864.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_865.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_865.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_866.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_866.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_868.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_868.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_869.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_869.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_870.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_870.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_871.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_871.h (100%) rename src/{encoding => decoding}/interpret_as_ibm_918.cpp (100%) rename src/{encoding => decoding}/interpret_as_ibm_918.h (100%) create mode 100644 src/decoding/interpret_as_ibm_thai.cpp create mode 100644 src/decoding/interpret_as_ibm_thai.h rename src/{encoding => decoding}/interpret_as_iso_2022_cn.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_cn.h (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_cn_ext.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_cn_ext.h (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp.h (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp_1.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp_1.h (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp_2.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_jp_2.h (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_kr.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_2022_kr.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_1.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_1.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_10.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_10.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_13.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_13.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_14.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_14.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_15.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_15.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_2.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_2.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_3.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_3.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_4.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_4.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_5.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_5.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_6.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_6.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_7.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_7.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_8.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_8.h (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_9.cpp (100%) rename src/{encoding => decoding}/interpret_as_iso_8859_9.h (100%) rename src/{encoding => decoding}/interpret_as_koi8_r.cpp (100%) rename src/{encoding => decoding}/interpret_as_koi8_r.h (100%) rename src/{encoding => decoding}/interpret_as_koi8_u.cpp (100%) rename src/{encoding => decoding}/interpret_as_koi8_u.h (100%) rename src/{encoding => decoding}/interpret_as_scsu.cpp (100%) rename src/{encoding => decoding}/interpret_as_scsu.h (100%) rename src/{encoding => decoding}/interpret_as_shift_jts.cpp (100%) rename src/{encoding => decoding}/interpret_as_shift_jts.h (100%) rename src/{encoding => decoding}/interpret_as_tis_620.cpp (100%) rename src/{encoding => decoding}/interpret_as_tis_620.h (100%) rename src/{encoding => decoding}/interpret_as_tscii.cpp (100%) rename src/{encoding => decoding}/interpret_as_tscii.h (100%) rename src/{encoding => decoding}/interpret_as_us_ascii.cpp (100%) rename src/{encoding => decoding}/interpret_as_us_ascii.h (100%) rename src/{encoding => decoding}/interpret_as_utf_16.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_16.h (100%) rename src/{encoding => decoding}/interpret_as_utf_16_be.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_16_be.h (100%) rename src/{encoding => decoding}/interpret_as_utf_16_le.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_16_le.h (100%) rename src/{encoding => decoding}/interpret_as_utf_32.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_32.h (100%) rename src/{encoding => decoding}/interpret_as_utf_32_be.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_32_be.h (100%) rename src/{encoding => decoding}/interpret_as_utf_32_le.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_32_le.h (100%) rename src/{encoding => decoding}/interpret_as_utf_7.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_7.h (100%) rename src/{encoding => decoding}/interpret_as_utf_8.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_8.h (100%) rename src/{encoding => decoding}/interpret_as_utf_8_without_bom.cpp (100%) rename src/{encoding => decoding}/interpret_as_utf_8_without_bom.h (100%) rename src/{encoding => decoding}/utf7handler.cpp (100%) rename src/{encoding => decoding}/utf7handler.h (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index c874f34..35a59fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ============ + +## 0.0.96 + +- Implemented: +- Encoding Menu -> Interpret as ... IBM-00858, IBM-Thai, HZ-GB-2312, GBK, GH18030, EUC-JP, CESU-8 + ## 0.0.95 - Implemented: diff --git a/CMakeLists.txt b/CMakeLists.txt index 76044cd..b2017cd 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,7 @@ set(PROJECT_UI src/systemreplace/systemreplacedialog.ui src/systemsearchresultdialog.ui src/aboutdialog.ui - src/encoding/interpret_as_dialog.ui + src/decoding/interpret_as_dialog.ui ) set(CMAKE_AUTOUIC_SEARCH_PATHS src) @@ -121,166 +121,180 @@ set(PROJECT_SOURCES src/view/wordwrap.h src/view/toggletoformertab.cpp src/view/toggletoformertab.h - src/encoding/interpret_as_utf_8.cpp - src/encoding/interpret_as_utf_8.h - src/encoding/interpret_as_utf_8_without_bom.cpp - src/encoding/interpret_as_utf_8_without_bom.h - src/encoding/interpret_as_utf_16_be.cpp - src/encoding/interpret_as_utf_16_be.h - src/encoding/interpret_as_utf_16_le.cpp - src/encoding/interpret_as_utf_16_le.h - src/encoding/interpret_as_dialog.cpp - src/encoding/interpret_as_dialog.h - src/encoding/interpret_as_utf_8.cpp - src/encoding/interpret_as_utf_8.h - src/encoding/interpret_as_utf_7.cpp - src/encoding/interpret_as_utf_7.h - src/encoding/utf7handler.cpp - src/encoding/utf7handler.h - src/encoding/interpret_as_utf_32_le.cpp - src/encoding/interpret_as_utf_32_le.h - src/encoding/interpret_as_utf_32_be.cpp - src/encoding/interpret_as_utf_32_be.h - src/encoding/interpret_as_utf_32.cpp - src/encoding/interpret_as_utf_32.h - src/encoding/interpret_as_utf_16.cpp - src/encoding/interpret_as_utf_16.h - src/encoding/interpret_as_us_ascii.cpp - src/encoding/interpret_as_us_ascii.h - src/encoding/interpret_as_tscii.cpp - src/encoding/interpret_as_tscii.h - src/encoding/interpret_as_tis_620.cpp - src/encoding/interpret_as_tis_620.h - src/encoding/interpret_as_shift_jts.cpp - src/encoding/interpret_as_shift_jts.h - src/encoding/interpret_as_scsu.cpp - src/encoding/interpret_as_scsu.h - src/encoding/interpret_as_koi8_u.cpp - src/encoding/interpret_as_koi8_u.h - src/encoding/interpret_as_koi8_r.cpp - src/encoding/interpret_as_koi8_r.h - src/encoding/interpret_as_iso_8859_15.cpp - src/encoding/interpret_as_iso_8859_15.h - src/encoding/interpret_as_iso_8859_14.cpp - src/encoding/interpret_as_iso_8859_14.h - src/encoding/interpret_as_iso_8859_13.cpp - src/encoding/interpret_as_iso_8859_13.h - src/encoding/interpret_as_iso_8859_10.cpp - src/encoding/interpret_as_iso_8859_10.h - src/encoding/interpret_as_iso_8859_9.cpp - src/encoding/interpret_as_iso_8859_9.h - src/encoding/interpret_as_iso_8859_8.cpp - src/encoding/interpret_as_iso_8859_8.h - src/encoding/interpret_as_iso_8859_7.cpp - src/encoding/interpret_as_iso_8859_7.h - src/encoding/interpret_as_iso_8859_6.cpp - src/encoding/interpret_as_iso_8859_6.h - src/encoding/interpret_as_iso_8859_5.cpp - src/encoding/interpret_as_iso_8859_5.h - src/encoding/interpret_as_iso_8859_4.cpp - src/encoding/interpret_as_iso_8859_4.h - src/encoding/interpret_as_iso_8859_3.cpp - src/encoding/interpret_as_iso_8859_3.h - src/encoding/interpret_as_iso_8859_2.cpp - src/encoding/interpret_as_iso_8859_2.h - src/encoding/interpret_as_iso_8859_1.cpp - src/encoding/interpret_as_iso_8859_1.h - src/encoding/interpret_as_iso_2022_kr.cpp - src/encoding/interpret_as_iso_2022_kr.h - src/encoding/interpret_as_iso_2022_jp_2.cpp - src/encoding/interpret_as_iso_2022_jp_2.h - src/encoding/interpret_as_iso_2022_jp_1.cpp - src/encoding/interpret_as_iso_2022_jp_1.h - src/encoding/interpret_as_iso_2022_jp.cpp - src/encoding/interpret_as_iso_2022_jp.h - src/encoding/interpret_as_iso_2022_cn_ext.cpp - src/encoding/interpret_as_iso_2022_cn_ext.h - src/encoding/interpret_as_iso_2022_cn.cpp - src/encoding/interpret_as_iso_2022_cn.h - src/encoding/interpret_as_ibm_918.cpp - src/encoding/interpret_as_ibm_918.h - src/encoding/interpret_as_ibm_871.cpp - src/encoding/interpret_as_ibm_871.h - src/encoding/interpret_as_ibm_870.cpp - src/encoding/interpret_as_ibm_870.h - src/encoding/interpret_as_ibm_869.cpp - src/encoding/interpret_as_ibm_869.h - src/encoding/interpret_as_ibm_868.cpp - src/encoding/interpret_as_ibm_868.h - src/encoding/interpret_as_ibm_866.cpp - src/encoding/interpret_as_ibm_866.h - src/encoding/interpret_as_ibm_865.cpp - src/encoding/interpret_as_ibm_865.h - src/encoding/interpret_as_ibm_864.cpp - src/encoding/interpret_as_ibm_864.h - src/encoding/interpret_as_ibm_863.cpp - src/encoding/interpret_as_ibm_863.h - src/encoding/interpret_as_ibm_862.cpp - src/encoding/interpret_as_ibm_862.h - src/encoding/interpret_as_ibm_861.cpp - src/encoding/interpret_as_ibm_861.h - src/encoding/interpret_as_ibm_860.cpp - src/encoding/interpret_as_ibm_860.h - src/encoding/interpret_as_ibm_857.cpp - src/encoding/interpret_as_ibm_857.h - src/encoding/interpret_as_ibm_855.cpp - src/encoding/interpret_as_ibm_855.h - src/encoding/interpret_as_ibm_852.cpp - src/encoding/interpret_as_ibm_852.h - src/encoding/interpret_as_ibm_850.cpp - src/encoding/interpret_as_ibm_850.h - src/encoding/interpret_as_ibm_775.cpp - src/encoding/interpret_as_ibm_775.h - src/encoding/interpret_as_ibm_500.cpp - src/encoding/interpret_as_ibm_500.h - src/encoding/interpret_as_ibm_437.cpp - src/encoding/interpret_as_ibm_437.h - src/encoding/interpret_as_ibm_424.cpp - src/encoding/interpret_as_ibm_424.h - src/encoding/interpret_as_ibm_420.cpp - src/encoding/interpret_as_ibm_420.h - src/encoding/interpret_as_ibm_297.cpp - src/encoding/interpret_as_ibm_297.h - src/encoding/interpret_as_ibm_290.cpp - src/encoding/interpret_as_ibm_290.h - src/encoding/interpret_as_ibm_285.cpp - src/encoding/interpret_as_ibm_285.h - src/encoding/interpret_as_ibm_284.cpp - src/encoding/interpret_as_ibm_284.h - src/encoding/interpret_as_ibm_280.cpp - src/encoding/interpret_as_ibm_280.h - src/encoding/interpret_as_ibm_278.cpp - src/encoding/interpret_as_ibm_278.h - src/encoding/interpret_as_ibm_277.cpp - src/encoding/interpret_as_ibm_277.h - src/encoding/interpret_as_ibm_273.cpp - src/encoding/interpret_as_ibm_273.h - src/encoding/interpret_as_ibm_1047.cpp - src/encoding/interpret_as_ibm_1047.h - src/encoding/interpret_as_ibm_1026.cpp - src/encoding/interpret_as_ibm_1026.h - src/encoding/interpret_as_ibm_037.cpp - src/encoding/interpret_as_ibm_037.h - src/encoding/interpret_as_ibm_01149.cpp - src/encoding/interpret_as_ibm_01149.h - src/encoding/interpret_as_ibm_01148.cpp - src/encoding/interpret_as_ibm_01148.h - src/encoding/interpret_as_ibm_01147.cpp - src/encoding/interpret_as_ibm_01147.h - src/encoding/interpret_as_ibm_01146.cpp - src/encoding/interpret_as_ibm_01146.h - src/encoding/interpret_as_ibm_01145.cpp - src/encoding/interpret_as_ibm_01145.h - src/encoding/interpret_as_ibm_01144.cpp - src/encoding/interpret_as_ibm_01144.h - src/encoding/interpret_as_ibm_01143.cpp - src/encoding/interpret_as_ibm_01143.h - src/encoding/interpret_as_ibm_01142.cpp - src/encoding/interpret_as_ibm_01142.h - src/encoding/interpret_as_ibm_01141.cpp - src/encoding/interpret_as_ibm_01141.h - src/encoding/interpret_as_ibm_01140.cpp - src/encoding/interpret_as_ibm_01140.h + src/decoding/interpret_as_utf_8.cpp + src/decoding/interpret_as_utf_8.h + src/decoding/interpret_as_utf_8_without_bom.cpp + src/decoding/interpret_as_utf_8_without_bom.h + src/decoding/interpret_as_utf_16_be.cpp + src/decoding/interpret_as_utf_16_be.h + src/decoding/interpret_as_utf_16_le.cpp + src/decoding/interpret_as_utf_16_le.h + src/decoding/interpret_as_dialog.cpp + src/decoding/interpret_as_dialog.h + src/decoding/interpret_as_utf_8.cpp + src/decoding/interpret_as_utf_8.h + src/decoding/interpret_as_utf_7.cpp + src/decoding/interpret_as_utf_7.h + src/decoding/utf7handler.cpp + src/decoding/utf7handler.h + src/decoding/interpret_as_utf_32_le.cpp + src/decoding/interpret_as_utf_32_le.h + src/decoding/interpret_as_utf_32_be.cpp + src/decoding/interpret_as_utf_32_be.h + src/decoding/interpret_as_utf_32.cpp + src/decoding/interpret_as_utf_32.h + src/decoding/interpret_as_utf_16.cpp + src/decoding/interpret_as_utf_16.h + src/decoding/interpret_as_us_ascii.cpp + src/decoding/interpret_as_us_ascii.h + src/decoding/interpret_as_tscii.cpp + src/decoding/interpret_as_tscii.h + src/decoding/interpret_as_tis_620.cpp + src/decoding/interpret_as_tis_620.h + src/decoding/interpret_as_shift_jts.cpp + src/decoding/interpret_as_shift_jts.h + src/decoding/interpret_as_scsu.cpp + src/decoding/interpret_as_scsu.h + src/decoding/interpret_as_koi8_u.cpp + src/decoding/interpret_as_koi8_u.h + src/decoding/interpret_as_koi8_r.cpp + src/decoding/interpret_as_koi8_r.h + src/decoding/interpret_as_iso_8859_15.cpp + src/decoding/interpret_as_iso_8859_15.h + src/decoding/interpret_as_iso_8859_14.cpp + src/decoding/interpret_as_iso_8859_14.h + src/decoding/interpret_as_iso_8859_13.cpp + src/decoding/interpret_as_iso_8859_13.h + src/decoding/interpret_as_iso_8859_10.cpp + src/decoding/interpret_as_iso_8859_10.h + src/decoding/interpret_as_iso_8859_9.cpp + src/decoding/interpret_as_iso_8859_9.h + src/decoding/interpret_as_iso_8859_8.cpp + src/decoding/interpret_as_iso_8859_8.h + src/decoding/interpret_as_iso_8859_7.cpp + src/decoding/interpret_as_iso_8859_7.h + src/decoding/interpret_as_iso_8859_6.cpp + src/decoding/interpret_as_iso_8859_6.h + src/decoding/interpret_as_iso_8859_5.cpp + src/decoding/interpret_as_iso_8859_5.h + src/decoding/interpret_as_iso_8859_4.cpp + src/decoding/interpret_as_iso_8859_4.h + src/decoding/interpret_as_iso_8859_3.cpp + src/decoding/interpret_as_iso_8859_3.h + src/decoding/interpret_as_iso_8859_2.cpp + src/decoding/interpret_as_iso_8859_2.h + src/decoding/interpret_as_iso_8859_1.cpp + src/decoding/interpret_as_iso_8859_1.h + src/decoding/interpret_as_iso_2022_kr.cpp + src/decoding/interpret_as_iso_2022_kr.h + src/decoding/interpret_as_iso_2022_jp_2.cpp + src/decoding/interpret_as_iso_2022_jp_2.h + src/decoding/interpret_as_iso_2022_jp_1.cpp + src/decoding/interpret_as_iso_2022_jp_1.h + src/decoding/interpret_as_iso_2022_jp.cpp + src/decoding/interpret_as_iso_2022_jp.h + src/decoding/interpret_as_iso_2022_cn_ext.cpp + src/decoding/interpret_as_iso_2022_cn_ext.h + src/decoding/interpret_as_iso_2022_cn.cpp + src/decoding/interpret_as_iso_2022_cn.h + src/decoding/interpret_as_ibm_918.cpp + src/decoding/interpret_as_ibm_918.h + src/decoding/interpret_as_ibm_871.cpp + src/decoding/interpret_as_ibm_871.h + src/decoding/interpret_as_ibm_870.cpp + src/decoding/interpret_as_ibm_870.h + src/decoding/interpret_as_ibm_869.cpp + src/decoding/interpret_as_ibm_869.h + src/decoding/interpret_as_ibm_868.cpp + src/decoding/interpret_as_ibm_868.h + src/decoding/interpret_as_ibm_866.cpp + src/decoding/interpret_as_ibm_866.h + src/decoding/interpret_as_ibm_865.cpp + src/decoding/interpret_as_ibm_865.h + src/decoding/interpret_as_ibm_864.cpp + src/decoding/interpret_as_ibm_864.h + src/decoding/interpret_as_ibm_863.cpp + src/decoding/interpret_as_ibm_863.h + src/decoding/interpret_as_ibm_862.cpp + src/decoding/interpret_as_ibm_862.h + src/decoding/interpret_as_ibm_861.cpp + src/decoding/interpret_as_ibm_861.h + src/decoding/interpret_as_ibm_860.cpp + src/decoding/interpret_as_ibm_860.h + src/decoding/interpret_as_ibm_857.cpp + src/decoding/interpret_as_ibm_857.h + src/decoding/interpret_as_ibm_855.cpp + src/decoding/interpret_as_ibm_855.h + src/decoding/interpret_as_ibm_852.cpp + src/decoding/interpret_as_ibm_852.h + src/decoding/interpret_as_ibm_850.cpp + src/decoding/interpret_as_ibm_850.h + src/decoding/interpret_as_ibm_775.cpp + src/decoding/interpret_as_ibm_775.h + src/decoding/interpret_as_ibm_500.cpp + src/decoding/interpret_as_ibm_500.h + src/decoding/interpret_as_ibm_437.cpp + src/decoding/interpret_as_ibm_437.h + src/decoding/interpret_as_ibm_424.cpp + src/decoding/interpret_as_ibm_424.h + src/decoding/interpret_as_ibm_420.cpp + src/decoding/interpret_as_ibm_420.h + src/decoding/interpret_as_ibm_297.cpp + src/decoding/interpret_as_ibm_297.h + src/decoding/interpret_as_ibm_290.cpp + src/decoding/interpret_as_ibm_290.h + src/decoding/interpret_as_ibm_285.cpp + src/decoding/interpret_as_ibm_285.h + src/decoding/interpret_as_ibm_284.cpp + src/decoding/interpret_as_ibm_284.h + src/decoding/interpret_as_ibm_280.cpp + src/decoding/interpret_as_ibm_280.h + src/decoding/interpret_as_ibm_278.cpp + src/decoding/interpret_as_ibm_278.h + src/decoding/interpret_as_ibm_277.cpp + src/decoding/interpret_as_ibm_277.h + src/decoding/interpret_as_ibm_273.cpp + src/decoding/interpret_as_ibm_273.h + src/decoding/interpret_as_ibm_1047.cpp + src/decoding/interpret_as_ibm_1047.h + src/decoding/interpret_as_ibm_1026.cpp + src/decoding/interpret_as_ibm_1026.h + src/decoding/interpret_as_ibm_037.cpp + src/decoding/interpret_as_ibm_037.h + src/decoding/interpret_as_ibm_01149.cpp + src/decoding/interpret_as_ibm_01149.h + src/decoding/interpret_as_ibm_01148.cpp + src/decoding/interpret_as_ibm_01148.h + src/decoding/interpret_as_ibm_01147.cpp + src/decoding/interpret_as_ibm_01147.h + src/decoding/interpret_as_ibm_01146.cpp + src/decoding/interpret_as_ibm_01146.h + src/decoding/interpret_as_ibm_01145.cpp + src/decoding/interpret_as_ibm_01145.h + src/decoding/interpret_as_ibm_01144.cpp + src/decoding/interpret_as_ibm_01144.h + src/decoding/interpret_as_ibm_01143.cpp + src/decoding/interpret_as_ibm_01143.h + src/decoding/interpret_as_ibm_01142.cpp + src/decoding/interpret_as_ibm_01142.h + src/decoding/interpret_as_ibm_01141.cpp + src/decoding/interpret_as_ibm_01141.h + src/decoding/interpret_as_ibm_01140.cpp + src/decoding/interpret_as_ibm_01140.h + src/decoding/interpret_as_ibm_00858.cpp + src/decoding/interpret_as_ibm_00858.h + src/decoding/interpret_as_ibm_thai.cpp + src/decoding/interpret_as_ibm_thai.h + src/decoding/interpret_as_hz_gb_2312.cpp + src/decoding/interpret_as_hz_gb_2312.h + src/decoding/interpret_as_gbk.cpp + src/decoding/interpret_as_gbk.h + src/decoding/interpret_as_gb18030.cpp + src/decoding/interpret_as_gb18030.h + src/decoding/interpret_as_euc_jp.cpp + src/decoding/interpret_as_euc_jp.h + src/decoding/interpret_as_cesu_8.cpp + src/decoding/interpret_as_cesu_8.h ${PROJECT_UI} ) diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user deleted file mode 100644 index a9e50d9..0000000 --- a/CMakeLists.txt.user +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - EnvironmentId - {8d9160d8-ad41-44aa-87e4-cafeb5abba83} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 0 - 80 - true - true - 1 - 0 - false - true - false - 2 - true - true - 0 - 8 - true - false - 1 - true - true - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - false - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 6 - true - - - - true - - - - - ProjectExplorer.Project.Target.0 - - Desktop - Desktop Qt 6.8.1 - Desktop Qt 6.8.1 - qt.qt6.681.linux_gcc_64_kit - 0 - 0 - 0 - - Debug - 2 - false - - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_BUILD_TYPE:STRING=Debug --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_GENERATOR:STRING=Ninja - /data/Code/Qt/Notepad-- - 0 - /data/Code/Qt/Notepad--/build/Desktop_Qt_6_8_1-Debug - - - - - all - - false - - true - Build - CMakeProjectManager.MakeStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - Build - CMakeProjectManager.MakeStep - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Debug - CMakeProjectManager.CMakeBuildConfiguration - - 1 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - - - - - - - - false - - true - ApplicationManagerPlugin.Deploy.CMakePackageStep - - - install-package --acknowledge - true - Install Application Manager package - ApplicationManagerPlugin.Deploy.InstallPackageStep - - - - - - - - 2 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ApplicationManagerPlugin.Deploy.Configuration - - 2 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - Notepad-- - CMakeProjectManager.CMakeRunConfiguration. - Notepad-- - false - true - true - true - /data/Code/Qt/Notepad--/build/Desktop_Qt_6_8_1-Debug - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/src/decoding/interpret_as_cesu_8.cpp b/src/decoding/interpret_as_cesu_8.cpp new file mode 100644 index 0000000..a949118 --- /dev/null +++ b/src/decoding/interpret_as_cesu_8.cpp @@ -0,0 +1,115 @@ +#include "../codeeditor.h" +#include "interpret_as_cesu_8.h" +#include +#include +#include + +// Singleton instance +Interpret_As_CESU_8& Interpret_As_CESU_8::instance() { + static Interpret_As_CESU_8 instance; + return instance; +} + +// Constructor +Interpret_As_CESU_8::Interpret_As_CESU_8() {} + +// Main execution function +void Interpret_As_CESU_8::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeCESU8(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] CESU-8 Decoding applied for file:" << filePath; +} + +// Decode CESU-8 encoded data +QString Interpret_As_CESU_8::decodeCESU8(const QByteArray& rawData) { + QString result; + int i = 0; + + while (i < rawData.size()) { + unsigned char byte1 = rawData[i] & 0xFF; + + // ASCII range (single-byte) + if (byte1 < 0x80) { + result.append(QChar(byte1)); + i++; + } + // CESU-8: 3-byte sequence (surrogate pair high or low) + else if (byte1 >= 0xE0 && byte1 <= 0xEF) { + if (i + 2 < rawData.size()) { + unsigned char byte2 = rawData[i + 1] & 0xFF; + unsigned char byte3 = rawData[i + 2] & 0xFF; + + if ((byte2 & 0xC0) == 0x80 && (byte3 & 0xC0) == 0x80) { + ushort codeUnit = ((byte1 & 0x0F) << 12) | + ((byte2 & 0x3F) << 6) | + (byte3 & 0x3F); + + if (codeUnit >= 0xD800 && codeUnit <= 0xDBFF) { // High surrogate + if (i + 5 < rawData.size()) { + unsigned char byte4 = rawData[i + 3] & 0xFF; + unsigned char byte5 = rawData[i + 4] & 0xFF; + unsigned char byte6 = rawData[i + 5] & 0xFF; + + if ((byte4 & 0xE0) == 0xE0 && (byte5 & 0xC0) == 0x80 && (byte6 & 0xC0) == 0x80) { + ushort lowSurrogate = ((byte4 & 0x0F) << 12) | + ((byte5 & 0x3F) << 6) | + (byte6 & 0x3F); + + if (lowSurrogate >= 0xDC00 && lowSurrogate <= 0xDFFF) { + // Combine surrogates to form a Unicode code point + uint codePoint = 0x10000 + ((codeUnit - 0xD800) << 10) + (lowSurrogate - 0xDC00); + result.append(QChar::fromUcs4(codePoint)); + i += 6; // Skip both surrogates + continue; + } + } + } + } + + // Append high surrogate if no matching low surrogate + result.append(QChar(codeUnit)); + i += 3; + } else { + result.append(QChar(0xFFFD)); // Invalid 3-byte sequence + i++; + } + } else { + result.append(QChar(0xFFFD)); // Incomplete 3-byte sequence + i++; + } + } + // Invalid or unexpected byte + else { + result.append(QChar(0xFFFD)); + i++; + } + } + + return result; +} diff --git a/src/decoding/interpret_as_cesu_8.h b/src/decoding/interpret_as_cesu_8.h new file mode 100644 index 0000000..94639a0 --- /dev/null +++ b/src/decoding/interpret_as_cesu_8.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +class Interpret_As_CESU_8 { +public: + // Singleton instance access + static Interpret_As_CESU_8& instance(); + + // Execute decoding for the provided editor + void execute(QPlainTextEdit* editor); + +private: + // Private constructor for Singleton pattern + Interpret_As_CESU_8(); + ~Interpret_As_CESU_8() = default; + + // Disable copy construction and assignment + Interpret_As_CESU_8(const Interpret_As_CESU_8&) = delete; + Interpret_As_CESU_8& operator=(const Interpret_As_CESU_8&) = delete; + + // Decoding method for CESU-8 data + QString decodeCESU8(const QByteArray& rawData); +}; diff --git a/src/encoding/interpret_as_dialog.cpp b/src/decoding/interpret_as_dialog.cpp similarity index 94% rename from src/encoding/interpret_as_dialog.cpp rename to src/decoding/interpret_as_dialog.cpp index ece2e82..98bbe27 100644 --- a/src/encoding/interpret_as_dialog.cpp +++ b/src/decoding/interpret_as_dialog.cpp @@ -85,7 +85,14 @@ InterpreteAsDialog::InterpreteAsDialog(QWidget* parent) "IBM-01143", "IBM-01142", "IBM-01141", - "IBM-01140" + "IBM-01140", + "IBM-00858", + "IBM-Thai", + "HZ-GB-2312", + "GBK", + "GB18030", + "EUC-JP", + "CESU-8" }); // Create OK and Cancel buttons using QDialogButtonBox diff --git a/src/encoding/interpret_as_dialog.h b/src/decoding/interpret_as_dialog.h similarity index 100% rename from src/encoding/interpret_as_dialog.h rename to src/decoding/interpret_as_dialog.h diff --git a/src/encoding/interpret_as_dialog.ui b/src/decoding/interpret_as_dialog.ui similarity index 100% rename from src/encoding/interpret_as_dialog.ui rename to src/decoding/interpret_as_dialog.ui diff --git a/src/decoding/interpret_as_euc_jp.cpp b/src/decoding/interpret_as_euc_jp.cpp new file mode 100644 index 0000000..c65eeed --- /dev/null +++ b/src/decoding/interpret_as_euc_jp.cpp @@ -0,0 +1,59 @@ +#include "../codeeditor.h" +#include "interpret_as_euc_jp.h" +#include +#include +#include + +// Singleton instance +Interpret_As_EUC_JP& Interpret_As_EUC_JP::instance() { + static Interpret_As_EUC_JP instance; + return instance; +} + +// Constructor +Interpret_As_EUC_JP::Interpret_As_EUC_JP() {} + +// Main execution function +void Interpret_As_EUC_JP::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeEUCJP(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] EUC-JP Decoding applied for file:" << filePath; +} + +// Decode EUC-JP encoded data +QString Interpret_As_EUC_JP::decodeEUCJP(const QByteArray& rawData) { + QStringDecoder decoder("EUC-JP"); + + if (!decoder.isValid()) { + qWarning() << "[ERROR] EUC-JP decoder is invalid."; + return QString(); + } + + return decoder.decode(rawData); +} diff --git a/src/decoding/interpret_as_euc_jp.h b/src/decoding/interpret_as_euc_jp.h new file mode 100644 index 0000000..ce4e47f --- /dev/null +++ b/src/decoding/interpret_as_euc_jp.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +class Interpret_As_EUC_JP { +public: + // Singleton instance access + static Interpret_As_EUC_JP& instance(); + + // Execute decoding for the provided editor + void execute(QPlainTextEdit* editor); + +private: + // Private constructor for Singleton pattern + Interpret_As_EUC_JP(); + ~Interpret_As_EUC_JP() = default; + + // Disable copy construction and assignment + Interpret_As_EUC_JP(const Interpret_As_EUC_JP&) = delete; + Interpret_As_EUC_JP& operator=(const Interpret_As_EUC_JP&) = delete; + + // Decoding method for EUC-JP data + QString decodeEUCJP(const QByteArray& rawData); +}; diff --git a/src/decoding/interpret_as_gb18030.cpp b/src/decoding/interpret_as_gb18030.cpp new file mode 100644 index 0000000..757a0a8 --- /dev/null +++ b/src/decoding/interpret_as_gb18030.cpp @@ -0,0 +1,99 @@ +#include "../codeeditor.h" +#include "interpret_as_gb18030.h" +#include +#include +#include + +// Singleton instance +Interpret_As_GB18030& Interpret_As_GB18030::instance() { + static Interpret_As_GB18030 instance; + return instance; +} + +// Constructor +Interpret_As_GB18030::Interpret_As_GB18030() {} + +// Main execution function +void Interpret_As_GB18030::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeGB18030(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] GB18030 Decoding applied for file:" << filePath; +} + +// Decode GB18030 encoded data +QString Interpret_As_GB18030::decodeGB18030(const QByteArray& rawData) { + QStringDecoder decoder("GB18030"); + + if (!decoder.isValid()) { + qWarning() << "[ERROR] GB18030 decoder is invalid."; + return QString(); + } + + QString result; + QByteArray buffer; + + for (int i = 0; i < rawData.size(); ++i) { + unsigned char byte = rawData[i]; + + // ASCII range (single-byte) + if (byte < 0x80) { + if (!buffer.isEmpty()) { + // Decode any pending multi-byte buffer + result.append(decoder.decode(buffer)); + buffer.clear(); + } + result.append(QChar(byte)); // Directly append ASCII + } + // Start of multi-byte sequence + else { + buffer.append(byte); + + // Decode buffer if it's a valid GB18030 multi-byte sequence + if (buffer.size() == 2 || buffer.size() == 4) { + QString decoded = decoder.decode(buffer); + if (!decoded.isEmpty()) { + result.append(decoded); + buffer.clear(); + } + } + } + } + + // Process any remaining buffer (ensure valid decoding or append replacement) + if (!buffer.isEmpty()) { + QString remainingDecoded = decoder.decode(buffer); + if (!remainingDecoded.isEmpty()) { + result.append(remainingDecoded); + } else { + result.append(QString(buffer.size(), QChar(0xFFFD))); // Replace each invalid byte with � + } + } + + return result; +} diff --git a/src/decoding/interpret_as_gb18030.h b/src/decoding/interpret_as_gb18030.h new file mode 100644 index 0000000..d23a0ae --- /dev/null +++ b/src/decoding/interpret_as_gb18030.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +class Interpret_As_GB18030 { +public: + // Singleton instance access + static Interpret_As_GB18030& instance(); + + // Execute decoding for the provided editor + void execute(QPlainTextEdit* editor); + +private: + // Private constructor for Singleton pattern + Interpret_As_GB18030(); + ~Interpret_As_GB18030() = default; + + // Disable copy construction and assignment + Interpret_As_GB18030(const Interpret_As_GB18030&) = delete; + Interpret_As_GB18030& operator=(const Interpret_As_GB18030&) = delete; + + // Decoding method for GB18030 data + QString decodeGB18030(const QByteArray& rawData); +}; diff --git a/src/decoding/interpret_as_gbk.cpp b/src/decoding/interpret_as_gbk.cpp new file mode 100644 index 0000000..735962b --- /dev/null +++ b/src/decoding/interpret_as_gbk.cpp @@ -0,0 +1,59 @@ +#include "../codeeditor.h" +#include "interpret_as_gbk.h" +#include +#include +#include + +// Singleton instance +Interpret_As_GBK& Interpret_As_GBK::instance() { + static Interpret_As_GBK instance; + return instance; +} + +// Constructor +Interpret_As_GBK::Interpret_As_GBK() {} + +// Main execution function +void Interpret_As_GBK::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeGBK(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] GBK Decoding applied for file:" << filePath; +} + +// Decode GBK encoded data +QString Interpret_As_GBK::decodeGBK(const QByteArray& rawData) { + QStringDecoder decoder("GBK"); + + if (!decoder.isValid()) { + qWarning() << "[ERROR] GBK decoder is invalid."; + return QString(); + } + + return decoder.decode(rawData); +} diff --git a/src/decoding/interpret_as_gbk.h b/src/decoding/interpret_as_gbk.h new file mode 100644 index 0000000..8c3291e --- /dev/null +++ b/src/decoding/interpret_as_gbk.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +class Interpret_As_GBK { +public: + // Singleton instance access + static Interpret_As_GBK& instance(); + + // Execute decoding for the provided editor + void execute(QPlainTextEdit* editor); + +private: + // Private constructor for Singleton pattern + Interpret_As_GBK(); + ~Interpret_As_GBK() = default; + + // Disable copy construction and assignment + Interpret_As_GBK(const Interpret_As_GBK&) = delete; + Interpret_As_GBK& operator=(const Interpret_As_GBK&) = delete; + + // Decoding method for GBK data + QString decodeGBK(const QByteArray& rawData); +}; diff --git a/src/decoding/interpret_as_hz_gb_2312.cpp b/src/decoding/interpret_as_hz_gb_2312.cpp new file mode 100644 index 0000000..1f193cc --- /dev/null +++ b/src/decoding/interpret_as_hz_gb_2312.cpp @@ -0,0 +1,90 @@ +#include "../codeeditor.h" +#include "interpret_as_hz_gb_2312.h" +#include +#include +#include + +// Singleton instance +Interpret_As_HZ_GB_2312& Interpret_As_HZ_GB_2312::instance() { + static Interpret_As_HZ_GB_2312 instance; + return instance; +} + +// Constructor +Interpret_As_HZ_GB_2312::Interpret_As_HZ_GB_2312() {} + +// Main execution function +void Interpret_As_HZ_GB_2312::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeHZGB2312(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] HZ-GB-2312 Decoding applied for file:" << filePath; +} + +// Decode HZ-GB-2312 encoded data +QString Interpret_As_HZ_GB_2312::decodeHZGB2312(const QByteArray& rawData) { + QString result; + QByteArray buffer; + bool inGB2312Mode = false; + + QStringDecoder decoder("GB2312"); + + if (!decoder.isValid()) { + qWarning() << "[ERROR] GB2312 decoder is invalid."; + return QString(); + } + + for (int i = 0; i < rawData.size(); ++i) { + if (rawData.mid(i, 2) == "~{") { // Enter GB2312 mode + inGB2312Mode = true; + i += 1; // Skip the "~{" + } else if (rawData.mid(i, 2) == "~}") { // Exit GB2312 mode + if (!buffer.isEmpty()) { + result.append(decoder.decode(buffer)); // Process any remaining buffer + buffer.clear(); + } + inGB2312Mode = false; + i += 1; // Skip the "~}" + } else if (inGB2312Mode) { + buffer.append(rawData[i]); + if (buffer.size() == 2) { // Each GB2312 character is 2 bytes + result.append(decoder.decode(buffer)); + buffer.clear(); + } + } else { + result.append(QChar(rawData[i] & 0xFF)); // ASCII mode + } + } + + // Process any remaining buffer in GB2312 mode + if (inGB2312Mode && !buffer.isEmpty()) { + result.append(decoder.decode(buffer)); + } + + return result; +} diff --git a/src/decoding/interpret_as_hz_gb_2312.h b/src/decoding/interpret_as_hz_gb_2312.h new file mode 100644 index 0000000..de756bb --- /dev/null +++ b/src/decoding/interpret_as_hz_gb_2312.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +class Interpret_As_HZ_GB_2312 { +public: + // Singleton instance access + static Interpret_As_HZ_GB_2312& instance(); + + // Execute decoding for the provided editor + void execute(QPlainTextEdit* editor); + +private: + // Private constructor for Singleton pattern + Interpret_As_HZ_GB_2312(); + ~Interpret_As_HZ_GB_2312() = default; + + // Disable copy construction and assignment + Interpret_As_HZ_GB_2312(const Interpret_As_HZ_GB_2312&) = delete; + Interpret_As_HZ_GB_2312& operator=(const Interpret_As_HZ_GB_2312&) = delete; + + // Decoding method for HZ-GB-2312 data + QString decodeHZGB2312(const QByteArray& rawData); +}; diff --git a/src/decoding/interpret_as_ibm_00858.cpp b/src/decoding/interpret_as_ibm_00858.cpp new file mode 100644 index 0000000..76afc67 --- /dev/null +++ b/src/decoding/interpret_as_ibm_00858.cpp @@ -0,0 +1,106 @@ +#include "../codeeditor.h" +#include "interpret_as_ibm_00858.h" +#include +#include + +// Singleton instance +Interpret_As_IBM_00858& Interpret_As_IBM_00858::instance() { + static Interpret_As_IBM_00858 instance; + return instance; +} + +// Code page mapping for IBM-00858 (Latin-1 with Euro support) +const std::unordered_map Interpret_As_IBM_00858::codePageTable = { + {0x41, QChar(0x0041)}, // A + {0x42, QChar(0x0042)}, // B + {0x43, QChar(0x0043)}, // C + {0x44, QChar(0x0044)}, // D + {0x45, QChar(0x0045)}, // E + {0x46, QChar(0x0046)}, // F + {0x47, QChar(0x0047)}, // G + {0x48, QChar(0x0048)}, // H + {0x49, QChar(0x0049)}, // I + {0x4A, QChar(0x004A)}, // J + {0x4B, QChar(0x004B)}, // K + {0x4C, QChar(0x004C)}, // L + {0x4D, QChar(0x004D)}, // M + {0x4E, QChar(0x004E)}, // N + {0x4F, QChar(0x004F)}, // O + {0x50, QChar(0x0050)}, // P + {0x51, QChar(0x0051)}, // Q + {0x52, QChar(0x0052)}, // R + {0x53, QChar(0x0053)}, // S + {0x54, QChar(0x0054)}, // T + {0x55, QChar(0x0055)}, // U + {0x56, QChar(0x0056)}, // V + {0x57, QChar(0x0057)}, // W + {0x58, QChar(0x0058)}, // X + {0x59, QChar(0x0059)}, // Y + {0x5A, QChar(0x005A)}, // Z + {0x80, QChar(0x20AC)}, // € + {0x81, QChar(0x0061)}, // a + {0x82, QChar(0x00E9)}, // é + {0x83, QChar(0x00E2)}, // â + {0x84, QChar(0x00E4)}, // ä + {0x85, QChar(0x00E0)}, // à + {0x86, QChar(0x00E5)}, // å + {0x87, QChar(0x00E7)}, // ç + {0x88, QChar(0x00EA)}, // ê + {0x89, QChar(0x00EB)}, // ë + {0x8A, QChar(0x00E8)}, // è + {0x8B, QChar(0x00EF)}, // ï + {0x8C, QChar(0x00EE)}, // î + {0x8D, QChar(0x00EC)}, // ì + {0x8E, QChar(0x00C4)}, // Ä + {0x8F, QChar(0x00C5)}, // Å +}; + +// Constructor +Interpret_As_IBM_00858::Interpret_As_IBM_00858() {} + +// Main execution function +void Interpret_As_IBM_00858::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeIBM00858(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] IBM-00858 Decoding applied for file:" << filePath; +} + +// Decode raw data from IBM-00858 encoding +QString Interpret_As_IBM_00858::decodeIBM00858(const QByteArray& rawData) { + QString result; + + for (unsigned char byte : rawData) { + if (codePageTable.contains(byte)) { + result.append(codePageTable.at(byte)); + } else { + result.append(QChar(0xFFFD)); // Fallback for unmapped characters + } + } + return result; +} diff --git a/src/decoding/interpret_as_ibm_00858.h b/src/decoding/interpret_as_ibm_00858.h new file mode 100644 index 0000000..90e13f2 --- /dev/null +++ b/src/decoding/interpret_as_ibm_00858.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include +#include + +class Interpret_As_IBM_00858 { +public: + static Interpret_As_IBM_00858& instance(); + void execute(QPlainTextEdit* editor); + +private: + Interpret_As_IBM_00858(); + ~Interpret_As_IBM_00858() = default; + + Interpret_As_IBM_00858(const Interpret_As_IBM_00858&) = delete; + Interpret_As_IBM_00858& operator=(const Interpret_As_IBM_00858&) = delete; + + QString decodeIBM00858(const QByteArray& rawData); + static const std::unordered_map codePageTable; +}; diff --git a/src/encoding/interpret_as_ibm_01140.cpp b/src/decoding/interpret_as_ibm_01140.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01140.cpp rename to src/decoding/interpret_as_ibm_01140.cpp diff --git a/src/encoding/interpret_as_ibm_01140.h b/src/decoding/interpret_as_ibm_01140.h similarity index 100% rename from src/encoding/interpret_as_ibm_01140.h rename to src/decoding/interpret_as_ibm_01140.h diff --git a/src/encoding/interpret_as_ibm_01141.cpp b/src/decoding/interpret_as_ibm_01141.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01141.cpp rename to src/decoding/interpret_as_ibm_01141.cpp diff --git a/src/encoding/interpret_as_ibm_01141.h b/src/decoding/interpret_as_ibm_01141.h similarity index 100% rename from src/encoding/interpret_as_ibm_01141.h rename to src/decoding/interpret_as_ibm_01141.h diff --git a/src/encoding/interpret_as_ibm_01142.cpp b/src/decoding/interpret_as_ibm_01142.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01142.cpp rename to src/decoding/interpret_as_ibm_01142.cpp diff --git a/src/encoding/interpret_as_ibm_01142.h b/src/decoding/interpret_as_ibm_01142.h similarity index 100% rename from src/encoding/interpret_as_ibm_01142.h rename to src/decoding/interpret_as_ibm_01142.h diff --git a/src/encoding/interpret_as_ibm_01143.cpp b/src/decoding/interpret_as_ibm_01143.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01143.cpp rename to src/decoding/interpret_as_ibm_01143.cpp diff --git a/src/encoding/interpret_as_ibm_01143.h b/src/decoding/interpret_as_ibm_01143.h similarity index 100% rename from src/encoding/interpret_as_ibm_01143.h rename to src/decoding/interpret_as_ibm_01143.h diff --git a/src/encoding/interpret_as_ibm_01144.cpp b/src/decoding/interpret_as_ibm_01144.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01144.cpp rename to src/decoding/interpret_as_ibm_01144.cpp diff --git a/src/encoding/interpret_as_ibm_01144.h b/src/decoding/interpret_as_ibm_01144.h similarity index 100% rename from src/encoding/interpret_as_ibm_01144.h rename to src/decoding/interpret_as_ibm_01144.h diff --git a/src/encoding/interpret_as_ibm_01145.cpp b/src/decoding/interpret_as_ibm_01145.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01145.cpp rename to src/decoding/interpret_as_ibm_01145.cpp diff --git a/src/encoding/interpret_as_ibm_01145.h b/src/decoding/interpret_as_ibm_01145.h similarity index 100% rename from src/encoding/interpret_as_ibm_01145.h rename to src/decoding/interpret_as_ibm_01145.h diff --git a/src/encoding/interpret_as_ibm_01146.cpp b/src/decoding/interpret_as_ibm_01146.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01146.cpp rename to src/decoding/interpret_as_ibm_01146.cpp diff --git a/src/encoding/interpret_as_ibm_01146.h b/src/decoding/interpret_as_ibm_01146.h similarity index 100% rename from src/encoding/interpret_as_ibm_01146.h rename to src/decoding/interpret_as_ibm_01146.h diff --git a/src/encoding/interpret_as_ibm_01147.cpp b/src/decoding/interpret_as_ibm_01147.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01147.cpp rename to src/decoding/interpret_as_ibm_01147.cpp diff --git a/src/encoding/interpret_as_ibm_01147.h b/src/decoding/interpret_as_ibm_01147.h similarity index 100% rename from src/encoding/interpret_as_ibm_01147.h rename to src/decoding/interpret_as_ibm_01147.h diff --git a/src/encoding/interpret_as_ibm_01148.cpp b/src/decoding/interpret_as_ibm_01148.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01148.cpp rename to src/decoding/interpret_as_ibm_01148.cpp diff --git a/src/encoding/interpret_as_ibm_01148.h b/src/decoding/interpret_as_ibm_01148.h similarity index 100% rename from src/encoding/interpret_as_ibm_01148.h rename to src/decoding/interpret_as_ibm_01148.h diff --git a/src/encoding/interpret_as_ibm_01149.cpp b/src/decoding/interpret_as_ibm_01149.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_01149.cpp rename to src/decoding/interpret_as_ibm_01149.cpp diff --git a/src/encoding/interpret_as_ibm_01149.h b/src/decoding/interpret_as_ibm_01149.h similarity index 100% rename from src/encoding/interpret_as_ibm_01149.h rename to src/decoding/interpret_as_ibm_01149.h diff --git a/src/encoding/interpret_as_ibm_037.cpp b/src/decoding/interpret_as_ibm_037.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_037.cpp rename to src/decoding/interpret_as_ibm_037.cpp diff --git a/src/encoding/interpret_as_ibm_037.h b/src/decoding/interpret_as_ibm_037.h similarity index 100% rename from src/encoding/interpret_as_ibm_037.h rename to src/decoding/interpret_as_ibm_037.h diff --git a/src/encoding/interpret_as_ibm_1026.cpp b/src/decoding/interpret_as_ibm_1026.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_1026.cpp rename to src/decoding/interpret_as_ibm_1026.cpp diff --git a/src/encoding/interpret_as_ibm_1026.h b/src/decoding/interpret_as_ibm_1026.h similarity index 100% rename from src/encoding/interpret_as_ibm_1026.h rename to src/decoding/interpret_as_ibm_1026.h diff --git a/src/encoding/interpret_as_ibm_1047.cpp b/src/decoding/interpret_as_ibm_1047.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_1047.cpp rename to src/decoding/interpret_as_ibm_1047.cpp diff --git a/src/encoding/interpret_as_ibm_1047.h b/src/decoding/interpret_as_ibm_1047.h similarity index 100% rename from src/encoding/interpret_as_ibm_1047.h rename to src/decoding/interpret_as_ibm_1047.h diff --git a/src/encoding/interpret_as_ibm_273.cpp b/src/decoding/interpret_as_ibm_273.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_273.cpp rename to src/decoding/interpret_as_ibm_273.cpp diff --git a/src/encoding/interpret_as_ibm_273.h b/src/decoding/interpret_as_ibm_273.h similarity index 100% rename from src/encoding/interpret_as_ibm_273.h rename to src/decoding/interpret_as_ibm_273.h diff --git a/src/encoding/interpret_as_ibm_277.cpp b/src/decoding/interpret_as_ibm_277.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_277.cpp rename to src/decoding/interpret_as_ibm_277.cpp diff --git a/src/encoding/interpret_as_ibm_277.h b/src/decoding/interpret_as_ibm_277.h similarity index 100% rename from src/encoding/interpret_as_ibm_277.h rename to src/decoding/interpret_as_ibm_277.h diff --git a/src/encoding/interpret_as_ibm_278.cpp b/src/decoding/interpret_as_ibm_278.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_278.cpp rename to src/decoding/interpret_as_ibm_278.cpp diff --git a/src/encoding/interpret_as_ibm_278.h b/src/decoding/interpret_as_ibm_278.h similarity index 100% rename from src/encoding/interpret_as_ibm_278.h rename to src/decoding/interpret_as_ibm_278.h diff --git a/src/encoding/interpret_as_ibm_280.cpp b/src/decoding/interpret_as_ibm_280.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_280.cpp rename to src/decoding/interpret_as_ibm_280.cpp diff --git a/src/encoding/interpret_as_ibm_280.h b/src/decoding/interpret_as_ibm_280.h similarity index 100% rename from src/encoding/interpret_as_ibm_280.h rename to src/decoding/interpret_as_ibm_280.h diff --git a/src/encoding/interpret_as_ibm_284.cpp b/src/decoding/interpret_as_ibm_284.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_284.cpp rename to src/decoding/interpret_as_ibm_284.cpp diff --git a/src/encoding/interpret_as_ibm_284.h b/src/decoding/interpret_as_ibm_284.h similarity index 100% rename from src/encoding/interpret_as_ibm_284.h rename to src/decoding/interpret_as_ibm_284.h diff --git a/src/encoding/interpret_as_ibm_285.cpp b/src/decoding/interpret_as_ibm_285.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_285.cpp rename to src/decoding/interpret_as_ibm_285.cpp diff --git a/src/encoding/interpret_as_ibm_285.h b/src/decoding/interpret_as_ibm_285.h similarity index 100% rename from src/encoding/interpret_as_ibm_285.h rename to src/decoding/interpret_as_ibm_285.h diff --git a/src/encoding/interpret_as_ibm_290.cpp b/src/decoding/interpret_as_ibm_290.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_290.cpp rename to src/decoding/interpret_as_ibm_290.cpp diff --git a/src/encoding/interpret_as_ibm_290.h b/src/decoding/interpret_as_ibm_290.h similarity index 100% rename from src/encoding/interpret_as_ibm_290.h rename to src/decoding/interpret_as_ibm_290.h diff --git a/src/encoding/interpret_as_ibm_297.cpp b/src/decoding/interpret_as_ibm_297.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_297.cpp rename to src/decoding/interpret_as_ibm_297.cpp diff --git a/src/encoding/interpret_as_ibm_297.h b/src/decoding/interpret_as_ibm_297.h similarity index 100% rename from src/encoding/interpret_as_ibm_297.h rename to src/decoding/interpret_as_ibm_297.h diff --git a/src/encoding/interpret_as_ibm_420.cpp b/src/decoding/interpret_as_ibm_420.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_420.cpp rename to src/decoding/interpret_as_ibm_420.cpp diff --git a/src/encoding/interpret_as_ibm_420.h b/src/decoding/interpret_as_ibm_420.h similarity index 100% rename from src/encoding/interpret_as_ibm_420.h rename to src/decoding/interpret_as_ibm_420.h diff --git a/src/encoding/interpret_as_ibm_424.cpp b/src/decoding/interpret_as_ibm_424.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_424.cpp rename to src/decoding/interpret_as_ibm_424.cpp diff --git a/src/encoding/interpret_as_ibm_424.h b/src/decoding/interpret_as_ibm_424.h similarity index 100% rename from src/encoding/interpret_as_ibm_424.h rename to src/decoding/interpret_as_ibm_424.h diff --git a/src/encoding/interpret_as_ibm_437.cpp b/src/decoding/interpret_as_ibm_437.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_437.cpp rename to src/decoding/interpret_as_ibm_437.cpp diff --git a/src/encoding/interpret_as_ibm_437.h b/src/decoding/interpret_as_ibm_437.h similarity index 100% rename from src/encoding/interpret_as_ibm_437.h rename to src/decoding/interpret_as_ibm_437.h diff --git a/src/encoding/interpret_as_ibm_500.cpp b/src/decoding/interpret_as_ibm_500.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_500.cpp rename to src/decoding/interpret_as_ibm_500.cpp diff --git a/src/encoding/interpret_as_ibm_500.h b/src/decoding/interpret_as_ibm_500.h similarity index 100% rename from src/encoding/interpret_as_ibm_500.h rename to src/decoding/interpret_as_ibm_500.h diff --git a/src/encoding/interpret_as_ibm_775.cpp b/src/decoding/interpret_as_ibm_775.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_775.cpp rename to src/decoding/interpret_as_ibm_775.cpp diff --git a/src/encoding/interpret_as_ibm_775.h b/src/decoding/interpret_as_ibm_775.h similarity index 100% rename from src/encoding/interpret_as_ibm_775.h rename to src/decoding/interpret_as_ibm_775.h diff --git a/src/encoding/interpret_as_ibm_850.cpp b/src/decoding/interpret_as_ibm_850.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_850.cpp rename to src/decoding/interpret_as_ibm_850.cpp diff --git a/src/encoding/interpret_as_ibm_850.h b/src/decoding/interpret_as_ibm_850.h similarity index 100% rename from src/encoding/interpret_as_ibm_850.h rename to src/decoding/interpret_as_ibm_850.h diff --git a/src/encoding/interpret_as_ibm_852.cpp b/src/decoding/interpret_as_ibm_852.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_852.cpp rename to src/decoding/interpret_as_ibm_852.cpp diff --git a/src/encoding/interpret_as_ibm_852.h b/src/decoding/interpret_as_ibm_852.h similarity index 100% rename from src/encoding/interpret_as_ibm_852.h rename to src/decoding/interpret_as_ibm_852.h diff --git a/src/encoding/interpret_as_ibm_855.cpp b/src/decoding/interpret_as_ibm_855.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_855.cpp rename to src/decoding/interpret_as_ibm_855.cpp diff --git a/src/encoding/interpret_as_ibm_855.h b/src/decoding/interpret_as_ibm_855.h similarity index 100% rename from src/encoding/interpret_as_ibm_855.h rename to src/decoding/interpret_as_ibm_855.h diff --git a/src/encoding/interpret_as_ibm_857.cpp b/src/decoding/interpret_as_ibm_857.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_857.cpp rename to src/decoding/interpret_as_ibm_857.cpp diff --git a/src/encoding/interpret_as_ibm_857.h b/src/decoding/interpret_as_ibm_857.h similarity index 100% rename from src/encoding/interpret_as_ibm_857.h rename to src/decoding/interpret_as_ibm_857.h diff --git a/src/encoding/interpret_as_ibm_860.cpp b/src/decoding/interpret_as_ibm_860.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_860.cpp rename to src/decoding/interpret_as_ibm_860.cpp diff --git a/src/encoding/interpret_as_ibm_860.h b/src/decoding/interpret_as_ibm_860.h similarity index 100% rename from src/encoding/interpret_as_ibm_860.h rename to src/decoding/interpret_as_ibm_860.h diff --git a/src/encoding/interpret_as_ibm_861.cpp b/src/decoding/interpret_as_ibm_861.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_861.cpp rename to src/decoding/interpret_as_ibm_861.cpp diff --git a/src/encoding/interpret_as_ibm_861.h b/src/decoding/interpret_as_ibm_861.h similarity index 100% rename from src/encoding/interpret_as_ibm_861.h rename to src/decoding/interpret_as_ibm_861.h diff --git a/src/encoding/interpret_as_ibm_862.cpp b/src/decoding/interpret_as_ibm_862.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_862.cpp rename to src/decoding/interpret_as_ibm_862.cpp diff --git a/src/encoding/interpret_as_ibm_862.h b/src/decoding/interpret_as_ibm_862.h similarity index 100% rename from src/encoding/interpret_as_ibm_862.h rename to src/decoding/interpret_as_ibm_862.h diff --git a/src/encoding/interpret_as_ibm_863.cpp b/src/decoding/interpret_as_ibm_863.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_863.cpp rename to src/decoding/interpret_as_ibm_863.cpp diff --git a/src/encoding/interpret_as_ibm_863.h b/src/decoding/interpret_as_ibm_863.h similarity index 100% rename from src/encoding/interpret_as_ibm_863.h rename to src/decoding/interpret_as_ibm_863.h diff --git a/src/encoding/interpret_as_ibm_864.cpp b/src/decoding/interpret_as_ibm_864.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_864.cpp rename to src/decoding/interpret_as_ibm_864.cpp diff --git a/src/encoding/interpret_as_ibm_864.h b/src/decoding/interpret_as_ibm_864.h similarity index 100% rename from src/encoding/interpret_as_ibm_864.h rename to src/decoding/interpret_as_ibm_864.h diff --git a/src/encoding/interpret_as_ibm_865.cpp b/src/decoding/interpret_as_ibm_865.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_865.cpp rename to src/decoding/interpret_as_ibm_865.cpp diff --git a/src/encoding/interpret_as_ibm_865.h b/src/decoding/interpret_as_ibm_865.h similarity index 100% rename from src/encoding/interpret_as_ibm_865.h rename to src/decoding/interpret_as_ibm_865.h diff --git a/src/encoding/interpret_as_ibm_866.cpp b/src/decoding/interpret_as_ibm_866.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_866.cpp rename to src/decoding/interpret_as_ibm_866.cpp diff --git a/src/encoding/interpret_as_ibm_866.h b/src/decoding/interpret_as_ibm_866.h similarity index 100% rename from src/encoding/interpret_as_ibm_866.h rename to src/decoding/interpret_as_ibm_866.h diff --git a/src/encoding/interpret_as_ibm_868.cpp b/src/decoding/interpret_as_ibm_868.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_868.cpp rename to src/decoding/interpret_as_ibm_868.cpp diff --git a/src/encoding/interpret_as_ibm_868.h b/src/decoding/interpret_as_ibm_868.h similarity index 100% rename from src/encoding/interpret_as_ibm_868.h rename to src/decoding/interpret_as_ibm_868.h diff --git a/src/encoding/interpret_as_ibm_869.cpp b/src/decoding/interpret_as_ibm_869.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_869.cpp rename to src/decoding/interpret_as_ibm_869.cpp diff --git a/src/encoding/interpret_as_ibm_869.h b/src/decoding/interpret_as_ibm_869.h similarity index 100% rename from src/encoding/interpret_as_ibm_869.h rename to src/decoding/interpret_as_ibm_869.h diff --git a/src/encoding/interpret_as_ibm_870.cpp b/src/decoding/interpret_as_ibm_870.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_870.cpp rename to src/decoding/interpret_as_ibm_870.cpp diff --git a/src/encoding/interpret_as_ibm_870.h b/src/decoding/interpret_as_ibm_870.h similarity index 100% rename from src/encoding/interpret_as_ibm_870.h rename to src/decoding/interpret_as_ibm_870.h diff --git a/src/encoding/interpret_as_ibm_871.cpp b/src/decoding/interpret_as_ibm_871.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_871.cpp rename to src/decoding/interpret_as_ibm_871.cpp diff --git a/src/encoding/interpret_as_ibm_871.h b/src/decoding/interpret_as_ibm_871.h similarity index 100% rename from src/encoding/interpret_as_ibm_871.h rename to src/decoding/interpret_as_ibm_871.h diff --git a/src/encoding/interpret_as_ibm_918.cpp b/src/decoding/interpret_as_ibm_918.cpp similarity index 100% rename from src/encoding/interpret_as_ibm_918.cpp rename to src/decoding/interpret_as_ibm_918.cpp diff --git a/src/encoding/interpret_as_ibm_918.h b/src/decoding/interpret_as_ibm_918.h similarity index 100% rename from src/encoding/interpret_as_ibm_918.h rename to src/decoding/interpret_as_ibm_918.h diff --git a/src/decoding/interpret_as_ibm_thai.cpp b/src/decoding/interpret_as_ibm_thai.cpp new file mode 100644 index 0000000..722897b --- /dev/null +++ b/src/decoding/interpret_as_ibm_thai.cpp @@ -0,0 +1,137 @@ +#include "../codeeditor.h" +#include "interpret_as_ibm_thai.h" +#include +#include + +// Singleton instance +Interpret_As_IBM_Thai& Interpret_As_IBM_Thai::instance() { + static Interpret_As_IBM_Thai instance; + return instance; +} + +// IBM Thai Code Page mapping +const std::unordered_map Interpret_As_IBM_Thai::codePageTable = { + {0x41, QChar(0x0041)}, // A + {0x42, QChar(0x0042)}, // B + {0x43, QChar(0x0043)}, // C + {0x44, QChar(0x0044)}, // D + {0x45, QChar(0x0045)}, // E + {0x46, QChar(0x0046)}, // F + {0x47, QChar(0x0047)}, // G + {0x48, QChar(0x0048)}, // H + {0x49, QChar(0x0049)}, // I + {0x4A, QChar(0x004A)}, // J + {0x4B, QChar(0x004B)}, // K + {0x4C, QChar(0x004C)}, // L + {0x4D, QChar(0x004D)}, // M + {0x4E, QChar(0x004E)}, // N + {0x4F, QChar(0x004F)}, // O + {0x50, QChar(0x0050)}, // P + {0x51, QChar(0x0051)}, // Q + {0x52, QChar(0x0052)}, // R + {0x53, QChar(0x0053)}, // S + {0x54, QChar(0x0054)}, // T + {0x55, QChar(0x0055)}, // U + {0x56, QChar(0x0056)}, // V + {0x57, QChar(0x0057)}, // W + {0x58, QChar(0x0058)}, // X + {0x59, QChar(0x0059)}, // Y + {0x5A, QChar(0x005A)}, // Z + {0xA1, QChar(0x0E01)}, // ก + {0xA2, QChar(0x0E02)}, // ข + {0xA3, QChar(0x0E03)}, // ฃ + {0xA4, QChar(0x0E04)}, // ค + {0xA5, QChar(0x0E05)}, // ฅ + {0xA6, QChar(0x0E06)}, // ฆ + {0xA7, QChar(0x0E07)}, // ง + {0xA8, QChar(0x0E08)}, // จ + {0xA9, QChar(0x0E09)}, // ฉ + {0xAA, QChar(0x0E0A)}, // ช + {0xAB, QChar(0x0E0B)}, // ซ + {0xAC, QChar(0x0E0C)}, // ฌ + {0xAD, QChar(0x0E0D)}, // ญ + {0xAE, QChar(0x0E0E)}, // ฎ + {0xAF, QChar(0x0E0F)}, // ฏ + {0xB0, QChar(0x0E10)}, // ฐ + {0xB1, QChar(0x0E11)}, // ฑ + {0xB2, QChar(0x0E12)}, // ฒ + {0xB3, QChar(0x0E13)}, // ณ + {0xB4, QChar(0x0E14)}, // ด + {0xB5, QChar(0x0E15)}, // ต + {0xB6, QChar(0x0E16)}, // ถ + {0xB7, QChar(0x0E17)}, // ท + {0xB8, QChar(0x0E18)}, // ธ + {0xB9, QChar(0x0E19)}, // น + {0xBA, QChar(0x0E1A)}, // บ + {0xBB, QChar(0x0E1B)}, // ป + {0xBC, QChar(0x0E1C)}, // ผ + {0xBD, QChar(0x0E1D)}, // ฝ + {0xBE, QChar(0x0E1E)}, // พ + {0xBF, QChar(0x0E1F)}, // ฟ + {0xC0, QChar(0x0E20)}, // ภ + {0xC1, QChar(0x0E21)}, // ม + {0xC2, QChar(0x0E22)}, // ย + {0xC3, QChar(0x0E23)}, // ร + {0xC4, QChar(0x0E24)}, // ฤ + {0xC5, QChar(0x0E25)}, // ล + {0xC6, QChar(0x0E26)}, // ฦ + {0xC7, QChar(0x0E27)}, // ว + {0xC8, QChar(0x0E28)}, // ศ + {0xC9, QChar(0x0E29)}, // ษ + {0xCA, QChar(0x0E2A)}, // ส + {0xCB, QChar(0x0E2B)}, // ห + {0xCC, QChar(0x0E2C)}, // ฬ + {0xCD, QChar(0x0E2D)}, // อ + {0xCE, QChar(0x0E2E)}, // ฮ + {0xCF, QChar(0x0E2F)}, // ฯ +}; + +// Constructor +Interpret_As_IBM_Thai::Interpret_As_IBM_Thai() {} + +// Main execution function +void Interpret_As_IBM_Thai::execute(QPlainTextEdit* editor) { + if (!editor) { + qWarning() << "[ERROR] No editor instance provided."; + return; + } + + CodeEditor* codeEditor = qobject_cast(editor); + if (!codeEditor) { + qWarning() << "[ERROR] Invalid CodeEditor instance."; + return; + } + + QString filePath = codeEditor->filePath(); + if (filePath.isEmpty()) { + qWarning() << "[ERROR] No file path associated with the editor."; + return; + } + + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "[ERROR] Cannot open file:" << filePath; + return; + } + + QByteArray rawData = file.readAll(); + file.close(); + + QString decodedText = decodeIBMThai(rawData); + editor->setPlainText(decodedText); + qDebug() << "[DEBUG] IBM-Thai Decoding applied for file:" << filePath; +} + +// Decode raw data from IBM-Thai encoding +QString Interpret_As_IBM_Thai::decodeIBMThai(const QByteArray& rawData) { + QString result; + + for (unsigned char byte : rawData) { + if (codePageTable.contains(byte)) { + result.append(codePageTable.at(byte)); + } else { + result.append(QChar(0xFFFD)); // Fallback for unmapped characters + } + } + return result; +} diff --git a/src/decoding/interpret_as_ibm_thai.h b/src/decoding/interpret_as_ibm_thai.h new file mode 100644 index 0000000..3e8201e --- /dev/null +++ b/src/decoding/interpret_as_ibm_thai.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include +#include + +class Interpret_As_IBM_Thai { +public: + static Interpret_As_IBM_Thai& instance(); + void execute(QPlainTextEdit* editor); + +private: + Interpret_As_IBM_Thai(); + ~Interpret_As_IBM_Thai() = default; + + Interpret_As_IBM_Thai(const Interpret_As_IBM_Thai&) = delete; + Interpret_As_IBM_Thai& operator=(const Interpret_As_IBM_Thai&) = delete; + + QString decodeIBMThai(const QByteArray& rawData); + static const std::unordered_map codePageTable; +}; diff --git a/src/encoding/interpret_as_iso_2022_cn.cpp b/src/decoding/interpret_as_iso_2022_cn.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_cn.cpp rename to src/decoding/interpret_as_iso_2022_cn.cpp diff --git a/src/encoding/interpret_as_iso_2022_cn.h b/src/decoding/interpret_as_iso_2022_cn.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_cn.h rename to src/decoding/interpret_as_iso_2022_cn.h diff --git a/src/encoding/interpret_as_iso_2022_cn_ext.cpp b/src/decoding/interpret_as_iso_2022_cn_ext.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_cn_ext.cpp rename to src/decoding/interpret_as_iso_2022_cn_ext.cpp diff --git a/src/encoding/interpret_as_iso_2022_cn_ext.h b/src/decoding/interpret_as_iso_2022_cn_ext.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_cn_ext.h rename to src/decoding/interpret_as_iso_2022_cn_ext.h diff --git a/src/encoding/interpret_as_iso_2022_jp.cpp b/src/decoding/interpret_as_iso_2022_jp.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp.cpp rename to src/decoding/interpret_as_iso_2022_jp.cpp diff --git a/src/encoding/interpret_as_iso_2022_jp.h b/src/decoding/interpret_as_iso_2022_jp.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp.h rename to src/decoding/interpret_as_iso_2022_jp.h diff --git a/src/encoding/interpret_as_iso_2022_jp_1.cpp b/src/decoding/interpret_as_iso_2022_jp_1.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp_1.cpp rename to src/decoding/interpret_as_iso_2022_jp_1.cpp diff --git a/src/encoding/interpret_as_iso_2022_jp_1.h b/src/decoding/interpret_as_iso_2022_jp_1.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp_1.h rename to src/decoding/interpret_as_iso_2022_jp_1.h diff --git a/src/encoding/interpret_as_iso_2022_jp_2.cpp b/src/decoding/interpret_as_iso_2022_jp_2.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp_2.cpp rename to src/decoding/interpret_as_iso_2022_jp_2.cpp diff --git a/src/encoding/interpret_as_iso_2022_jp_2.h b/src/decoding/interpret_as_iso_2022_jp_2.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_jp_2.h rename to src/decoding/interpret_as_iso_2022_jp_2.h diff --git a/src/encoding/interpret_as_iso_2022_kr.cpp b/src/decoding/interpret_as_iso_2022_kr.cpp similarity index 100% rename from src/encoding/interpret_as_iso_2022_kr.cpp rename to src/decoding/interpret_as_iso_2022_kr.cpp diff --git a/src/encoding/interpret_as_iso_2022_kr.h b/src/decoding/interpret_as_iso_2022_kr.h similarity index 100% rename from src/encoding/interpret_as_iso_2022_kr.h rename to src/decoding/interpret_as_iso_2022_kr.h diff --git a/src/encoding/interpret_as_iso_8859_1.cpp b/src/decoding/interpret_as_iso_8859_1.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_1.cpp rename to src/decoding/interpret_as_iso_8859_1.cpp diff --git a/src/encoding/interpret_as_iso_8859_1.h b/src/decoding/interpret_as_iso_8859_1.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_1.h rename to src/decoding/interpret_as_iso_8859_1.h diff --git a/src/encoding/interpret_as_iso_8859_10.cpp b/src/decoding/interpret_as_iso_8859_10.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_10.cpp rename to src/decoding/interpret_as_iso_8859_10.cpp diff --git a/src/encoding/interpret_as_iso_8859_10.h b/src/decoding/interpret_as_iso_8859_10.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_10.h rename to src/decoding/interpret_as_iso_8859_10.h diff --git a/src/encoding/interpret_as_iso_8859_13.cpp b/src/decoding/interpret_as_iso_8859_13.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_13.cpp rename to src/decoding/interpret_as_iso_8859_13.cpp diff --git a/src/encoding/interpret_as_iso_8859_13.h b/src/decoding/interpret_as_iso_8859_13.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_13.h rename to src/decoding/interpret_as_iso_8859_13.h diff --git a/src/encoding/interpret_as_iso_8859_14.cpp b/src/decoding/interpret_as_iso_8859_14.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_14.cpp rename to src/decoding/interpret_as_iso_8859_14.cpp diff --git a/src/encoding/interpret_as_iso_8859_14.h b/src/decoding/interpret_as_iso_8859_14.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_14.h rename to src/decoding/interpret_as_iso_8859_14.h diff --git a/src/encoding/interpret_as_iso_8859_15.cpp b/src/decoding/interpret_as_iso_8859_15.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_15.cpp rename to src/decoding/interpret_as_iso_8859_15.cpp diff --git a/src/encoding/interpret_as_iso_8859_15.h b/src/decoding/interpret_as_iso_8859_15.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_15.h rename to src/decoding/interpret_as_iso_8859_15.h diff --git a/src/encoding/interpret_as_iso_8859_2.cpp b/src/decoding/interpret_as_iso_8859_2.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_2.cpp rename to src/decoding/interpret_as_iso_8859_2.cpp diff --git a/src/encoding/interpret_as_iso_8859_2.h b/src/decoding/interpret_as_iso_8859_2.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_2.h rename to src/decoding/interpret_as_iso_8859_2.h diff --git a/src/encoding/interpret_as_iso_8859_3.cpp b/src/decoding/interpret_as_iso_8859_3.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_3.cpp rename to src/decoding/interpret_as_iso_8859_3.cpp diff --git a/src/encoding/interpret_as_iso_8859_3.h b/src/decoding/interpret_as_iso_8859_3.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_3.h rename to src/decoding/interpret_as_iso_8859_3.h diff --git a/src/encoding/interpret_as_iso_8859_4.cpp b/src/decoding/interpret_as_iso_8859_4.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_4.cpp rename to src/decoding/interpret_as_iso_8859_4.cpp diff --git a/src/encoding/interpret_as_iso_8859_4.h b/src/decoding/interpret_as_iso_8859_4.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_4.h rename to src/decoding/interpret_as_iso_8859_4.h diff --git a/src/encoding/interpret_as_iso_8859_5.cpp b/src/decoding/interpret_as_iso_8859_5.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_5.cpp rename to src/decoding/interpret_as_iso_8859_5.cpp diff --git a/src/encoding/interpret_as_iso_8859_5.h b/src/decoding/interpret_as_iso_8859_5.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_5.h rename to src/decoding/interpret_as_iso_8859_5.h diff --git a/src/encoding/interpret_as_iso_8859_6.cpp b/src/decoding/interpret_as_iso_8859_6.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_6.cpp rename to src/decoding/interpret_as_iso_8859_6.cpp diff --git a/src/encoding/interpret_as_iso_8859_6.h b/src/decoding/interpret_as_iso_8859_6.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_6.h rename to src/decoding/interpret_as_iso_8859_6.h diff --git a/src/encoding/interpret_as_iso_8859_7.cpp b/src/decoding/interpret_as_iso_8859_7.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_7.cpp rename to src/decoding/interpret_as_iso_8859_7.cpp diff --git a/src/encoding/interpret_as_iso_8859_7.h b/src/decoding/interpret_as_iso_8859_7.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_7.h rename to src/decoding/interpret_as_iso_8859_7.h diff --git a/src/encoding/interpret_as_iso_8859_8.cpp b/src/decoding/interpret_as_iso_8859_8.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_8.cpp rename to src/decoding/interpret_as_iso_8859_8.cpp diff --git a/src/encoding/interpret_as_iso_8859_8.h b/src/decoding/interpret_as_iso_8859_8.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_8.h rename to src/decoding/interpret_as_iso_8859_8.h diff --git a/src/encoding/interpret_as_iso_8859_9.cpp b/src/decoding/interpret_as_iso_8859_9.cpp similarity index 100% rename from src/encoding/interpret_as_iso_8859_9.cpp rename to src/decoding/interpret_as_iso_8859_9.cpp diff --git a/src/encoding/interpret_as_iso_8859_9.h b/src/decoding/interpret_as_iso_8859_9.h similarity index 100% rename from src/encoding/interpret_as_iso_8859_9.h rename to src/decoding/interpret_as_iso_8859_9.h diff --git a/src/encoding/interpret_as_koi8_r.cpp b/src/decoding/interpret_as_koi8_r.cpp similarity index 100% rename from src/encoding/interpret_as_koi8_r.cpp rename to src/decoding/interpret_as_koi8_r.cpp diff --git a/src/encoding/interpret_as_koi8_r.h b/src/decoding/interpret_as_koi8_r.h similarity index 100% rename from src/encoding/interpret_as_koi8_r.h rename to src/decoding/interpret_as_koi8_r.h diff --git a/src/encoding/interpret_as_koi8_u.cpp b/src/decoding/interpret_as_koi8_u.cpp similarity index 100% rename from src/encoding/interpret_as_koi8_u.cpp rename to src/decoding/interpret_as_koi8_u.cpp diff --git a/src/encoding/interpret_as_koi8_u.h b/src/decoding/interpret_as_koi8_u.h similarity index 100% rename from src/encoding/interpret_as_koi8_u.h rename to src/decoding/interpret_as_koi8_u.h diff --git a/src/encoding/interpret_as_scsu.cpp b/src/decoding/interpret_as_scsu.cpp similarity index 100% rename from src/encoding/interpret_as_scsu.cpp rename to src/decoding/interpret_as_scsu.cpp diff --git a/src/encoding/interpret_as_scsu.h b/src/decoding/interpret_as_scsu.h similarity index 100% rename from src/encoding/interpret_as_scsu.h rename to src/decoding/interpret_as_scsu.h diff --git a/src/encoding/interpret_as_shift_jts.cpp b/src/decoding/interpret_as_shift_jts.cpp similarity index 100% rename from src/encoding/interpret_as_shift_jts.cpp rename to src/decoding/interpret_as_shift_jts.cpp diff --git a/src/encoding/interpret_as_shift_jts.h b/src/decoding/interpret_as_shift_jts.h similarity index 100% rename from src/encoding/interpret_as_shift_jts.h rename to src/decoding/interpret_as_shift_jts.h diff --git a/src/encoding/interpret_as_tis_620.cpp b/src/decoding/interpret_as_tis_620.cpp similarity index 100% rename from src/encoding/interpret_as_tis_620.cpp rename to src/decoding/interpret_as_tis_620.cpp diff --git a/src/encoding/interpret_as_tis_620.h b/src/decoding/interpret_as_tis_620.h similarity index 100% rename from src/encoding/interpret_as_tis_620.h rename to src/decoding/interpret_as_tis_620.h diff --git a/src/encoding/interpret_as_tscii.cpp b/src/decoding/interpret_as_tscii.cpp similarity index 100% rename from src/encoding/interpret_as_tscii.cpp rename to src/decoding/interpret_as_tscii.cpp diff --git a/src/encoding/interpret_as_tscii.h b/src/decoding/interpret_as_tscii.h similarity index 100% rename from src/encoding/interpret_as_tscii.h rename to src/decoding/interpret_as_tscii.h diff --git a/src/encoding/interpret_as_us_ascii.cpp b/src/decoding/interpret_as_us_ascii.cpp similarity index 100% rename from src/encoding/interpret_as_us_ascii.cpp rename to src/decoding/interpret_as_us_ascii.cpp diff --git a/src/encoding/interpret_as_us_ascii.h b/src/decoding/interpret_as_us_ascii.h similarity index 100% rename from src/encoding/interpret_as_us_ascii.h rename to src/decoding/interpret_as_us_ascii.h diff --git a/src/encoding/interpret_as_utf_16.cpp b/src/decoding/interpret_as_utf_16.cpp similarity index 100% rename from src/encoding/interpret_as_utf_16.cpp rename to src/decoding/interpret_as_utf_16.cpp diff --git a/src/encoding/interpret_as_utf_16.h b/src/decoding/interpret_as_utf_16.h similarity index 100% rename from src/encoding/interpret_as_utf_16.h rename to src/decoding/interpret_as_utf_16.h diff --git a/src/encoding/interpret_as_utf_16_be.cpp b/src/decoding/interpret_as_utf_16_be.cpp similarity index 100% rename from src/encoding/interpret_as_utf_16_be.cpp rename to src/decoding/interpret_as_utf_16_be.cpp diff --git a/src/encoding/interpret_as_utf_16_be.h b/src/decoding/interpret_as_utf_16_be.h similarity index 100% rename from src/encoding/interpret_as_utf_16_be.h rename to src/decoding/interpret_as_utf_16_be.h diff --git a/src/encoding/interpret_as_utf_16_le.cpp b/src/decoding/interpret_as_utf_16_le.cpp similarity index 100% rename from src/encoding/interpret_as_utf_16_le.cpp rename to src/decoding/interpret_as_utf_16_le.cpp diff --git a/src/encoding/interpret_as_utf_16_le.h b/src/decoding/interpret_as_utf_16_le.h similarity index 100% rename from src/encoding/interpret_as_utf_16_le.h rename to src/decoding/interpret_as_utf_16_le.h diff --git a/src/encoding/interpret_as_utf_32.cpp b/src/decoding/interpret_as_utf_32.cpp similarity index 100% rename from src/encoding/interpret_as_utf_32.cpp rename to src/decoding/interpret_as_utf_32.cpp diff --git a/src/encoding/interpret_as_utf_32.h b/src/decoding/interpret_as_utf_32.h similarity index 100% rename from src/encoding/interpret_as_utf_32.h rename to src/decoding/interpret_as_utf_32.h diff --git a/src/encoding/interpret_as_utf_32_be.cpp b/src/decoding/interpret_as_utf_32_be.cpp similarity index 100% rename from src/encoding/interpret_as_utf_32_be.cpp rename to src/decoding/interpret_as_utf_32_be.cpp diff --git a/src/encoding/interpret_as_utf_32_be.h b/src/decoding/interpret_as_utf_32_be.h similarity index 100% rename from src/encoding/interpret_as_utf_32_be.h rename to src/decoding/interpret_as_utf_32_be.h diff --git a/src/encoding/interpret_as_utf_32_le.cpp b/src/decoding/interpret_as_utf_32_le.cpp similarity index 100% rename from src/encoding/interpret_as_utf_32_le.cpp rename to src/decoding/interpret_as_utf_32_le.cpp diff --git a/src/encoding/interpret_as_utf_32_le.h b/src/decoding/interpret_as_utf_32_le.h similarity index 100% rename from src/encoding/interpret_as_utf_32_le.h rename to src/decoding/interpret_as_utf_32_le.h diff --git a/src/encoding/interpret_as_utf_7.cpp b/src/decoding/interpret_as_utf_7.cpp similarity index 100% rename from src/encoding/interpret_as_utf_7.cpp rename to src/decoding/interpret_as_utf_7.cpp diff --git a/src/encoding/interpret_as_utf_7.h b/src/decoding/interpret_as_utf_7.h similarity index 100% rename from src/encoding/interpret_as_utf_7.h rename to src/decoding/interpret_as_utf_7.h diff --git a/src/encoding/interpret_as_utf_8.cpp b/src/decoding/interpret_as_utf_8.cpp similarity index 100% rename from src/encoding/interpret_as_utf_8.cpp rename to src/decoding/interpret_as_utf_8.cpp diff --git a/src/encoding/interpret_as_utf_8.h b/src/decoding/interpret_as_utf_8.h similarity index 100% rename from src/encoding/interpret_as_utf_8.h rename to src/decoding/interpret_as_utf_8.h diff --git a/src/encoding/interpret_as_utf_8_without_bom.cpp b/src/decoding/interpret_as_utf_8_without_bom.cpp similarity index 100% rename from src/encoding/interpret_as_utf_8_without_bom.cpp rename to src/decoding/interpret_as_utf_8_without_bom.cpp diff --git a/src/encoding/interpret_as_utf_8_without_bom.h b/src/decoding/interpret_as_utf_8_without_bom.h similarity index 100% rename from src/encoding/interpret_as_utf_8_without_bom.h rename to src/decoding/interpret_as_utf_8_without_bom.h diff --git a/src/encoding/utf7handler.cpp b/src/decoding/utf7handler.cpp similarity index 100% rename from src/encoding/utf7handler.cpp rename to src/decoding/utf7handler.cpp diff --git a/src/encoding/utf7handler.h b/src/decoding/utf7handler.h similarity index 100% rename from src/encoding/utf7handler.h rename to src/decoding/utf7handler.h diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e302af1..8fdfcbe 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -24,85 +24,92 @@ #include "view/openinnewwindow.h" #include "view/wordwrap.h" #include "aboutdialog.h" -// encodings -#include "encoding/interpret_as_utf_8.h" -#include "encoding/interpret_as_utf_8_without_bom.h" -#include "encoding/interpret_as_utf_16_be.h" -#include "encoding/interpret_as_utf_16_le.h" -#include "encoding/interpret_as_dialog.h" -#include "encoding/interpret_as_utf_8.h" -#include "encoding/interpret_as_utf_7.h" -#include "encoding/interpret_as_utf_32_le.h" -#include "encoding/interpret_as_utf_32_be.h" -#include "encoding/interpret_as_utf_16.h" -#include "encoding/interpret_as_us_ascii.h" -#include "encoding/interpret_as_tscii.h" -#include "encoding/interpret_as_tis_620.h" -#include "encoding/interpret_as_shift_jts.h" -#include "encoding/interpret_as_scsu.h" -#include "encoding/interpret_as_koi8_u.h" -#include "encoding/interpret_as_koi8_r.h" -#include "encoding/interpret_as_iso_8859_15.h" -#include "encoding/interpret_as_iso_8859_14.h" -#include "encoding/interpret_as_iso_8859_13.h" -#include "encoding/interpret_as_iso_8859_10.h" -#include "encoding/interpret_as_iso_8859_9.h" -#include "encoding/interpret_as_iso_8859_8.h" -#include "encoding/interpret_as_iso_8859_7.h" -#include "encoding/interpret_as_iso_8859_6.h" -#include "encoding/interpret_as_iso_8859_5.h" -#include "encoding/interpret_as_iso_8859_4.h" -#include "encoding/interpret_as_iso_8859_3.h" -#include "encoding/interpret_as_iso_8859_2.h" -#include "encoding/interpret_as_iso_8859_1.h" -#include "encoding/interpret_as_iso_2022_kr.h" -#include "encoding/interpret_as_iso_2022_jp_2.h" -#include "encoding/interpret_as_iso_2022_jp_1.h" -#include "encoding/interpret_as_iso_2022_jp.h" -#include "encoding/interpret_as_iso_2022_cn_ext.h" -#include "encoding/interpret_as_iso_2022_cn.h" -#include "encoding/interpret_as_ibm_918.h" -#include "encoding/interpret_as_ibm_871.h" -#include "encoding/interpret_as_ibm_870.h" -#include "encoding/interpret_as_ibm_869.h" -#include "encoding/interpret_as_ibm_868.h" -#include "encoding/interpret_as_ibm_866.h" -#include "encoding/interpret_as_ibm_865.h" -#include "encoding/interpret_as_ibm_864.h" -#include "encoding/interpret_as_ibm_863.h" -#include "encoding/interpret_as_ibm_862.h" -#include "encoding/interpret_as_ibm_861.h" -#include "encoding/interpret_as_ibm_860.h" -#include "encoding/interpret_as_ibm_857.h" -#include "encoding/interpret_as_ibm_855.h" -#include "encoding/interpret_as_ibm_852.h" -#include "encoding/interpret_as_ibm_850.h" -#include "encoding/interpret_as_ibm_775.h" -#include "encoding/interpret_as_ibm_500.h" -#include "encoding/interpret_as_ibm_437.h" -#include "encoding/interpret_as_ibm_424.h" -#include "encoding/interpret_as_ibm_420.h" -#include "encoding/interpret_as_ibm_297.h" -#include "encoding/interpret_as_ibm_290.h" -#include "encoding/interpret_as_ibm_285.h" -#include "encoding/interpret_as_ibm_284.h" -#include "encoding/interpret_as_ibm_280.h" -#include "encoding/interpret_as_ibm_278.h" -#include "encoding/interpret_as_ibm_277.h" -#include "encoding/interpret_as_ibm_273.h" -#include "encoding/interpret_as_ibm_1047.h" -#include "encoding/interpret_as_ibm_1026.h" -#include "encoding/interpret_as_ibm_037.h" -#include "encoding/interpret_as_ibm_01149.h" -#include "encoding/interpret_as_ibm_01148.h" -#include "encoding/interpret_as_ibm_01147.h" -#include "encoding/interpret_as_ibm_01146.h" -#include "encoding/interpret_as_ibm_01145.h" -#include "encoding/interpret_as_ibm_01144.h" -#include "encoding/interpret_as_ibm_01143.h" -#include "encoding/interpret_as_ibm_01142.h" -#include "encoding/interpret_as_ibm_01141.h" -#include "encoding/interpret_as_ibm_01140.h" +// decodings +#include "decoding/interpret_as_utf_8.h" +#include "decoding/interpret_as_utf_8_without_bom.h" +#include "decoding/interpret_as_utf_16_be.h" +#include "decoding/interpret_as_utf_16_le.h" +#include "decoding/interpret_as_dialog.h" +#include "decoding/interpret_as_utf_8.h" +#include "decoding/interpret_as_utf_7.h" +#include "decoding/interpret_as_utf_32_le.h" +#include "decoding/interpret_as_utf_32_be.h" +#include "decoding/interpret_as_utf_16.h" +#include "decoding/interpret_as_us_ascii.h" +#include "decoding/interpret_as_tscii.h" +#include "decoding/interpret_as_tis_620.h" +#include "decoding/interpret_as_shift_jts.h" +#include "decoding/interpret_as_scsu.h" +#include "decoding/interpret_as_koi8_u.h" +#include "decoding/interpret_as_koi8_r.h" +#include "decoding/interpret_as_iso_8859_15.h" +#include "decoding/interpret_as_iso_8859_14.h" +#include "decoding/interpret_as_iso_8859_13.h" +#include "decoding/interpret_as_iso_8859_10.h" +#include "decoding/interpret_as_iso_8859_9.h" +#include "decoding/interpret_as_iso_8859_8.h" +#include "decoding/interpret_as_iso_8859_7.h" +#include "decoding/interpret_as_iso_8859_6.h" +#include "decoding/interpret_as_iso_8859_5.h" +#include "decoding/interpret_as_iso_8859_4.h" +#include "decoding/interpret_as_iso_8859_3.h" +#include "decoding/interpret_as_iso_8859_2.h" +#include "decoding/interpret_as_iso_8859_1.h" +#include "decoding/interpret_as_iso_2022_kr.h" +#include "decoding/interpret_as_iso_2022_jp_2.h" +#include "decoding/interpret_as_iso_2022_jp_1.h" +#include "decoding/interpret_as_iso_2022_jp.h" +#include "decoding/interpret_as_iso_2022_cn_ext.h" +#include "decoding/interpret_as_iso_2022_cn.h" +#include "decoding/interpret_as_ibm_918.h" +#include "decoding/interpret_as_ibm_871.h" +#include "decoding/interpret_as_ibm_870.h" +#include "decoding/interpret_as_ibm_869.h" +#include "decoding/interpret_as_ibm_868.h" +#include "decoding/interpret_as_ibm_866.h" +#include "decoding/interpret_as_ibm_865.h" +#include "decoding/interpret_as_ibm_864.h" +#include "decoding/interpret_as_ibm_863.h" +#include "decoding/interpret_as_ibm_862.h" +#include "decoding/interpret_as_ibm_861.h" +#include "decoding/interpret_as_ibm_860.h" +#include "decoding/interpret_as_ibm_857.h" +#include "decoding/interpret_as_ibm_855.h" +#include "decoding/interpret_as_ibm_852.h" +#include "decoding/interpret_as_ibm_850.h" +#include "decoding/interpret_as_ibm_775.h" +#include "decoding/interpret_as_ibm_500.h" +#include "decoding/interpret_as_ibm_437.h" +#include "decoding/interpret_as_ibm_424.h" +#include "decoding/interpret_as_ibm_420.h" +#include "decoding/interpret_as_ibm_297.h" +#include "decoding/interpret_as_ibm_290.h" +#include "decoding/interpret_as_ibm_285.h" +#include "decoding/interpret_as_ibm_284.h" +#include "decoding/interpret_as_ibm_280.h" +#include "decoding/interpret_as_ibm_278.h" +#include "decoding/interpret_as_ibm_277.h" +#include "decoding/interpret_as_ibm_273.h" +#include "decoding/interpret_as_ibm_1047.h" +#include "decoding/interpret_as_ibm_1026.h" +#include "decoding/interpret_as_ibm_037.h" +#include "decoding/interpret_as_ibm_01149.h" +#include "decoding/interpret_as_ibm_01148.h" +#include "decoding/interpret_as_ibm_01147.h" +#include "decoding/interpret_as_ibm_01146.h" +#include "decoding/interpret_as_ibm_01145.h" +#include "decoding/interpret_as_ibm_01144.h" +#include "decoding/interpret_as_ibm_01143.h" +#include "decoding/interpret_as_ibm_01142.h" +#include "decoding/interpret_as_ibm_01141.h" +#include "decoding/interpret_as_ibm_01140.h" +#include "decoding/interpret_as_ibm_00858.h" +#include "decoding/interpret_as_ibm_thai.h" +#include "decoding/interpret_as_hz_gb_2312.h" +#include "decoding/interpret_as_gbk.h" +#include "decoding/interpret_as_gb18030.h" +#include "decoding/interpret_as_euc_jp.h" +#include "decoding/interpret_as_cesu_8.h" MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), @@ -828,7 +835,7 @@ void MainWindow::on_action_Full_Screen_toggled(bool enabled) ui->action_Full_Screen->setChecked(isFullScreen()); } -/* Encoding */ +/* decoding */ void MainWindow::on_action_Interpret_as_UTF_8_triggered() { @@ -1100,6 +1107,27 @@ void MainWindow::on_actionInterpret_As_triggered() if (selectedItem == "IBM-01140") { Interpret_As_IBM_01140::instance().execute(editor); } + if (selectedItem == "IBM-00858") { + Interpret_As_IBM_00858::instance().execute(editor); + } + if (selectedItem == "IBM-Thai") { + Interpret_As_IBM_Thai::instance().execute(editor); + } + if (selectedItem == "HZ-GB-2312") { + Interpret_As_HZ_GB_2312::instance().execute(editor); + } + if (selectedItem == "GBK") { + Interpret_As_GBK::instance().execute(editor); + } + if (selectedItem == "GB18030") { + Interpret_As_GB18030::instance().execute(editor); + } + if (selectedItem == "EUC-JP") { + Interpret_As_EUC_JP::instance().execute(editor); + } + if (selectedItem == "CESU-8") { + Interpret_As_CESU_8::instance().execute(editor); + } } }