diff --git a/README.md b/README.md
index 3a66c1d..e1d44df 100644
--- a/README.md
+++ b/README.md
@@ -33,24 +33,3 @@ Note: build-depends references the paragraph in debian/control.
> sudo make install
Note: If you want to run ukui-menu, You just need to execute the ukui-menu command at the terminal.
-
-## DBUS interface
-
-BUS Name:org.ukui.menu
-
-path:/org/ukui/menu
-
-Interface:org.ukui.menu
-
-Method name:
-
-GetMenuStatus () <---> Get ukui-menu display hidden status
-
-WinKeyResponse () <---> ukui-menu display hidden state change interface
-
-GetSecurityConfigPath () <---> Get security control profile path
-
-## Configuration file
-
-.config/ukui/Ukuimenu.db
-
diff --git a/data/img/mainviewwidget/.DS_Store b/data/img/mainviewwidget/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/data/img/mainviewwidget/.DS_Store and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-all-2x.png b/data/img/mainviewwidget/DM-all-2x.png
deleted file mode 100644
index 4f8f9d1..0000000
Binary files a/data/img/mainviewwidget/DM-all-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-all.png b/data/img/mainviewwidget/DM-all.png
deleted file mode 100644
index b05d7fa..0000000
Binary files a/data/img/mainviewwidget/DM-all.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-all.svg b/data/img/mainviewwidget/DM-all.svg
deleted file mode 100644
index 71b87f8..0000000
--- a/data/img/mainviewwidget/DM-all.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-arrow-2x.png b/data/img/mainviewwidget/DM-arrow-2x.png
deleted file mode 100644
index 7cd5c35..0000000
Binary files a/data/img/mainviewwidget/DM-arrow-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-arrow.png b/data/img/mainviewwidget/DM-arrow.png
deleted file mode 100644
index 3b4fe22..0000000
Binary files a/data/img/mainviewwidget/DM-arrow.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-arrow.svg b/data/img/mainviewwidget/DM-arrow.svg
deleted file mode 100644
index c3afc32..0000000
--- a/data/img/mainviewwidget/DM-arrow.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-close-2x.png b/data/img/mainviewwidget/DM-close-2x.png
deleted file mode 100644
index 5dbfa4e..0000000
Binary files a/data/img/mainviewwidget/DM-close-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-close.png b/data/img/mainviewwidget/DM-close.png
deleted file mode 100644
index af00370..0000000
Binary files a/data/img/mainviewwidget/DM-close.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-close.svg b/data/img/mainviewwidget/DM-close.svg
deleted file mode 100644
index 8992eda..0000000
--- a/data/img/mainviewwidget/DM-close.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-function-2x.png b/data/img/mainviewwidget/DM-function-2x.png
deleted file mode 100644
index aefcb56..0000000
Binary files a/data/img/mainviewwidget/DM-function-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-function.png b/data/img/mainviewwidget/DM-function.png
deleted file mode 100644
index 82c72ce..0000000
Binary files a/data/img/mainviewwidget/DM-function.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-function.svg b/data/img/mainviewwidget/DM-function.svg
deleted file mode 100644
index 3e1c659..0000000
--- a/data/img/mainviewwidget/DM-function.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-icon-check.png b/data/img/mainviewwidget/DM-icon-check.png
deleted file mode 100644
index 69c4da6..0000000
Binary files a/data/img/mainviewwidget/DM-icon-check.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-check.svg b/data/img/mainviewwidget/DM-icon-check.svg
deleted file mode 100644
index bca4fc6..0000000
--- a/data/img/mainviewwidget/DM-icon-check.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-icon-check@2x.png b/data/img/mainviewwidget/DM-icon-check@2x.png
deleted file mode 100644
index b4a1b70..0000000
Binary files a/data/img/mainviewwidget/DM-icon-check@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-option.svg b/data/img/mainviewwidget/DM-icon-option.svg
deleted file mode 100644
index a1e8d2b..0000000
--- a/data/img/mainviewwidget/DM-icon-option.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-icon-search.png b/data/img/mainviewwidget/DM-icon-search.png
deleted file mode 100644
index c446f1c..0000000
Binary files a/data/img/mainviewwidget/DM-icon-search.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-search.svg b/data/img/mainviewwidget/DM-icon-search.svg
deleted file mode 100644
index 3b4b9c6..0000000
--- a/data/img/mainviewwidget/DM-icon-search.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-icon-search@2x.png b/data/img/mainviewwidget/DM-icon-search@2x.png
deleted file mode 100644
index d7a01d6..0000000
Binary files a/data/img/mainviewwidget/DM-icon-search@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-返回.png b/data/img/mainviewwidget/DM-icon-返回.png
deleted file mode 100644
index eb3ef88..0000000
Binary files a/data/img/mainviewwidget/DM-icon-返回.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-返回.svg b/data/img/mainviewwidget/DM-icon-返回.svg
deleted file mode 100644
index 8bdca67..0000000
--- a/data/img/mainviewwidget/DM-icon-返回.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-icon-返回@2x.png b/data/img/mainviewwidget/DM-icon-返回@2x.png
deleted file mode 100644
index 9830a10..0000000
Binary files a/data/img/mainviewwidget/DM-icon-返回@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-选项.png b/data/img/mainviewwidget/DM-icon-选项.png
deleted file mode 100644
index 9447a80..0000000
Binary files a/data/img/mainviewwidget/DM-icon-选项.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-icon-选项@2x.png b/data/img/mainviewwidget/DM-icon-选项@2x.png
deleted file mode 100644
index c8cd4e1..0000000
Binary files a/data/img/mainviewwidget/DM-icon-选项@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-letter-2x.png b/data/img/mainviewwidget/DM-letter-2x.png
deleted file mode 100644
index 295b068..0000000
Binary files a/data/img/mainviewwidget/DM-letter-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-letter.png b/data/img/mainviewwidget/DM-letter.png
deleted file mode 100644
index 97722c9..0000000
Binary files a/data/img/mainviewwidget/DM-letter.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-letter.svg b/data/img/mainviewwidget/DM-letter.svg
deleted file mode 100644
index 2f6c725..0000000
--- a/data/img/mainviewwidget/DM-letter.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/data/img/mainviewwidget/DM-max-2x.png b/data/img/mainviewwidget/DM-max-2x.png
deleted file mode 100644
index db956e4..0000000
Binary files a/data/img/mainviewwidget/DM-max-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-max.png b/data/img/mainviewwidget/DM-max.png
deleted file mode 100644
index 14aa676..0000000
Binary files a/data/img/mainviewwidget/DM-max.png and /dev/null differ
diff --git a/data/img/mainviewwidget/DM-max.svg b/data/img/mainviewwidget/DM-max.svg
deleted file mode 100644
index 3b820ce..0000000
--- a/data/img/mainviewwidget/DM-max.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/data/img/mainviewwidget/all-2x.png b/data/img/mainviewwidget/all-2x.png
deleted file mode 100644
index 15a02b1..0000000
Binary files a/data/img/mainviewwidget/all-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/all.png b/data/img/mainviewwidget/all.png
deleted file mode 100644
index 3e77999..0000000
Binary files a/data/img/mainviewwidget/all.png and /dev/null differ
diff --git a/data/img/mainviewwidget/all.svg b/data/img/mainviewwidget/all.svg
deleted file mode 100644
index 43587e7..0000000
--- a/data/img/mainviewwidget/all.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/close-2x.png b/data/img/mainviewwidget/close-2x.png
deleted file mode 100644
index 100fd90..0000000
Binary files a/data/img/mainviewwidget/close-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/close.png b/data/img/mainviewwidget/close.png
deleted file mode 100644
index ce9b7d3..0000000
Binary files a/data/img/mainviewwidget/close.png and /dev/null differ
diff --git a/data/img/mainviewwidget/close.svg b/data/img/mainviewwidget/close.svg
deleted file mode 100644
index a2ac5ee..0000000
--- a/data/img/mainviewwidget/close.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/data/img/mainviewwidget/drop-down-2x.png b/data/img/mainviewwidget/drop-down-2x.png
deleted file mode 100644
index a33369b..0000000
Binary files a/data/img/mainviewwidget/drop-down-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/drop-down.png b/data/img/mainviewwidget/drop-down.png
deleted file mode 100644
index bbb6e14..0000000
Binary files a/data/img/mainviewwidget/drop-down.png and /dev/null differ
diff --git a/data/img/mainviewwidget/drop-down.svg b/data/img/mainviewwidget/drop-down.svg
deleted file mode 100644
index 694e97b..0000000
--- a/data/img/mainviewwidget/drop-down.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-all-2x.png b/data/img/mainviewwidget/full-all-2x.png
deleted file mode 100644
index 0b9e862..0000000
Binary files a/data/img/mainviewwidget/full-all-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-close-2x.png b/data/img/mainviewwidget/full-close-2x.png
deleted file mode 100644
index 88421f3..0000000
Binary files a/data/img/mainviewwidget/full-close-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-close.png b/data/img/mainviewwidget/full-close.png
deleted file mode 100644
index e0aa44f..0000000
Binary files a/data/img/mainviewwidget/full-close.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-close.svg b/data/img/mainviewwidget/full-close.svg
deleted file mode 100644
index 397d1b9..0000000
--- a/data/img/mainviewwidget/full-close.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-drop-down-2x.png b/data/img/mainviewwidget/full-drop-down-2x.png
deleted file mode 100644
index 61353ab..0000000
Binary files a/data/img/mainviewwidget/full-drop-down-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-drop-down.png b/data/img/mainviewwidget/full-drop-down.png
deleted file mode 100644
index cf7dbc2..0000000
Binary files a/data/img/mainviewwidget/full-drop-down.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-drop-down.svg b/data/img/mainviewwidget/full-drop-down.svg
deleted file mode 100644
index 5252b3c..0000000
--- a/data/img/mainviewwidget/full-drop-down.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-function-2x.png b/data/img/mainviewwidget/full-function-2x.png
deleted file mode 100644
index 816f16c..0000000
Binary files a/data/img/mainviewwidget/full-function-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-function.png b/data/img/mainviewwidget/full-function.png
deleted file mode 100644
index 8e6f47f..0000000
Binary files a/data/img/mainviewwidget/full-function.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-function.svg b/data/img/mainviewwidget/full-function.svg
deleted file mode 100644
index a0880a5..0000000
--- a/data/img/mainviewwidget/full-function.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-letter-2x.png b/data/img/mainviewwidget/full-letter-2x.png
deleted file mode 100644
index a5212da..0000000
Binary files a/data/img/mainviewwidget/full-letter-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-letter.png b/data/img/mainviewwidget/full-letter.png
deleted file mode 100644
index 00aff38..0000000
Binary files a/data/img/mainviewwidget/full-letter.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-letter.svg b/data/img/mainviewwidget/full-letter.svg
deleted file mode 100644
index ee2cc83..0000000
--- a/data/img/mainviewwidget/full-letter.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-min-2x.png b/data/img/mainviewwidget/full-min-2x.png
deleted file mode 100644
index 46b8a3c..0000000
Binary files a/data/img/mainviewwidget/full-min-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-min.png b/data/img/mainviewwidget/full-min.png
deleted file mode 100644
index 1016551..0000000
Binary files a/data/img/mainviewwidget/full-min.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-min.svg b/data/img/mainviewwidget/full-min.svg
deleted file mode 100644
index 5bc8fb4..0000000
--- a/data/img/mainviewwidget/full-min.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/data/img/mainviewwidget/full-search-2x.png b/data/img/mainviewwidget/full-search-2x.png
deleted file mode 100644
index 5419253..0000000
Binary files a/data/img/mainviewwidget/full-search-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-search.png b/data/img/mainviewwidget/full-search.png
deleted file mode 100644
index 3603ba3..0000000
Binary files a/data/img/mainviewwidget/full-search.png and /dev/null differ
diff --git a/data/img/mainviewwidget/full-search.svg b/data/img/mainviewwidget/full-search.svg
deleted file mode 100644
index 89c630a..0000000
--- a/data/img/mainviewwidget/full-search.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/data/img/mainviewwidget/fullicon-all.png b/data/img/mainviewwidget/fullicon-all.png
deleted file mode 100644
index 8f6176b..0000000
Binary files a/data/img/mainviewwidget/fullicon-all.png and /dev/null differ
diff --git a/data/img/mainviewwidget/fullicon-all.svg b/data/img/mainviewwidget/fullicon-all.svg
deleted file mode 100644
index a991c98..0000000
--- a/data/img/mainviewwidget/fullicon-all.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/function-2x.png b/data/img/mainviewwidget/function-2x.png
deleted file mode 100644
index ad6c487..0000000
Binary files a/data/img/mainviewwidget/function-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/function.png b/data/img/mainviewwidget/function.png
deleted file mode 100644
index ff17d26..0000000
Binary files a/data/img/mainviewwidget/function.png and /dev/null differ
diff --git a/data/img/mainviewwidget/function.svg b/data/img/mainviewwidget/function.svg
deleted file mode 100644
index da7fb57..0000000
--- a/data/img/mainviewwidget/function.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/data/img/mainviewwidget/icon- search-2x.png b/data/img/mainviewwidget/icon- search-2x.png
deleted file mode 100644
index 8f286b4..0000000
Binary files a/data/img/mainviewwidget/icon- search-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon- search.png b/data/img/mainviewwidget/icon- search.png
deleted file mode 100644
index c2da345..0000000
Binary files a/data/img/mainviewwidget/icon- search.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon- search.svg b/data/img/mainviewwidget/icon- search.svg
deleted file mode 100644
index 1a8d9c7..0000000
--- a/data/img/mainviewwidget/icon- search.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/data/img/mainviewwidget/icon- 返回.png b/data/img/mainviewwidget/icon- 返回.png
deleted file mode 100644
index 94dc40f..0000000
Binary files a/data/img/mainviewwidget/icon- 返回.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon- 返回.svg b/data/img/mainviewwidget/icon- 返回.svg
deleted file mode 100644
index 5217892..0000000
--- a/data/img/mainviewwidget/icon- 返回.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/icon- 返回@2x.png b/data/img/mainviewwidget/icon- 返回@2x.png
deleted file mode 100644
index f3ffab0..0000000
Binary files a/data/img/mainviewwidget/icon- 返回@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon- 选项.png b/data/img/mainviewwidget/icon- 选项.png
deleted file mode 100644
index 5f9e37f..0000000
Binary files a/data/img/mainviewwidget/icon- 选项.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon- 选项.svg b/data/img/mainviewwidget/icon- 选项.svg
deleted file mode 100644
index 5c8b768..0000000
--- a/data/img/mainviewwidget/icon- 选项.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/icon- 选项@2x.png b/data/img/mainviewwidget/icon- 选项@2x.png
deleted file mode 100644
index b6b765d..0000000
Binary files a/data/img/mainviewwidget/icon- 选项@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon-check.png b/data/img/mainviewwidget/icon-check.png
deleted file mode 100644
index 29e9a17..0000000
Binary files a/data/img/mainviewwidget/icon-check.png and /dev/null differ
diff --git a/data/img/mainviewwidget/icon-check.svg b/data/img/mainviewwidget/icon-check.svg
deleted file mode 100644
index b9597ea..0000000
--- a/data/img/mainviewwidget/icon-check.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/icon-check@2x.png b/data/img/mainviewwidget/icon-check@2x.png
deleted file mode 100644
index 5c1a31e..0000000
Binary files a/data/img/mainviewwidget/icon-check@2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/letter-2x.png b/data/img/mainviewwidget/letter-2x.png
deleted file mode 100644
index edb7493..0000000
Binary files a/data/img/mainviewwidget/letter-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/letter.png b/data/img/mainviewwidget/letter.png
deleted file mode 100644
index 393bf63..0000000
Binary files a/data/img/mainviewwidget/letter.png and /dev/null differ
diff --git a/data/img/mainviewwidget/letter.svg b/data/img/mainviewwidget/letter.svg
deleted file mode 100644
index 368f9fe..0000000
--- a/data/img/mainviewwidget/letter.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/data/img/mainviewwidget/max-2x.png b/data/img/mainviewwidget/max-2x.png
deleted file mode 100644
index 7a8d03f..0000000
Binary files a/data/img/mainviewwidget/max-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/max.png b/data/img/mainviewwidget/max.png
deleted file mode 100644
index b1a17ff..0000000
Binary files a/data/img/mainviewwidget/max.png and /dev/null differ
diff --git a/data/img/mainviewwidget/max.svg b/data/img/mainviewwidget/max.svg
deleted file mode 100644
index f6f73fd..0000000
--- a/data/img/mainviewwidget/max.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/data/img/mainviewwidget/power-2x.png b/data/img/mainviewwidget/power-2x.png
deleted file mode 100644
index 926bc59..0000000
Binary files a/data/img/mainviewwidget/power-2x.png and /dev/null differ
diff --git a/data/img/mainviewwidget/power.png b/data/img/mainviewwidget/power.png
deleted file mode 100644
index 6344ca5..0000000
Binary files a/data/img/mainviewwidget/power.png and /dev/null differ
diff --git a/data/img/mainviewwidget/power.svg b/data/img/mainviewwidget/power.svg
deleted file mode 100644
index d83d248..0000000
--- a/data/img/mainviewwidget/power.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/data/img/mainviewwidget/select.svg b/data/img/mainviewwidget/select.svg
deleted file mode 100644
index bddfc1a..0000000
--- a/data/img/mainviewwidget/select.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/selected.svg b/data/img/mainviewwidget/selected.svg
deleted file mode 100644
index c610131..0000000
--- a/data/img/mainviewwidget/selected.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/data/img/mainviewwidget/ukui-search-blue.svg b/data/img/mainviewwidget/ukui-search-blue.svg
deleted file mode 100644
index 4665b8a..0000000
--- a/data/img/mainviewwidget/ukui-search-blue.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
\ No newline at end of file
diff --git a/data/img/mainviewwidget/ukui-search.svg b/data/img/mainviewwidget/ukui-search.svg
deleted file mode 100644
index e931c1d..0000000
--- a/data/img/mainviewwidget/ukui-search.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
\ No newline at end of file
diff --git a/main.cpp b/main.cpp
index f30ac71..2a97a60 100644
--- a/main.cpp
+++ b/main.cpp
@@ -16,8 +16,7 @@
*
*/
-#include "mainwindow.h"
-#include "tabletwindow.h"
+#include "src/MainWindow/mainwindow.h"
#include
#include
#include
@@ -26,20 +25,20 @@
#include
#include
#include
-#include "utility.h"
-#include "file-utils.h"
+#include "src/UtilityFunction/proxystyle.h"
+#include
+#include "src/UtilityFunction/utility.h"
+#include "src/SearchResultWidget/file-utils.h"
#include
#include
-#define UKUI_SERVICE "org.gnome.SessionManager"
-#define UKUI_PATH "/org/gnome/SessionManager"
-#define UKUI_INTERFACE "org.gnome.SessionManager"
+#include "src/UtilityFunction/utility.h"
#include
int main(int argc, char *argv[])
{
initUkuiLog4qt("ukui-menu");
- g_projectCodeName = KDKGetPrjCodeName().c_str();
+ projectCodeName = KDKGetPrjCodeName().c_str();
qRegisterMetaType>("QVector");
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
@@ -64,45 +63,14 @@ int main(int argc, char *argv[])
myDebug() << "Load translations file" << QLocale() << "failed!";
}
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- FileUtils::loadHanziTable(":/src/BackProcess/Search/pinyinWithoutTone.txt");
- MainWindow w;
- app.setActivationWindow(&w);
-
- if (Style::m_panelPosition == 0) {
- w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::minh - 3,
- Style::minw, Style::minh));
- } else if (Style::m_panelPosition == 1) {
- w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::minw, Style::minh));
- } else if (Style::m_panelPosition == 2) {
- w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::minw, Style::minh));
- } else {
- w.setGeometry(QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - Style::minw - 4, Style::m_primaryScreenY + 4,
- Style::minw, Style::minh));
- }
-
- w.show();
- w.raise();
- w.update();
- w.activateWindow();
- w.hide();
- return app.exec();
- } else {
- TabletWindow w;
- app.setActivationWindow(&w);
- centerToScreen(&w);
- w.setAttribute(Qt::WA_TranslucentBackground, true);
- w.setAttribute(Qt::WA_X11NetWmWindowTypeDesktop, false);
- w.setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
- w.raise();
- w.activateWindow();
- //拉起后通知session
- QDBusInterface interface(UKUI_SERVICE,
- UKUI_PATH,
- UKUI_INTERFACE,
- QDBusConnection::sessionBus());
- interface.call("startupfinished", "ukui-menu", "finish");
- return app.exec();
- }
+ Zeeker::FileUtils::loadHanziTable(":/src/SearchResultWidget/pinyinWithoutTone.txt");
+ MainWindow w;
+ app.setActivationWindow(&w);
+ w.show();
+ w.raise();
+ w.update();
+ w.activateWindow();
+ w.hide();
+ //测试
+ return app.exec();
}
-
diff --git a/res.qrc b/res.qrc
index 47d0ea3..fc6c8ee 100644
--- a/res.qrc
+++ b/res.qrc
@@ -1,128 +1,13 @@
- data/img/mainviewwidget/all-2x.png
- data/img/mainviewwidget/all.png
- data/img/mainviewwidget/all.svg
data/img/mainviewwidget/attributeaction.svg
- data/img/mainviewwidget/close-2x.png
- data/img/mainviewwidget/close.png
- data/img/mainviewwidget/close.svg
- data/img/mainviewwidget/Development-Checked.svg
- data/img/mainviewwidget/Development-Disabled.svg
- data/img/mainviewwidget/Development-Enabled.svg
- data/img/mainviewwidget/Development-Normal.svg
- data/img/mainviewwidget/DM-all-2x.png
- data/img/mainviewwidget/DM-all.png
- data/img/mainviewwidget/DM-all.svg
- data/img/mainviewwidget/DM-close-2x.png
- data/img/mainviewwidget/DM-close.png
- data/img/mainviewwidget/DM-close.svg
- data/img/mainviewwidget/DM-function-2x.png
- data/img/mainviewwidget/DM-function.png
- data/img/mainviewwidget/DM-function.svg
- data/img/mainviewwidget/DM-arrow.png
- data/img/mainviewwidget/DM-arrow.svg
- data/img/mainviewwidget/DM-arrow-2x.png
- data/img/mainviewwidget/DM-icon-返回.png
- data/img/mainviewwidget/DM-icon-返回.svg
- data/img/mainviewwidget/DM-icon-返回@2x.png
- data/img/mainviewwidget/DM-icon-选项.png
- data/img/mainviewwidget/DM-icon-选项@2x.png
- data/img/mainviewwidget/DM-icon-check.png
- data/img/mainviewwidget/DM-icon-check.svg
- data/img/mainviewwidget/DM-icon-check@2x.png
- data/img/mainviewwidget/DM-icon-search.png
- data/img/mainviewwidget/DM-icon-search.svg
- data/img/mainviewwidget/DM-icon-search@2x.png
- data/img/mainviewwidget/DM-letter-2x.png
- data/img/mainviewwidget/DM-letter.png
- data/img/mainviewwidget/DM-letter.svg
- data/img/mainviewwidget/DM-max-2x.png
- data/img/mainviewwidget/DM-max.png
- data/img/mainviewwidget/DM-max.svg
data/img/mainviewwidget/downarrow-pressed.svg
data/img/mainviewwidget/downarrow.svg
- data/img/mainviewwidget/drop-down-2x.png
- data/img/mainviewwidget/drop-down.png
- data/img/mainviewwidget/drop-down.svg
- data/img/mainviewwidget/Education-Checked.svg
- data/img/mainviewwidget/Education-Disabled.svg
- data/img/mainviewwidget/Education-Enabled.svg
- data/img/mainviewwidget/Education-Normal.svg
data/img/mainviewwidget/fixed.svg
- data/img/mainviewwidget/full-all-2x.png
- data/img/mainviewwidget/full-close-2x.png
- data/img/mainviewwidget/full-close.png
- data/img/mainviewwidget/full-close.svg
- data/img/mainviewwidget/full-drop-down-2x.png
- data/img/mainviewwidget/full-drop-down.png
- data/img/mainviewwidget/full-drop-down.svg
- data/img/mainviewwidget/full-function-2x.png
- data/img/mainviewwidget/full-function.png
- data/img/mainviewwidget/full-function.svg
- data/img/mainviewwidget/full-letter-2x.png
- data/img/mainviewwidget/full-letter.png
- data/img/mainviewwidget/full-letter.svg
- data/img/mainviewwidget/full-min-2x.png
- data/img/mainviewwidget/full-min.png
- data/img/mainviewwidget/full-min.svg
- data/img/mainviewwidget/full-search-2x.png
- data/img/mainviewwidget/full-search.png
- data/img/mainviewwidget/full-search.svg
- data/img/mainviewwidget/fullicon-all.png
- data/img/mainviewwidget/fullicon-all.svg
- data/img/mainviewwidget/function-2x.png
- data/img/mainviewwidget/function.png
- data/img/mainviewwidget/function.svg
- data/img/mainviewwidget/Game-Checked.svg
- data/img/mainviewwidget/Game-Disabled.svg
- data/img/mainviewwidget/Game-Enabled.svg
- data/img/mainviewwidget/Game-Normal.svg
- data/img/mainviewwidget/icon- 返回.png
- data/img/mainviewwidget/icon- 返回.svg
- data/img/mainviewwidget/icon- 返回@2x.png
- data/img/mainviewwidget/icon- 选项.png
- data/img/mainviewwidget/icon- 选项.svg
- data/img/mainviewwidget/icon- 选项@2x.png
- data/img/mainviewwidget/icon- search-2x.png
- data/img/mainviewwidget/icon- search.png
- data/img/mainviewwidget/icon- search.svg
- data/img/mainviewwidget/icon-check.png
- data/img/mainviewwidget/icon-check.svg
- data/img/mainviewwidget/icon-check@2x.png
- data/img/mainviewwidget/Image-Checked.svg
- data/img/mainviewwidget/Image-Disabled.svg
- data/img/mainviewwidget/Image-Enabled.svg
- data/img/mainviewwidget/Image-Normal.svg
- data/img/mainviewwidget/Internet-Checked.svg
- data/img/mainviewwidget/Internet-Disabled.svg
- data/img/mainviewwidget/Internet-Enabled.svg
- data/img/mainviewwidget/Internet-Normal.svg
data/img/mainviewwidget/leftarrow-hover.svg
data/img/mainviewwidget/leftarrow.svg
- data/img/mainviewwidget/letter-2x.png
- data/img/mainviewwidget/letter.png
- data/img/mainviewwidget/letter.svg
data/img/mainviewwidget/lock-fs.svg
data/img/mainviewwidget/lock.svg
- data/img/mainviewwidget/max-2x.png
- data/img/mainviewwidget/max.png
- data/img/mainviewwidget/max.svg
- data/img/mainviewwidget/Mobile-Checked.svg
- data/img/mainviewwidget/Mobile-Disabled.svg
- data/img/mainviewwidget/Mobile-Enabled.svg
- data/img/mainviewwidget/Mobile-Normal.svg
- data/img/mainviewwidget/Office-Checked.svg
- data/img/mainviewwidget/Office-Disabled.svg
- data/img/mainviewwidget/Office-Enabled.svg
- data/img/mainviewwidget/Office-Normal.svg
- data/img/mainviewwidget/Others-Checked.svg
- data/img/mainviewwidget/Others-Disabled.svg
- data/img/mainviewwidget/Others-Enabled.svg
- data/img/mainviewwidget/Others-Normal.svg
- data/img/mainviewwidget/power-2x.png
- data/img/mainviewwidget/power.png
- data/img/mainviewwidget/power.svg
data/img/mainviewwidget/recent-disabled.svg
data/img/mainviewwidget/recent-enabled.svg
data/img/mainviewwidget/recent-gray.svg
@@ -130,26 +15,10 @@
data/img/mainviewwidget/rightarrow-hover.svg
data/img/mainviewwidget/rightarrow.svg
data/img/mainviewwidget/search.svg
- data/img/mainviewwidget/select.svg
- data/img/mainviewwidget/selected.svg
- data/img/mainviewwidget/Social-Checked.svg
- data/img/mainviewwidget/Social-Disabled.svg
- data/img/mainviewwidget/Social-Enabled.svg
- data/img/mainviewwidget/Social-Normal.svg
- data/img/mainviewwidget/System-Checked.svg
- data/img/mainviewwidget/System-Disabled.svg
- data/img/mainviewwidget/System-Enabled.svg
- data/img/mainviewwidget/System-Normal.svg
- data/img/mainviewwidget/ukui-search-blue.svg
- data/img/mainviewwidget/ukui-search.svg
data/img/mainviewwidget/unfixed.svg
data/img/mainviewwidget/uninstall.svg
data/img/mainviewwidget/uparrow-pressed.svg
data/img/mainviewwidget/uparrow.svg
- data/img/mainviewwidget/Video-Checked.svg
- data/img/mainviewwidget/Video-Disabled.svg
- data/img/mainviewwidget/Video-Enabled.svg
- data/img/mainviewwidget/Video-Normal.svg
data/img/sidebarwidget/commonuse.svg
data/img/sidebarwidget/computer.svg
data/img/sidebarwidget/control.svg
@@ -160,16 +29,59 @@
data/img/sidebarwidget/lock.svg
data/img/sidebarwidget/max.svg
data/img/sidebarwidget/min.svg
- data/img/sidebarwidget/personal.svg
data/img/sidebarwidget/rightarrow.svg
data/img/sidebarwidget/setting.svg
data/img/sidebarwidget/shutdown.svg
- data/img/sidebarwidget/trash.svg
data/img/sidebarwidget/unfixed.svg
data/img/sidebarwidget/usericon-darkcolor.svg
data/img/sidebarwidget/usericon-lightcolor.svg
- src/BackProcess/Search/pinyinWithoutTone.txt
- src/BackProcess/Search/pinyinWithTone.txt
- data/img/mainviewwidget/DM-icon-option.svg
+ data/img/sidebarwidget/personal.svg
+ data/img/sidebarwidget/trash.svg
+ data/img/mainviewwidget/Development-Checked.svg
+ data/img/mainviewwidget/Development-Disabled.svg
+ data/img/mainviewwidget/Development-Enabled.svg
+ data/img/mainviewwidget/Development-Normal.svg
+ data/img/mainviewwidget/Education-Checked.svg
+ data/img/mainviewwidget/Education-Disabled.svg
+ data/img/mainviewwidget/Education-Enabled.svg
+ data/img/mainviewwidget/Education-Normal.svg
+ data/img/mainviewwidget/Game-Checked.svg
+ data/img/mainviewwidget/Game-Disabled.svg
+ data/img/mainviewwidget/Game-Enabled.svg
+ data/img/mainviewwidget/Game-Normal.svg
+ data/img/mainviewwidget/Image-Checked.svg
+ data/img/mainviewwidget/Image-Disabled.svg
+ data/img/mainviewwidget/Image-Enabled.svg
+ data/img/mainviewwidget/Image-Normal.svg
+ data/img/mainviewwidget/Internet-Checked.svg
+ data/img/mainviewwidget/Internet-Disabled.svg
+ data/img/mainviewwidget/Internet-Enabled.svg
+ data/img/mainviewwidget/Internet-Normal.svg
+ data/img/mainviewwidget/Office-Checked.svg
+ data/img/mainviewwidget/Office-Disabled.svg
+ data/img/mainviewwidget/Office-Enabled.svg
+ data/img/mainviewwidget/Office-Normal.svg
+ data/img/mainviewwidget/Others-Checked.svg
+ data/img/mainviewwidget/Others-Disabled.svg
+ data/img/mainviewwidget/Others-Enabled.svg
+ data/img/mainviewwidget/Others-Normal.svg
+ data/img/mainviewwidget/Social-Checked.svg
+ data/img/mainviewwidget/Social-Disabled.svg
+ data/img/mainviewwidget/Social-Enabled.svg
+ data/img/mainviewwidget/Social-Normal.svg
+ data/img/mainviewwidget/System-Checked.svg
+ data/img/mainviewwidget/System-Disabled.svg
+ data/img/mainviewwidget/System-Enabled.svg
+ data/img/mainviewwidget/System-Normal.svg
+ data/img/mainviewwidget/Video-Checked.svg
+ data/img/mainviewwidget/Video-Disabled.svg
+ data/img/mainviewwidget/Video-Enabled.svg
+ data/img/mainviewwidget/Video-Normal.svg
+ data/img/mainviewwidget/Mobile-Checked.svg
+ data/img/mainviewwidget/Mobile-Disabled.svg
+ data/img/mainviewwidget/Mobile-Enabled.svg
+ data/img/mainviewwidget/Mobile-Normal.svg
+ src/SearchResultWidget/pinyinWithTone.txt
+ src/SearchResultWidget/pinyinWithoutTone.txt
diff --git a/src/BackProcess/DBus/dbus.cpp b/src/BackProcess/DBus/dbus.cpp
deleted file mode 100644
index 42f7109..0000000
--- a/src/BackProcess/DBus/dbus.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "dbus.h"
-#include
-#include
-#include "utility.h"
-
-DBus::DBus(QObject *parent) : QObject(parent)
-{
-}
-
-void DBus::ReloadSecurityConfig()
-{
- Q_EMIT sendReloadSignal();
-}
-
-QString DBus::GetSecurityConfigPath()
-{
- QString path = QDir::homePath() + "/.config/ukui-menu-security-config.json";
- return path;
-}
-
-void DBus::WinKeyResponse()
-{
- Q_EMIT winKeyResponseSignal();
-}
-
-bool DBus::GetMenuStatus()
-{
- return g_menuStatus;
-}
diff --git a/src/BackProcess/DBus/dbus.h b/src/BackProcess/DBus/dbus.h
deleted file mode 100644
index 44f3be4..0000000
--- a/src/BackProcess/DBus/dbus.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef DBUS_H
-#define DBUS_H
-
-#include
-
-class DBus : public QObject
-{
- Q_OBJECT
- Q_CLASSINFO("D-Bus Interface", "org.ukui.menu")
-public:
- explicit DBus(QObject *parent = 0);
-
-Q_SIGNALS:
- void sendReloadSignal();
- void winKeyResponseSignal();
-
-public Q_SLOTS:
- QString GetSecurityConfigPath();
- void ReloadSecurityConfig();
- void WinKeyResponse();
- bool GetMenuStatus();
-};
-
-#endif // DBUS_H
diff --git a/src/BackProcess/FileWatcher/desktop_watcher.cpp b/src/BackProcess/FileWatcher/desktop_watcher.cpp
deleted file mode 100644
index e3c6141..0000000
--- a/src/BackProcess/FileWatcher/desktop_watcher.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "desktop_watcher.h"
-#include
-#include
-
-DesktopWatcher::DesktopWatcher()
-{
- //监控.desktop文件目录
- m_fileWatcher = new QFileSystemWatcher;
- m_fileWatcher->addPaths(QStringList() << QString("/usr/share/applications")
- << QString(QDir::homePath() + "/.local/share/applications/")
- << QString("/var/lib/snapd/desktop/applications/")
- << QString("/var/lib/flatpak/exports/share/applications/"));
- connect(m_fileWatcher, &QFileSystemWatcher::directoryChanged, this, &DesktopWatcher::directoryChangedSlot);
- // m_recentFile = new QFileSystemWatcher;
- // m_recentFile->addPath(QString(QDir::homePath()+"/.local/share/recently-used.xbel"));
- // connect(m_recentFile,&QFileSystemWatcher::fileChanged,this,[=](){
- // m_recentFile->addPath(QDir::homePath()+"/.local/share/recently-used.xbel");
- // Q_EMIT updateRecentList();});
- m_directoryChangedThread = new DirectoryChangedThread;
- connect(m_directoryChangedThread, &DirectoryChangedThread::requestUpdateSignal, this, &DesktopWatcher::requestUpdateSlot);
-}
-
-/**
- * desktop文件目录改变信号槽
- */
-void DesktopWatcher::directoryChangedSlot(const QString &path)
-{
- QEventLoop loop;
- QTimer::singleShot(100, &loop, SLOT(quit()));
- loop.exec();
- m_directoryChangedThread->start();
-}
-
-void DesktopWatcher::requestUpdateSlot()
-{
- m_directoryChangedThread->quit();
- Q_EMIT directoryChangedSignal();
-}
diff --git a/src/BackProcess/FileWatcher/desktop_watcher.h b/src/BackProcess/FileWatcher/desktop_watcher.h
deleted file mode 100644
index 874a98d..0000000
--- a/src/BackProcess/FileWatcher/desktop_watcher.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef DESKTOPWATCHER_H
-#define DESKTOPWATCHER_H
-#include
-#include "directory_changed_thread.h"
-
-
-class DesktopWatcher : public QObject
-{
- Q_OBJECT
-public:
- DesktopWatcher();
-
-public:
-Q_SIGNALS:
- /**
- * @brief Desktop file directory change signal
- */
- void directoryChangedSignal();
- void updateRecentList();
-
-public Q_SLOTS:
-
- void directoryChangedSlot(const QString &path);
- void requestUpdateSlot();
-
-private:
- QFileSystemWatcher *m_fileWatcher = nullptr; //Monitor desktop folder status
-// QFileSystemWatcher *m_recentFile=nullptr;
- DirectoryChangedThread *m_directoryChangedThread = nullptr;
-};
-
-#endif // DESKTOPWATCHER_H
diff --git a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp
deleted file mode 100644
index 1d01699..0000000
--- a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see
-#include
-#include
-#include "tabletlistview.h"
-#include
-#include
-
-TabletDirectoryChangedThread::TabletDirectoryChangedThread()
-{
- m_ukuiMenuInterface = new UkuiMenuInterface;
- QString path = QDir::homePath() + "/.config/ukui/ukui-menu.ini";
- setting = new QSettings(path, QSettings::IniFormat);
-}
-
-TabletDirectoryChangedThread::~TabletDirectoryChangedThread()
-{
- if (m_ukuiMenuInterface) {
- delete m_ukuiMenuInterface;
- }
-
- if (setting) {
- delete setting;
- }
-
- m_ukuiMenuInterface = nullptr;
- setting = nullptr;
-}
-
-
-void TabletDirectoryChangedThread::run()
-{
- QStringList desktopfpList = m_ukuiMenuInterface->getDesktopFilePath();
- myDebug() << "应用列表desktopfpList" << desktopfpList.size() << desktopfpList;
- myDebug() << "应用列表desktopfpVector" << UkuiMenuInterface::desktopfpVector.size() << UkuiMenuInterface::desktopfpVector;
- QString m_desktopfp;
-
- for (int i = 0; i < desktopfpList.count(); i++) {
- myDebug() << desktopfpList.at(i) << "是否存在于已安装应用列表中" <<
- UkuiMenuInterface::desktopfpVector.contains(QString(desktopfpList.at(i)));
-
- if (!UkuiMenuInterface::desktopfpVector.contains(QString(desktopfpList.at(i)))) {
- m_desktopfp = desktopfpList.at(i);
- myDebug() << "安装应用" << m_desktopfp;
- //获取当前时间戳
- QDateTime dt = QDateTime::currentDateTime();
- int datetime = dt.toTime_t();
- QString str = desktopfpList.at(i).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- QString desktopfn = str;
- setting->beginGroup("recentapp");
- setting->setValue(desktopfn, datetime);
- setting->sync();
- setting->endGroup();
- //wgx
- setting->beginGroup("application");
- QStringList applist = setting->allKeys();
- int appnum = setting->allKeys().count();
- int maxindex = 0;
-
- for (int i = 0; i < appnum; i++) {
- if (setting->value(applist.at(i)).toInt() > maxindex) {
- maxindex = setting->value(applist.at(i)).toInt();
- }
- }
-
- setting->setValue(desktopfn, maxindex + 1); //setting->allKeys().count()
- setting->sync();
- setting->endGroup();
- //
- QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfpList.at(i));
- syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", iconstr.toLocal8Bit().data());
- syslog(LOG_LOCAL0 | LOG_DEBUG, "软件安装desktop文件名:%s", desktopfn.toLocal8Bit().data());
-
- Q_FOREACH (QString path, QIcon::themeSearchPaths()) {
- syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", path.toLocal8Bit().data());
- }
- }
- }
-
- for (int i = 0; i < UkuiMenuInterface::desktopfpVector.count(); i++) {
- if (!desktopfpList.contains(UkuiMenuInterface::desktopfpVector.at(i))) {
- QString desktopfp = UkuiMenuInterface::desktopfpVector.at(i);
- QFileInfo fileInfo(desktopfp);
- QString desktopfn = fileInfo.fileName();
- myDebug() << "卸载" << desktopfn;
- setting->beginGroup("lockapplication");
- setting->remove(desktopfn);
- setting->sync();
- setting->endGroup();
- setting->beginGroup("application");
-
- if (!setting->contains(desktopfn)) {
- setting->sync();
- setting->endGroup();
- continue;
- }
-
- int val = setting->value(desktopfn).toInt();
- myDebug() << "卸载val" << val;
- setting->remove(desktopfn);
- QStringList desktopfnList = setting->allKeys();
-
- for (int i = 0; i < desktopfnList.count(); i++) {
- if (setting->value(desktopfnList.at(i)).toInt() > val) {
- setting->setValue(desktopfnList.at(i), setting->value(desktopfnList.at(i)).toInt() - 1);
- }
- }
-
- setting->sync();
- setting->endGroup();
- setting->beginGroup("recentapp");
- setting->remove(desktopfn);
- setting->sync();
- setting->endGroup();
- syslog(LOG_LOCAL0 | LOG_DEBUG, "软件卸载desktop文件名:%s", desktopfn.toLocal8Bit().data());
- QDBusInterface iface("com.ukui.panel.desktop",
- "/",
- "com.ukui.panel.desktop",
- QDBusConnection::sessionBus());
- iface.call("RemoveFromTaskbar", desktopfp);
- }
- }
-
- UkuiMenuInterface::appInfoVector.clear();
- UkuiMenuInterface::appInfoVector = m_ukuiMenuInterface->createAppInfoVector();
- Q_EMIT requestUpdateSignal(m_desktopfp);
-}
diff --git a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h
deleted file mode 100644
index 279dec1..0000000
--- a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see
-#include
-#include
-#include "ukuimenuinterface.h"
-#include
-#include
-
-class TabletDirectoryChangedThread: public QThread
-{
- Q_OBJECT
-public:
- TabletDirectoryChangedThread();
- ~TabletDirectoryChangedThread();
- void run();
-
-private:
- UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
- QSettings *setting = nullptr;
- TabletListView *m_listView = nullptr;
- QStandardItemModel *listmodel = nullptr;
-
- int index = 0;
-
-Q_SIGNALS:
- /**
- * @brief Request update signal
- */
- void requestUpdateSignal(QString desktopfp);
- void deleteAppSignal();
-
-};
-
-#endif // DIRECTORYCHANGEDTHREAD_H
diff --git a/src/BackProcess/Interface/currenttime_interface.cpp b/src/BackProcess/Interface/currenttime_interface.cpp
deleted file mode 100644
index 4608040..0000000
--- a/src/BackProcess/Interface/currenttime_interface.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#include "currenttime_interface.h"
-#include
-#define TIME_FORMAT "org.ukui.control-center.panel.plugins"
-#define TIME_FORMAT_KEY "hoursystem"
-#include
-#include
-
-CurrentTimeInterface::CurrentTimeInterface()
-{
- //获得语言环境
- dateTime = new QDateTime;
- myTimer = new QTimer();
- myTimer->start(1000);
-
- if (QGSettings::isSchemaInstalled(TIME_FORMAT)) {
- timeSetting = new QGSettings(TIME_FORMAT);
-
- if (timeSetting->keys().contains(TIME_FORMAT_KEY) && timeSetting->keys().contains("date")) {
- timeFormat = timeSetting->get(TIME_FORMAT_KEY).toString();
- timeSlash = timeSetting->get("date").toString();
- getDateTime(timeFormat);
- connect(timeSetting, &QGSettings::changed, this, [ = ](const QString & key) {
- if (key == "hoursystem") {
- timeFormat = timeSetting->get(TIME_FORMAT_KEY).toString();
- getDateTime(timeFormat);
- } else if (key == "date") {
- timeSlash = timeSetting->get("date").toString();
-
- if (timeSlash == "en") {
- currentDate = currentDate.replace("/", "-");
- } else {
- currentDate = currentDate.replace("-", "/");
- }
- }
- });
- }
- }
-
- connect(myTimer, &QTimer::timeout, [this]() {
- getDateTime(timeFormat);
- });
-}
-
-CurrentTimeInterface::~CurrentTimeInterface()
-{
- if (myTimer) {
- delete myTimer;
- }
-
- if (timeSetting) {
- delete timeSetting;
- }
-
- if (dateTime) {
- delete dateTime;
- }
-
- myTimer = nullptr;
- timeSetting = nullptr;
- dateTime = nullptr;
-}
-
-void CurrentTimeInterface::getDateTime(QString timeFormat)
-{
- if (timeFormat == "12") {
- twelveHourTime();
- } else if (timeFormat == "24") {
- twentyFourHourTime();
- }
-
- if (timeSlash == "cn") {
- currentDate = currentDate.replace("-", "/");
- }
-}
-
-//12制小时时间
-void CurrentTimeInterface::twelveHourTime()
-{
- currentTime = dateTime->currentDateTime().time().toString("hh:mm AP").split(" ").first();
- currentDate = dateTime->currentDateTime().date().toString("ddd MM-dd");
- currentWeek = dateTime->currentDateTime().time().toString("AP");
-}
-
-//24小时制时间
-void CurrentTimeInterface::twentyFourHourTime()
-{
- currentTime = dateTime->currentDateTime().time().toString("hh:mm");
- currentDate = dateTime->currentDateTime().date().toString("MM-dd");
- currentWeek = dateTime->currentDateTime().date().toString("ddd");
-}
diff --git a/src/BackProcess/Interface/currenttime_interface.h b/src/BackProcess/Interface/currenttime_interface.h
deleted file mode 100644
index cf08151..0000000
--- a/src/BackProcess/Interface/currenttime_interface.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef CURRENTTIMEINTERFACE_H
-#define CURRENTTIMEINTERFACE_H
-#include
-#include
-#include
-#include
-#include
-#include
-
-class CurrentTimeInterface : QObject
-{
-
-public:
- CurrentTimeInterface();
- ~CurrentTimeInterface();
-
- QString currentTime;
- QString currentWeek;
- QString currentDate;
-
-protected:
- void twelveHourTime();
- void twentyFourHourTime();
- void getDateTime(QString timeFormat);
-
-private:
- QDateTime *dateTime;
- QTimer *myTimer;
- QGSettings *timeSetting = nullptr;
- QString timeFormat;
- QString timeSlash;
-
-};
-
-#endif // CURRENTTIMEINTERFACE_H
diff --git a/src/BackProcess/Interface/ukui_chineseletter.cpp b/src/BackProcess/Interface/ukui_chineseletter.cpp
deleted file mode 100644
index 882be2f..0000000
--- a/src/BackProcess/Interface/ukui_chineseletter.cpp
+++ /dev/null
@@ -1,6252 +0,0 @@
-/*
- * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see
-#include
-
-UkuiChineseLetter::UkuiChineseLetter()
-{
-}
-
-bool UkuiChineseLetter::In(wchar_t start, wchar_t end, wchar_t code)
-{
- if (code >= start && code <= end) {
- return true;
- }
-
- return false;
-}
-
-char UkuiChineseLetter::Convert(int n)//此方法有缺陷,只能识别一级字库中的汉字
-{
- /*
- * GB2312码范围 (B0A1-F7FE)
- * HiByte (B0-F7) LoByte (A1-FE)
- *
- * GBK编码范围 (8140-FEFE)
- * 包含三大部分
- * 1.汉字区
- * a. GB2312汉字区。即GBK/2
- * b. GB13000.1扩充汉字区。包括GBK/3(CJK汉字)和GBK/4(CJK汉字和增补汉字)
- * 2.图形符号区
- * a. GB2312非汉字区。即GBK/1 A1A1-A9FE。还有10个小写罗马数字和GB12345增补符号
- * b. GB13000.1扩充非汉字区。即GBK/5 A840-A9A0非汉字符号、结构符...
- * 3.用户自定义区
- *
- */
- if (In(0xB0A1, 0xB0C4, n)) {
- return 'A';
- }
-
- if (In(0XB0C5, 0XB2C0, n)) {
- return 'B';
- }
-
- if (In(0xB2C1, 0xB4ED, n)) {
- return 'C';
- }
-
- if (In(0xB4EE, 0xB6E9, n)) {
- return 'D';
- }
-
- if (In(0xB6EA, 0xB7A1, n)) {
- return 'E';
- }
-
- if (In(0xB7A2, 0xB8c0, n)) {
- return 'F';
- }
-
- if (In(0xB8C1, 0xB9FD, n)) {
- return 'G';
- }
-
- if (In(0xB9FE, 0xBBF6, n)) {
- return 'H';
- }
-
- if (In(0xBBF7, 0xBFA5, n)) {
- return 'J';
- }
-
- if (In(0xBFA6, 0xC0AB, n)) {
- return 'K';
- }
-
- if (In(0xC0AC, 0xC2E7, n)) {
- return 'L';
- }
-
- if (In(0xC2E8, 0xC4C2, n)) {
- return 'M';
- }
-
- if (In(0xC4C3, 0xC5B5, n)) {
- return 'N';
- }
-
- if (In(0xC5B6, 0xC5BD, n)) {
- return 'O';
- }
-
- if (In(0xC5BE, 0xC6D9, n)) {
- return 'P';
- }
-
- if (In(0xC6DA, 0xC8BA, n)) {
- return 'Q';
- }
-
- if (In(0xC8BB, 0xC8F5, n)) {
- return 'R';
- }
-
- if (In(0xC8F6, 0xCBF0, n)) {
- return 'S';
- }
-
- if (In(0xCBFA, 0xCDD9, n)) {
- return 'T';
- }
-
- if (In(0xCDDA, 0xCEF3, n)) {
- return 'W';
- }
-
- if (In(0xCEF4, 0xD1B8, n)) {
- return 'X';
- }
-
- if (In(0xD1B9, 0xD4D0, n)) {
- return 'Y';
- }
-
- if (In(0xD4D1, 0xD7F9, n)) {
- return 'Z';
- }
-
- if (In(0x00, 0x7f, n)) {
- return n;
- }
-
- return '\0';
-}
-
-QString UkuiChineseLetter::getFirstLetter(const QString &src)
-{
- // wchar_t wchr = 0;
- // QString firstLetter;
- // if(src.size() > 0)
- // {
- // QString str = src.at(0);
- // QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
- // if(!pCodec) return QChar(' ');
- // QByteArray arr = pCodec->fromUnicode(str);
- // if(arr.size() == 1)
- // {
- // wchr = arr.at(0) & 0xff;
- // }
- // else if(arr.size() == 2)
- // {
- // wchr = (arr.at(0) & 0xff) << 8;
- // wchr |= (arr.at(1) & 0xff);
- // }
- // else
- // {
- //// qDebug() << "unknown word";
- // }
- // char c = Convert(wchr);
- // if(c != 0)
- // {
- // firstLetter.append(c);
- // }
- // }
- QString appnamePy = getPinyins(src);
-
- if (!appnamePy.isEmpty()) {
- return QString(appnamePy.at(0));
- } else {
- return QString();
- }
-}
-
-QString UkuiChineseLetter::getFirstLetters(const QString &src)
-{
- QString firstLetters;
-
- for (int i = 0; i < src.length(); i++) {
- QString str = src.at(i);
- QTextCodec *pCodec = QTextCodec::codecForName("gb2312");
-
- if (!pCodec) {
- return QChar(' ');
- }
-
- QByteArray arr = pCodec->fromUnicode(str);
- wchar_t wchr = 0;
-
- if (arr.size() == 1) {
- wchr = arr.at(0) & 0xff;
- } else if (arr.size() == 2) {
- wchr = (arr.at(0) & 0xff) << 8;
- wchr |= (arr.at(1) & 0xff);
- } else {
- //qDebug() << "unknown word";
- }
-
- char c = Convert(wchr);
-
- if (c != 0) {
- firstLetters.append(c);
- }
- }
-
- return firstLetters;
-}
-
-QString UkuiChineseLetter::getFirstLettersAll(const QString &src)
-{
- QString pinyins;
-
- for (int i = 0; i < src.length(); i++) {
- QString str = src.at(i);
- QTextCodec *pCodec = QTextCodec::codecForName("gb2312");
-
- if (!pCodec) {
- return QChar(' ');
- }
-
- QByteArray arr = pCodec->fromUnicode(str);
- unsigned char high = 0;
- unsigned char low = 0;
- int code = 0;
-
- if (arr.size() == 1) {
- high = 0;
- low = arr.at(0) & 0xff;
- } else if (arr.size() == 2) {
- high = arr.at(0) & 0xff;
- low = arr.at(1) & 0xff;
- }
-
- if (high < 0xa1 || low < 0xa1) {
- continue;
- } else {
- code = (high - 0xa0) * 100 + low - 0xa0;
- }
-
- pinyins += getPinyin(code).at(0);
- }
-
- return pinyins;
-}
-
-
-QString UkuiChineseLetter::getPinyins(const QString &text)
-{
- QString pinyins;
-
- for (int i = 0; i < text.length(); i++) {
- QChar c = text.at(i);
-
- if ((c >= 0 && c <= 127)) {
- pinyins += c.toUpper();
- continue;
- }
-
- QString str = text.at(i);
- QTextCodec *pCodec = QTextCodec::codecForName("gb2312");
-
- if (!pCodec) {
- return QChar(' ');
- }
-
- QByteArray arr = pCodec->fromUnicode(str);
- unsigned char high = 0;
- unsigned char low = 0;
- int code = 0;
-
- if (arr.size() == 1) {
- high = 0;
- low = arr.at(0) & 0xff;
- } else if (arr.size() == 2) {
- high = arr.at(0) & 0xff;
- low = arr.at(1) & 0xff;
- }
-
- if (high < 0xa1 || low < 0xa1) {
- continue;
- } else {
- code = (high - 0xa0) * 100 + low - 0xa0;
- }
-
- pinyins += getPinyin(code);
- }
-
- return pinyins;
-}
-
-
-QString UkuiChineseLetter::getPinyin(int code)//此方法可以获取所有汉字的拼音
-{
- QString pinyin;
-
- switch (code) {
- case 6325:
- case 6436:
- case 7571:
- case 7925:
- pinyin = "A";
- break;
-
- case 6263:
- case 6440:
- case 7040:
- case 7208:
- case 7451:
- case 7733:
- case 7945:
- case 8616:
- pinyin = "AI";
- break;
-
- case 5847:
- case 5991:
- case 6278:
- case 6577:
- case 6654:
- case 7281:
- case 7907:
- case 8038:
- case 8786:
- pinyin = "AN";
- break;
- pinyin = "ANG";
- break;
-
- case 5974:
- case 6254:
- case 6427:
- case 6514:
- case 6658:
- case 6959:
- case 7033:
- case 7081:
- case 7365:
- case 8190:
- case 8292:
- case 8643:
- case 8701:
- case 8773:
- pinyin = "AO";
- break;
-
- case 6056:
- case 6135:
- case 6517:
- case 7857:
- case 8446:
- case 8649:
- case 8741:
- pinyin = "BA";
- break;
-
- case 6267:
- case 6334:
- case 7494:
- pinyin = "BAI";
- break;
-
- case 5870:
- case 5964:
- case 7851:
- case 8103:
- case 8113:
- case 8418:
- pinyin = "BAN";
- break;
-
- case 6182:
- case 6826:
- pinyin = "BANG";
- break;
-
- case 6165:
- case 7063:
- case 7650:
- case 8017:
- case 8157:
- case 8532:
- case 8621:
- pinyin = "BAO";
- break;
-
- case 5635:
- case 5873:
- case 5893:
- case 5993:
- case 6141:
- case 6703:
- case 7753:
- case 8039:
- case 8156:
- case 8645:
- case 8725:
- pinyin = "BEI";
- break;
-
- case 5946:
- case 5948:
- case 7458:
- case 7928:
- pinyin = "BEN";
- break;
-
- case 6452:
- case 7420:
- pinyin = "BENG";
- break;
-
- case 5616:
- case 5734:
- case 6074:
- case 6109:
- case 6221:
- case 6333:
- case 6357:
- case 6589:
- case 6656:
- case 6725:
- case 6868:
- case 6908:
- case 6986:
- case 6994:
- case 7030:
- case 7052:
- case 7221:
- case 7815:
- case 7873:
- case 7985:
- case 8152:
- case 8357:
- case 8375:
- case 8387:
- case 8416:
- case 8437:
- case 8547:
- case 8734:
- pinyin = "BI";
- break;
-
- case 5650:
- case 5945:
- case 6048:
- case 6677:
- case 6774:
- case 7134:
- case 7614:
- case 7652:
- case 7730:
- case 7760:
- case 8125:
- case 8159:
- case 8289:
- case 8354:
- case 8693:
- pinyin = "BIAN";
- break;
-
- case 7027:
- case 7084:
- case 7609:
- case 7613:
- case 7958:
- case 7980:
- case 8106:
- case 8149:
- case 8707:
- case 8752:
- pinyin = "BIAO";
- break;
-
- case 8531:
- pinyin = "BIE";
- break;
-
- case 5747:
- case 6557:
- case 7145:
- case 7167:
- case 7336:
- case 7375:
- case 7587:
- case 7957:
- case 8738:
- case 8762:
- pinyin = "BIN";
- break;
-
- case 5787:
- case 5891:
- case 6280:
- pinyin = "BING";
- break;
-
- case 5781:
- case 6403:
- case 6636:
- case 7362:
- case 7502:
- case 7771:
- case 7864:
- case 8030:
- case 8404:
- case 8543:
- case 8559:
- pinyin = "BO";
- break;
-
- case 6318:
- case 6945:
- case 7419:
- case 7446:
- case 7848:
- case 7863:
- case 8519:
- pinyin = "BU";
- break;
-
- case 6474:
- case 7769:
- pinyin = "CA";
- break;
- pinyin = "CAI";
- break;
-
- case 6978:
- case 7078:
- case 7218:
- case 8451:
- case 8785:
- pinyin = "CAN";
- break;
-
- case 5687:
- pinyin = "CANG";
- break;
-
- case 6448:
- case 6878:
- case 8309:
- case 8429:
- pinyin = "CAO";
- break;
-
- case 6692:
- pinyin = "CE";
- break;
-
- case 6515:
- case 6825:
- pinyin = "CEN";
- break;
-
- case 6465:
- pinyin = "CENG";
- break;
-
- case 6639:
- case 6766:
- case 7017:
- case 7230:
- case 7311:
- case 7322:
- case 7363:
- case 7942:
- case 7979:
- case 8135:
- pinyin = "CHA";
- break;
-
- case 5713:
- case 7846:
- case 8091:
- case 8218:
- pinyin = "CHAI";
- break;
-
- case 5770:
- case 5838:
- case 6159:
- case 6667:
- case 6893:
- case 6904:
- case 6981:
- case 7031:
- case 7086:
- case 7472:
- case 7688:
- case 7966:
- case 8324:
- case 8580:
- pinyin = "CHAN";
- break;
-
- case 5686:
- case 5943:
- case 6041:
- case 6137:
- case 6660:
- case 6568:
- case 6749:
- case 7029:
- case 7047:
- case 7438:
- case 7509:
- case 8680:
- pinyin = "CHANG";
- break;
-
- case 6687:
- case 7443:
- case 8173:
- pinyin = "CHAO";
- break;
-
- case 5969:
- case 7726:
- pinyin = "CHE";
- break;
-
- case 5840:
- case 5863:
- case 6251:
- case 6433:
- case 6923:
- case 7201:
- case 7320:
- case 7755:
- case 8619:
- pinyin = "CHEN";
- break;
-
- case 5609:
- case 5984:
- case 7239:
- case 7263:
- case 7583:
- case 7810:
- case 7881:
- case 7905:
- case 8146:
- case 8241:
- case 8508:
- pinyin = "CHENG";
- break;
-
- case 5749:
- case 6015:
- case 6061:
- case 6319:
- case 6374:
- case 6420:
- case 6445:
- case 6633:
- case 7042:
- case 7523:
- case 7787:
- case 8023:
- case 8101:
- case 8161:
- case 8231:
- case 8304:
- case 8355:
- case 8388:
- case 8489:
- case 8556:
- case 8746:
- pinyin = "CHI";
- break;
-
- case 6091:
- case 6671:
- case 6731:
- case 8409:
- case 8430:
- pinyin = "CHONG";
- break;
-
- case 5717:
- case 6492:
- case 6716:
- case 8112:
- case 8637:
- pinyin = "CHOU";
- break;
-
- case 5601:
- case 5927:
- case 6680:
- case 6732:
- case 7109:
- case 7238:
- case 7290:
- case 7343:
- case 8150:
- case 8260:
- case 8573:
- case 8777:
- pinyin = "CHU";
- break;
-
- case 6285:
- case 6408:
- case 7590:
- case 8563:
- pinyin = "CHUAI";
- break;
-
- case 6622:
- case 6955:
- case 7516:
- case 7843:
- case 8413:
- pinyin = "CHUAN";
- break;
-
- case 6675:
- pinyin = "CHUANG";
- break;
-
- case 5879:
- case 7302:
- case 7319:
- pinyin = "CHUI";
- break;
-
- case 6127:
- case 8040:
- case 8277:
- pinyin = "CHUN";
- break;
-
- case 7401:
- case 8554:
- case 8626:
- pinyin = "CHUO";
- break;
- pinyin = "CI";
- break;
-
- case 6075:
- case 6358:
- case 7684:
- case 8043:
- case 8457:
- pinyin = "4337 伺";
- break;
-
- case 6042:
- case 6840:
- case 7085:
- case 7193:
- case 7214:
- case 7240:
- pinyin = "CONG";
- break;
-
- case 7308:
- case 7403:
- case 7577:
- pinyin = "COU";
- break;
-
- case 6180:
- case 6562:
- case 6607:
- case 7367:
- case 8501:
- case 8530:
- case 8577:
- pinyin = "CU";
- break;
-
- case 5764:
- case 6305:
- case 7664:
- case 7973:
- pinyin = "CUAN";
- break;
-
- case 6718:
- case 6145:
- case 6393:
- case 7213:
- case 7333:
- case 7505:
- case 8631:
- pinyin = "CUI";
- break;
-
- case 6666:
- case 8169:
- pinyin = "CUN";
- break;
-
- case 5640:
- case 6547:
- case 7566:
- case 7917:
- case 7983:
- case 8078:
- case 8526:
- case 8567:
- pinyin = "CUO";
- break;
-
- case 6239:
- case 6353:
- case 6410:
- case 6682:
- case 7007:
- case 8155:
- case 8346:
- case 8716:
- case 8718:
- pinyin = "DA";
- break;
-
- case 6004:
- case 6316:
- case 6523:
- case 6942:
- case 7110:
- case 7173:
- case 8776:
- pinyin = "DAI";
- break;
-
- case 5757:
- case 6144:
- case 6402:
- case 7373:
- case 7470:
- case 7781:
- case 8067:
- case 8087:
- case 8185:
- case 8376:
- pinyin = "DAN";
- break;
-
- case 5852:
- case 5942:
- case 6148:
- case 6920:
- case 7724:
- case 7885:
- case 8141:
- pinyin = "DANG";
- break;
-
- case 6322:
- case 6665:
- case 7514:
- case 8478:
- pinyin = "DAO";
- break;
-
- case 7929:
- pinyin = "DE";
- break;
-
- case 6466:
- case 6556:
- case 7413:
- case 7767:
- case 7975:
- case 8403:
- pinyin = "DENG";
- break;
-
- case 5621:
- case 5765:
- case 5814:
- case 5848:
- case 5901:
- case 5970:
- case 6122:
- case 6454:
- case 7023:
- case 7116:
- case 7260:
- case 7306:
- case 7475:
- case 7738:
- case 7758:
- case 7791:
- case 7965:
- case 8438:
- case 8730:
- pinyin = "DI";
- break;
-
- case 6439:
- pinyin = "DIA";
- break;
-
- case 5871:
- case 5967:
- case 6559:
- case 7172:
- case 7868:
- case 8116:
- case 8118:
- case 8401:
- case 8558:
- pinyin = "DIAN";
- break;
-
- case 7886:
- case 8585:
- case 8684:
- pinyin = "DIAO";
- break;
-
- case 5976:
- case 6006:
- case 6273:
- case 6409:
- case 7526:
- case 8012:
- case 8183:
- case 8562:
- case 8688:
- pinyin = "DIE";
- break;
-
- case 5674:
- case 6404:
- case 7164:
- case 7575:
- case 7754:
- case 7814:
- case 8059:
- case 8184:
- case 8490:
- pinyin = "DING";
- break;
-
- case 7891:
- pinyin = "DIU";
- break;
-
- case 5977:
- case 6343:
- case 6520:
- case 6528:
- case 7517:
- case 7543:
- case 7556:
- case 7747:
- case 8020:
- pinyin = "DONG";
- break;
-
- case 6190:
- case 8128:
- case 8229:
- case 8391:
- pinyin = "DOU";
- break;
-
- case 6022:
- case 6429:
- case 6834:
- case 7292:
- case 7525:
- case 8328:
- case 8338:
- case 8739:
- case 8782:
- pinyin = "DU";
- break;
-
- case 7318:
- case 7649:
- case 8393:
- pinyin = "DUAN";
- break;
-
- case 7701:
- case 7713:
- case 7752:
- pinyin = "DUI";
- break;
-
- case 6771:
- case 7632:
- case 7727:
- case 7766:
- case 7779:
- case 7970:
- case 8527:
- pinyin = "DUN";
- break;
-
- case 6345:
- case 6365:
- case 6785:
- case 7122:
- case 7876:
- case 8154:
- case 8566:
- pinyin = "DUO";
- break;
-
- case 5612:
- case 5832:
- case 5844:
- case 5949:
- case 6035:
- case 6113:
- case 6164:
- case 6332:
- case 6721:
- case 6977:
- case 7025:
- case 7378:
- case 7581:
- case 7916:
- case 7941:
- case 8042:
- case 8206:
- case 8689:
- pinyin = "E";
- break;
-
- case 6176:
- case 6284:
- pinyin = "EN";
- break;
-
- case 5706:
- case 6939:
- case 7177:
- case 7879:
- case 8025:
- case 8660:
- pinyin = "ER";
- break;
-
- case 5950:
- case 7732:
- pinyin = "FA";
- break;
-
- case 6212:
- case 6232:
- case 6506:
- case 7283:
- case 7660:
- case 7818:
- case 8576:
- pinyin = "FAN";
- break;
-
- case 5890:
- case 7242:
- case 7853:
- case 8419:
- case 8648:
- pinyin = "FANG";
- break;
-
- case 6032:
- case 6584:
- case 6713:
- case 6839:
- case 6990:
- case 7119:
- case 7328:
- case 7572:
- case 7619:
- case 7673:
- case 7948:
- case 8082:
- case 8267:
- case 8385:
- case 8468:
- case 8613:
- case 8678:
- pinyin = "FEI";
- break;
-
- case 5739:
- case 6915:
- case 7291:
- case 8687:
- case 8787:
- pinyin = "FEN";
- break;
-
- case 5726:
- case 5926:
- case 6155:
- case 6384:
- case 6767:
- case 7731:
- pinyin = "FENG";
- break;
- pinyin = "FO";
- break;
-
- case 8330:
- pinyin = "FOU";
- break;
-
- case 5775:
- case 5776:
- case 5914:
- case 6029:
- case 6062:
- case 6119:
- case 6142:
- case 6252:
- case 6327:
- case 6505:
- case 6686:
- case 6870:
- case 6985:
- case 7058:
- case 7066:
- case 7106:
- case 7108:
- case 7285:
- case 7471:
- case 7680:
- case 7741:
- case 7774:
- case 7775:
- case 7823:
- case 7991:
- case 8005:
- case 8222:
- case 8261:
- case 8280:
- case 8283:
- case 8479:
- case 8535:
- case 8538:
- case 8654:
- case 8691:
- pinyin = "FU";
- break;
-
- case 6246:
- case 7056:
- case 7057:
- case 7424:
- case 7837:
- pinyin = " GA";
- break;
-
- case 5604:
- case 5875:
- case 5982:
- case 7414:
- case 7464:
- pinyin = "GAI";
- break;
-
- case 5965:
- case 6053:
- case 6247:
- case 6306:
- case 6779:
- case 6838:
- case 6887:
- case 7104:
- case 7347:
- case 7426:
- case 7723:
- case 8065:
- case 8491:
- pinyin = "GAN";
- break;
-
- case 7716:
- case 7824:
- case 8364:
- pinyin = "GANG";
- break;
-
- case 5626:
- case 5830:
- case 5912:
- case 6227:
- case 7141:
- case 7332:
- case 7334:
- case 7429:
- case 7915:
- pinyin = "GAO";
- break;
-
- case 5610:
- case 5678:
- case 5933:
- case 5957:
- case 6010:
- case 6435:
- case 7092:
- case 7501:
- case 7585:
- case 7749:
- case 7951:
- case 8143:
- case 8220:
- case 8420:
- case 8732:
- pinyin = "GE";
- break;
- pinyin = "GEI";
- break;
-
- case 5608:
- case 6102:
- case 6371:
- case 8462:
- pinyin = "GEN";
- break;
-
- case 6376:
- case 6657:
- case 7114:
- case 8665:
- pinyin = "GENG";
- break;
-
- case 7178:
- case 7537:
- case 8228:
- case 8601:
- pinyin = "GONG";
- break;
-
- case 5694:
- case 5824:
- case 6524:
- case 6960:
- case 7037:
- case 7135:
- case 7259:
- case 7477:
- case 7616:
- case 8349:
- case 8384:
- case 8724:
- pinyin = "GOU";
- break;
-
- case 5637:
- case 5812:
- case 6152:
- case 6536:
- case 6773:
- case 7284:
- case 7379:
- case 7484:
- case 7486:
- case 7591:
- case 7617:
- case 7813:
- case 7825:
- case 7860:
- case 7932:
- case 8019:
- case 8083:
- case 8233:
- case 8494:
- case 8593:
- case 8681:
- case 8729:
- pinyin = "GU";
- break;
-
- case 5652:
- case 5820:
- case 6341:
- case 7273:
- case 7550:
- case 8027:
- pinyin = "GUA";
- break;
- pinyin = "GUAI";
- break;
-
- case 5736:
- case 6124:
- case 6272:
- case 6842:
- case 7834:
- case 8057:
- case 8170:
- case 8704:
- pinyin = "GUAN";
- break;
-
- case 6359:
- case 6578:
- case 7270:
- case 7555:
- pinyin = "GUANG";
- break;
-
- case 5648:
- case 5659:
- case 6649:
- case 7003:
- case 7277:
- case 7433:
- case 7448:
- case 8007:
- case 8394:
- case 8657:
- case 8712:
- pinyin = "GUI";
- break;
-
- case 5782:
- case 7121:
- case 7762:
- case 8671:
- pinyin = "GUN";
- break;
-
- case 5769:
- case 6266:
- case 6335:
- case 6494:
- case 6538:
- case 6603:
- case 7304:
- case 7529:
- case 8188:
- case 8268:
- case 8269:
- pinyin = "GUO";
- break;
-
- case 7894:
- pinyin = "HA";
- break;
-
- case 6443:
- case 7560:
- case 8516:
- pinyin = "HAI";
- break;
-
- case 5885:
- case 6153:
- case 6294:
- case 6759:
- case 6911:
- case 7447:
- case 7642:
- case 8192:
- case 8205:
- case 8232:
- case 8793:
- pinyin = "HAN";
- break;
-
- case 6776:
- case 7112:
- case 8194:
- pinyin = "HANG";
- break;
-
- case 6179:
- case 6222:
- case 6438:
- case 6467:
- case 6909:
- case 6916:
- case 7427:
- case 8009:
- case 8211:
- case 8226:
- pinyin = "HAO";
- break;
-
- case 5813:
- case 5932:
- case 5954:
- case 6432:
- case 6756:
- case 7434:
- case 7833:
- case 8202:
- case 8234:
- case 8471:
- pinyin = "HE";
- break;
- pinyin = "HEI";
- break;
- pinyin = "HEN";
- break;
-
- case 6231:
- case 7181:
- case 7276:
- pinyin = "HENG";
- break;
-
- case 5768:
- case 5774:
- case 5807:
- case 6106:
- case 6214:
- case 6216:
- case 6740:
- case 6792:
- pinyin = "HONG";
- break;
-
- case 6009:
- case 6565:
- case 6943:
- case 8090:
- case 8383:
- case 8455:
- case 8655:
- case 8731:
- pinyin = "HOU";
- break;
-
- case 5792:
- case 6392:
- case 6481:
- case 6518:
- case 6609:
- case 6679:
- case 6717:
- case 6816:
- case 6879:
- case 7190:
- case 7346:
- case 7385:
- case 7618:
- case 7635:
- case 7646:
- case 7670:
- case 7672:
- case 7679:
- case 8013:
- case 8032:
- case 8041:
- case 8055:
- case 8343:
- case 8513:
- case 8590:
- pinyin = "HU";
- break;
-
- case 7072:
- case 7275:
- case 7725:
- case 7892:
- pinyin = "HUA";
- break;
-
- case 8555:
- pinyin = "HUAI";
- break;
-
- case 5928:
- case 6140:
- case 6307:
- case 6487:
- case 6621:
- case 6801:
- case 6829:
- case 6881:
- case 6930:
- case 6953:
- case 7157:
- case 7944:
- case 8673:
- case 8763:
- pinyin = "HUAN";
- break;
-
- case 5882:
- case 6569:
- case 6850:
- case 6874:
- case 6956:
- case 7211:
- case 7533:
- case 8105:
- case 8308:
- case 8382:
- case 8692:
- pinyin = "HUANG";
- break;
-
- case 5822:
- case 6078:
- case 6086:
- case 6205:
- case 6352:
- case 6360:
- case 6425:
- case 6736:
- case 6807:
- case 6811:
- case 6971:
- case 7132:
- case 7185:
- case 7445:
- case 7703:
- case 8219:
- case 8319:
- case 8766:
- pinyin = "HUI";
- break;
-
- case 5827:
- case 6638:
- case 6752:
- case 6867:
- pinyin = "HUN";
- break;
-
- case 5669:
- case 6229:
- case 6311:
- case 6475:
- case 6623:
- case 7856:
- case 7933:
- case 7976:
- case 8175:
- case 8322:
- pinyin = "HUO";
- break;
-
- case 5629:
- case 5632:
- case 5662:
- case 5705:
- case 5742:
- case 5952:
- case 6024:
- case 6033:
- case 6193:
- case 6210:
- case 6265:
- case 6320:
- case 6350:
- case 6383:
- case 6507:
- case 6553:
- case 6809:
- case 6976:
- case 7087:
- case 7160:
- case 7165:
- case 7314:
- case 7374:
- case 7410:
- case 7411:
- case 7469:
- case 7473:
- case 7487:
- case 7620:
- case 7722:
- case 7831:
- case 7990:
- case 8002:
- case 8104:
- case 8217:
- case 8337:
- case 8339:
- case 8463:
- case 8550:
- case 8611:
- case 8661:
- case 8674:
- case 8757:
- case 8768:
- pinyin = "JI";
- break;
-
- case 5704:
- case 5903:
- case 6171:
- case 6521:
- case 6804:
- case 6940:
- case 7176:
- case 7409:
- case 7546:
- case 7702:
- case 7882:
- case 7956:
- case 8072:
- case 8142:
- case 8244:
- case 8353:
- case 8434:
- case 8542:
- pinyin = "JIA";
- break;
-
- case 5752:
- case 5841:
- case 5857:
- case 6149:
- case 6183:
- case 6286:
- case 6853:
- case 6931:
- case 6932:
- case 7144:
- case 7237:
- case 7305:
- case 7407:
- case 7415:
- case 7480:
- case 7489:
- case 7506:
- case 7576:
- case 7790:
- case 7921:
- case 8047:
- case 8148:
- case 8340:
- case 8469:
- case 8534:
- case 8561:
- case 8668:
- case 8721:
- pinyin = "JIAN";
- break;
-
- case 6092:
- case 6814:
- case 7113:
- case 7154:
- case 7481:
- case 7768:
- case 8180:
- case 8461:
- case 8488:
- pinyin = "JIANG";
- break;
-
- case 5714:
- case 5753:
- case 6020:
- case 6090:
- case 6256:
- case 6461:
- case 6572:
- case 7015:
- case 7524:
- case 8008:
- case 8052:
- case 8252:
- case 8520:
- case 8551:
- case 8662:
- pinyin = "JIAO";
- break;
-
- case 5806:
- case 5821:
- case 6255:
- case 6414:
- case 7028:
- case 7061:
- case 7278:
- case 7757:
- case 8060:
- case 8201:
- case 8227:
- case 8441:
- case 8658:
- case 8726:
- pinyin = "JIE";
- break;
-
- case 5865:
- case 6103:
- case 6132:
- case 6468:
- case 6643:
- case 6659:
- case 7138:
- case 7210:
- case 7340:
- case 7465:
- case 7478:
- case 8138:
- pinyin = "JIN";
- break;
-
- case 5751:
- case 5869:
- case 6128:
- case 6616:
- case 6729:
- case 6794:
- case 6941:
- case 6982:
- case 7026:
- case 7534:
- case 7554:
- case 7570:
- case 7626:
- pinyin = "JIANG";
- break;
-
- case 6936:
- case 7671:
- pinyin = "JIONG";
- break;
-
- case 5754:
- case 6417:
- case 6746:
- case 7249:
- case 7274:
- case 8015:
- case 8053:
- case 8481:
- case 8761:
- pinyin = "JIU";
- break;
-
- case 5738:
- case 5810:
- case 6036:
- case 6058:
- case 6076:
- case 6268:
- case 6965:
- case 6980:
- case 7202:
- case 7307:
- case 7316:
- case 7323:
- case 7357:
- case 7381:
- case 7488:
- case 7611:
- case 7850:
- case 7924:
- case 8022:
- case 8132:
- case 8153:
- case 8482:
- case 8522:
- case 8565:
- case 8620:
- case 8634:
- case 8722:
- pinyin = "JU";
- break;
-
- case 5918:
- case 6590:
- case 6824:
- case 7280:
- case 7835:
- case 7935:
- case 7952:
- case 8633:
- pinyin = "JUAN";
- break;
-
- case 5642:
- case 5667:
- case 5860:
- case 5939:
- case 6207:
- case 6421:
- case 6457:
- case 6469:
- case 6540:
- case 6617:
- case 7062:
- case 7169:
- case 7286:
- case 7351:
- case 7663:
- case 7967:
- case 8574:
- case 8591:
- pinyin = "JUE";
- break;
-
- case 6260:
- case 8168:
- case 8362:
- case 8769:
- pinyin = "JUN";
- break;
-
- case 5671:
- case 6339:
- case 7544:
- pinyin = "KA";
- break;
-
- case 5660:
- case 5978:
- case 6160:
- case 6673:
- case 6693:
- case 7888:
- case 7920:
- case 7939:
- pinyin = "KAI";
- break;
-
- case 5709:
- case 6108:
- case 7412:
- case 7772:
- case 7811:
- pinyin = "KAN";
- break;
-
- case 5688:
- case 6742:
- case 7854:
- pinyin = "KANG";
- break;
-
- case 6974:
- case 7264:
- case 7491:
- case 7877:
- pinyin = "KAO";
- break;
-
- case 6430:
- case 6519:
- case 6701:
- case 6859:
- case 7076:
- case 7128:
- case 7170:
- case 7380:
- case 7520:
- case 7807:
- case 7861:
- case 7930:
- case 7993:
- case 8066:
- case 8129:
- case 8204:
- case 8282:
- case 8733:
- pinyin = "KE";
- break;
-
- case 8144:
- pinyin = "KEN";
- break;
-
- case 7912:
- pinyin = "KENG";
- break;
-
- case 5737:
- case 6539:
- case 8377:
- pinyin = "KONG";
- break;
-
- case 6050:
- case 6202:
- case 6321:
- case 7778:
- case 8356:
- pinyin = "KOU";
- break;
-
- case 5658:
- case 6005:
- case 6423:
- case 7111:
- case 8728:
- pinyin = "KU";
- break;
-
- case 5708:
- pinyin = "KUA";
- break;
-
- case 5665:
- case 5906:
- case 6364:
- case 6586:
- case 7558:
- pinyin = "KUAI";
- break;
-
- case 8737:
- pinyin = "KUAN";
- break;
-
- case 5818:
- case 5831:
- case 5887:
- case 5959:
- case 6237:
- case 6349:
- case 7094:
- case 7460:
- pinyin = "KUANG";
- break;
-
- case 5624:
- case 5649:
- case 5771:
- case 6162:
- case 6281:
- case 6413:
- case 6416:
- case 6720:
- case 6951:
- case 7450:
- case 7805:
- case 8606:
- case 8743:
- pinyin = "KUI";
- break;
-
- case 6204:
- case 6245:
- case 6458:
- case 6618:
- case 6928:
- case 7152:
- case 7841:
- case 8051:
- pinyin = "LIAO";
- break;
-
- case 5793:
- case 5988:
- case 6270:
- case 6354:
- case 6803:
- case 8483:
- case 8581:
- case 8764:
- pinyin = "LIE";
- break;
-
- case 6194:
- case 6388:
- case 6555:
- case 6662:
- case 6733:
- case 6964:
- case 7361:
- case 7405:
- case 7602:
- case 7812:
- case 8452:
- case 8579:
- case 8775:
- pinyin = "LIN";
- break;
-
- case 5925:
- case 6063:
- case 6342:
- case 6482:
- case 6786:
- case 7117:
- case 7258:
- case 7289:
- case 7418:
- case 8186:
- case 8240:
- case 8465:
- case 8676:
- pinyin = "LING";
- break;
-
- case 6815:
- case 6962:
- case 7082:
- case 7124:
- case 7628:
- case 7654:
- case 7919:
- case 7954:
- case 8050:
- case 8644:
- pinyin = "LIU";
- break;
-
- case 5966:
- case 6055:
- case 6781:
- case 7171:
- case 7248:
- case 7542:
- case 7735:
- case 8110:
- pinyin = "LONG";
- break;
-
- case 5745:
- case 6168:
- case 6422:
- case 6548:
- case 7946:
- case 8092:
- case 8179:
- case 8287:
- case 8735:
- pinyin = "LOU";
- break;
-
- case 6744:
- case 7321:
- case 7586:
- case 7918:
- case 7989:
- case 8158:
- pinyin = "Lü";
- break;
-
- case 5968:
- case 6303:
- case 6464:
- case 6782:
- case 6843:
- case 6885:
- case 6954:
- case 7220:
- case 7251:
- case 7354:
- case 7391:
- case 7404:
- case 7510:
- case 7545:
- case 7969:
- case 8021:
- case 8056:
- case 8392:
- case 8421:
- case 8652:
- pinyin = "LU";
- break;
-
- case 5785:
- case 7014:
- case 7279:
- case 8029:
- case 8639:
- pinyin = "LUAN";
- break;
- pinyin = "LǖE";
- break;
- pinyin = "LUN";
- break;
-
- case 5732:
- case 5789:
- case 6093:
- case 6259:
- case 6291:
- case 6604:
- case 6788:
- case 6880:
- case 7183:
- case 7301:
- case 7565:
- case 7961:
- case 8107:
- case 8635:
- pinyin = "LUO";
- break;
-
- case 6328:
- pinyin = "M";
- break;
-
- case 6373:
- case 6579:
- case 7054:
- case 7231:
- case 8301:
- pinyin = "MA";
- break;
-
- case 5929:
- case 6104:
- case 8618:
- pinyin = "MAI";
- break;
-
- case 6012:
- case 6503:
- case 7147:
- case 7655:
- case 7960:
- case 8209:
- case 8293:
- case 8709:
- case 8720:
- pinyin = "MAN";
- break;
-
- case 5888:
- case 6861:
- case 7743:
- case 8294:
- pinyin = "MANG";
- break;
-
- case 5783:
- case 6066:
- case 6525:
- case 6787:
- case 7203:
- case 7436:
- case 7483:
- case 7503:
- case 7624:
- case 7714:
- case 7806:
- case 8317:
- case 8754:
- pinyin = "MAO";
- break;
-
- case 6114:
- case 6550:
- case 6613:
- case 6828:
- case 6856:
- case 7325:
- case 7949:
- case 8044:
- case 8139:
- case 8740:
- pinyin = "MEI";
- break;
-
- case 6249:
- case 7643:
- case 7715:
- case 7845:
- pinyin = "MEN";
- break;
-
- case 5934:
- case 6189:
- case 6211:
- case 6734:
- case 7592:
- case 7770:
- case 8221:
- case 8276:
- case 8323:
- case 8427:
- case 8431:
- pinyin = "MENG";
- break;
-
- case 5634:
- case 5855:
- case 6234:
- case 6368:
- case 6455:
- case 6608:
- case 6772:
- case 6921:
- case 6984:
- case 7563:
- case 7682:
- case 8445:
- case 8767:
- case 8771:
- pinyin = "MI";
- break;
-
- case 6770:
- case 6837:
- case 6847:
- case 7579:
- case 7777:
- pinyin = "MIAN";
- break;
-
- case 6387:
- case 6967:
- case 7131:
- case 7149:
- case 7234:
- case 7721:
- case 7780:
- case 8037:
- pinyin = "MIAO";
- break;
-
- case 5631:
- case 6367:
- case 8326:
- case 8390:
- pinyin = "MIE";
- break;
-
- case 6069:
- case 6526:
- case 6741:
- case 6793:
- case 7137:
- case 7168:
- case 7175:
- case 7710:
- case 8710:
- case 8628:
- pinyin = "MIN";
- break;
-
- case 5804:
- case 6088:
- case 6873:
- case 7452:
- case 7808:
- case 8504:
- pinyin = "MING";
- break;
- pinyin = "MIU";
- break;
-
- case 5851:
- case 6052:
- case 6175:
- case 6641:
- case 7038:
- case 7366:
- case 7950:
- case 7987:
- case 8102:
- case 8182:
- case 8586:
- case 8588:
- case 8765:
- pinyin = "MO";
- break;
-
- case 5716:
- case 6372:
- case 7788:
- case 8254:
- case 8290:
- case 8642:
- pinyin = "MOU";
- break;
-
- case 5679:
- case 5973:
- case 6057:
- case 6769:
- case 7504:
- case 7866:
- pinyin = "MU";
- break;
-
- case 6437:
- pinyin = "N";
- break;
-
- case 6264:
- case 7539:
- case 7953:
- case 8136:
- pinyin = "NA";
- break;
-
- case 5630:
- case 6021:
- case 6133:
- case 7245:
- pinyin = "NAI";
- break;
-
- case 6411:
- case 6478:
- case 6479:
- case 7310:
- case 7578:
- case 8279:
- case 8486:
- pinyin = "NAN";
- break;
-
- case 6313:
- case 6476:
- case 6646:
- case 7457:
- pinyin = "NANG";
- break;
-
- case 5611:
- case 5981:
- case 6346:
- case 6614:
- case 7207:
- case 7748:
- case 7883:
- case 8245:
- pinyin = "NAO";
- break;
-
- case 5811:
- pinyin = "NE";
- break;
- pinyin = "NEI";
- break;
-
- case 7705:
- pinyin = "NEN";
- break;
- pinyin = "NENG";
- break;
-
- case 5703:
- case 5972:
- case 6605:
- case 6685:
- case 7439:
- case 7627:
- case 7711:
- case 7794:
- case 7874:
- case 8682:
- pinyin = "NI";
- break;
-
- case 5605:
- case 5994:
- case 7393:
- case 8004:
- case 8651:
- case 8683:
- pinyin = "NIAN";
- break;
- pinyin = "NIANG";
- break;
-
- case 6064:
- case 7053:
- case 7569:
- case 8433:
- pinyin = "NIAO";
- break;
-
- case 5877:
- case 6233:
- case 6431:
- case 8208:
- case 8411:
- case 8570:
- pinyin = "NIE";
- break;
- pinyin = "NIN";
- break;
-
- case 5690:
- case 6344:
- case 6924:
- case 8187:
- pinyin = "NING";
- break;
-
- case 6580:
- case 6678:
- case 7004:
- pinyin = "NIU";
- break;
-
- case 5715:
- case 6370:
- pinyin = "NONG";
- break;
-
- case 8181:
- pinyin = "NOU";
- break;
-
- case 6983:
- case 7032:
- case 7059:
- case 7069:
- pinyin = "NU";
- break;
-
- case 7704:
- case 7847:
- case 8412:
- pinyin = "Nǖ";
- break;
- pinyin = "NUAN";
- break;
- pinyin = "NUE";
- break;
-
- case 5748:
- case 6289:
- case 6386:
- case 7927:
- pinyin = "NUO";
- break;
-
- case 6424:
- case 6462:
- pinyin = "O";
- break;
-
- case 5809:
- case 6670:
- case 7417:
- case 8178:
- pinyin = "OU";
- break;
-
- case 6166:
- case 7243:
- case 8365:
- pinyin = "PA";
- break;
-
- case 5729:
- case 6169:
- case 6363:
- pinyin = "PAI";
- break;
-
- case 6761:
- case 6790:
- case 8140:
- case 8165:
- case 8320:
- case 8571:
- pinyin = "PAN";
- break;
-
- case 6561:
- case 6872:
- case 6944:
- case 8306:
- pinyin = "PANG";
- break;
-
- case 6243:
- case 6583:
- case 6650:
- case 7567:
- case 8069:
- pinyin = "PAO";
- break;
-
- case 6446:
- case 6490:
- case 7623:
- case 7934:
- case 8512:
- case 8612:
- pinyin = "PEI";
- break;
-
- case 6852:
- pinyin = "PEN";
- break;
-
- case 6001:
- case 6456:
- case 6681:
- case 8318:
- pinyin = "PENG";
- break;
-
- case 5607:
- case 5682:
- case 5880:
- case 5892:
- case 5915:
- case 5960:
- case 6017:
- case 6037:
- case 6308:
- case 6472:
- case 6647:
- case 6836:
- case 7039:
- case 7102:
- case 7233:
- case 7422:
- case 7802:
- case 7828:
- case 7875:
- case 8117:
- case 8166:
- case 8223:
- case 8271:
- case 8589:
- pinyin = "PI";
- break;
-
- case 5850:
- case 7073:
- case 7490:
- case 7561:
- case 8470:
- case 8568:
- pinyin = "PIAN";
- break;
-
- case 5666:
- case 6449:
- case 7046:
- case 7146:
- case 7372:
- case 7809:
- case 8310:
- pinyin = "PIAO";
- break;
-
- case 6054:
- case 7513:
- pinyin = "PIE";
- break;
-
- case 7041:
- case 6253:
- case 7016:
- case 7315:
- case 7482:
- case 8213:
- pinyin = "PIN";
- break;
-
- case 5723:
- case 7019:
- case 7250:
- case 8650:
- pinyin = "PING";
- break;
-
- case 5647:
- case 5922:
- case 7174:
- case 7839:
- case 7862:
- case 8011:
- case 8345:
- pinyin = "PO";
- break;
-
- case 5786:
- case 6269:
- pinyin = "POU";
- break;
-
- case 5773:
- case 6459:
- case 6863:
- case 6907:
- case 7217:
- case 7511:
- case 7968:
- case 7972:
- case 8575:
- pinyin = "PU";
- break;
-
- case 5633:
- case 5725:
- case 5963:
- case 6027:
- case 6046:
- case 6089:
- case 6129:
- case 6134:
- case 6161:
- case 6213:
- case 6366:
- case 6450:
- case 6508:
- case 6510:
- case 6764:
- case 6831:
- case 7075:
- case 7118:
- case 7187:
- case 7189:
- case 7229:
- case 7271:
- case 7342:
- case 7440:
- case 7605:
- case 7687:
- case 7712:
- case 7751:
- case 8193:
- case 8251:
- case 8264:
- case 8475:
- case 8476:
- case 8572:
- case 8702:
- case 8772:
- pinyin = "QI";
- break;
-
- case 6154:
- case 8736:
- pinyin = "QIA";
- break;
-
- case 5727:
- case 5761:
- case 5868:
- case 6023:
- case 6045:
- case 6071:
- case 6271:
- case 6509:
- case 6705:
- case 6727:
- case 6925:
- case 6926:
- case 6929:
- case 7155:
- case 7293:
- case 7541:
- case 7709:
- case 7852:
- case 8215:
- case 8373:
- pinyin = "QIAN";
- break;
-
- case 6762:
- case 7045:
- case 7341:
- case 7408:
- case 7633:
- case 7926:
- case 7947:
- case 7974:
- case 8163:
- case 8262:
- case 8439:
- case 8536:
- pinyin = "QIANG";
- break;
-
- case 5668:
- case 5829:
- case 5859:
- case 6081:
- case 6529:
- case 6724:
- case 6730:
- case 7352:
- case 7745:
- case 8546:
- case 8719:
- pinyin = "QIAO";
- break;
-
- case 5907:
- case 6711:
- case 7010:
- case 7492:
- case 7938:
- case 8370:
- pinyin = "QIE";
- break;
-
- case 6043:
- case 6276:
- case 6336:
- case 6426:
- case 6463:
- case 6858:
- case 7353:
- case 7923:
- case 8291:
- case 8432:
- pinyin = "QIN";
- break;
-
- case 6060:
- case 6485:
- case 7349:
- case 7764:
- case 8263:
- case 8332:
- case 8368:
- case 8605:
- case 8675:
- case 8784:
- pinyin = "QING";
- break;
-
- case 5886:
- case 6068:
- case 8123:
- case 8243:
- case 8344:
- case 8528:
- case 8638:
- pinyin = "QIONG";
- break;
-
- case 5720:
- case 5947:
- case 6576:
- case 6848:
- case 6947:
- case 6957:
- case 7317:
- case 7468:
- case 8216:
- case 8239:
- case 8288:
- case 8435:
- case 8460:
- case 8690:
- case 8792:
- pinyin = "QIU";
- break;
-
- case 5816:
- case 5930:
- case 6201:
- case 6230:
- case 6511:
- case 6573:
- case 6754:
- case 7219:
- case 7479:
- case 7512:
- case 7552:
- case 7678:
- case 7765:
- case 8119:
- case 8248:
- case 8329:
- case 8480:
- case 8636:
- case 8781:
- pinyin = "QU";
- break;
-
- case 5825:
- case 6085:
- case 6710:
- case 7125:
- case 7390:
- case 7816:
- case 7893:
- case 8273:
- case 8360:
- case 8760:
- pinyin = "QUAN";
- break;
-
- case 6755:
- case 6758:
- case 7708:
- pinyin = "QUE";
- break;
-
- case 6950:
- pinyin = "QUN";
- break;
-
- case 6059:
- case 8237:
- case 8755:
- pinyin = "RAN";
- break;
-
- case 7692:
- case 8006:
- pinyin = "RANG";
- break;
-
- case 6073:
- case 7012:
- case 7267:
- pinyin = "RAO";
- break;
- pinyin = "RE";
- break;
-
- case 5680:
- case 6083:
- case 6156:
- case 6631:
- case 7377:
- case 7994:
- case 8137:
- pinyin = "REN";
- break;
- pinyin = "RENG";
- break;
- pinyin = "RI";
- break;
-
- case 6541:
- case 6585:
- case 7337:
- case 7532:
- case 8278:
- pinyin = "RONG";
- break;
-
- case 8459:
- case 8569:
- case 8723:
- pinyin = "ROU";
- break;
-
- case 6174:
- case 6224:
- case 6473:
- case 6818:
- case 6865:
- case 6906:
- case 7140:
- case 7908:
- case 8164:
- case 8212:
- pinyin = "RU";
- break;
-
- case 7535:
- pinyin = "RUAN";
- break;
-
- case 6039:
- case 6208:
- case 7236:
- case 7803:
- case 8224:
- pinyin = "RUI";
- break;
- pinyin = "RUN";
- break;
-
- case 5728:
- case 8372:
- pinyin = "RUO";
- break;
-
- case 5606:
- case 5677:
- case 7493:
- case 7559:
- case 7610:
- pinyin = "SA";
- break;
-
- case 6471:
- pinyin = "SAI";
- break;
-
- case 6644:
- case 7507:
- case 8454:
- pinyin = "SAN";
- break;
-
- case 6290:
- case 7763:
- case 8210:
- pinyin = "SANG";
- break;
-
- case 6003:
- case 7150:
- case 7156:
- case 7593:
- case 8094:
- case 8694:
- pinyin = "SAO";
- break;
- pinyin = "SE";
- break;
- pinyin = "SEN";
- break;
- pinyin = "SENG";
- break;
-
- case 6394:
- case 7606:
- case 7901:
- case 8080:
- case 8436:
- case 8614:
- case 8672:
- pinyin = "SHA";
- break;
-
- case 8507:
- pinyin = "SHAI";
- break;
-
- case 5663:
- case 5808:
- case 5923:
- case 5979:
- case 6047:
- case 6890:
- case 7009:
- case 7051:
- case 7083:
- case 7594:
- case 7844:
- case 8062:
- case 8321:
- case 8414:
- case 8539:
- case 8713:
- pinyin = "SHAN";
- break;
-
- case 5980:
- case 7120:
- case 7368:
- case 7656:
- case 8592:
- pinyin = "SHANG";
- break;
-
- case 5931:
- case 6070:
- case 6891:
- case 7228:
- case 8366:
- case 8425:
- pinyin = "SHAO";
- break;
-
- case 5639:
- case 5760:
- case 6606:
- case 6860:
- case 7608:
- case 7820:
- case 8774:
- pinyin = "SHE";
- break;
-
- case 5837:
- case 6123:
- case 6351:
- case 6841:
- case 7309:
- case 7547:
- case 7982:
- case 8255:
- pinyin = "SHEN";
- break;
-
- case 6551:
- case 7441:
- case 7782:
- case 8347:
- pinyin = "SHENG";
- break;
-
- case 5854:
- case 5985:
- case 6110:
- case 6173:
- case 6317:
- case 7388:
- case 7459:
- case 7634:
- case 7870:
- case 8307:
- case 8334:
- case 8363:
- case 8525:
- case 8669:
- case 8685:
- pinyin = "SHI";
- break;
-
- case 6587:
- case 7123:
- case 8428:
- pinyin = "SHOU";
- break;
-
- case 5731:
- case 5951:
- case 6136:
- case 6283:
- case 6780:
- case 6888:
- case 7013:
- case 7508:
- case 7582:
- case 7988:
- pinyin = "SHU";
- break;
-
- case 6407:
- pinyin = "SHUA";
- break;
-
- case 8316:
- pinyin = "SHUAI";
- break;
-
- case 6737:
- case 6844:
- pinyin = "SHUAN";
- break;
-
- case 7055:
- pinyin = "SHUANG";
- break;
- pinyin = "SHUI";
- break;
- pinyin = "SHUN";
- break;
-
- case 6184:
- case 6287:
- case 6989:
- case 7335:
- case 7869:
- pinyin = "SHUO";
- break;
-
- case 5643:
- case 5778:
- case 5944:
- case 6348:
- case 6765:
- case 6784:
- case 6889:
- case 7006:
- case 7065:
- case 7133:
- case 7675:
- case 7940:
- case 8024:
- case 8174:
- case 8247:
- case 8351:
- pinyin = "SI";
- break;
-
- case 5801:
- case 6131:
- case 6534:
- case 6552:
- case 6676:
- case 6704:
- case 6833:
- case 8121:
- pinyin = "SONG";
- break;
-
- case 5937:
- case 6220:
- case 6418:
- case 6453:
- case 6640:
- case 6849:
- case 7612:
- case 7804:
- case 7943:
- case 8284:
- pinyin = "SOU";
- break;
-
- case 5777:
- case 5853:
- case 6188:
- case 6428:
- case 6726:
- case 6819:
- case 8389:
- case 8602:
- case 8653:
- pinyin = "SU";
- break;
-
- case 6601:
- pinyin = "SUAN";
- break;
-
- case 5839:
- case 6120:
- case 6901:
- case 6968:
- case 7661:
- case 7785:
- case 7801:
- pinyin = "SUI";
- break;
-
- case 6105:
- case 6588:
- case 6624:
- case 7330:
- case 8632:
- pinyin = "SUN";
- break;
-
- case 6379:
- case 6434:
- case 6442:
- case 7022:
- case 7288:
- case 7792:
- case 8440:
- pinyin = "SUO";
- break;
-
- case 6743:
- case 6866:
- case 6961:
- case 7329:
- case 7719:
- case 7872:
- case 8533:
- case 8703:
- pinyin = "TA";
- break;
-
- case 5902:
- case 6223:
- case 6330:
- case 7070:
- case 7536:
- case 7638:
- case 7849:
- case 8544:
- case 8656:
- pinyin = "TAI";
- break;
-
- case 5916:
- case 6903:
- case 7428:
- case 7694:
- case 7867:
- case 7936:
- case 8191:
- pinyin = "TAN";
- break;
-
- case 5746:
- case 6491:
- case 6871:
- case 7209:
- case 7344:
- case 7906:
- case 7959:
- case 8177:
- case 8305:
- case 8311:
- case 8442:
- case 8517:
- pinyin = "TANG";
- break;
-
- case 5627:
- case 6391:
- case 6812:
- case 7226:
- case 7666:
- pinyin = "TAO";
- break;
- pinyin = "1845 餐";
- break;
-
- case 6315:
- case 7693:
- case 7911:
- pinyin = "TE";
- break;
-
- case 7588:
- pinyin = "TENG";
- break;
-
- case 5735:
- case 6709:
- case 6949:
- case 7130:
- case 8035:
- case 8151:
- case 8514:
- pinyin = "TI";
- break;
-
- case 6261:
- case 6735:
- case 6757:
- case 7369:
- case 7817:
- pinyin = "TIAN";
- break;
-
- case 5712:
- case 7686:
- case 8127:
- case 8272:
- case 8352:
- case 8448:
- case 8622:
- case 8670:
- case 8756:
- pinyin = "TIAO";
- break;
-
- case 6138:
- case 8749:
- pinyin = "TIE";
- break;
-
- case 6080:
- case 6167:
- case 7035:
- case 7272:
- case 7890:
- case 8249:
- case 8610:
- pinyin = "TING";
- break;
-
- case 5701:
- case 5758:
- case 6077:
- case 6444:
- case 6690:
- case 6892:
- case 7737:
- pinyin = "TONG";
- break;
-
- case 7855:
- case 7822:
- case 8727:
- pinyin = "TOU";
- break;
-
- case 6002:
- case 6117:
- case 6143:
- case 7842:
- case 8509:
- pinyin = "TU";
- break;
-
- case 6250:
- case 6972:
- pinyin = "TUAN";
- break;
-
- case 7653:
- pinyin = "TUI";
- break;
-
- case 5759:
- case 6629:
- case 7453:
- case 7564:
- pinyin = "TUN";
- break;
-
- case 5617:
- case 5702:
- case 5971:
- case 6653:
- case 6791:
- case 7256:
- case 7262:
- case 7350:
- case 7740:
- case 8374:
- case 8502:
- case 8541:
- case 8630:
- pinyin = "TUO";
- break;
-
- case 5684:
- case 7020:
- case 7580:
- pinyin = "WA";
- break;
- pinyin = "WAI";
- break;
-
- case 5664:
- case 6025:
- case 6150:
- case 7093:
- case 7126:
- case 7194:
- case 7568:
- case 7821:
- case 8274:
- pinyin = "WAN";
- break;
-
- case 5672:
- case 6244:
- case 6715:
- case 7394:
- case 8745:
- pinyin = "WANG";
- break;
-
- case 5743:
- case 5835:
- case 5881:
- case 5883:
- case 6158:
- case 6217:
- case 6488:
- case 6501:
- case 6543:
- case 6545:
- case 6611:
- case 6612:
- case 6739:
- case 6777:
- case 6802:
- case 6822:
- case 6952:
- case 7024:
- case 7166:
- case 7224:
- case 7406:
- case 7631:
- case 7648:
- case 8084:
- case 8426:
- case 8659:
- pinyin = "WEI";
- break;
-
- case 5656:
- case 6751:
- case 6775:
- case 7223:
- case 8609:
- pinyin = "WEN";
- break;
-
- case 6178:
- case 6219:
- pinyin = "WENG";
- break;
-
- case 5733:
- case 6111:
- case 6502:
- case 6855:
- case 7531:
- case 7750:
- case 8627:
- pinyin = "WO";
- break;
-
- case 5603:
- case 5685:
- case 5867:
- case 5889:
- case 5956:
- case 6044:
- case 6377:
- case 6648:
- case 6668:
- case 6672:
- case 6820:
- case 6927:
- case 6935:
- case 6992:
- case 7036:
- case 7080:
- case 7227:
- case 7485:
- case 7641:
- case 8036:
- case 8045:
- case 8077:
- case 8258:
- case 8640:
- case 8789:
- pinyin = "WU";
- break;
-
- case 5750:
- case 5766:
- case 5884:
- case 5913:
- case 6130:
- case 6163:
- case 6191:
- case 6241:
- case 6381:
- case 6567:
- case 6630:
- case 6750:
- case 6827:
- case 6832:
- case 6979:
- case 7050:
- case 7184:
- case 7356:
- case 7456:
- case 7474:
- case 7604:
- case 7668:
- case 7689:
- case 7691:
- case 8010:
- case 8122:
- case 8265:
- case 8303:
- case 8312:
- case 8410:
- case 8424:
- case 8443:
- case 8449:
- case 8466:
- case 8521:
- case 8791:
- pinyin = "XI";
- break;
-
- case 6340:
- case 6582:
- case 6958:
- case 7206:
- case 7252:
- case 7744:
- case 8093:
- case 8333:
- case 8779:
- pinyin = "XIA";
- break;
-
- case 5794:
- case 5823:
- case 6040:
- case 6118:
- case 6226:
- case 6513:
- case 6593:
- case 6963:
- case 7021:
- case 7515:
- case 7662:
- case 7676:
- case 8034:
- case 8079:
- case 8225:
- case 8358:
- case 8444:
- case 8503:
- case 8548:
- case 8549:
- case 8617:
- pinyin = "XIAN";
- break;
-
- case 6028:
- case 6157:
- case 6635:
- case 6652:
- case 7088:
- case 7129:
- case 8313:
- case 8663:
- case 8747:
- pinyin = "XIANG";
- break;
-
- case 6356:
- case 6537:
- case 6876:
- case 6948:
- case 7071:
- case 7115:
- case 7241:
- case 7253:
- case 8257:
- case 8367:
- case 8379:
- case 8744:
- pinyin = "XIAO";
- break;
-
- case 5741:
- case 5784:
- case 5936:
- case 5938:
- case 6215:
- case 6302:
- case 6619:
- case 6661:
- case 6845:
- case 6912:
- case 6966:
- case 7105:
- case 7151:
- case 7331:
- case 7339:
- case 8583:
- pinyin = "XIE";
- break;
-
- case 5622:
- case 6016:
- case 7431:
- case 7607:
- case 8646:
- pinyin = "XIN";
- break;
-
- case 5874:
- case 6084:
- case 6309:
- case 6712:
- case 7742:
- pinyin = "XING";
- break;
-
- case 6026:
- pinyin = "XIONG";
- break;
-
- case 6361:
- case 6522:
- case 6642:
- case 6651:
- case 6869:
- case 8028:
- case 8587:
- case 8759:
- pinyin = "XIU";
- break;
-
- case 5828:
- case 5935:
- case 5955:
- case 6203:
- case 6810:
- case 6851:
- case 7179:
- case 7282:
- case 7667:
- case 7776:
- case 8167:
- case 8458:
- case 8515:
- pinyin = "XU";
- break;
-
- case 5756:
- case 5846:
- case 6170:
- case 6279:
- case 6789:
- case 6854:
- case 6886:
- case 7215:
- case 7324:
- case 7449:
- case 7637:
- case 7651:
- case 7759:
- case 7871:
- case 7964:
- case 8071:
- pinyin = "XUAN";
- break;
-
- case 5842:
- case 7720:
- case 8529:
- case 8708:
- pinyin = "XUE";
- break;
-
- case 5767:
- case 5908:
- case 5987:
- case 6087:
- case 6101:
- case 6206:
- case 6225:
- case 6530:
- case 6563:
- case 6620:
- case 6694:
- case 6813:
- case 6817:
- case 7454:
- case 8131:
- case 8524:
- case 8664:
- pinyin = "XUN";
- break;
-
- case 5683:
- case 5975:
- case 6275:
- case 6512:
- case 6934:
- case 7011:
- case 7180:
- case 7266:
- case 7518:
- case 7728:
- case 7793:
- case 8073:
- pinyin = "YA";
- break;
-
- case 5641:
- case 5645:
- case 5718:
- case 5740:
- case 5780:
- case 5861:
- case 5917:
- case 5919:
- case 6030:
- case 6146:
- case 6535:
- case 6691:
- case 6738:
- case 6753:
- case 6846:
- case 6857:
- case 6991:
- case 7044:
- case 7192:
- case 7360:
- case 7444:
- case 7557:
- case 7645:
- case 7827:
- case 8359:
- case 8506:
- case 8742:
- case 8748:
- case 8790:
- pinyin = "YAN";
- break;
-
- case 6564:
- case 6683:
- case 7630:
- case 7640:
- case 7706:
- case 8253:
- case 8717:
- pinyin = "YANG";
- break;
-
- case 5618:
- case 5619:
- case 6326:
- case 6542:
- case 6570:
- case 7159:
- case 7182:
- case 7235:
- case 7387:
- case 7455:
- case 7540:
- case 7902:
- case 8046:
- case 8126:
- case 8477:
- case 8705:
- pinyin = "YAO";
- break;
-
- case 5644:
- case 5843:
- case 5894:
- case 6262:
- case 7442:
- case 7639:
- case 7884:
- pinyin = "YE";
- break;
-
- case 5655:
- case 5657:
- case 5670:
- case 5693:
- case 5711:
- case 5817:
- case 5961:
- case 5992:
- case 6018:
- case 6051:
- case 6072:
- case 6218:
- case 6236:
- case 6240:
- case 6258:
- case 6314:
- case 6329:
- case 6355:
- case 6362:
- case 6441:
- case 6470:
- case 6527:
- case 6558:
- case 6602:
- case 6634:
- case 6688:
- case 6689:
- case 6708:
- case 6884:
- case 6938:
- case 7068:
- case 7143:
- case 7376:
- case 7383:
- case 7461:
- case 7629:
- case 7658:
- case 7784:
- case 7838:
- case 7955:
- case 7978:
- case 8074:
- case 8089:
- case 8115:
- case 8120:
- case 8270:
- case 8415:
- case 8464:
- case 8472:
- case 8493:
- case 8780:
- pinyin = "YI";
- break;
-
- case 5623:
- case 5920:
- case 5983:
- case 6007:
- case 6065:
- case 6337:
- case 6419:
- case 6594:
- case 6625:
- case 6806:
- case 7519:
- case 7887:
- case 8111:
- case 8230:
- case 8615:
- case 8624:
- pinyin = "YIN";
- break;
-
- case 5788:
- case 5911:
- case 6067:
- case 6094:
- case 6126:
- case 6151:
- case 6186:
- case 6292:
- case 6451:
- case 6663:
- case 6862:
- case 6875:
- case 6913:
- case 7188:
- case 7212:
- case 7326:
- case 7584:
- case 8048:
- case 8108:
- case 8203:
- case 8331:
- pinyin = "YING";
- break;
-
- case 6401:
- pinyin = "YO";
- break;
-
- case 5724:
- case 5953:
- case 6013:
- case 6415:
- case 6728:
- case 7163:
- case 7962:
- case 8014:
- case 8711:
- case 8751:
- pinyin = "YONG";
- break;
-
- case 5653:
- case 5692:
- case 5707:
- case 6112:
- case 6115:
- case 6121:
- case 6347:
- case 6483:
- case 6922:
- case 7254:
- case 7364:
- case 7527:
- case 7880:
- case 8064:
- case 8236:
- case 8242:
- case 8286:
- case 8647:
- case 8778:
- case 8788:
- pinyin = "YOU";
- break;
-
- case 5614:
- case 5625:
- case 5681:
- case 5722:
- case 5836:
- case 5845:
- case 6139:
- case 6187:
- case 6277:
- case 6484:
- case 6486:
- case 6546:
- case 6592:
- case 6632:
- case 6637:
- case 6655:
- case 6748:
- case 6987:
- case 6993:
- case 7005:
- case 7090:
- case 7204:
- case 7437:
- case 7476:
- case 7573:
- case 7603:
- case 7622:
- case 7647:
- case 7659:
- case 7718:
- case 7858:
- case 8033:
- case 8054:
- case 8085:
- case 8086:
- case 8130:
- case 8133:
- case 8266:
- case 8285:
- case 8336:
- case 8407:
- case 8408:
- case 8607:
- case 8625:
- pinyin = "YU";
- break;
-
- case 5989:
- case 6011:
- case 6282:
- case 6768:
- case 7034:
- case 7205:
- case 7358:
- case 7528:
- case 7783:
- case 8016:
- case 8302:
- case 8378:
- case 8629:
- pinyin = "YUAN";
- break;
-
- case 5763:
- case 6914:
- case 7348:
- case 7530:
- case 7865:
- pinyin = "YUE";
- break;
-
- case 5909:
- case 6031:
- case 6581:
- case 6702:
- case 6719:
- case 7101:
- case 7225:
- case 7370:
- case 7432:
- case 7521:
- case 7657:
- pinyin = "YUN";
- break;
-
- case 6257:
- case 6338:
- pinyin = "ZA";
- break;
-
- case 6544:
- case 7162:
- pinyin = "ZAI";
- break;
-
- case 7222:
- case 7435:
- case 8402:
- case 8456:
- case 8485:
- case 8641:
- pinyin = "ZAN";
- break;
-
- case 6242:
- case 7064:
- case 7416:
- pinyin = "ZANG";
- break;
-
- case 6380:
- pinyin = "ZAO";
- break;
-
- case 5638:
- case 8369:
- case 5651:
- case 6385:
- case 6493:
- case 6937:
- case 7430:
- case 8348:
- case 8423:
- pinyin = "ZE";
- break;
- pinyin = "ZEI";
- break;
-
- case 5858:
- pinyin = "ZEN";
- break;
-
- case 7153:
- case 7421:
- case 7832:
- case 7913:
- pinyin = "ZENG";
- break;
-
- case 6610:
- case 6274:
- case 6324:
- case 6369:
- case 6378:
- case 7736:
- case 8068:
- case 8238:
- case 8794:
- pinyin = "ZHA";
- break;
-
- case 7746:
- case 8109:
- pinyin = "ZHAI";
- break;
-
- case 5862:
- case 6288:
- case 7625:
- pinyin = "ZHAN";
- break;
-
- case 5675:
- case 5921:
- case 6504:
- case 6554:
- case 6615:
- case 7049:
- case 7216:
- case 8315:
- pinyin = "ZHANG";
- break;
-
- case 5815:
- case 7294:
- case 7840:
- case 8341:
- pinyin = "ZHAO";
- break;
-
- case 5856:
- case 6301:
- case 7247:
- case 7392:
- case 7761:
- case 8049:
- case 8162:
- case 8256:
- case 8487:
- pinyin = "ZHE";
- break;
-
- case 5958:
- case 6172:
- case 6805:
- case 7139:
- case 7269:
- case 7327:
- case 7384:
- case 7466:
- case 7551:
- case 7562:
- case 7685:
- case 7819:
- case 8001:
- case 8018:
- case 8380:
- pinyin = "ZHEN";
- break;
-
- case 5826:
- case 6531:
- case 6571:
- case 7859:
- case 7903:
- case 8361:
- pinyin = "ZHENG";
- break;
-
- case 5620:
- case 5876:
- case 5904:
- case 5990:
- case 6038:
- case 6293:
- case 6489:
- case 6669:
- case 6973:
- case 6975:
- case 7079:
- case 7246:
- case 7255:
- case 7257:
- case 7268:
- case 7382:
- case 7389:
- case 7462:
- case 7553:
- case 7589:
- case 7677:
- case 7683:
- case 7773:
- case 7984:
- case 8026:
- case 8075:
- case 8246:
- case 8474:
- case 8505:
- case 8537:
- case 8557:
- case 8560:
- case 8584:
- case 8603:
- pinyin = "ZHI";
- break;
-
- case 5803:
- case 7981:
- case 8314:
- case 8417:
- case 8564:
- pinyin = "ZHONG";
- break;
-
- case 6107:
- case 6390:
- case 7008:
- case 7091:
- case 7107:
- case 7548:
- case 7756:
- case 8406:
- case 8492:
- pinyin = "ZHOU";
- break;
-
- case 5689:
- case 5710:
- case 5905:
- case 6049:
- case 6079:
- case 6808:
- case 6830:
- case 6883:
- case 7244:
- case 7338:
- case 7345:
- case 7636:
- case 7889:
- case 8070:
- case 8081:
- case 8335:
- case 8371:
- case 8422:
- case 8467:
- case 8578:
- case 8770:
- pinyin = "ZHU";
- break;
- pinyin = "ZHUA";
- break;
- pinyin = "ZHUAI";
- break;
-
- case 6389:
- case 6645:
- case 8207:
- pinyin = "ZHUAN";
- break;
-
- case 5755:
- pinyin = "ZHUANG";
- break;
-
- case 6723:
- case 7077:
- case 7136:
- pinyin = "ZHUI";
- break;
-
- case 7538:
- case 8124:
- pinyin = "ZHUN";
- break;
-
- case 5730:
- case 5834:
- case 6310:
- case 6823:
- case 6835:
- case 6910:
- case 7644:
- case 7690:
- case 7729:
- case 7977:
- pinyin = "ZHUO";
- break;
-
- case 5849:
- case 6549:
- case 7002:
- case 7060:
- case 7127:
- case 7287:
- case 7402:
- case 7463:
- case 7707:
- case 7786:
- case 7937:
- case 7986:
- case 8172:
- case 8342:
- case 8450:
- case 8484:
- case 8594:
- case 8604:
- case 8623:
- case 8686:
- case 8758:
- pinyin = "ZI";
- break;
-
- case 5744:
- case 7574:
- case 8453:
- pinyin = "ZONG";
- break;
-
- case 5833:
- case 5878:
- case 5924:
- case 7067:
- case 8677:
- pinyin = "ZOU";
- break;
-
- case 5762:
- case 6147:
- case 7963:
- pinyin = "ZU";
- break;
-
- case 6312:
- case 7158:
- case 8582:
- pinyin = "ZUAN";
- break;
-
- case 6209:
- pinyin = "ZUI";
- break;
-
- case 6304:
- case 7355:
- case 8714:
- pinyin = "ZUN";
- break;
-
- case 5872:
- case 6382:
- case 6460:
- case 6684:
- case 7549:
- case 7681:
- pinyin = "ZUO";
- break;
-
- default:
- if (code >= 1601 && code <= 1602) {
- pinyin = "A";
- break;
- }
-
- if (code >= 1603 && code <= 1615) {
- pinyin = "AI";
- break;
- }
-
- if (code >= 1616 && code <= 1624) {
- pinyin = "AN";
- break;
- }
-
- if (code >= 1625 && code <= 1627) {
- pinyin = "ANG";
- break;
- }
-
- if (code >= 1628 && code <= 1636) {
- pinyin = "AO";
- break;
- }
-
- if (code >= 1637 && code <= 1654) {
- pinyin = "BA";
- break;
- }
-
- if (code >= 1655 && code <= 1662) {
- pinyin = "BAI";
- break;
- }
-
- if (code >= 1663 && code <= 1677) {
- pinyin = "BAN";
- break;
- }
-
- if (code >= 1678 && code <= 1689) {
- pinyin = "BANG";
- break;
- }
-
- if (code >= 1690 && code <= 1712) {
- pinyin = "BAO";
- break;
- }
-
- if (code >= 1713 && code <= 1727) {
- pinyin = "BEI";
- break;
- }
-
- if (code >= 1728 && code <= 1731) {
- pinyin = "BEN";
- break;
- }
-
- if (code >= 1732 && code <= 1737) {
- pinyin = "BENG";
- break;
- }
-
- if (code > 1738 && code <= 1761) {
- pinyin = "BI";
- break;
- }
-
- if (code >= 1762 && code <= 1773) {
- pinyin = "BIAN";
- break;
- }
-
- if (code >= 1774 && code <= 1777) {
- pinyin = "BIAO";
- break;
- }
-
- if (code >= 1778 && code <= 1781) {
- pinyin = "BIE";
- break;
- }
-
- if (code >= 1782 && code <= 1787) {
- pinyin = "BIN";
- break;
- }
-
- if (code >= 1788 && code <= 1794) {
- pinyin = "BING";
- break;
- }
-
- if (code >= 1801 && code <= 1802) {
- pinyin = "BING";
- break;
- }
-
- if (code >= 1803 && code <= 1821) {
- pinyin = "BO";
- break;
- }
-
- if (code >= 1822 && code <= 1832) {
- pinyin = "BU";
- break;
- }
-
- if (code == 1833) {
- pinyin = "CA";
- break;
- }
-
- if (code >= 1834 && code <= 1844) {
- pinyin = "CAI";
- break;
- }
-
- if (code >= 1845 && code <= 1851) {
- pinyin = "CAN";
- break;
- }
-
- if (code >= 1852 && code <= 1856) {
- pinyin = "CANG";
- break;
- }
-
- if (code >= 1857 && code <= 1861) {
- pinyin = "CAO";
- break;
- }
-
- if (code >= 1862 && code <= 1866) {
- pinyin = "CE";
- break;
- }
-
- if (code >= 1867 && code <= 1868) {
- pinyin = "CENG";
- break;
- }
-
- if (code >= 1869 && code <= 1879) {
- pinyin = "CHA";
- break;
- }
-
- if (code >= 1880 && code <= 1882) {
- pinyin = "CHAI";
- break;
- }
-
- if (code >= 1883 && code <= 1892) {
- pinyin = "CHAN";
- break;
- }
-
- if (code >= 1893 && code <= 1911) {
- pinyin = "CHANG";
- break;
- }
-
- if (code >= 1912 && code <= 1920) {
- pinyin = "CHAO";
- break;
- }
-
- if (code >= 1921 && code <= 1926) {
- pinyin = "CHE";
- break;
- }
-
- if (code >= 1927 && code <= 1936) {
- pinyin = "CHEN";
- break;
- }
-
- if (code >= 1937 && code <= 1951) {
- pinyin = "CHENG";
- break;
- }
-
- if (code >= 1952 && code <= 1967) {
- pinyin = "CHI";
- break;
- }
-
- if (code >= 1968 && code <= 1972) {
- pinyin = "CHONG";
- break;
- }
-
- if (code >= 1973 && code <= 1984) {
- pinyin = "CHOU";
- break;
- }
-
- if (code >= 1985 && code <= 2006) {
- pinyin = "CHU";
- break;
- }
-
- if (code == 2007) {
- pinyin = "CHUAI";
- break;
- }
-
- if (code >= 2008 && code <= 2014) {
- pinyin = "CHUAN";
- break;
- }
-
- if (code >= 2015 && code <= 2020) {
- pinyin = "CHUANG";
- break;
- }
-
- if (code >= 2021 && code <= 2025) {
- pinyin = "CHUI";
- break;
- }
-
- if (code >= 2026 && code <= 2032) {
- pinyin = "CHUN";
- break;
- }
-
- if (code >= 2033 && code <= 2034) {
- pinyin = "CHUO";
- break;
- }
-
- if (code >= 2035 && code <= 2046) {
- pinyin = "CI";
- break;
- }
-
- if (code >= 2047 && code <= 2052) {
- pinyin = "CONG";
- break;
- }
-
- if (code >= 2054 && code <= 2057) {
- pinyin = "CU";
- break;
- }
-
- if (code >= 2058 && code <= 2060) {
- pinyin = "CUAN";
- break;
- }
-
- if (code >= 2061 && code <= 2068) {
- pinyin = "CUI";
- break;
- }
-
- if (code >= 2069 && code <= 2071) {
- pinyin = "CUN";
- break;
- }
-
- if (code >= 2072 && code <= 2077) {
- pinyin = "CUO";
- break;
- }
-
- if (code >= 2078 && code <= 2083) {
- pinyin = "DA";
- break;
- }
-
- if (code >= 2084 && code <= 2094) {
- pinyin = "DAI";
- break;
- }
-
- if (code >= 2102 && code <= 2116) {
- pinyin = "DAN";
- break;
- }
-
- if (code >= 2117 && code <= 2121) {
- pinyin = "DANG";
- break;
- }
-
- if (code >= 2122 && code <= 2133) {
- pinyin = "DAO";
- break;
- }
-
- if (code >= 2134 && code <= 2136) {
- pinyin = "DE";
- break;
- }
-
- if (code >= 2137 && code <= 2143) {
- pinyin = "DENG";
- break;
- }
-
- if (code >= 2144 && code <= 2162) {
- pinyin = "DI";
- break;
- }
-
- if (code >= 2163 && code <= 2178) {
- pinyin = "DIAN";
- break;
- }
-
- if (code >= 2179 && code <= 2187) {
- pinyin = "DIAO";
- break;
- }
-
- if (code >= 2188 && code <= 2194) {
- pinyin = "DIE";
- break;
- }
-
- if (code >= 2201 && code <= 2209) {
- pinyin = "DING";
- break;
- }
-
- if (code == 2210) {
- pinyin = "DIU";
- break;
- }
-
- if (code >= 2211 && code <= 2220) {
- pinyin = "DONG";
- break;
- }
-
- if (code >= 2221 && code <= 2227) {
- pinyin = "DOU";
- break;
- }
-
- if (code >= 2228 && code <= 2242) {
- pinyin = "DU";
- break;
- }
-
- if (code >= 2243 && code <= 2248) {
- pinyin = "DUAN";
- break;
- }
-
- if (code >= 2249 && code <= 2252) {
- pinyin = "DUI";
- break;
- }
-
- if (code >= 2253 && code <= 2261) {
- pinyin = "DUN";
- break;
- }
-
- if (code >= 2262 && code <= 2273) {
- pinyin = "DUO";
- break;
- }
-
- if (code >= 2274 && code <= 2286) {
- pinyin = "E";
- break;
- }
-
- if (code == 2287) {
- pinyin = "EN";
- break;
- }
-
- if (code >= 2288 && code <= 2231) {
- pinyin = "ER";
- break;
- }
-
- if (code >= 2302 && code <= 2309) {
- pinyin = "FA";
- break;
- }
-
- if (code >= 2310 && code <= 2326) {
- pinyin = "FAN";
- break;
- }
-
- if (code >= 2327 && code <= 2337) {
- pinyin = "FANG";
- break;
- }
-
- if (code >= 2338 && code <= 2349) {
- pinyin = "FEI";
- break;
- }
-
- if (code >= 2350 && code <= 2364) {
- pinyin = "FEN";
- break;
- }
-
- if (code >= 2365 && code <= 2379) {
- pinyin = "FENG";
- break;
- }
-
- if (code == 2380) {
- pinyin = "FO";
- break;
- }
-
- if (code == 2381) {
- pinyin = "FOU";
- break;
- }
-
- if (code >= 2382 && code <= 2432) {
- pinyin = "FU";
- break;
- }
-
- if (code >= 2435 && code <= 2440) {
- pinyin = "GAI";
- break;
- }
-
- if (code >= 2441 && code <= 2451) {
- pinyin = "GAN";
- break;
- }
-
- if (code >= 2452 && code <= 2460) {
- pinyin = "GANG";
- break;
- }
-
- if (code >= 2461 && code <= 2470) {
- pinyin = "GAO";
- break;
- }
-
- if (code >= 2471 && code <= 2487) {
- pinyin = "GE";
- break;
- }
-
- if (code == 2488) {
- pinyin = "GEI";
- break;
- }
-
- if (code >= 2489 && code <= 2490) {
- pinyin = "GEN";
- break;
- }
-
- if (code >= 2491 && code <= 2503) {
- pinyin = "GENG";
- break;
- }
-
- if (code >= 2504 && code <= 2518) {
- pinyin = "GONG";
- break;
- }
-
- if (code >= 2519 && code <= 2527) {
- pinyin = "GOU";
- break;
- }
-
- if (code >= 2528 && code <= 2545) {
- pinyin = "GU";
- break;
- }
-
- if (code >= 2546 && code <= 2551) {
- pinyin = "GUA";
- break;
- }
-
- if (code >= 2552 && code <= 2554) {
- pinyin = "GUAI";
- break;
- }
-
- if (code >= 2555 && code <= 2565) {
- pinyin = "GUAN";
- break;
- }
-
- if (code >= 2566 && code <= 2568) {
- pinyin = "GUANG";
- break;
- }
-
- if (code >= 2569 && code <= 2584) {
- pinyin = "GUI";
- break;
- }
-
- if (code >= 2585 && code <= 2587) {
- pinyin = "GUN";
- break;
- }
-
- if (code >= 2588 && code <= 2593) {
- pinyin = "GUO";
- break;
- }
-
- if (code == 2594) {
- pinyin = "HA";
- break;
- }
-
- if (code >= 2601 && code <= 2607) {
- pinyin = "HAI";
- break;
- }
-
- if (code >= 2608 && code <= 2626) {
- pinyin = "HAN";
- break;
- }
-
- if (code >= 2627 && code <= 2629) {
- pinyin = "HANG";
- break;
- }
-
- if (code >= 2630 && code <= 2638) {
- pinyin = "HAO";
- break;
- }
-
- if (code >= 2639 && code <= 2656) {
- pinyin = "HE";
- break;
- }
-
- if (code >= 2657 && code <= 2658) {
- pinyin = "HEI";
- break;
- }
-
- if (code >= 2659 && code <= 2662) {
- pinyin = "HEN";
- break;
- }
-
- if (code >= 2663 && code <= 2667) {
- pinyin = "HENG";
- break;
- }
-
- if (code >= 2668 && code <= 2676) {
- pinyin = "HONG";
- break;
- }
-
- if (code >= 2677 && code <= 2683) {
- pinyin = "HOU";
- break;
- }
-
- if (code >= 2684 && code <= 2707) {
- pinyin = "HU";
- break;
- }
-
- if (code >= 2708 && code <= 2716) {
- pinyin = "HUA";
- break;
- }
-
- if (code >= 2717 && code <= 2721) {
- pinyin = "HUAI";
- break;
- }
-
- if (code >= 2722 && code <= 2735) {
- pinyin = "HUAN";
- break;
- }
-
- if (code >= 2736 && code <= 2749) {
- pinyin = "HUANG";
- break;
- }
-
- if (code >= 2750 && code <= 2770) {
- pinyin = "HUI";
- break;
- }
-
- if (code >= 2771 && code <= 2776) {
- pinyin = "HUN";
- break;
- }
-
- if (code >= 2777 && code <= 2786) {
- pinyin = "HUO";
- break;
- }
-
- if (code >= 2787 && code <= 2845) {
- pinyin = "JI";
- break;
- }
-
- if (code >= 2846 && code <= 2862) {
- pinyin = "JIA";
- break;
- }
-
- if (code >= 2863 && code <= 2908) {
- pinyin = "JIAN";
- break;
- }
-
- if (code >= 2909 && code <= 2921) {
- pinyin = "JIANG";
- break;
- }
-
- if (code >= 2922 && code <= 2949) {
- pinyin = "JIAO";
- break;
- }
-
- if (code >= 2950 && code <= 2976) {
- pinyin = "JIE";
- break;
- }
-
- if (code >= 2977 && code <= 3002) {
- pinyin = "JIN";
- break;
- }
-
- if (code >= 3003 && code <= 3027) {
- pinyin = "JING";
- break;
- }
-
- if (code >= 3028 && code <= 3029) {
- pinyin = "JIONG";
- break;
- }
-
- if (code >= 3030 && code <= 3046) {
- pinyin = "JIU";
- break;
- }
-
- if (code >= 3047 && code <= 3071) {
- pinyin = "JU";
- break;
- }
-
- if (code >= 3072 && code <= 3078) {
- pinyin = "JUAN";
- break;
- }
-
- if (code >= 3079 && code <= 3088) {
- pinyin = "JUE";
- break;
- }
-
- if (code >= 3089 && code <= 3105) {
- pinyin = "JUN";
- break;
- }
-
- if (code >= 3106 && code <= 3109) {
- pinyin = "KA";
- break;
- }
-
- if (code >= 3110 && code <= 3114) {
- pinyin = "KAI";
- break;
- }
-
- if (code >= 3115 && code <= 3120) {
- pinyin = "KAN";
- break;
- }
-
- if (code >= 3121 && code <= 3127) {
- pinyin = "KANG";
- break;
- }
-
- if (code >= 3128 && code <= 3131) {
- pinyin = "KAO";
- break;
- }
-
- if (code >= 3132 && code <= 3146) {
- pinyin = "KE";
- break;
- }
-
- if (code >= 3147 && code <= 3150) {
- pinyin = "KEN";
- break;
- }
-
- if (code >= 3151 && code <= 3152) {
- pinyin = "KENG";
- break;
- }
-
- if (code >= 3153 && code <= 3156) {
- pinyin = "KONG";
- break;
- }
-
- if (code >= 3157 && code <= 3160) {
- pinyin = "KOU";
- break;
- }
-
- if (code >= 3161 && code <= 3167) {
- pinyin = "KU";
- break;
- }
-
- if (code >= 3168 && code <= 3172) {
- pinyin = "KUA";
- break;
- }
-
- if (code >= 3173 && code <= 3176) {
- pinyin = "KUAI";
- break;
- }
-
- if (code >= 3177 && code <= 3178) {
- pinyin = "KUAN";
- break;
- }
-
- if (code >= 3179 && code <= 3186) {
- pinyin = "KUANG";
- break;
- }
-
- if (code >= 3187 && code <= 3203) {
- pinyin = "KUI";
- break;
- }
-
- if (code >= 3204 && code <= 3207) {
- pinyin = "KUN";
- break;
- }
-
- if (code >= 3208 && code <= 3211) {
- pinyin = "KUO";
- break;
- }
-
- if (code >= 3212 && code <= 3218) {
- pinyin = "LA";
- break;
- }
-
- if (code >= 3219 && code <= 3221) {
- pinyin = "LAI";
- break;
- }
-
- if (code >= 3222 && code <= 3236) {
- pinyin = "LAN";
- break;
- }
-
- if (code >= 3237 && code <= 3243) {
- pinyin = "LANG";
- break;
- }
-
- if (code >= 3244 && code <= 3252) {
- pinyin = "LAO";
- break;
- }
-
- if (code >= 3253 && code <= 3254) {
- pinyin = "LE";
- break;
- }
-
- if (code >= 3255 && code <= 3265) {
- pinyin = "LEI";
- break;
- }
-
- if (code >= 3266 && code <= 3268) {
- pinyin = "LENG";
- break;
- }
-
- if (code >= 3269 && code <= 3308) {
- pinyin = "LI";
- }
-
- if (code == 3309) {
- pinyin = "LIA";
- break;
- }
-
- if (code >= 3310 && code <= 3323) {
- pinyin = "LIAN";
- break;
- }
-
- if (code >= 3324 && code <= 3334) {
- pinyin = "LIANG";
- break;
- }
-
- if (code >= 3335 && code <= 3347) {
- pinyin = "LIAO";
- break;
- }
-
- if (code >= 3348 && code <= 3352) {
- pinyin = "LIE";
- break;
- }
-
- if (code >= 3353 && code <= 3363) {
- pinyin = "LIN";
- break;
- }
-
- if (code >= 3364 && code <= 3378) {
- pinyin = "LING";
- break;
- }
-
- if (code >= 3379 && code <= 3389) {
- pinyin = "LIU";
- break;
- }
-
- if (code >= 3390 && code <= 3404) {
- pinyin = "LONG";
- break;
- }
-
- if (code >= 3405 && code <= 3410) {
- pinyin = "LOU";
- break;
- }
-
- if (code >= 3411 && code <= 3444) {
- pinyin = "LU";
- break;
- }
-
- if (code >= 3445 && code <= 3450) {
- pinyin = "LUAN";
- break;
- }
-
- if (code >= 3451 && code <= 3452) {
- pinyin = "LUE";
- break;
- }
-
- if (code >= 3453 && code <= 3459) {
- pinyin = "LUN";
- break;
- }
-
- if (code >= 3460 && code <= 3471) {
- pinyin = "LUO";
- break;
- }
-
- if (code >= 3472 && code <= 3480) {
- pinyin = "MA";
- break;
- }
-
- if (code >= 3481 && code <= 3486) {
- pinyin = "MAI";
- break;
- }
-
- if (code >= 3487 && code <= 3501) {
- pinyin = "MAN";
- break;
- }
-
- if (code >= 3502 && code <= 3507) {
- pinyin = "MANG";
- break;
- }
-
- if (code >= 3508 && code <= 3519) {
- pinyin = "MAO";
- break;
- }
-
- if (code == 3520) {
- pinyin = "ME";
- break;
- }
-
- if (code >= 3521 && code <= 3536) {
- pinyin = "MEI";
- break;
- }
-
- if (code >= 3537 && code <= 3539) {
- pinyin = "MEN";
- break;
- }
-
- if (code >= 3540 && code <= 3547) {
- pinyin = "MENG";
- break;
- }
-
- if (code >= 3548 && code <= 3561) {
- pinyin = "MI";
- }
-
- if (code >= 3562 && code <= 3570) {
- pinyin = "MIAN";
- break;
- }
-
- if (code >= 3571 && code <= 3578) {
- pinyin = "MIAO";
- break;
- }
-
- if (code >= 3579 && code <= 3580) {
- pinyin = "MIE";
- break;
- }
-
- if (code >= 3581 && code <= 3586) {
- pinyin = "MIN";
- break;
- }
-
- if (code >= 3587 && code <= 3592) {
- pinyin = "MING";
- break;
- }
-
- if (code == 3593) {
- pinyin = "MIU";
- break;
- }
-
- if (code >= 3594 && code <= 3616) {
- pinyin = "MO";
- break;
- }
-
- if (code >= 3617 && code <= 3619) {
- pinyin = "MOU";
- break;
- }
-
- if (code >= 3620 && code <= 3634) {
- pinyin = "MU";
- break;
- }
-
- if (code >= 3635 && code <= 3641) {
- pinyin = "NA";
- break;
- }
-
- if (code >= 3642 && code <= 3646) {
- pinyin = "NAI";
- break;
- }
-
- if (code >= 3647 && code <= 3649) {
- pinyin = "NAN";
- break;
- }
-
- if (code == 3650) {
- pinyin = "NANG";
- break;
- }
-
- if (code >= 3651 && code <= 3655) {
- pinyin = "NAO";
- break;
- }
-
- if (code == 3656) {
- pinyin = "NE";
- break;
- }
-
- if (code >= 3657 && code <= 3658) {
- pinyin = "NEI";
- break;
- }
-
- if (code == 3659) {
- pinyin = "NEN";
- break;
- }
-
- if (code == 3660) {
- pinyin = "NENG";
- break;
- }
-
- if (code >= 3661 && code <= 3671) {
- pinyin = "NI";
- break;
- }
-
- if (code >= 3672 && code <= 3678) {
- pinyin = "NIAN";
- break;
- }
-
- if (code >= 3679 && code <= 3680) {
- pinyin = "NIANG";
- break;
- }
-
- if (code >= 3681 && code <= 3682) {
- pinyin = "NIAO";
- break;
- }
-
- if (code >= 3683 && code <= 3689) {
- pinyin = "NIE";
- break;
- }
-
- if (code == 3690) {
- pinyin = "NIN";
- break;
- }
-
- if (code >= 3691 && code <= 3702) {
- pinyin = "NING";
- break;
- }
-
- if (code >= 3703 && code <= 3706) {
- pinyin = "NIU";
- break;
- }
-
- if (code >= 3707 && code <= 3710) {
- pinyin = "NONG";
- break;
- }
-
- if (code >= 3711 && code <= 3714) {
- pinyin = "NU";
- break;
- }
-
- if (code == 3715) {
- pinyin = "NUAN";
- break;
- }
-
- if (code >= 3716 && code <= 3717) {
- pinyin = "NUE";
- break;
- }
-
- if (code >= 3718 && code <= 3721) {
- pinyin = "NUO";
- break;
- }
-
- if (code == 3722) {
- pinyin = "O";
- break;
- }
-
- if (code >= 3723 && code <= 3729) {
- pinyin = "OU";
- break;
- }
-
- if (code >= 3730 && code <= 3735) {
- pinyin = "PA";
- break;
- }
-
- if (code >= 3736 && code <= 3741) {
- pinyin = "PAI";
- break;
- }
-
- if (code >= 3742 && code <= 3749) {
- pinyin = "PAN";
- break;
- }
-
- if (code >= 3750 && code <= 3754) {
- pinyin = "PANG";
- break;
- }
-
- if (code >= 3755 && code <= 3761) {
- pinyin = "PAO";
- break;
- }
-
- if (code >= 3762 && code <= 3770) {
- pinyin = "PEI";
- break;
- }
-
- if (code >= 3771 && code <= 3772) {
- pinyin = "PEN";
- break;
- }
-
- if (code >= 3773 && code <= 3786) {
- pinyin = "PENG";
- break;
- }
-
- if (code >= 3787 && code <= 3809) {
- pinyin = "PI";
- break;
- }
-
- if (code >= 3810 && code <= 3813) {
- pinyin = "PIAN";
- break;
- }
-
- if (code >= 3814 && code <= 3817) {
- pinyin = "PIAO";
- break;
- }
-
- if (code >= 3818 && code <= 3819) {
- pinyin = "PIE";
- break;
- }
-
- if (code >= 3820 && code <= 3824) {
- pinyin = "PIN";
- break;
- }
-
- if (code >= 3825 && code <= 3833) {
- pinyin = "PING";
- break;
- }
-
- if (code >= 3834 && code <= 3841) {
- pinyin = "PO";
- break;
- }
-
- if (code == 3842) {
- pinyin = "POU";
- break;
- }
-
- if (code >= 3843 && code <= 3857) {
- pinyin = "PU";
- break;
- }
-
- if (code >= 3858 && code <= 3893) {
- pinyin = "QI";
- break;
- }
-
- if (code == 3894 || (code >= 3901 && code <= 3902)) {
- pinyin = "QIA";
- break;
- }
-
- if (code >= 3903 && code <= 3924) {
- pinyin = "QIAN";
- break;
- }
-
- if (code >= 3925 && code <= 3932) {
- pinyin = "QIANG";
- break;
- }
-
- if (code >= 3933 && code <= 3947) {
- pinyin = "QIAO";
- break;
- }
-
- if (code >= 3948 && code <= 3952) {
- pinyin = "QIE";
- break;
- }
-
- if (code >= 3953 && code <= 3963) {
- pinyin = "QIN";
- break;
- }
-
- if (code >= 3964 && code <= 3976) {
- pinyin = "QING";
- break;
- }
-
- if (code >= 3977 && code <= 3978) {
- pinyin = "QIONG";
- break;
- }
-
- if (code >= 3979 && code <= 3986) {
- pinyin = "QIU";
- break;
- }
-
- if (code >= 3987 && code <= 4005) {
- pinyin = "QU";
- break;
- }
-
- if (code >= 4006 && code <= 4016) {
- pinyin = "QUAN";
- break;
- }
-
- if (code >= 4017 && code <= 4024) {
- pinyin = "QUE";
- break;
- }
-
- if (code >= 4025 && code <= 4026) {
- pinyin = "QUN";
- break;
- }
-
- if (code >= 4027 && code <= 4030) {
- pinyin = "RAN";
- break;
- }
-
- if (code >= 4031 && code <= 4035) {
- pinyin = "RANG";
- }
-
- if (code >= 4036 && code <= 4038) {
- pinyin = "RAO";
- break;
- }
-
- if (code >= 4039 && code <= 4040) {
- pinyin = "RE";
- break;
- }
-
- if (code >= 4041 && code <= 4050) {
- pinyin = "REN";
- break;
- }
-
- if (code >= 4051 && code <= 4052) {
- pinyin = "RENG";
- break;
- }
-
- if (code == 4053) {
- pinyin = "RI";
- break;
- }
-
- if (code >= 4054 && code <= 4063) {
- pinyin = "RONG";
- break;
- }
-
- if (code >= 4064 && code <= 4066) {
- pinyin = "ROU";
- break;
- }
-
- if (code >= 4067 && code <= 4076) {
- pinyin = "RU";
- break;
- }
-
- if (code >= 4077 && code <= 4078) {
- pinyin = "RUAN";
- break;
- }
-
- if (code >= 4079 && code <= 4081) {
- pinyin = "RUI";
- break;
- }
-
- if (code >= 4082 && code <= 4083) {
- pinyin = "RUN";
- break;
- }
-
- if (code >= 4084 && code <= 4085) {
- pinyin = "RUO";
- break;
- }
-
- if (code >= 4086 && code <= 4088) {
- pinyin = "SA";
- break;
- }
-
- if (code >= 4089 && code <= 4092) {
- pinyin = "SAI";
- break;
- }
-
- if (code >= 4093 && code <= 4094) {
- pinyin = "SAN";
- break;
- }
-
- if (code >= 4101 && code <= 4102) {
- pinyin = "SAN";
- break;
- }
-
- if (code >= 4103 && code <= 4105) {
- pinyin = "SANG";
- break;
- }
-
- if (code >= 4106 && code <= 4109) {
- pinyin = "SAO";
- break;
- }
-
- if (code >= 4110 && code <= 4112) {
- pinyin = "SE";
- break;
- }
-
- if (code == 4113) {
- pinyin = "SEN";
- }
-
- if (code == 4114) {
- pinyin = "SENG";
- break;
- }
-
- if (code >= 4115 && code <= 4123) {
- pinyin = "SHA";
- break;
- }
-
- if (code >= 4124 && code <= 4125) {
- pinyin = "SHAI";
- break;
- }
-
- if (code >= 4126 && code <= 4141) {
- pinyin = "SHAN";
- break;
- }
-
- if (code >= 4142 && code <= 4149) {
- pinyin = "SHANG";
- break;
- }
-
- if (code >= 4150 && code <= 4160) {
- pinyin = "SHAO";
- break;
- }
-
- if (code >= 4161 && code <= 4172) {
- pinyin = "SHE";
- break;
- }
-
- if (code >= 4173 && code <= 4188) {
- pinyin = "SHEN";
- break;
- }
-
- if (code >= 4189 && code <= 4205) {
- pinyin = "SHENG";
- break;
- }
-
- if (code >= 4206 && code <= 4252) {
- pinyin = "SHI";
- break;
- }
-
- if (code >= 4253 && code <= 4262) {
- pinyin = "SHOU";
- break;
- }
-
- if (code >= 4263 && code <= 4301) {
- pinyin = "SHU";
- break;
- }
-
- if (code >= 4302 && code <= 4303) {
- pinyin = "SHUA";
- break;
- }
-
- if (code >= 4304 && code <= 4307) {
- pinyin = "SHUAI";
- break;
- }
-
- if (code >= 4308 && code <= 4309) {
- pinyin = "SHUAN";
- break;
- }
-
- if (code >= 4310 && code <= 4312) {
- pinyin = "SHUANG";
- break;
- }
-
- if (code >= 4313 && code <= 4316) {
- pinyin = "SHUI";
- break;
- }
-
- if (code >= 4317 && code <= 4320) {
- pinyin = "SHUN";
- break;
- }
-
- if (code >= 4321 && code <= 4324) {
- pinyin = "SHUO";
- break;
- }
-
- if (code >= 4325 && code <= 4340) {
- pinyin = "SI";
- break;
- }
-
- if (code >= 4341 && code <= 4348) {
- pinyin = "SONG";
- break;
- }
-
- if (code >= 4349 && code <= 4352) {
- pinyin = "SOU";
- break;
- }
-
- if (code >= 4353 && code <= 4364) {
- pinyin = "SU";
- break;
- }
-
- if (code >= 4365 && code <= 4367) {
- pinyin = "SUAN";
- break;
- }
-
- if (code >= 4368 && code <= 4378) {
- pinyin = "SUI";
- break;
- }
-
- if (code >= 4379 && code <= 4381) {
- pinyin = "SUN";
- break;
- }
-
- if (code >= 4382 && code <= 4389) {
- pinyin = "SUO";
- break;
- }
-
- if (code >= 4390 && code <= 4404) {
- pinyin = "TA";
- break;
- }
-
- if (code >= 4405 && code <= 4413) {
- pinyin = "TAI";
- break;
- }
-
- if (code >= 4414 && code <= 4431) {
- pinyin = "TAN";
- break;
- }
-
- if (code >= 4432 && code <= 4444) {
- pinyin = "TANG";
- break;
- }
-
- if (code >= 4445 && code <= 4455) {
- pinyin = "TAO";
- break;
- }
-
- if (code == 4456) {
- pinyin = "TE";
- break;
- }
-
- if (code >= 4457 && code <= 4460) {
- pinyin = "TENG";
- break;
- }
-
- if (code >= 4461 && code <= 4475) {
- pinyin = "TI";
- break;
- }
-
- if (code >= 4476 && code <= 4483) {
- pinyin = "TIAN";
- break;
- }
-
- if (code >= 4484 && code <= 4488) {
- pinyin = "TIAO";
- break;
- }
-
- if (code >= 4489 && code <= 4491) {
- pinyin = "TIE";
- break;
- }
-
- if (code >= 4492 && code <= 4507) {
- pinyin = "TING";
- break;
- }
-
- if (code >= 4508 && code <= 4520) {
- pinyin = "TONG";
- break;
- }
-
- if (code >= 4521 && code <= 4524) {
- pinyin = "TOU";
- break;
- }
-
- if (code >= 4525 && code <= 4535) {
- pinyin = "TU";
- break;
- }
-
- if (code >= 4536 && code <= 4537) {
- pinyin = "TUAN";
- break;
- }
-
- if (code >= 4538 && code <= 4543) {
- pinyin = "TUI";
- break;
- }
-
- if (code >= 4544 && code <= 4546) {
- pinyin = "TUN";
- break;
- }
-
- if (code >= 4547 && code <= 4557) {
- pinyin = "TUO";
- break;
- }
-
- if (code >= 4558 && code <= 4564) {
- pinyin = "WA";
- break;
- }
-
- if (code >= 4565 && code <= 4566) {
- pinyin = "WAI";
- break;
- }
-
- if (code >= 4567 && code <= 4583) {
- pinyin = "WAN";
- break;
- }
-
- if (code >= 4584 && code <= 4593) {
- pinyin = "WANG";
- break;
- }
-
- if (code >= 4594 && code <= 4632) {
- pinyin = "WEI";
- break;
- }
-
- if (code >= 4633 && code <= 4642) {
- pinyin = "WEN";
- break;
- }
-
- if (code >= 4643 && code <= 4645) {
- pinyin = "WENG";
- break;
- }
-
- if (code >= 4646 && code <= 4654) {
- pinyin = "WO";
- break;
- }
-
- if (code >= 4655 && code <= 4683) {
- pinyin = "WU";
- break;
- }
-
- if (code >= 4684 && code <= 4724) {
- pinyin = "XI";
- break;
- }
-
- if (code >= 4725 && code <= 4737) {
- pinyin = "XIA";
- break;
- }
-
- if (code >= 4738 && code <= 4763) {
- pinyin = "XIAN";
- break;
- }
-
- if (code >= 4764 && code <= 4783) {
- pinyin = "XIANG";
- break;
- }
-
- if (code >= 4784 && code <= 4807) {
- pinyin = "XIAO";
- break;
- }
-
- if (code >= 4809 && code <= 4828) {
- pinyin = "XIE";
- break;
- }
-
- if (code >= 4829 && code <= 4838) {
- pinyin = "XIN";
- break;
- }
-
- if (code >= 4839 && code <= 4853) {
- pinyin = "XING";
- break;
- }
-
- if (code >= 4854 && code <= 4860) {
- pinyin = "XIONG";
- break;
- }
-
- if (code >= 4861 && code <= 4869) {
- pinyin = "XIU";
- break;
- }
-
- if (code >= 4870 && code <= 4888) {
- pinyin = "XU";
- break;
- }
-
- if (code >= 4889 && code <= 4904) {
- pinyin = "XUAN";
- break;
- }
-
- if (code >= 4905 && code <= 4910) {
- pinyin = "XUE";
- break;
- }
-
- if (code >= 4911 && code <= 4924) {
- pinyin = "XUN";
- break;
- }
-
- if (code >= 4925 && code <= 4940) {
- pinyin = "YA";
- break;
- }
-
- if (code >= 4941 && code <= 4973) {
- pinyin = "YAN";
- break;
- }
-
- if (code >= 4974 && code <= 4990) {
- pinyin = "YANG";
- break;
- }
-
- if (code >= 4991 && code <= 5011) {
- pinyin = "YAO";
- break;
- }
-
- if (code >= 5012 && code <= 5026) {
- pinyin = "YE";
- break;
- }
-
- if (code >= 5027 && code <= 5079) {
- pinyin = "YI";
- break;
- }
-
- if (code >= 5080 && code <= 5101) {
- pinyin = "YIN";
- break;
- }
-
- if (code >= 5102 && code <= 5119) {
- pinyin = "YING";
- break;
- }
-
- if (code == 5120) {
- pinyin = "YO";
- break;
- }
-
- if (code >= 5121 && code <= 5135) {
- pinyin = "YONG";
- break;
- }
-
- if (code >= 5136 && code <= 5155) {
- pinyin = "YOU";
- break;
- }
-
- if (code >= 5156 && code <= 5206) {
- pinyin = "YU";
- break;
- }
-
- if (code >= 5207 && code <= 5226) {
- pinyin = "YUAN";
- break;
- }
-
- if (code >= 5227 && code <= 5236) {
- pinyin = "YUE";
- break;
- }
-
- if (code >= 5237 && code <= 5248) {
- pinyin = "YUN";
- break;
- }
-
- if (code >= 5249 && code <= 5251) {
- pinyin = "ZA";
- break;
- }
-
- if (code >= 5252 && code <= 5258) {
- pinyin = "ZAI";
- break;
- }
-
- if (code >= 5259 && code <= 5262) {
- pinyin = "ZAN";
- break;
- }
-
- if (code >= 5263 && code <= 5265) {
- pinyin = "ZANG";
- break;
- }
-
- if (code >= 5266 && code <= 5279) {
- pinyin = "ZAO";
- break;
- }
-
- if (code >= 5280 && code <= 5283) {
- pinyin = "ZE";
- break;
- }
-
- if (code == 5284) {
- pinyin = "ZEI";
- break;
- }
-
- if (code == 5285) {
- pinyin = "ZEN";
- break;
- }
-
- if (code >= 5286 && code <= 5289) {
- pinyin = "ZENG";
- break;
- }
-
- if (code >= 5290 && code <= 5309) {
- pinyin = "ZHA";
- break;
- }
-
- if (code >= 5310 && code <= 5315) {
- pinyin = "ZHAI";
- break;
- }
-
- if (code >= 5316 && code <= 5332) {
- pinyin = "ZHAN";
- break;
- }
-
- if (code >= 5333 && code <= 5347) {
- pinyin = "ZHANG";
- break;
- }
-
- if (code >= 5348 && code <= 5357) {
- pinyin = "ZHAO";
- break;
- }
-
- if (code >= 5358 && code <= 5367) {
- pinyin = "ZHE";
- break;
- }
-
- if (code >= 5368 && code <= 5383) {
- pinyin = "ZHEN";
- break;
- }
-
- if (code >= 5384 && code <= 5404) {
- pinyin = "ZHENG";
- break;
- }
-
- if (code >= 5405 && code <= 5447) {
- pinyin = "ZHI";
- break;
- }
-
- if (code >= 5448 && code <= 5458) {
- pinyin = "ZHONG";
- break;
- }
-
- if (code >= 5459 && code <= 5472) {
- pinyin = "ZHOU";
- break;
- }
-
- if (code >= 5473 && code <= 5504) {
- pinyin = "ZHU";
- break;
- }
-
- if (code >= 5505 && code <= 5506) {
- pinyin = "ZHUA";
- break;
- }
-
- if (code == 5507) {
- pinyin = "ZHUAI";
- break;
- }
-
- if (code >= 5508 && code <= 5513) {
- pinyin = "ZHUAN";
- break;
- }
-
- if (code >= 5514 && code <= 5520) {
- pinyin = "ZHUANG";
- break;
- }
-
- if (code >= 5521 && code <= 5526) {
- pinyin = "ZHUI";
- break;
- }
-
- if (code >= 5527 && code <= 5528) {
- pinyin = "ZHUN";
- break;
- }
-
- if (code >= 5529 && code <= 5539) {
- pinyin = "ZHUO";
- break;
- }
-
- if (code >= 5540 && code <= 5554) {
- pinyin = "ZI";
- break;
- }
-
- if (code >= 5555 && code <= 5561) {
- pinyin = "ZONG";
- break;
- }
-
- if (code >= 5562 && code <= 5565) {
- pinyin = "ZOU";
- break;
- }
-
- if (code >= 5566 && code <= 5573) {
- pinyin = "ZU";
- break;
- }
-
- if (code >= 5574 && code <= 5575) {
- pinyin = "ZUAN";
- break;
- }
-
- if (code >= 5576 && code <= 5579) {
- pinyin = "ZUI";
- break;
- }
-
- if (code >= 5580 && code <= 5581) {
- pinyin = "ZUN";
- break;
- }
-
- if (code >= 5582 && code <= 5589) {
- pinyin = "ZUO";
- break;
- }
- }
-
- if (pinyin.isEmpty()) {
- pinyin = "";
- }
-
- return pinyin;
-}
-
diff --git a/src/BackProcess/Interface/ukuimenuinterface.cpp b/src/BackProcess/Interface/ukuimenuinterface.cpp
deleted file mode 100644
index 0f7386c..0000000
--- a/src/BackProcess/Interface/ukuimenuinterface.cpp
+++ /dev/null
@@ -1,1642 +0,0 @@
-/*
- * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include "ukui_chineseletter.h"
-
-UkuiMenuInterface::UkuiMenuInterface()
-{
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- } else {
- QString path = QDir::homePath() + "/.config/ukui/ukui-menu.ini";
- setting = new QSettings(path, QSettings::IniFormat);
- QString syspath = QDir::homePath() + "/.config/ukui/menusysapplist.ini";
- syssetting = new QSettings(syspath, QSettings::IniFormat);
- }
-}
-
-QVector UkuiMenuInterface::appInfoVector = QVector();
-QVector UkuiMenuInterface::desktopfpVector = QVector();
-QVector UkuiMenuInterface::collectAppVector = QVector();
-QVector UkuiMenuInterface::alphabeticVector = QVector();
-QVector UkuiMenuInterface::functionalVector = QVector();
-QVector UkuiMenuInterface::allAppVector = QVector();
-QStringList UkuiMenuInterface::androidDesktopfnList = QStringList();
-QVector UkuiMenuInterface::tencentInitVector = QVector();
-QVector UkuiMenuInterface::customizedVector = QVector();
-QVector UkuiMenuInterface::thirdPartyVector = QVector();
-QVector UkuiMenuInterface::applicationVector = QVector();
-
-UkuiMenuInterface::~UkuiMenuInterface()
-{
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- } else {
- if (setting) {
- delete setting;
- }
-
- if (syssetting) {
- delete syssetting;
- }
-
- setting = nullptr;
- syssetting = nullptr;
- }
-}
-
-QStringList UkuiMenuInterface::getFunctionClassName()
-{
- QStringList functionList;
- functionList.append(QObject::tr("Office"));
- functionList.append(QObject::tr("Development"));
- functionList.append(QObject::tr("Image"));
- functionList.append(QObject::tr("Video"));
- functionList.append(QObject::tr("Internet"));
- functionList.append(QObject::tr("Game"));
- functionList.append(QObject::tr("Education"));
- functionList.append(QObject::tr("Social"));
- functionList.append(QObject::tr("System"));
- functionList.append(QObject::tr("Safe"));
- functionList.append(QObject::tr("Others"));
- return functionList;
-}
-//文件递归查询
-void UkuiMenuInterface::recursiveSearchFile(const QString &_filePath)
-{
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- QDir dir(_filePath);
-
- if (!dir.exists()) {
- return;
- }
-
- dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
- dir.setSorting(QDir::DirsFirst);
- QFileInfoList list = dir.entryInfoList();
-
- if (list.size() < 1) {
- return;
- }
-
- int i = 0;
-
- //递归算法的核心部分
- do {
- QFileInfo fileInfo = list.at(i);
- //如果是文件夹,递归
- bool isDir = fileInfo.isDir();
-
- if (isDir) {
- recursiveSearchFile(fileInfo.filePath());
- } else {
- //过滤后缀不是.desktop的文件
- QString filePathStr = fileInfo.filePath();
-
- if (!filePathStr.endsWith(".desktop")) {
- i++;
- continue;
- }
-
- QByteArray fpbyte = filePathStr.toLocal8Bit();
- char *filepath = fpbyte.data();
-
- if (0 != access(filepath, R_OK)) { //判断文件是否可读
- i++;
- continue;
- }
-
- keyfile = g_key_file_new();
-
- if (!g_key_file_load_from_file(keyfile, filepath, flags, error)) {
- return;
- }
-
- char *ret_1 = g_key_file_get_locale_string(keyfile, "Desktop Entry", "NoDisplay", nullptr, nullptr);
-
- if (ret_1 != nullptr) {
- QString str = QString::fromLocal8Bit(ret_1);
-
- if (str.contains("true")) {
- g_key_file_free(keyfile);
- i++;
- continue;
- }
- }
-
- char *ret_2 = g_key_file_get_locale_string(keyfile, "Desktop Entry", "NotShowIn", nullptr, nullptr);
-
- if (ret_2 != nullptr) {
- QString str = QString::fromLocal8Bit(ret_2);
-
- if (str.contains("UKUI")) {
- g_key_file_free(keyfile);
- i++;
- continue;
- }
- }
-
- //过滤LXQt、KDE
- char *ret = g_key_file_get_locale_string(keyfile, "Desktop Entry", "OnlyShowIn", nullptr, nullptr);
-
- if (ret != nullptr) {
- QString str = QString::fromLocal8Bit(ret);
-
- if (str.contains("LXQt") || str.contains("KDE")) {
- g_key_file_free(keyfile);
- i++;
- continue;
- }
- }
-
- g_key_file_free(keyfile);
- m_filePathList.append(filePathStr);
- }
-
- i++;
- } while (i < list.size());
- } else {
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QDir dir(_filePath);
-
- if (!dir.exists()) {
- return;
- }
-
- dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
- dir.setSorting(QDir::DirsFirst);
- QFileInfoList list = dir.entryInfoList();
- list.removeAll(QFileInfo("/usr/share/applications/screensavers"));
-
- if (list.size() < 1) {
- return;
- }
-
- int i = 0;
-
- //递归算法的核心部分
- do {
- QFileInfo fileInfo = list.at(i);
- //如果是文件夹,递归
- bool isDir = fileInfo.isDir();
-
- if (isDir) {
- recursiveSearchFile(fileInfo.filePath());
- } else {
- //过滤后缀不是.desktop的文件
- QString filePathStr = fileInfo.filePath();
-
- if (!filePathStr.endsWith(".desktop")) {
- i++;
- continue;
- }
-
- QByteArray fpbyte = filePathStr.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *ret_1 = g_key_file_get_locale_string(keyfile, "Desktop Entry", "NoDisplay", nullptr, nullptr);
-
- if (ret_1 != nullptr) {
- QString str = QString::fromLocal8Bit(ret_1);
-
- if (str.contains("true")) {
- i++;
- continue;
- }
- }
-
- char *ret_2 = g_key_file_get_locale_string(keyfile, "Desktop Entry", "NotShowIn", nullptr, nullptr);
-
- if (ret_2 != nullptr) {
- QString str = QString::fromLocal8Bit(ret_2);
-
- if (str.contains("UKUI")) {
- i++;
- continue;
- }
- }
-
- //过滤LXQt、KDE
- char *ret = g_key_file_get_locale_string(keyfile, "Desktop Entry", "OnlyShowIn", nullptr, nullptr);
-
- if (ret != nullptr) {
- QString str = QString::fromLocal8Bit(ret);
-
- if (str.contains("LXQt") || str.contains("KDE")) {
- i++;
- continue;
- }
- }
-
- //过滤中英文名为空的情况
- QLocale cn;
- QString language = cn.languageToString(cn.language());
-
- if (QString::compare(language, "Chinese") == 0) {
- char *nameCh = g_key_file_get_string(keyfile, "Desktop Entry", "Name[zh_CN]", nullptr);
- char *nameEn = g_key_file_get_string(keyfile, "Desktop Entry", "Name", nullptr);
-
- if (QString::fromLocal8Bit(nameCh).isEmpty() && QString::fromLocal8Bit(nameEn).isEmpty()) {
- i++;
- continue;
- }
- } else {
- char *name = g_key_file_get_string(keyfile, "Desktop Entry", "Name", nullptr);
-
- if (QString::fromLocal8Bit(name).isEmpty()) {
- i++;
- continue;
- }
- }
-
- m_filePathList.append(filePathStr);
- }
-
- i++;
- } while (i < list.size());
-
- g_key_file_free(keyfile);
- }
-}
-
-//获取系统desktop文件路径
-QStringList UkuiMenuInterface::getDesktopFilePath()
-{
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- m_filePathList.clear();
- QString jsonPath = QDir::homePath() + "/.config/ukui-menu-security-config.json";
- QFile file(jsonPath);
-
- if (file.exists()) {
- file.open(QIODevice::ReadOnly);
- QByteArray readBy = file.readAll();
- QJsonParseError error;
- QJsonDocument readDoc = QJsonDocument::fromJson(readBy, &error);
-
- if (!readDoc.isNull() && error.error == QJsonParseError::NoError) {
- QJsonObject obj = readDoc.object().value("ukui-menu").toObject();
-
- if (obj.value("mode").toString() == "whitelist") {
- QJsonArray blArray = obj.value("whitelist").toArray();
- QJsonArray enArray = blArray.at(0).toObject().value("entries").toArray();
-
- for (int index = 0; index < enArray.size(); index++) {
- QJsonObject obj = enArray.at(index).toObject();
- m_filePathList.append(obj.value("path").toString());
- // qDebug()< reply = desktopfpListiface.call("GetDesktopAppList",username);
- //1、获取系统应用列表
- //filePathList;
- QStringList ifFileDesktopList;
- /*新的应用列表*/
- myDebug() << "sysapplistnum初始化默认应用列表" << m_filePathList.count();
-
- for (int i = 0; i < m_filePathList.count(); i++) { //过滤 得到真实存在的应用
- QString tmp = m_filePathList.at(i);
- QFileInfo fileInfo(tmp);
-
- if (!fileInfo.isFile()) { //判断是否存在
- //qDebug()<beginGroup("ukui-menu-sysapplist");
- int sysapplistnum = syssetting->allKeys().count();
- syssetting->sync();
- syssetting->endGroup();
- //qDebug()<<"sysapplistnum初始化默认应用列表3"<beginGroup("ukui-menu-sysapplist");
- myDebug() << "isnottencent" << str;
- syssetting->setValue(str, 0);
- syssetting->sync();
- syssetting->endGroup();
- }
- }/*else{
-
- //用户隔离/etc/skel/桌面
- QString tmp=QString("%1%2").arg("/usr/share/applications/").arg(str);
- QString appid=getTencentAppid(tmp);
- qDebug()<<"appid"< UkuiMenuInterface::createAppInfoVector()
-{
- desktopfpVector.clear();
- QVector appInfoVector;
- QVector vector;
- vector.append(QStringList() << "office" << "Office" << "Calculator" << "Spreadsheet" << "Presentation" << "WordProcessor" << "TextEditor"); //0办公
- vector.append(QStringList() << "develop" << "Development"); //1开发
- vector.append(QStringList() << "graphic" << "Graphics"); //2图像
- vector.append(QStringList() << "video" << "Audio" << "Video"); //3影音
- vector.append(QStringList() << "network" << "Network"); //4网络
- vector.append(QStringList() << "game" << "Game"); //5游戏
- vector.append(QStringList() << "education" << "Education"); //6教育
- vector.append(QStringList() << "social" << "Messaging"); //7社交
- vector.append(QStringList() << "system" << "System" << "Settings" << "Security"); //8系统
- vector.append(QStringList() << "safe"); //9安全
- vector.append(QStringList() << "others"); //10其他
- QStringList desktopfpList = getDesktopFilePath();
- QSqlDatabase db = QSqlDatabase::database("MainThreadDataBase");
- QSqlQuery sql(db);
-
- for (int i = 0; i < desktopfpList.count(); i++) {
- QStringList appInfoList;
- QString desktopfp = desktopfpList.at(i);
- QString name = getAppName(desktopfpList.at(i));
-
- if (!name.isEmpty()) {
- QString englishName = getAppEnglishName(desktopfpList.at(i));
- QString letter = getAppNameInitial(desktopfpList.at(i));
- QString letters = getAppNameInitials(desktopfpList.at(i));
- desktopfpVector.append(desktopfp);
- appInfoList << desktopfp << name << englishName << letter << letters;
-
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- QString desktopfpExecName = getAppExec(desktopfpList.at(i));
- desktopfpExecName = desktopfpExecName.mid(desktopfpExecName.lastIndexOf("/") + 1);
- desktopfpExecName = desktopfpExecName.left(desktopfpExecName.lastIndexOf(" "));
- sql.exec(QString("select name_zh from appCategory where app_name=\"%1\" ").arg(desktopfpExecName));
-
- if (sql.next()) {
- for (int j = 0; j < vector.size(); j++) {
- if (vector.at(j).contains(sql.value(0).toString())) {
- appInfoList.append(QString::number(j));
- }
- }
-
- appInfoVector.append(appInfoList);
- continue;
- }
- }
-
- bool is_owned = false;
-
- for (int j = 0; j < vector.size(); j++) {
- if (matchingAppCategories(desktopfpList.at(i), vector.at(j))) { //有对应分类
- is_owned = true;
- appInfoList.append(QString::number(j));
- }
- }
-
- if (!is_owned) { //该应用无对应分类
- appInfoList.append(QString::number(10));
- }
-
- appInfoVector.append(appInfoList);
- }
- }
-
- return appInfoVector;
-}
-//获取tencent应用名
-QString UkuiMenuInterface::getTencentAppid(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *Appid = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Appid", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(Appid);
-}
-//获取应用名称
-QString UkuiMenuInterface::getAppName(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *name = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Name", nullptr, nullptr);
- QString namestr = QString::fromLocal8Bit(name);
- g_key_file_free(keyfile);
- return namestr;
-}
-//获取英应用英文名
-QString UkuiMenuInterface::getAppEnglishName(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *name = g_key_file_get_string(keyfile, "Desktop Entry", "Name", nullptr);
- QString namestr = QString::fromLocal8Bit(name);
- return namestr;
-}
-//获取应用分类
-QString UkuiMenuInterface::getAppCategories(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *category = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Categories", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(category);
-}
-//获取应用图标
-QString UkuiMenuInterface::getAppIcon(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *icon = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Icon", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(icon);
-}
-//获取应用命令
-QString UkuiMenuInterface::getAppExec(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *exec = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Exec", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(exec);
-}
-//获取应用注释
-QString UkuiMenuInterface::getAppComment(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *comment = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Comment", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(comment);
-}
-//获取应用类型
-QString UkuiMenuInterface::getAppType(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *type = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Type", nullptr, nullptr);
- g_key_file_free(keyfile);
- return QString::fromLocal8Bit(type);
-}
-bool UkuiMenuInterface::cmpApp(QStringList &arg_1, QStringList &arg_2)
-{
- QLocale local;
- QString language = local.languageToString(local.language());
-
- if (QString::compare(language, "Chinese") == 0) {
- local = QLocale(QLocale::Chinese);
- } else {
- local = QLocale(QLocale::English);
- }
-
- QCollator collator(local);
-
- if (collator.compare(arg_1.at(1), arg_2.at(1)) < 0) {
- return true;
- } else {
- return false;
- }
-}
-bool UkuiMenuInterface::initAppIni()
-{
- if (false) {
- QVector appInitVector;
- QVector tencentInitVectorList;
- QVector customizedVectorList;
- QVector thirdPartyVectorList;
- QString tencent_math = "/usr/share/applications/tencent-math-precise-practice.desktop";
- QString tencent_chinese = "/usr/share/applications/tencent-chinese-precise-practice.desktop";
- QString tencent_english = "/usr/share/applications/tencent-english-precise-practice.desktop";
- QVector precise_practiceVector;
- QStringList math;
- QStringList english;
- QStringList chainese;
- setting->beginGroup("application");
- QStringList desktopfnList = setting->allKeys();
- setting->endGroup();
-
- if (desktopfnList.count() == 0) {
- for (int i = 0; i < appInfoVector.count(); i++) {
- //qDebug()<<"appInfoVector"<beginGroup("tencent");
-
- for (int i = 0; i < tencentInitVectorList.count(); i++) {
- QString str = tencentInitVectorList.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- //qDebug()<setValue(str, i);
- }
-
- setting->sync();
- setting->endGroup();
- // int a=tencentInitVectorList.count();
- setting->beginGroup("customized");
-
- for (int i = 0; i < customizedVectorList.count(); i++) {
- QString str = customizedVectorList.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i);
- }
-
- setting->sync();
- setting->endGroup();
- // int b=customizedVector.count();
- setting->beginGroup("thirdParty");
-
- for (int i = 0; i < thirdPartyVectorList.count(); i++) {
- QString str = thirdPartyVectorList.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i);
- }
-
- setting->sync();
- setting->endGroup();
- // int c=thirdPartyVectorList.count();
- setting->beginGroup("application");
-
- for (int i = 0; i < appInitVector.count(); i++) { //赋值
- QString str = appInitVector.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i);
- }
-
- setting->sync();
- setting->endGroup();
- return 1;
- }
-
- return 0;
- } else {
- QVector appInitVector;
- QVector tencentInitVector;
- QVector customizedVector;
- QVector thirdPartyVector;
- QString tencent_math = "/usr/share/applications/tencent-math-precise-practice.desktop";
- QString tencent_chinese = "/usr/share/applications/tencent-chinese-precise-practice.desktop";
- QString tencent_english = "/usr/share/applications/tencent-english-precise-practice.desktop";
- QVector precise_practiceVector;
- QStringList math;
- QStringList english;
- QStringList chainese;
- setting->beginGroup("application");
- QStringList desktopfnList = setting->allKeys();
- setting->endGroup();
-
- if (desktopfnList.count() == 0) {
- for (int i = 0; i < desktopfpVector.count(); i++) {
- //qDebug()<<"appInfoVector"<beginGroup("application");
-
- for (int i = 0; i < tencentInitVector.count(); i++) {
- QString str = tencentInitVector.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- //qDebug()<setValue(str, i);
- }
-
- int a = tencentInitVector.count();
-
- for (int i = 0; i < customizedVector.count(); i++) {
- QString str = customizedVector.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i + a);
- }
-
- int b = customizedVector.count();
-
- for (int i = 0; i < thirdPartyVector.count(); i++) {
- QString str = thirdPartyVector.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i + a + b);
- }
-
- int c = thirdPartyVector.count();
-
- for (int i = 0; i < appInitVector.count(); i++) { //赋值
- QString str = appInitVector.at(i).at(0).section(' ', 0, 0);
- QStringList list = str.split('/');
- str = list[list.size() - 1];
- setting->setValue(str, i + a + b + c);
- }
-
- int d = appInitVector.count();
- setting->setValue("kylin-user-guide.desktop", a + b + c + d);
- setting->sync();
- setting->endGroup();
- return 1;
- }
-
- return 0;
- }
-}
-QVector UkuiMenuInterface::getAllClassification()
-{
- QVector allAppVector;
- QVector commonVector;
- QVector appVector;
- allAppVector.clear();
- commonVector.clear();
- appVector.clear();
- commonVector = getCommonUseApp();
- int index = 0;
-
- Q_FOREACH (QString desktopfp, desktopfpVector) {
- if (!commonVector.contains(desktopfp)) {
- appVector.append(appInfoVector.at(index));
- }
-
- index++;
- }
-
- qSort(appVector.begin(), appVector.end(), cmpApp);
-
- Q_FOREACH (QString desktopfp, commonVector) {
- allAppVector.append(desktopfp);
- }
-
- for (int index = 0; index < appVector.size(); index++) {
- allAppVector.append(appVector.at(index).at(0));
- }
-
- return allAppVector;
-}
-QVector UkuiMenuInterface::getCommonUseApp()
-{
- // QDateTime dt=QDateTime::currentDateTime();
- // int currentDateTime=dt.toTime_t();
- // int nDaySec=24*60*60;
- // setting->beginGroup("datetime");
- // QStringList dateTimeKeys=setting->allKeys();
- // QStringList timeOutKeys;
- // timeOutKeys.clear();
- // for(int i=0;ivalue(dateTimeKeys.at(i)).toInt())/nDaySec >= 4)
- // {
- // timeOutKeys.append(dateTimeKeys.at(i));
- // }
- // }
- // setting->endGroup();
- // for(int i=0;ibeginGroup("application");
- // setting->remove(timeOutKeys.at(i));
- // setting->sync();
- // setting->endGroup();
- // setting->beginGroup("datetime");
- // setting->remove(timeOutKeys.at(i));
- // setting->sync();
- // setting->endGroup();
- // }
- // setting->beginGroup("lockapplication");
- // QStringList lockdesktopfnList=setting->allKeys();
- // for(int i=0;ivalue(lockdesktopfnList.at(j)).toInt();
- // int value_2=setting->value(lockdesktopfnList.at(j+1)).toInt();
- // if(value_1 > value_2)
- // {
- // QString tmp=lockdesktopfnList.at(j);
- // lockdesktopfnList.replace(j,lockdesktopfnList.at(j+1));
- // lockdesktopfnList.replace(j+1,tmp);
- // }
- // }
- // setting->endGroup();
- // setting->beginGroup("application");
- // QStringList desktopfnList=setting->allKeys();
- // for(int i=0;ivalue(desktopfnList.at(j)).toInt();
- // int value_2=setting->value(desktopfnList.at(j+1)).toInt();
- // if(value_1 < value_2)
- // {
- // QString tmp=desktopfnList.at(j);
- // desktopfnList.replace(j,desktopfnList.at(j+1));
- // desktopfnList.replace(j+1,tmp);
- // }
- // }
- // setting->endGroup();
- // QVector data;
- // Q_FOREACH(QString desktopfn,lockdesktopfnList)
- // {
- // QString desktopfp;
- // if(androidDesktopfnList.contains(desktopfn))
- // desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn);
- // else
- // desktopfp=QString("/usr/share/applications/"+desktopfn);
- // QFileInfo fileInfo(desktopfp);
- // if(!fileInfo.isFile()|| !desktopfpVector.contains(desktopfp))
- // continue;
- // data.append(desktopfp);
- // }
- // Q_FOREACH(QString desktopfn,desktopfnList)
- // {
- // QString desktopfp;
- // if(androidDesktopfnList.contains(desktopfn))
- // desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn);
- // else
- // desktopfp=QString("/usr/share/applications/"+desktopfn);
- // QFileInfo fileInfo(desktopfp);
- // if(!fileInfo.isFile() || !desktopfpVector.contains(desktopfp))
- // continue;
- // data.append(desktopfp);
- // }
- if (!g_projectCodeName.contains("V10SP1-edu")) {
- QVector data;
-
- Q_FOREACH (QString desktopfn, getLockAppList()) {
- QString desktopfp;
-
- if (androidDesktopfnList.contains(desktopfn)) {
- desktopfp = QString(QDir::homePath() + "/.local/share/applications/" + desktopfn);
- } else {
- desktopfp = QString("/usr/share/applications/" + desktopfn);
- }
-
- QFileInfo fileInfo(desktopfp);
-
- if (!fileInfo.isFile() || !desktopfpVector.contains(desktopfp)) {
- continue;
- }
-
- data.append(desktopfp);
- }
-
- Q_FOREACH (QString desktopfn, getUnlockAllList()) {
- QString desktopfp;
-
- if (androidDesktopfnList.contains(desktopfn)) {
- desktopfp = QString(QDir::homePath() + "/.local/share/applications/" + desktopfn);
- } else {
- desktopfp = QString("/usr/share/applications/" + desktopfn);
- }
-
- QFileInfo fileInfo(desktopfp);
-
- if (!fileInfo.isFile() || !desktopfpVector.contains(desktopfp)) {
- continue;
- }
-
- data.append(desktopfp);
- }
-
- return data;
- }
-}
-
-QVector UkuiMenuInterface::sortDesktopList(QString group)
-{
- setting->beginGroup(group);
- QStringList desktopfnList = setting->allKeys();
-
- for (int i = 0; i < desktopfnList.count() - 1; i++)
- for (int j = 0; j < desktopfnList.count() - 1 - i; j++) { //冒泡排序常用的应用从大到小排列desktopfnList
- int value_1 = setting->value(desktopfnList.at(j)).toInt();
- int value_2 = setting->value(desktopfnList.at(j + 1)).toInt();
-
- if (value_1 > value_2) {
- QString tmp = desktopfnList.at(j);
- desktopfnList.replace(j, desktopfnList.at(j + 1));
- desktopfnList.replace(j + 1, tmp);
- }
- }
-
- setting->sync();
- setting->endGroup();
- QVector data;
-
- Q_FOREACH (QString desktopfn, desktopfnList) {
- QString desktopfp;
-
- if (androidDesktopfnList.contains(desktopfn)) {
- desktopfp = QString(QDir::homePath() + "/.local/share/applications/" + desktopfn);
- } else {
- desktopfp = QString("/usr/share/applications/" + desktopfn);
- }
-
- data.append(desktopfp);
- }
-
- return data;
-}
-QVector UkuiMenuInterface::getCollectApp()
-{
- QVector data;
-
- Q_FOREACH (QString desktopfn, getCollectAppList()) {
- QString desktopfp;
-
- if (androidDesktopfnList.contains(desktopfn)) {
- desktopfp = QString(QDir::homePath() + "/.local/share/applications/" + desktopfn);
- } else {
- desktopfp = QString("/usr/share/applications/" + desktopfn);
- }
-
- QFileInfo fileInfo(desktopfp);
-
- if (!fileInfo.isFile() || !desktopfpVector.contains(desktopfp)) {
- continue;
- }
-
- data.append(desktopfp);
- }
-
- return data;
-}
-QVector UkuiMenuInterface::getLockApp()
-{
- setting->beginGroup("lockapplication");
- QStringList lockdesktopfnList = setting->allKeys();
-
- for (int i = 0; i < lockdesktopfnList.count() - 1; i++) //冒泡排序锁住的应用从小到大排列lockdesktopfnList
- for (int j = 0; j < lockdesktopfnList.count() - 1 - i; j++) {
- int value_1 = setting->value(lockdesktopfnList.at(j)).toInt();
- int value_2 = setting->value(lockdesktopfnList.at(j + 1)).toInt();
-
- if (value_1 > value_2) {
- QString tmp = lockdesktopfnList.at(j);
- lockdesktopfnList.replace(j, lockdesktopfnList.at(j + 1));
- lockdesktopfnList.replace(j + 1, tmp);
- }
- }
-
- setting->endGroup();
- QVector data;
-
- Q_FOREACH (QString desktopfn, lockdesktopfnList) {
- QString desktopfp;
- // if(androidDesktopfnList.contains(desktopfn))//如果锁的应用在安卓列表
- // desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn);
- // else
- desktopfp = QString("/usr/share/applications/" + desktopfn);
- // QFileInfo fileInfo(desktopfp);
- // if(!fileInfo.isFile())//判断是否存在
- // continue;
- data.append(desktopfp);//加入data
- }
-
- return data;
-}
-QVector UkuiMenuInterface::getAlphabeticClassification()
-{
- QVector data;
- QStringList appnameList;
- appnameList.clear();
- QVector appVector[27];
- int index = 0;
-
- while (index < appInfoVector.size()) {
- QString appname = appInfoVector.at(index).at(1);
- QString appnamepy = UkuiChineseLetter::getPinyins(appname);
-
- if (!appnamepy.isEmpty()) {
- char c = appnamepy.at(0).toLatin1();
-
- switch (c) {
- case 'A':
- appVector[0].append(appInfoVector.at(index));
- break;
-
- case 'B':
- appVector[1].append(appInfoVector.at(index));
- break;
-
- case 'C':
- appVector[2].append(appInfoVector.at(index));
- break;
-
- case 'D':
- appVector[3].append(appInfoVector.at(index));
- break;
-
- case 'E':
- appVector[4].append(appInfoVector.at(index));
- break;
-
- case 'F':
- appVector[5].append(appInfoVector.at(index));
- break;
-
- case 'G':
- appVector[6].append(appInfoVector.at(index));
- break;
-
- case 'H':
- appVector[7].append(appInfoVector.at(index));
- break;
-
- case 'I':
- appVector[8].append(appInfoVector.at(index));
- break;
-
- case 'J':
- appVector[9].append(appInfoVector.at(index));
- break;
-
- case 'K':
- appVector[10].append(appInfoVector.at(index));
- break;
-
- case 'L':
- appVector[11].append(appInfoVector.at(index));
- break;
-
- case 'M':
- appVector[12].append(appInfoVector.at(index));
- break;
-
- case 'N':
- appVector[13].append(appInfoVector.at(index));
- break;
-
- case 'O':
- appVector[14].append(appInfoVector.at(index));
- break;
-
- case 'P':
- appVector[15].append(appInfoVector.at(index));
- break;
-
- case 'Q':
- appVector[16].append(appInfoVector.at(index));
- break;
-
- case 'R':
- appVector[17].append(appInfoVector.at(index));
- break;
-
- case 'S':
- appVector[18].append(appInfoVector.at(index));
- break;
-
- case 'T':
- appVector[19].append(appInfoVector.at(index));
- break;
-
- case 'U':
- appVector[20].append(appInfoVector.at(index));
- break;
-
- case 'V':
- appVector[21].append(appInfoVector.at(index));
- break;
-
- case 'W':
- appVector[22].append(appInfoVector.at(index));
- break;
-
- case 'X':
- appVector[23].append(appInfoVector.at(index));
- break;
-
- case 'Y':
- appVector[24].append(appInfoVector.at(index));
- break;
-
- case 'Z':
- appVector[25].append(appInfoVector.at(index));
- break;
-
- default:
- appVector[26].append(appInfoVector.at(index));
- break;
- }
- }
-
- index++;
- }
-
- for (int i = 0; i < 26; i++) {
- QStringList desktopfpList;
- desktopfpList.clear();
- qSort(appVector[i].begin(), appVector[i].end(), cmpApp);
-
- for (int j = 0; j < appVector[i].size(); j++) {
- desktopfpList.append(appVector[i].at(j).at(0));
- }
-
- data.append(desktopfpList);
- }
-
- QVector otherVector;
- QVector numberVector;
-
- for (int i = 0; i < appVector[26].count(); i++) {
- QString appname = appVector[26].at(i).at(2);
- QChar c = appname.at(0);
-
- if (c < 48 || (c > 57 && c < 65) || c > 90) {
- otherVector.append(appVector[26].at(i));
- } else {
- numberVector.append(appVector[26].at(i));
- }
- }
-
- qSort(otherVector.begin(), otherVector.end(), cmpApp);
- qSort(numberVector.begin(), numberVector.end(), cmpApp);
- QStringList otherfpList;
- otherfpList.clear();
-
- for (int i = 0; i < otherVector.size(); i++) {
- otherfpList.append(otherVector.at(i).at(0));
- }
-
- QStringList numberfpList;
- numberfpList.clear();
-
- for (int i = 0; i < numberVector.size(); i++) {
- numberfpList.append(numberVector.at(i).at(0));
- }
-
- data.append(otherfpList);
- data.append(numberfpList);
- return data;
-}
-QVector UkuiMenuInterface::getFunctionalClassification()
-{
- QVector appVector[11];
- int index = 0;
-
- while (index < appInfoVector.size()) {
- int count = appInfoVector.at(index).size() - 5;
-
- for (int i = 0; i < count; i++) {
- int category = appInfoVector.at(index).at(5 + i).toInt();
-
- switch (category) {
- case 0:
- appVector[0].append(appInfoVector.at(index));
- break;
-
- case 1:
- appVector[1].append(appInfoVector.at(index));
- break;
-
- case 2:
- appVector[2].append(appInfoVector.at(index));
- break;
-
- case 3:
- appVector[3].append(appInfoVector.at(index));
- break;
-
- case 4:
- appVector[4].append(appInfoVector.at(index));
- break;
-
- case 5:
- appVector[5].append(appInfoVector.at(index));
- break;
-
- case 6:
- appVector[6].append(appInfoVector.at(index));
- break;
-
- case 7:
- appVector[7].append(appInfoVector.at(index));
- break;
-
- case 8:
- appVector[8].append(appInfoVector.at(index));
- break;
-
- case 9:
- appVector[9].append(appInfoVector.at(index));
- break;
-
- case 10:
- appVector[10].append(appInfoVector.at(index));
- break;
-
- default:
- break;
- }
- }
-
- index++;
- }
-
- QVector data;
- data.clear();
-
- for (int i = 0; i < 11; i++) {
- QStringList desktopfpList;
- desktopfpList.clear();
- qSort(appVector[i].begin(), appVector[i].end(), cmpApp);
-
- for (int j = 0; j < appVector[i].size(); j++) {
- desktopfpList.append(appVector[i].at(j).at(0));
- }
-
- data.append(desktopfpList);
- }
-
- return data;
-}
-bool UkuiMenuInterface::matchingAppCategories(QString desktopfp, QStringList categorylist)
-{
- QString category = getAppCategories(desktopfp);
- int index;
-
- for (index = 0; index < categorylist.count(); index++) {
- if (category.contains(categorylist.at(index), Qt::CaseInsensitive)) {
- return true;
- }
- }
-
- if (index == categorylist.count()) {
- return false;
- }
-
- return false;
-}
-void UkuiMenuInterface::getAndroidApp()
-{
- androidDesktopfnList.clear();
- QVector androidVector;
- androidVector.clear();
- QString path = QDir::homePath() + "/.local/share/applications/";
- QDir dir(path);
-
- if (!dir.exists()) {
- return;
- }
-
- dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
- dir.setSorting(QDir::DirsFirst);
- QFileInfoList list = dir.entryInfoList();
-
- if (list.size() < 1) {
- return;
- }
-
- int i = 0;
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
-
- do {
- QFileInfo fileInfo = list.at(i);
-
- if (!fileInfo.isFile()) {
- i++;
- continue;
- }
-
- //过滤后缀不是.desktop的文件
- QString filePathStr = fileInfo.filePath();
-
- if (!filePathStr.endsWith(".desktop")) {
- i++;
- continue;
- }
-
- QByteArray fpbyte = filePathStr.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *ret_1 = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Categories", nullptr, nullptr);
-
- if (ret_1 != nullptr) {
- // QString str=QString::fromLocal8Bit(ret_1);
- // if(!str.contains("Android"))
- // {
- // i++;
- // continue;
- // }
- // else
- // {
- m_filePathList.append(filePathStr);
- androidDesktopfnList.append(fileInfo.fileName());
- // }
- }
-
- i++;
- } while (i < list.size());
-
- g_key_file_free(keyfile);
-}
-QString UkuiMenuInterface::getAppNameInitials(QString desktopfp)
-{
- QString firstLetters;
- QString appname = getAppName(desktopfp);
- QStringList appnamestr = appname.split(" ");
- QString letters;
-
- Q_FOREACH (QString name, appnamestr) {
- letters.clear();
- letters = UkuiChineseLetter::getFirstLettersAll(name);
-
- if (letters.isEmpty()) {
- letters = UkuiChineseLetter::getFirstLetter(name);
- }
-
- firstLetters.append(letters);
- }
-
- return firstLetters;
-}
-QString UkuiMenuInterface::getAppNameInitial(QString desktopfp)
-{
- return UkuiChineseLetter::getFirstLetter(getAppName(desktopfp));
-}
-//获取应用拼音
-QString UkuiMenuInterface::getAppNamePinyin(QString appname)
-{
- return UkuiChineseLetter::getPinyins(appname);
-}
-bool UkuiMenuInterface::checkKreApp(QString desktopfp)
-{
- GError **error = nullptr;
- GKeyFileFlags flags = G_KEY_FILE_NONE;
- GKeyFile *keyfile = g_key_file_new();
- QByteArray fpbyte = desktopfp.toLocal8Bit();
- char *filepath = fpbyte.data();
- g_key_file_load_from_file(keyfile, filepath, flags, error);
- char *value = g_key_file_get_locale_string(keyfile, "Desktop Entry", "environment", nullptr, nullptr);
- g_key_file_free(keyfile);
-
- if (!value) {
- return false;
- } else if (QString::compare(QString::fromLocal8Bit(value), "kre-environment") == 0) {
- return true;
- }
-
- return false;
-}
-//获取指定类型应用列表
-QStringList UkuiMenuInterface::getSpecifiedCategoryAppList(QString categorystr)
-{
- QByteArray categorybyte = categorystr.toLocal8Bit();
- char *category = categorybyte.data();
- QStringList desktopfpList = getDesktopFilePath();
- QStringList appnameList;
- appnameList.clear();
-
- for (int index = 0; index < desktopfpList.count(); index++) {
- QString appcategorystr = getAppCategories(desktopfpList.at(index));
-
- if (!appcategorystr.isEmpty()) {
- QByteArray appcategorybyte = appcategorystr.toLocal8Bit();
- char *appcategory = appcategorybyte.data();
- int len = static_cast(strlen(appcategory) - 6);
-
- for (int i = 0; i < len; i++) {
- if (strncmp(appcategory + i, category, strlen(category)) == 0) {
- QString appname = getAppName(desktopfpList.at(index));
-
- if (QString::compare(appname, "访问提示") == 0) {
- appnameList.append(appname);
- }
-
- break;
- }
- }
- }
- }
-
- return appnameList;
-}
diff --git a/src/BackProcess/XEventMonitor/xeventmonitor.cpp b/src/BackProcess/XEventMonitor/xeventmonitor.cpp
deleted file mode 100644
index f593faf..0000000
--- a/src/BackProcess/XEventMonitor/xeventmonitor.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/* -*- Mode: C++; indent-tabs-mode: nil; tab-width: 4 -*-
- * -*- coding: utf-8 -*-
- *
- * Copyright (C) 2011 ~ 2017 Deepin, Inc.
- * 2011 ~ 2017 Wang Yong
- * Copyright (C) 2018 Tianjin KYLIN Information Technology Co., Ltd.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include "xeventmonitor.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-// Virtual button codes that are not defined by X11.
-#define Button1 1
-#define Button2 2
-#define Button3 3
-#define WheelUp 4
-#define WheelDown 5
-#define WheelLeft 6
-#define WheelRight 7
-#define XButton1 8
-#define XButton2 9
-
-XEventMonitor *XEventMonitor::instance_ = new XEventMonitor();
-
-QVector ModifiersVec{
- XK_Control_L,
- XK_Control_R,
- XK_Shift_L,
- XK_Shift_R,
- XK_Super_L,
- XK_Super_R,
- XK_Alt_L,
- XK_Alt_R
-};
-
-class XEventMonitorPrivate
-{
-public:
- XEventMonitorPrivate(XEventMonitor *parent);
- virtual ~XEventMonitorPrivate();
- void run();
-
-protected:
- XEventMonitor *q_ptr;
- QSet modifiers;
-
-// bool filterWheelEvent(int detail);
- static void callback(XPointer trash, XRecordInterceptData *data);
- void handleRecordEvent(XRecordInterceptData *);
- void emitKeySignal(const char *member, xEvent *event);
- void updateModifier(xEvent *event, bool isAdd);
-
-private:
- Q_DECLARE_PUBLIC(XEventMonitor)
-};
-
-XEventMonitorPrivate::XEventMonitorPrivate(XEventMonitor *parent)
- : q_ptr(parent)
-{
-}
-
-XEventMonitorPrivate::~XEventMonitorPrivate()
-{
-}
-
-void XEventMonitorPrivate::emitKeySignal(const char *member, xEvent *event)
-{
- Display *display = XOpenDisplay(NULL);
- int keyCode = event->u.u.detail;
- KeySym keySym = XkbKeycodeToKeysym(display, event->u.u.detail, 0, 0);
- QString keyStrSplice;
-
- for (auto modifier : modifiers) {
- keyStrSplice += QString(XKeysymToString(modifier)) + "+";
- }
-
- //按键是修饰键
- if (ModifiersVec.contains(keySym) && !modifiers.isEmpty()) {
- keyStrSplice.remove(keyStrSplice.length() - 1, 1);
- } else {
- keyStrSplice += XKeysymToString(keySym);
- }
-
- QMetaObject::invokeMethod(q_ptr, member,
- Qt::AutoConnection,
- Q_ARG(int, keyCode));
- QMetaObject::invokeMethod(q_ptr, member,
- Qt::AutoConnection,
- Q_ARG(QString, keyStrSplice));
- XCloseDisplay(display);
-}
-
-void XEventMonitorPrivate::run()
-{
- Display *display = XOpenDisplay(0);
-
- if (display == 0) {
- fprintf(stderr, "unable to open display\n");
- XCloseDisplay(display);
- return;
- }
-
- // Receive from ALL clients, including future clients.
- XRecordClientSpec clients = XRecordAllClients;
- XRecordRange *range = XRecordAllocRange();
-
- if (range == 0) {
- fprintf(stderr, "unable to allocate XRecordRange\n");
- XCloseDisplay(display);
- return;
- }
-
- // Receive KeyPress, KeyRelease, events.
- memset(range, 0, sizeof(XRecordRange));
- range->device_events.first = KeyPress;
- range->device_events.last = KeyRelease;
- // And create the XRECORD context.
- XRecordContext context = XRecordCreateContext(display, 0, &clients, 1, &range, 1);
-
- if (context == 0) {
- fprintf(stderr, "XRecordCreateContext failed\n");
- XCloseDisplay(display);
- return;
- }
-
- XFree(range);
- XSync(display, True);
- Display *display_datalink = XOpenDisplay(0);
-
- if (display_datalink == 0) {
- fprintf(stderr, "unable to open second display\n");
- XCloseDisplay(display_datalink);
- XCloseDisplay(display);
- return;
- }
-
- if (!XRecordEnableContext(display_datalink, context, callback, (XPointer) this)) {
- fprintf(stderr, "XRecordEnableContext() failed\n");
- XCloseDisplay(display_datalink);
- XCloseDisplay(display);
- return;
- }
-
- XCloseDisplay(display_datalink);
- XCloseDisplay(display);
-}
-
-void XEventMonitorPrivate::callback(XPointer ptr, XRecordInterceptData *data)
-{
- ((XEventMonitorPrivate *) ptr)->handleRecordEvent(data);
-}
-
-void XEventMonitorPrivate::handleRecordEvent(XRecordInterceptData *data)
-{
- if (data->category == XRecordFromServer) {
- xEvent *event = (xEvent *)data->data;
-
- switch (event->u.u.type) {
- case KeyPress:
- updateModifier(event, true);
- emitKeySignal("keyPress", event);
- break;
-
- case KeyRelease:
- updateModifier(event, false);
- emitKeySignal("keyRelease", event);
- break;
-
- default:
- break;
- }
- }
-
- fflush(stdout);
- XRecordFreeData(data);
-}
-
-//bool XEventMonitorPrivate::filterWheelEvent(int detail)
-//{
-// return detail != WheelUp && detail != WheelDown && detail != WheelLeft && detail != WheelRight;
-//}
-
-void XEventMonitorPrivate::updateModifier(xEvent *event, bool isAdd)
-{
- Display *display = XOpenDisplay(NULL);
- KeySym keySym = XkbKeycodeToKeysym(display, event->u.u.detail, 0, 0);
-
- if (ModifiersVec.contains(keySym)) {
- if (isAdd) {
- modifiers.insert(keySym);
- } else {
- modifiers.remove(keySym);
- }
- }
-
- XCloseDisplay(display);
-}
-
-XEventMonitor::XEventMonitor(QObject *parent)
- : QThread(parent),
- d_ptr(new XEventMonitorPrivate(this))
-{
- Q_D(XEventMonitor);
-}
-
-XEventMonitor::~XEventMonitor()
-{
- requestInterruption();
- quit();
- wait();
-}
-
-void XEventMonitor::run()
-{
- if (!isInterruptionRequested()) {
- d_ptr->run();
- }
-}
diff --git a/src/BackProcess/XEventMonitor/xeventmonitor.h b/src/BackProcess/XEventMonitor/xeventmonitor.h
deleted file mode 100644
index 8f646ca..0000000
--- a/src/BackProcess/XEventMonitor/xeventmonitor.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C++; indent-tabs-mode: nil; tab-width: 4 -*-
- * -*- coding: utf-8 -*-
- *
- * Copyright (C) 2018 Tianjin KYLIN Information Technology Co., Ltd.
- *
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef XEVENTMONITOR_H
-#define XEVENTMONITOR_H
-
-#include
-#include
-#include
-#include
-#include
-#include
-#undef min
-
-class XEventMonitorPrivate;
-class XEventMonitor : public QThread
-{
- Q_OBJECT
-
-public:
- static XEventMonitor *instance()
- {
- return instance_;
- }
-
-private:
- XEventMonitor(QObject *parent = 0);
- ~XEventMonitor();
-
-Q_SIGNALS:
-
- ///
- /// \brief keyPress
- /// \param 按键键码,不包含修饰键
- ///
- void keyPress(int keyCode);
- void keyRelease(int keyCode);
-
- ///
- /// \brief keyPress
- /// \param 按键名称,如果是组合键,则包含修饰键的名称,如Ctrl_L+r
- ///
- void keyPress(const QString &key);
- void keyRelease(const QString &key);
-
-
-protected:
- void run();
-
-private:
- Q_DECLARE_PRIVATE(XEventMonitor)
- XEventMonitorPrivate *d_ptr;
-
- static XEventMonitor *instance_;
-};
-
-
-#endif
diff --git a/src/BackProcess/backprocess.pri b/src/BackProcess/backprocess.pri
deleted file mode 100644
index aa6805a..0000000
--- a/src/BackProcess/backprocess.pri
+++ /dev/null
@@ -1,44 +0,0 @@
-DISTFILES += \
- $$PWD/FileWatcher/filewatcher.pri
-
-INCLUDEPATH += \
- $$PWD/DBus \
- $$PWD/FileWatcher \
- $$PWD/Interface \
- $$PWD/Search \
- $$PWD/tablet \
- $$PWD/XEventMonitor
-
-HEADERS += \
- $$PWD/DBus/dbus-adaptor.h \
- $$PWD/DBus/dbus.h \
- $$PWD/FileWatcher/convert_winid_to_desktop.h \
- $$PWD/FileWatcher/desktop_watcher.h \
- $$PWD/FileWatcher/directory_changed_thread.h \
- $$PWD/FileWatcher/software_database_update_thread.h \
- $$PWD/FileWatcher/tablet_directorychanged_thread.h \
- $$PWD/Interface/currenttime_interface.h \
- $$PWD/Interface/ukui_chineseletter.h \
- $$PWD/Interface/ukuimenuinterface.h \
- $$PWD/Search/file-utils.h \
- $$PWD/Search/searchappthread.h \
- $$PWD/XEventMonitor/xeventmonitor.h \
- $$PWD/tablet/getmodeldata.h \
- $$PWD/tablet/pagemanager.h
-
-SOURCES += \
- $$PWD/DBus/dbus-adaptor.cpp \
- $$PWD/DBus/dbus.cpp \
- $$PWD/FileWatcher/convert_winid_to_desktop.cpp \
- $$PWD/FileWatcher/desktop_watcher.cpp \
- $$PWD/FileWatcher/directory_changed_thread.cpp \
- $$PWD/FileWatcher/software_database_update_thread.cpp \
- $$PWD/FileWatcher/tablet_directorychanged_thread.cpp \
- $$PWD/Interface/currenttime_interface.cpp \
- $$PWD/Interface/ukui_chineseletter.cpp \
- $$PWD/Interface/ukuimenuinterface.cpp \
- $$PWD/Search/file-utils.cpp \
- $$PWD/Search/searchappthread.cpp \
- $$PWD/XEventMonitor/xeventmonitor.cpp \
- $$PWD/tablet/getmodeldata.cpp \
- $$PWD/tablet/pagemanager.cpp
diff --git a/src/BackProcess/tablet/getmodeldata.cpp b/src/BackProcess/tablet/getmodeldata.cpp
deleted file mode 100644
index 7854aa0..0000000
--- a/src/BackProcess/tablet/getmodeldata.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "getmodeldata.h"
-#include
-#include
-#include "src/UtilityFunction/utility.h"
-
-GetModelData::GetModelData()
-{
- m_ukuiMenuInterface = new UkuiMenuInterface;
- loadDesktopVercor();
-}
-
-void GetModelData::loadDesktopVercor()
-{
- UkuiMenuInterface::appInfoVector.clear();
- UkuiMenuInterface::alphabeticVector.clear();
- UkuiMenuInterface::functionalVector.clear();
- UkuiMenuInterface::allAppVector.clear();
- UkuiMenuInterface::collectAppVector.clear();
- UkuiMenuInterface::appInfoVector = m_ukuiMenuInterface->createAppInfoVector();
- UkuiMenuInterface::alphabeticVector = m_ukuiMenuInterface->getAlphabeticClassification();
- UkuiMenuInterface::functionalVector = m_ukuiMenuInterface->getFunctionalClassification();
- UkuiMenuInterface::allAppVector = m_ukuiMenuInterface->getAllClassification();
- UkuiMenuInterface::collectAppVector = m_ukuiMenuInterface->getCollectApp();
-}
-
-QVector GetModelData::getMinAllData()
-{
- m_minAllData.clear();
-
- Q_FOREACH (QString desktopfp, UkuiMenuInterface::allAppVector) {
- m_minAllData.append(QStringList() << desktopfp << "1");
- }
-
- return m_minAllData;
-}
-
-QStringList GetModelData::getcollectData()
-{
- m_collectData.clear();
-
- Q_FOREACH (QString desktopfp, UkuiMenuInterface::collectAppVector) {
- m_collectData.append(QString(desktopfp));
- }
-
- return m_collectData;
-}
-
-bool GetModelData::cmpApp(QStringList &arg_1, QStringList &arg_2)
-{
- if (arg_1.at(4) >= arg_2.at(4)) {
- return true;
- } else {
- return false;
- }
-}
-
-
-QVector GetModelData::getRecentData()
-{
- QVector recentDataVector = QVector();
- enumerator = new Peony::FileEnumerator(this);
- enumerator->setEnumerateDirectory("recent:///");
- enumerator->enumerateSync();
- QString uri;
-
- for (auto fileInfo : enumerator->getChildren()) {
- QStringList recentData;
- Peony::FileInfoJob infoJob(fileInfo);
- infoJob.querySync();
- QString targetUri = fileInfo.get()->targetUri();
- QString displayName = fileInfo.get()->displayName();
- QString symlinkTarget = fileInfo.get()->symlinkTarget();
- QString iconName = fileInfo.get()->iconName();
- QString accessDate = fileInfo.get()->modifiedDate();
- recentData << targetUri << displayName << symlinkTarget << iconName << accessDate;
-
- if (!displayName.endsWith(".desktop")) {
- recentDataVector.append(recentData);
- }
- }
-
- qSort(recentDataVector.begin(), recentDataVector.end(), cmpApp);
- return recentDataVector;
-}
-
-QStringList GetModelData::getFuncClassificationList()
-{
- return m_classificationList;
-}
-
-QStringList GetModelData::getLetterClassificationList()
-{
- return m_letterList;
-}
-
-QStringList GetModelData::getFuncClassificationBtnRowList()
-{
- return m_classificationBtnRowList;
-}
-
-QStringList GetModelData::getLetterClassificationBtnRowList()
-{
- return m_letterBtnRowList;
-}
-
-QVector GetModelData::getMinLetterData()
-{
- m_minLetterData.clear();
- m_letterList.clear();
- m_letterBtnRowList.clear();
- int row = 0;
- QVector vector = UkuiMenuInterface::alphabeticVector;
-
- for (int i = 0; i < vector.size(); i++) {
- QStringList appList = vector.at(i);
-
- if (!appList.isEmpty()) {
- QString letterstr;
-
- if (i < 26) {
- letterstr = QString(QChar(static_cast(i + 65)));
- } else if (i == 26) {
- letterstr = "&";
- } else {
- letterstr = "#";
- }
-
- m_letterList.append(letterstr);//存储分类字符
- m_letterBtnRowList.append(QString::number(row));//存储分类字符所在行
- m_minLetterData.append(QStringList() << letterstr << "0");
-
- for (int i = 0; i < appList.count(); i++) {
- m_minLetterData.append(QStringList() << appList.at(i) << "1");
- }
-
- row += (appList.count() + 1);
- }
- }
-
- return m_minLetterData;
-}
-
-QVector GetModelData::getMinFuncData()
-{
- m_funcRow = 0;
- m_minFuncData.clear();
- m_classificationList.clear();
- m_classificationBtnRowList.clear();
- QVector vector = UkuiMenuInterface::functionalVector;
- QStringList functionList = m_ukuiMenuInterface->getFunctionClassName();
-
- for (int i = 0; i < vector.size(); i++) {
- if (!(vector.at(i).isEmpty())) {
- QString functionName = functionList.at(i);
- insertClassificationBtn(functionName);
- insertAppList(vector.at(i));
- }
- }
-
- return m_minFuncData;
-}
-
-
-
-void GetModelData::insertClassificationBtn(QString btnname)
-{
- m_classificationList.append(btnname);
- m_minFuncData.append(QStringList() << btnname << "0");
- m_classificationBtnRowList.append(QString::number(m_funcRow));
-}
-
-void GetModelData::insertAppList(QStringList appnamelist)
-{
- m_funcRow += (appnamelist.count() + 1);
-
- for (int i = 0; i < appnamelist.count(); i++) {
- m_minFuncData.append(QStringList() << appnamelist.at(i) << "1");
- }
-}
-
diff --git a/src/BackProcess/tablet/getmodeldata.h b/src/BackProcess/tablet/getmodeldata.h
deleted file mode 100644
index 2c00c9d..0000000
--- a/src/BackProcess/tablet/getmodeldata.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef GETMODELDATA_H
-#define GETMODELDATA_H
-#include "ukuimenuinterface.h"
-#include
-#include
-#include
-
-class GetModelData : public QObject
-{
- Q_OBJECT
-
-public:
- GetModelData();
-
-public:
- /**
- * @brief 获取默认窗口全部分类数据
- * @return
- */
- QVector getMinAllData();
- /**
- * @brief 获取默认窗口字母分类数据
- * @return
- */
- QVector getMinLetterData();
- /**
- * @brief 获取默认窗口功能分类数据
- * @return
- */
- QVector getMinFuncData();
- /**
- * @brief 获取收藏列表数据
- * @return
- */
- QStringList getcollectData();
- /**
- * @brief 获取功能分类类别列表
- * @return
- */
- QStringList getFuncClassificationList();
- /**
- * @brief 获取字母分类类别列表
- * @return
- */
- QStringList getLetterClassificationList();
- /**
- * @brief 获取对应类别所在行数
- * @return
- */
- QStringList getFuncClassificationBtnRowList();
- QStringList getLetterClassificationBtnRowList();
- /**
- * @brief 获取最近页面所展示应用列表
- * @return
- */
- QVector getRecentData();
-
- /**
- * @brief 重新加载各个部分数据,用于初始化和整体更新
- */
- void loadDesktopVercor();
-
-protected:
- /**
- * @brief 插入分类按键
- * @param btnname
- */
- void insertClassificationBtn(QString btnname);
- /**
- * @brief 插入应用列表
- * @param appnamelist
- */
- void insertAppList(QStringList appnamelist);
- /**
- * @brief 修改时间比较
- * @param arg_1
- * @param arg_2
- * @return
- */
- static bool cmpApp(QStringList &arg_1, QStringList &arg_2);
-
-private:
- UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
- QVector m_minAllData;
- QStringList m_collectData;
- QVector m_minLetterData;
- QStringList m_letterList;
- QStringList m_letterBtnRowList;
- QVector m_minFuncData;
- QStringList m_classificationList;
- QStringList m_classificationBtnRowList;
- int m_funcRow;
- Peony::FileEnumerator *enumerator = nullptr;
- QList> m_childrens;
-};
-
-#endif // GETMODELDATA_H
diff --git a/src/BackProcess/tablet/pagemanager.cpp b/src/BackProcess/tablet/pagemanager.cpp
deleted file mode 100644
index 59134f5..0000000
--- a/src/BackProcess/tablet/pagemanager.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#include "pagemanager.h"
-#include "ukuimenuinterface.h"
-#include "style.h"
-PageManager::PageManager()
-{
- //获取数据
- m_ukuiMenuInterface = new UkuiMenuInterface();
- UkuiMenuInterface::appInfoVector = m_ukuiMenuInterface->createAppInfoVector();
- m_ukuiMenuInterface->initAppIni();
-}
-
-int PageManager::getPageNum(int appnum)
-{
- int pageNum = 0;
- Style::appColumn = 6;
- Style::appLine = 4;
-
- if (appnum % (Style::appColumn * Style::appLine) == 0) {
- pageNum = appnum / (Style::appColumn * Style::appLine);
- } else {
- pageNum = appnum / (Style::appColumn * Style::appLine) + 1;
- }
-
- return pageNum;
-}
-
-QVector PageManager::sortAppInPage(QVector appvector)
-{
- QVector m_data;
- QVector pageData;
- QStringList onePageData;
-
- Q_FOREACH (QString desktopfp, appvector) {
- m_data.append(desktopfp);
- }
-
- int pageSize = getPageNum(m_data.size());
-
- for (int i = 0; i < pageSize; i++) {
- onePageData.clear();
-
- for (int j = 0; j < Style::appColumn * Style::appLine; j++) {
- if (m_data.size() > 0) {
- onePageData.append(m_data.at(0));
- m_data.pop_front();
- } else {
- // pageData.append(onePageData);
- break;
- }
- }
-
- pageData.append(onePageData);
- }
-
- return pageData;
-}
-
-QVector PageManager::getAppPageVector()
-{
- UkuiMenuInterface::tencentInitVector = m_ukuiMenuInterface->sortDesktopList("tencent");
- UkuiMenuInterface::customizedVector = m_ukuiMenuInterface->sortDesktopList("customized");
- UkuiMenuInterface::thirdPartyVector = m_ukuiMenuInterface->sortDesktopList("thirdParty");
- UkuiMenuInterface::applicationVector = m_ukuiMenuInterface->sortDesktopList("application");
- QVector appPagelist;
- QVector allAppList = UkuiMenuInterface::tencentInitVector + UkuiMenuInterface::customizedVector + UkuiMenuInterface::thirdPartyVector + UkuiMenuInterface::applicationVector;
-
- Q_FOREACH (QStringList desktopfp, sortAppInPage(/*UkuiMenuInterface::tencentInitVector*/allAppList)) {
- appPagelist.append(desktopfp);
- }
-
-// Q_FOREACH(QStringList desktopfp,sortAppInPage(UkuiMenuInterface::customizedVector))
-// {
-// appPagelist.append(desktopfp);
-// }
-// Q_FOREACH(QStringList desktopfp,sortAppInPage(UkuiMenuInterface::thirdPartyVector))
-// {
-// appPagelist.append(desktopfp);
-// }
-// Q_FOREACH(QStringList desktopfp,sortAppInPage(UkuiMenuInterface::applicationVector))
-// {
-// appPagelist.append(desktopfp);
-// }
- return appPagelist;
-}
diff --git a/src/BackProcess/tablet/pagemanager.h b/src/BackProcess/tablet/pagemanager.h
deleted file mode 100644
index bc0b878..0000000
--- a/src/BackProcess/tablet/pagemanager.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef PAGEMANAGER_H
-#define PAGEMANAGER_H
-
-#include
-#include "ukuimenuinterface.h"
-
-class PageManager : public QObject
-{
- Q_OBJECT
-public:
- PageManager();
-
- int getPageNum(int appnum);
- QVector sortAppInPage(QVector appvector);
- QVector getAppPageVector();
-private:
- UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
-};
-
-#endif // PAGEMANAGER_H
diff --git a/src/CommonUseWidget/commonusewidget.cpp b/src/CommonUseWidget/commonusewidget.cpp
new file mode 100644
index 0000000..c19abb7
--- /dev/null
+++ b/src/CommonUseWidget/commonusewidget.cpp
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include
+#include
+
+CommonUseWidget::CommonUseWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ initUi();
+}
+
+CommonUseWidget::~CommonUseWidget()
+{
+ if (m_ukuiMenuInterface != nullptr) {
+ delete m_ukuiMenuInterface;
+ m_ukuiMenuInterface = nullptr;
+ }
+}
+
+void CommonUseWidget::initUi()
+{
+ this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
+ this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ this->setAttribute(Qt::WA_TranslucentBackground);
+ this->setFixedSize(Style::defaultMainViewWidWidth, Style::defaultContentWidHeight);
+ m_ukuiMenuInterface = new UkuiMenuInterface;
+ initAppListWidget();
+ fillAppList();
+}
+
+/**
+ * 初始化应用列表界面
+ */
+void CommonUseWidget::initAppListWidget()
+{
+ m_listView = new ListView(this, this->width(), this->height() - 6, 0);
+ m_listView->setGeometry(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_listView->show();
+ connect(m_listView, &ListView::sendItemClickedSignal, this, &CommonUseWidget::execApplication);
+ connect(m_listView, &ListView::sendUpdateAppListSignal, this, &CommonUseWidget::updateListViewSlot);
+ connect(m_listView, &ListView::sendHideMainWindowSignal, this, &CommonUseWidget::sendHideMainWindowSignal);
+ connect(m_listView, &ListView::sendMainWinActiveSignal, this, &CommonUseWidget::sendMainWinActiveSignal);
+}
+
+/**
+ * 填充应用列表
+ */
+void CommonUseWidget::fillAppList()
+{
+ m_data.clear();
+
+ Q_FOREACH (QString desktopfp, UkuiMenuInterface::m_allAppVector) {
+ m_data.append(QStringList() << desktopfp << "1");
+ }
+
+ m_listView->addData(m_data);
+}
+
+void CommonUseWidget::selectFirstItem()
+{
+ this->focusNextChild();
+ m_listView->setCurrentIndex(m_listView->model()->index(0, 0));
+}
+
+void CommonUseWidget::selectFirstItemTab()
+{
+ this->setFocus();
+
+ if (m_listView->currentIndex().row() == -1) {
+ m_listView->setCurrentIndex(m_listView->model()->index(0, 0));
+ }
+}
+/**
+ * 执行应用程序
+ */
+void CommonUseWidget::execApplication(QStringList arg)
+{
+ Q_EMIT sendHideMainWindowSignal();
+ QString desktopfp = arg.at(0);
+ execApp(desktopfp);
+}
+
+
+/**
+ * 更新应用列表槽函数
+ */
+void CommonUseWidget::updateListViewSlot()
+{
+ updateListView();
+}
+
+void CommonUseWidget::updateListView()
+{
+ m_data.clear();
+
+ Q_FOREACH (QString desktopfp, m_ukuiMenuInterface->getAllClassification()) {
+ m_data.append(QStringList() << desktopfp << "1");
+ }
+
+ m_listView->updateData(m_data);
+// m_listView->setFocus();
+}
+
+void CommonUseWidget::widgetMakeZero()
+{
+ m_listView->verticalScrollBar()->setSliderPosition(0);
+}
+
+void CommonUseWidget::moveScrollBar(int type)
+{
+ if (type == 0) {
+ m_listView->verticalScrollBar()->setSliderPosition(m_listView->verticalScrollBar()->sliderPosition() - 100);
+ } else {
+ m_listView->verticalScrollBar()->setSliderPosition(m_listView->verticalScrollBar()->sliderPosition() + 100);
+ }
+}
+
+void CommonUseWidget::repaintWidget()
+{
+ this->setFixedSize(Style::defaultMainViewWidWidth, Style::defaultContentWidHeight);
+ m_listView->setGeometry(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_listView->show();
+}
+
diff --git a/src/CommonUseWidget/commonusewidget.h b/src/CommonUseWidget/commonusewidget.h
new file mode 100644
index 0000000..aeacf4b
--- /dev/null
+++ b/src/CommonUseWidget/commonusewidget.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "src/Interface/ukuimenuinterface.h"
+#include "src/RightClickMenu/rightclickmenu.h"
+#include "src/UtilityFunction/listview.h"
+#include "src/UtilityFunction/itemdelegate.h"
+#include "src/UtilityFunction/utility.h"
+
+class CommonUseWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit CommonUseWidget(QWidget *parent = nullptr);
+ ~CommonUseWidget();
+ /**
+ * @brief Initializes the interface state
+ */
+ void widgetMakeZero();
+ /**
+ * @brief Update application list
+ */
+ void updateListView();
+ /**
+ * @brief Move the scroll bar
+ * @param type: Scroll way,Only the following parameters can be entered:
+ * 0: moving up
+ * 1: moving down
+ */
+ void moveScrollBar(int type);
+ /**
+ * @brief Repaint window
+ */
+ void repaintWidget();
+
+private:
+ UkuiMenuInterface* m_ukuiMenuInterface=nullptr;
+ ListView* m_listView=nullptr;
+ QVector m_data;
+
+protected:
+ /**
+ * @brief Initializes UI
+ */
+ void initUi();
+ /**
+ * @brief Initialize the application list interface
+ */
+ void initAppListWidget();
+ /**
+ * @brief fill application list
+ */
+ void fillAppList();
+
+public Q_SLOTS:
+ /**
+ * @brief Open the application
+ * @param arg: The desktop file information that the application contains
+ */
+ void execApplication(QStringList arg);
+ /**
+ * @brief Update the application list slot function
+ */
+ void updateListViewSlot();
+
+ void selectFirstItem();
+
+ void selectFirstItemTab();
+
+Q_SIGNALS:
+ /**
+ * @brief Send a hidden main window signal to the MainViewWidget
+ */
+ void sendHideMainWindowSignal();
+ void sendMainWinActiveSignal(bool flag);
+};
+
+#endif // COMMONUSEWIDGET_H
diff --git a/src/CommonUseWidget/fullcommonusewidget.cpp b/src/CommonUseWidget/fullcommonusewidget.cpp
new file mode 100644
index 0000000..34bb7a1
--- /dev/null
+++ b/src/CommonUseWidget/fullcommonusewidget.cpp
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include "src/Style/style.h"
+#include "src/UtilityFunction/utility.h"
+#include
+
+FullCommonUseWidget::FullCommonUseWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ initUi();
+}
+
+FullCommonUseWidget::~FullCommonUseWidget()
+{
+ if (m_ukuiMenuInterface != nullptr) {
+ delete m_ukuiMenuInterface;
+ m_ukuiMenuInterface = nullptr;
+ }
+}
+
+void FullCommonUseWidget::initUi()
+{
+ this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
+ this->setAttribute(Qt::WA_StyledBackground, true);
+ this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ this->setFixedSize(Style::MainViewWidWidth,
+ Style::AppListWidHeight);
+ myDebug() << "width" << this->width() << "height" << this->height();
+ this->setFocusPolicy(Qt::NoFocus);
+ mainLayout = new QHBoxLayout;
+ mainLayout->setContentsMargins(0, 0, 0, 0);
+ this->setLayout(mainLayout);
+ m_spaceItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Fixed);
+ mainLayout->addItem(m_spaceItem);
+ m_scrollArea = new ScrollArea(this);
+ m_scrollAreaWid = new ScrollAreaWid(m_scrollArea);
+ m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground);
+ m_scrollArea->setFixedSize(Style::AppListWidWidth, this->height());
+ m_scrollAreaWid->setFixedWidth(m_scrollArea->width() - Style::SliderSize);
+ m_scrollArea->setWidget(m_scrollAreaWid);
+ m_scrollArea->setWidgetResizable(true);
+ m_scrollAreaWidLayout = new QVBoxLayout;
+ m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
+ m_scrollAreaWidLayout->setSpacing(10);
+ m_scrollAreaWid->setLayout(m_scrollAreaWidLayout);
+ mainLayout->addWidget(m_scrollArea);
+ m_ukuiMenuInterface = new UkuiMenuInterface;
+ initAppListWidget();
+ fillAppList();
+}
+
+void FullCommonUseWidget::initAppListWidget()
+{
+ m_listView = new FullListView(this, 0);
+ m_scrollAreaWidLayout->addWidget(m_listView);
+ connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullCommonUseWidget::execApplication);
+ connect(m_listView, &FullListView::sendUpdateAppListSignal, this, &FullCommonUseWidget::updateListViewSlot);
+ connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullCommonUseWidget::sendHideMainWindowSignal);
+ connect(m_listView, &FullListView::sendSetslidebar, this, &FullCommonUseWidget::onSetSlider);
+}
+
+void FullCommonUseWidget::resizeScrollAreaControls()
+{
+ QLayoutItem *widItem = m_scrollAreaWidLayout->itemAt(0);
+ QWidget *wid = widItem->widget();
+ FullListView *listview = qobject_cast(wid);
+ listview->adjustSize();
+ int dividend = (m_scrollArea->width() - Style::SliderSize) / Style::AppListGridSizeWidth;
+ int rowcount = 0;
+
+ if (listview->model()->rowCount() % dividend > 0) {
+ rowcount = listview->model()->rowCount() / dividend + 1;
+ } else {
+ rowcount = listview->model()->rowCount() / dividend;
+ }
+
+ listview->setFixedSize(m_scrollArea->width() - Style::SliderSize + 1, listview->gridSize().height()*rowcount);
+ m_scrollArea->widget()->adjustSize();
+}
+
+void FullCommonUseWidget::fillAppList()
+{
+ m_data.clear();
+
+ Q_FOREACH (QString desktopfp, UkuiMenuInterface::m_allAppVector) {
+ m_data.append(desktopfp);
+ }
+
+ m_listView->addData(m_data);
+ resizeScrollAreaControls();
+}
+
+/**
+ * 执行应用程序
+ */
+void FullCommonUseWidget::execApplication(QString desktopfp)
+{
+ Q_EMIT sendHideMainWindowSignal();
+ execApp(desktopfp);
+}
+
+void FullCommonUseWidget::selectFirstItem()
+{
+ m_listView->setCurrentIndex(m_listView->model()->index(0, 0));
+}
+
+void FullCommonUseWidget::selectFirstItemTab()
+{
+ this->setFocus();
+
+ if (m_listView->currentIndex().row() == -1) {
+ m_listView->setCurrentIndex(m_listView->model()->index(0, 0));
+ }
+}
+
+void FullCommonUseWidget::onSetSlider(int value)
+{
+ if (value == 0) {
+ m_scrollArea->verticalScrollBar()->setValue(0);
+ } else {
+ int curvalue = m_scrollArea->verticalScrollBar()->value();
+ m_scrollArea->verticalScrollBar()->setValue(curvalue + value);
+ }
+}
+/**
+ * 更新应用列表
+ */
+void FullCommonUseWidget::updateListViewSlot()
+{
+ updateListView();
+}
+
+void FullCommonUseWidget::updateListView()
+{
+ m_data.clear();
+
+ Q_FOREACH (QString desktopfp, m_ukuiMenuInterface->getAllClassification()) {
+ m_data.append(desktopfp);
+ }
+
+ m_listView->updateData(m_data);
+}
+
+void FullCommonUseWidget::repaintWidget()
+{
+ this->setFixedSize(Style::MainViewWidWidth,
+ Style::AppListWidHeight);
+ m_scrollArea->setFixedSize(Style::AppListWidWidth, this->height());
+ m_scrollAreaWid->setFixedWidth(m_scrollArea->width() - Style::SliderSize);
+ m_scrollAreaWidLayout->removeWidget(m_listView);
+ m_listView->setParent(nullptr);
+ delete m_listView;
+ initAppListWidget();
+ fillAppList();
+}
+
+void FullCommonUseWidget::widgetMakeZero()
+{
+ m_listView->verticalScrollBar()->setSliderPosition(0);
+}
+
+void FullCommonUseWidget::moveScrollBar(int type)
+{
+ int height = Style::primaryScreenHeight;
+
+ if (type == 0) {
+ m_listView->verticalScrollBar()->setSliderPosition(m_listView->verticalScrollBar()->sliderPosition() - height * 100 / 1080);
+ } else {
+ m_listView->verticalScrollBar()->setSliderPosition(m_listView->verticalScrollBar()->sliderPosition() + height * 100 / 1080);
+ }
+}
diff --git a/src/UserInterface/Widget/full_commonuse_widget.h b/src/CommonUseWidget/fullcommonusewidget.h
similarity index 77%
rename from src/UserInterface/Widget/full_commonuse_widget.h
rename to src/CommonUseWidget/fullcommonusewidget.h
index 9f60538..966cb86 100644
--- a/src/UserInterface/Widget/full_commonuse_widget.h
+++ b/src/CommonUseWidget/fullcommonusewidget.h
@@ -32,12 +32,11 @@
#include
#include
#include
-#include "ukuimenuinterface.h"
-#include "rightclickmenu.h"
-#include "fulllistview.h"
-#include "style.h"
-#include "scrollarea.h"
-#include "getmodeldata.h"
+#include "src/Interface/ukuimenuinterface.h"
+#include "src/RightClickMenu/rightclickmenu.h"
+#include "src/UtilityFunction/fulllistview.h"
+#include "src/Style/style.h"
+#include "src/UtilityFunction/scrollarea.h"
class FullCommonUseWidget : public QWidget
{
@@ -66,23 +65,16 @@ public:
*/
void moveScrollBar(int type);
- FullListView *m_listView = nullptr;
-
private:
- UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
+
QStringList m_data;
+ UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
QSpacerItem *m_spaceItem = nullptr;
ScrollArea *m_scrollArea = nullptr;
ScrollAreaWid *m_scrollAreaWid = nullptr;
+ QHBoxLayout *mainLayout = nullptr;
QVBoxLayout *m_scrollAreaWidLayout = nullptr;
- bool flag;
- QTimer *time = nullptr;
- GetModelData *modaldata = nullptr;
- QScrollBar *m_verticalScrollBar = nullptr;
- int m_scrollAreaWidHeight = 0;
- QString m_scrollBarStyle;
- QPushButton *m_powerOffButton = nullptr;
-
+ FullListView *m_listView = nullptr;
protected:
/**
* @brief Initializes UI
@@ -97,9 +89,6 @@ protected:
*/
void fillAppList();
void resizeScrollAreaControls();
- void initVerticalScrollBar();
-
- bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS:
/**
@@ -112,28 +101,17 @@ public Q_SLOTS:
*/
void updateListViewSlot();
- void on_setScrollBarValue(int value);
-
void onSetSlider(int value);
void selectFirstItem();
void selectFirstItemTab();
- void on_setAreaScrollBarValue(int value);
-
- void on_powerOffButton_clicked();
-
- void on_powerOffButton_customContextMenuRequested(const QPoint &pos);
-
Q_SIGNALS:
/**
* @brief Send a hidden main window signal to the MainViewWidget
*/
void sendHideMainWindowSignal();
- void changeScrollValue(int value, int maximumValue);
- void setFocusToSideWin();
- void sendUpdateOtherView();
};
#endif // FULLCOMMONUSEWIDGET_H
diff --git a/src/BackProcess/DBus/dbus-adaptor.cpp b/src/DBus/dbus-adaptor.cpp
similarity index 74%
rename from src/BackProcess/DBus/dbus-adaptor.cpp
rename to src/DBus/dbus-adaptor.cpp
index 9df5c62..4fdf0cf 100644
--- a/src/BackProcess/DBus/dbus-adaptor.cpp
+++ b/src/DBus/dbus-adaptor.cpp
@@ -37,25 +37,26 @@ QString MenuAdaptor::GetSecurityConfigPath()
{
// handle method call org.ukui.menu.GetSecurityConfigPath
QString out0;
- QMetaObject::invokeMethod(parent(), "GetSecurityConfigPath", Q_RETURN_ARG(QString, out0));
+ QMetaObject::invokeMethod(parent(), "getSecurityConfigPath", Q_RETURN_ARG(QString, out0));
return out0;
}
void MenuAdaptor::ReloadSecurityConfig()
{
// handle method call org.ukui.menu.ReloadSecurityConfig
- QMetaObject::invokeMethod(parent(), "ReloadSecurityConfig");
+ QMetaObject::invokeMethod(parent(), "reloadSecurityConfig");
}
void MenuAdaptor::WinKeyResponse()
{
// handle method call org.ukui.menu.WinKeyResponse
- QMetaObject::invokeMethod(parent(), "WinKeyResponse");
+ QMetaObject::invokeMethod(parent(), "winKeyResponse");
}
-bool MenuAdaptor::GetMenuStatus()
+QStringList MenuAdaptor::GetPkgNameWhiteList()
{
- bool status;
- QMetaObject::invokeMethod(parent(), "GetMenuStatus", Q_RETURN_ARG(bool, status));
- return status;
+ QStringList pkgList;
+ QMetaObject::invokeMethod(parent(), "getPkgNameWhiteList", Q_RETURN_ARG(QStringList, pkgList));
+ return pkgList;
}
+
diff --git a/src/BackProcess/DBus/dbus-adaptor.h b/src/DBus/dbus-adaptor.h
similarity index 87%
rename from src/BackProcess/DBus/dbus-adaptor.h
rename to src/DBus/dbus-adaptor.h
index cc29f87..f1800fc 100644
--- a/src/BackProcess/DBus/dbus-adaptor.h
+++ b/src/DBus/dbus-adaptor.h
@@ -9,8 +9,8 @@
* before re-generating it.
*/
-#ifndef DBUS_ADAPTOR_H
-#define DBUS_ADAPTOR_H
+#ifndef DBUS-ADAPTOR_H
+#define DBUS-ADAPTOR_H
#include
#include
@@ -38,8 +38,8 @@ class MenuAdaptor: public QDBusAbstractAdaptor
" \n"
" \n"
" \n"
- " \n"
- " \n"
+ " \n"
+ " \n"
" \n"
" \n"
"")
@@ -52,7 +52,7 @@ public Q_SLOTS: // METHODS
QString GetSecurityConfigPath();
void ReloadSecurityConfig();
void WinKeyResponse();
- bool GetMenuStatus();
+ QStringList GetPkgNameWhiteList();
Q_SIGNALS: // SIGNALS
};
diff --git a/src/DBus/dbus.cpp b/src/DBus/dbus.cpp
new file mode 100644
index 0000000..6dc9888
--- /dev/null
+++ b/src/DBus/dbus.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include "src/RightClickMenu/uninstallwhitelist.h"
+
+DBus::DBus(QObject *parent) : QObject(parent)
+{
+}
+
+void DBus::reloadSecurityConfig()
+{
+ Q_EMIT sendReloadSignal();
+}
+
+QString DBus::getSecurityConfigPath()
+{
+ QString path = QDir::homePath() + "/.config/ukui-menu-security-config.json";
+ return path;
+}
+
+void DBus::winKeyResponse()
+{
+ Q_EMIT winKeyResponseSignal();
+}
+
+QStringList DBus::getPkgNameWhiteList()
+{
+ return UninstallWhitelist::getInstance()->getPkgNameWhiteList();
+}
diff --git a/src/DBus/dbus.h b/src/DBus/dbus.h
new file mode 100644
index 0000000..3db1556
--- /dev/null
+++ b/src/DBus/dbus.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+
+class DBus : public QObject
+{
+ Q_OBJECT
+ Q_CLASSINFO("D-Bus Interface", "org.ukui.menu")
+public:
+ explicit DBus(QObject *parent = 0);
+
+Q_SIGNALS:
+ void sendReloadSignal();
+ void winKeyResponseSignal();
+
+public Q_SLOTS:
+ QString getSecurityConfigPath();
+ void reloadSecurityConfig();
+ void winKeyResponse();
+ QStringList getPkgNameWhiteList();
+};
+
+#endif // DBUS_H
diff --git a/src/BackProcess/DBus/org.ukui.menu.xml b/src/DBus/org.ukui.menu.xml
similarity index 100%
rename from src/BackProcess/DBus/org.ukui.menu.xml
rename to src/DBus/org.ukui.menu.xml
diff --git a/src/FunctionWidget/fullfunctionwidget.cpp b/src/FunctionWidget/fullfunctionwidget.cpp
new file mode 100644
index 0000000..3b84dd4
--- /dev/null
+++ b/src/FunctionWidget/fullfunctionwidget.cpp
@@ -0,0 +1,492 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include "src/Style/style.h"
+#include
+#include
+#include
+
+FullFunctionWidget::FullFunctionWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ initUi();
+}
+
+FullFunctionWidget::~FullFunctionWidget()
+{
+ if (m_ukuiMenuInterface != nullptr) {
+ delete m_ukuiMenuInterface;
+ m_ukuiMenuInterface = nullptr;
+ }
+}
+
+void FullFunctionWidget::initUi()
+{
+ this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
+ this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ this->setAttribute(Qt::WA_TranslucentBackground);
+ m_applistWid = new QWidget(this);
+ m_iconListWid = new QWidget(this);
+ this->setFixedSize(Style::MainViewWidWidth,
+ Style::AppListWidHeight);
+ m_applistWid->setFixedSize(Style::AppListWidWidth, this->height());
+ m_iconListWid->setFixedSize(Style::LeftWidWidth, this->height());
+ QHBoxLayout *mainLayout = new QHBoxLayout;
+ mainLayout->setContentsMargins(0, 0, 0, 0);
+ mainLayout->setSpacing(0);
+ mainLayout->addWidget(m_iconListWid);
+ mainLayout->addWidget(m_applistWid);
+ this->setLayout(mainLayout);
+ m_ukuiMenuInterface = new UkuiMenuInterface;
+ initAppListWidget();
+ initIconListWidget();
+ m_flag = true;
+ //翻页灵敏度时间调节
+ m_time = new QTimer(this);
+ connect(m_time, &QTimer::timeout, [ = ]() {
+ if (m_flag == false) {
+ m_flag = true;
+ m_time->stop();
+ }
+ });
+}
+
+/**
+ * 初始化应用列表界面
+ */
+void FullFunctionWidget::initAppListWidget()
+{
+ layout = new QHBoxLayout(m_applistWid);
+ layout->setContentsMargins(0, 0, 0, 0);
+ m_applistWid->setLayout(layout);
+ m_scrollArea = new ScrollArea(this);
+ m_scrollAreaWid = new ScrollAreaWid(m_scrollArea);
+ m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground);
+ m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height());
+ m_scrollAreaWid->setFixedWidth(m_scrollArea->width() - Style::SliderSize);
+ m_scrollArea->setWidget(m_scrollAreaWid);
+ m_scrollArea->setWidgetResizable(true);
+ m_scrollAreaWidLayout = new QVBoxLayout;
+ m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
+ m_scrollAreaWidLayout->setSpacing(10);
+ m_scrollAreaWid->setLayout(m_scrollAreaWidLayout);
+ layout->addWidget(m_scrollArea);
+ connect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
+ this, &FullFunctionWidget::valueChangedSlot);
+ m_appListBottomSpacer = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding);
+ fillSoftwareAppList();
+}
+
+/**
+ * 填充应用列表
+ */
+void FullFunctionWidget::fillSoftwareAppList()
+{
+ m_classificationList.clear();
+ QVector vector = UkuiMenuInterface::m_functionalVector;
+ QStringList functionList = m_ukuiMenuInterface->getFunctionClassName();
+
+ for (int i = 0; i < vector.size(); i++) {
+ if (!(vector.at(i).isEmpty())) {
+ insertClassificationBtn(functionList.at(i));
+ insertAppList(vector.at(i));
+ }
+ }
+
+ resizeScrollAreaControls();
+}
+
+void FullFunctionWidget::insertClassificationBtn(QString category)
+{
+ SplitBarFrame *classificationbtn = new SplitBarFrame(this, category, m_scrollArea->width() - 16, 30, 2);
+ m_scrollAreaWidLayout->addWidget(classificationbtn);
+ m_classificationList.append(category);
+}
+
+void FullFunctionWidget::insertAppList(QStringList desktopfplist)
+{
+ FullListView *listview = new FullListView(this, 2);
+ connect(listview, &FullListView::sendSetslidebar, this, &FullFunctionWidget::onSetSlider);
+ connect(this, &FullFunctionWidget::selectFirstItem, listview, &FullListView::selectFirstItem);
+ listview->installEventFilter(this);
+ m_scrollAreaWidLayout->addWidget(listview);
+ m_data.clear();
+
+ for (int i = 0; i < desktopfplist.count(); i++) {
+ m_data.append(desktopfplist.at(i));
+ }
+
+ listview->addData(m_data);
+ connect(listview, &FullListView::sendItemClickedSignal, this, &FullFunctionWidget::execApplication);
+ connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal);
+}
+
+/**
+ * 执行应用程序
+ */
+void FullFunctionWidget::execApplication(QString desktopfp)
+{
+ Q_EMIT sendHideMainWindowSignal();
+ execApp(desktopfp);
+}
+
+/**
+ * 更新应用列表
+ */
+void FullFunctionWidget::updateAppListView()
+{
+ //刷新应用列表界面
+ QLayoutItem *child;
+ m_scrollAreaWidLayout->removeItem(m_appListBottomSpacer);
+
+ while ((child = m_scrollAreaWidLayout->takeAt(0)) != 0) {
+ QWidget *wid = child->widget();
+ m_scrollAreaWidLayout->removeWidget(wid);
+ wid->setParent(nullptr);
+ delete wid;
+ delete child;
+ }
+
+ fillSoftwareAppList();
+
+ //刷新图标列表界面
+ Q_FOREACH (QAbstractButton *button, m_buttonList) {
+ m_btnGroup->removeButton(button);
+ }
+
+ m_buttonList.clear();
+ m_iconListScrollAreaWidLayout->removeItem(m_topSpacerItem);
+ m_iconListScrollAreaWidLayout->removeItem(m_bottomSpacerItem);
+
+ while ((child = m_iconListScrollAreaWidLayout->takeAt(0)) != 0) {
+ QWidget *wid = child->widget();
+ m_iconListScrollAreaWidLayout->removeWidget(wid);
+ wid->setParent(nullptr);
+ delete wid;
+ delete child;
+ }
+
+ initIconListScrollArea();
+}
+
+/**
+ * 设置scrollarea所填充控件大小
+ */
+void FullFunctionWidget::resizeScrollAreaControls()
+{
+ int row = 0;
+
+ while (row < m_scrollAreaWidLayout->count() / 2) {
+ //应用界面
+ QLayoutItem *widItem = m_scrollAreaWidLayout->itemAt(row * 2 + 1);
+ QWidget *wid = widItem->widget();
+ FullListView *listview = qobject_cast(wid);
+ listview->adjustSize();
+ int dividend = (m_scrollArea->width() - Style::SliderSize) / Style::AppListGridSizeWidth;
+ int rowcount = 0;
+
+ if (listview->model()->rowCount() % dividend > 0) {
+ rowcount = listview->model()->rowCount() / dividend + 1;
+ } else {
+ rowcount = listview->model()->rowCount() / dividend;
+ }
+
+ listview->setFixedSize(m_scrollArea->width() - Style::SliderSize + 1, listview->gridSize().height() * rowcount);
+ row++;
+ }
+
+ m_scrollArea->widget()->adjustSize();
+}
+
+/**
+ * 初始化图标列表界面
+ */
+void FullFunctionWidget::initIconListWidget()
+{
+ m_iconListScrollArea = new ClassifyBtnScrollArea(m_iconListWid);
+ m_iconListScrollAreaWid = new ClassifyBtnScrollAreaWid(m_iconListScrollArea);
+ m_iconListScrollAreaWid->setFixedSize(Style::LeftBtnWidth,
+ m_iconListWid->height());
+ m_iconListScrollAreaWidLayout = new QVBoxLayout;
+ m_iconListScrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
+ m_iconListScrollAreaWidLayout->setSpacing(Style::LeftSpaceBetweenItem);
+ m_iconListScrollAreaWid->setLayout(m_iconListScrollAreaWidLayout);
+ m_iconListScrollArea->setWidget(m_iconListScrollAreaWid);
+ m_topSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding);
+ m_bottomSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding);
+ m_btnGroup = new QButtonGroup(m_iconListScrollAreaWid);
+ m_animation = new QPropertyAnimation(m_iconListScrollArea, "geometry");
+ m_scrollAnimation = new QPropertyAnimation(m_scrollArea->verticalScrollBar(), "value");
+ m_scrollAnimation->setEasingCurve(QEasingCurve::OutQuad);
+ connect(m_scrollAnimation, &QPropertyAnimation::finished, this, &FullFunctionWidget::animationFinishSlot);
+ connect(m_scrollAnimation, &QPropertyAnimation::valueChanged, this, &FullFunctionWidget::animationValueChangedSlot);
+ initIconListScrollArea();
+}
+
+/**
+ * 初始化图标列表界面数据表格iconlisttableWid
+ */
+void FullFunctionWidget::initIconListScrollArea()
+{
+ m_iconListScrollAreaWidLayout->addItem(m_topSpacerItem);
+
+ for (int i = 0; i < m_classificationList.size(); i++) {
+ FunctionClassifyButton *iconbtn = new FunctionClassifyButton(
+ Style::LeftBtnWidth,
+ Style::LeftBtnHeight,
+ Style::LeftIconSize,
+ m_classificationList.at(i),
+ true,
+ true, this);
+ iconbtn->setChecked(false);
+ m_buttonList.append(iconbtn);
+ m_iconListScrollAreaWidLayout->addWidget(iconbtn);
+ }
+
+ m_iconListScrollAreaWidLayout->addItem(m_bottomSpacerItem);
+ int id = 0;
+
+ Q_FOREACH (QAbstractButton *btn, m_buttonList) {
+ m_btnGroup->addButton(btn, id++);
+ }
+
+ connect(m_btnGroup, static_cast(&QButtonGroup::buttonClicked), this, &FullFunctionWidget::btnGroupClickedSlot);
+
+// m_iconListScrollArea->widget()->adjustSize();
+ if (m_btnGroup->button(0) != nullptr) {
+ m_btnGroup->button(0)->click();
+ }
+}
+
+void FullFunctionWidget::btnGroupClickedSlot(QAbstractButton *btn)
+{
+ disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
+ this, &FullFunctionWidget::valueChangedSlot);
+
+ Q_FOREACH (QAbstractButton *button, m_buttonList) {
+ if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) {
+ m_beginPos = m_scrollArea->verticalScrollBar()->sliderPosition();
+ m_endPos = m_scrollAreaWidLayout->itemAt(m_btnGroup->id(btn) * 2)->widget()->y();
+ m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_scrollAnimation->stop();
+ m_scrollAnimation->setStartValue(m_beginPos);
+ m_scrollAnimation->setEndValue(m_endPos);
+ m_scrollAnimation->start();
+ button->setChecked(true);
+ } else {
+ button->setChecked(false);
+ }
+ }
+}
+
+void FullFunctionWidget::animationFinishSlot()
+{
+ if (m_scrollArea->verticalScrollBar()->value() == m_endPos ||
+ m_scrollArea->verticalScrollBar()->value() == m_scrollArea->verticalScrollBar()->maximum()) {
+ m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ connect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
+ this, &FullFunctionWidget::valueChangedSlot);
+ }
+}
+
+void FullFunctionWidget::animationValueChangedSlot(const QVariant &value)
+{
+ Q_UNUSED(value);
+
+ if (sender() != m_scrollAnimation) {
+ return;
+ }
+
+ QPropertyAnimation *ani = qobject_cast(sender());
+
+ if (m_endPos != ani->endValue()) {
+ ani->setEndValue(m_endPos);
+ }
+}
+
+void FullFunctionWidget::valueChangedSlot(int value)
+{
+ int index = 0;
+
+ while (index <= m_classificationList.count() - 1) {
+ int min = m_scrollAreaWidLayout->itemAt(2 * index)->widget()->y();
+ int max = 0;
+
+ if (index == m_classificationList.count() - 1) {
+ max = m_scrollAreaWid->height();
+ } else {
+ max = m_scrollAreaWidLayout->itemAt(2 * (index + 1))->widget()->y();
+ }
+
+ if (value >= min && value < max) {
+ Q_FOREACH (QAbstractButton *button, m_buttonList) {
+ FunctionClassifyButton *fcbutton = qobject_cast(button);
+
+ if (index == m_buttonList.indexOf(button)) {
+ fcbutton->setChecked(true);
+ } else {
+ fcbutton->setChecked(false);
+ }
+ }
+
+ break;
+ } else {
+ index++;
+ }
+ }
+}
+
+QAbstractButton *FullFunctionWidget::getCurLetterButton(int value)
+{
+ return m_buttonList.at(value);
+}
+
+
+void FullFunctionWidget::enterAnimation()
+{
+ m_animation->setDuration(200);//动画总时间
+ m_animation->setStartValue(QRect(0, 0,
+ 0, m_iconListWid->height()));
+ m_animation->setEndValue(QRect(Style::LeftMargin,
+ 0,
+ Style::LeftBtnWidth,
+ m_iconListWid->height()));
+ m_animation->setEasingCurve(QEasingCurve::InQuart);
+ m_animation->start();
+ m_iconListScrollArea->show();
+}
+
+void FullFunctionWidget::setFunctionBtnGeometry()
+{
+// int height=m_classificationList.size()*Style::LeftBtnHeight+(m_classificationList.size()-1)*Style::LeftSpaceBetweenItem;
+ m_iconListScrollArea->setGeometry(QRect(Style::LeftMargin,
+ 0,
+ Style::LeftBtnWidth,
+ m_iconListWid->height()));
+ m_iconListScrollArea->show();
+}
+
+void FullFunctionWidget::repaintWidget()
+{
+ this->setFixedSize(Style::MainViewWidWidth,
+ Style::AppListWidHeight);
+ m_applistWid->setFixedSize(Style::AppListWidWidth, this->height());
+ m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height());
+ m_scrollAreaWid->setFixedWidth(m_scrollArea->width() - Style::SliderSize);
+ m_iconListWid->setFixedSize(Style::LeftWidWidth, this->height());
+ m_iconListScrollAreaWid->setFixedSize(Style::LeftBtnWidth,
+ m_iconListWid->height());
+ updateAppListView();
+}
+
+void FullFunctionWidget::widgetMakeZero()
+{
+ if (m_btnGroup->button(0) != nullptr) {
+ m_btnGroup->button(0)->click();
+ }
+
+ m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+}
+
+void FullFunctionWidget::moveScrollBar(int type)
+{
+ int height = Style::primaryScreenHeight;
+
+ if (type == 0) {
+ m_scrollArea->verticalScrollBar()->setSliderPosition(m_scrollArea->verticalScrollBar()->sliderPosition() - height * 100 / 1080);
+ } else {
+ m_scrollArea->verticalScrollBar()->setSliderPosition(m_scrollArea->verticalScrollBar()->sliderPosition() + height * 100 / 1080);
+ }
+}
+
+void FullFunctionWidget::onSetSlider(int value)
+{
+ int curvalue = m_scrollArea->verticalScrollBar()->value();
+ m_scrollArea->verticalScrollBar()->setValue(curvalue + value);
+}
+
+bool FullFunctionWidget::eventFilter(QObject *watched, QEvent *event)
+{
+ if (event->type() == QEvent::KeyPress) {
+ QLayoutItem *widItem = m_scrollAreaWidLayout->itemAt(2 * m_buttonList.size() - 1);
+ QWidget *wid = widItem->widget();
+ FullListView *m_listview = qobject_cast(wid);
+ QLayoutItem *widItemTop = m_scrollAreaWidLayout->itemAt(1);
+ QWidget *widTop = widItemTop->widget();
+ FullListView *m_listviewTop = qobject_cast(widTop);
+ QKeyEvent *ke = (QKeyEvent *)event;
+
+ if (ke->key() == Qt::Key_Tab) {
+ Q_EMIT setFocusToSideWin();
+ }
+
+ if (ke->key() == Qt::Key_Up) {
+ if (!m_listviewTop->hasFocus()) {
+ QAbstractButton *buttonTop = getCurLetterButton((--m_index) % m_buttonList.size());
+ btnGroupClickedSlot(buttonTop);
+ this->m_scrollArea->setFocusToPreChild();
+ } else {
+ m_listview->setFocus();
+ QAbstractButton *button = getCurLetterButton(m_buttonList.size() - 1);
+ btnGroupClickedSlot(button);
+ m_index = m_buttonList.size() - 1;
+ }
+
+ Q_EMIT selectFirstItem();
+ return true;
+ }
+
+ if (ke->key() == Qt::Key_Down) {
+ if (!m_listview->hasFocus()) {
+ QAbstractButton *button = getCurLetterButton((++m_index) % m_buttonList.size());
+ btnGroupClickedSlot(button);
+ this->m_scrollArea->setFocusToNextChild();
+ } else {
+ m_listviewTop->setFocus();
+ QAbstractButton *buttonTop = getCurLetterButton(0);
+ btnGroupClickedSlot(buttonTop);
+ m_listviewTop->setCurrentIndex(m_listviewTop->model()->index(0, 0));
+ m_index = 0;
+ }
+
+ Q_EMIT selectFirstItem();
+ return true;
+ }
+ }
+
+ return QWidget::eventFilter(watched, event);
+}
+
+void FullFunctionWidget::functionButtonClick()
+{
+ if (m_btnGroup->button(0) != nullptr) {
+ m_btnGroup->button(0)->click();
+ }
+
+ m_index = 0;
+}
+
+void FullFunctionWidget::setFocusToThis()
+{
+ functionButtonClick();
+ this->setFocus();
+ Q_EMIT selectFirstItem();
+}
diff --git a/src/UserInterface/Widget/full_function_widget.h b/src/FunctionWidget/fullfunctionwidget.h
similarity index 86%
rename from src/UserInterface/Widget/full_function_widget.h
rename to src/FunctionWidget/fullfunctionwidget.h
index ead61ff..9b44f87 100644
--- a/src/UserInterface/Widget/full_function_widget.h
+++ b/src/FunctionWidget/fullfunctionwidget.h
@@ -33,14 +33,14 @@
#include
#include
#include
-#include "ukuimenuinterface.h"
-#include "scrollarea.h"
-#include "splitbar_frame.h"
-#include "fulllistview.h"
-#include "classify_btn_scrollarea.h"
-#include "tool_button.h"
-#include "function_classify_button.h"
-#include "style.h"
+#include "src/Interface/ukuimenuinterface.h"
+#include "src/UtilityFunction/scrollarea.h"
+#include "src/UtilityFunction/splitbarframe.h"
+#include "src/UtilityFunction/fulllistview.h"
+#include "src/UtilityFunction/classifybtnscrollarea.h"
+#include "src/UtilityFunction/toolbutton.h"
+#include "src/UtilityFunction/functionclassifybutton.h"
+#include "src/Style/style.h"
#include
class FullFunctionWidget : public QWidget
@@ -68,6 +68,10 @@ public:
* 0: moving up
* 1: moving down
*/
+ void moveScrollBar(int type);
+ /**
+ * @brief Adjust function classification button position
+ */
void setFunctionBtnGeometry();
void functionButtonClick();
@@ -83,18 +87,19 @@ private:
QVBoxLayout *m_scrollAreaWidLayout = nullptr;
QStringList m_classificationList;//Store the list of category buttons
QStringList m_data;
- QString m_scrollBarStyle;
- QTimer *time = nullptr;
- bool flag;
+ QTimer *m_time = nullptr;
+ bool m_flag;
/*Function classification list interface*/
QWidget *m_iconListWid = nullptr;
ClassifyBtnScrollArea *m_iconListScrollArea = nullptr;
ClassifyBtnScrollAreaWid *m_iconListScrollAreaWid = nullptr;
- QVBoxLayout *m_iconListWidLayout = nullptr;
+ QVBoxLayout *m_iconListScrollAreaWidLayout = nullptr;
+ QHBoxLayout *layout = nullptr;
QList m_buttonList;
QButtonGroup *m_btnGroup = nullptr;
QSpacerItem *m_topSpacerItem = nullptr;
QSpacerItem *m_bottomSpacerItem = nullptr;
+ QSpacerItem *m_appListBottomSpacer = nullptr;
/*Animation*/
QPropertyAnimation *m_animation = nullptr; //Function category button animation
@@ -102,9 +107,6 @@ private:
int m_beginPos = 0; //Application list scrollbar starting value
int m_endPos = 0; //Application list scrollbar end value
int m_index = 0;
- QScrollBar *m_verticalScrollBar = nullptr;
- int m_scrollAreaWidHeight = 0;
- QPushButton *m_powerOffButton = nullptr;
protected:
/**
@@ -123,7 +125,7 @@ protected:
/**
* @brief fill application list
*/
- void fillAppList();
+ void fillSoftwareAppList();
/**
* @brief Insert category button
* @param category: Functional classification name
@@ -138,7 +140,7 @@ protected:
* @brief Set the control size in qscrollarea
*/
void resizeScrollAreaControls();
- void initVerticalScrollBar();
+
bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS:
@@ -175,14 +177,6 @@ public Q_SLOTS:
void setFocusToThis();
- void on_setScrollBarValue(int value);
-
- void on_setAreaScrollBarValue(int value);
-
- void on_powerOffButton_clicked();
-
- void on_powerOffButton_customContextMenuRequested(const QPoint &pos);
-
Q_SIGNALS:
/**
* @brief Send a hidden main window signal to the MainViewWidget
@@ -192,9 +186,6 @@ Q_SIGNALS:
void setFocusToSideWin();
void selectFirstItem();
-
- void changeScrollValue(int value, int maximumValue);
-
};
#endif // FULLFUNCTIONWIDGET_H
diff --git a/src/UserInterface/Widget/function_button_widget.cpp b/src/FunctionWidget/functionbuttonwidget.cpp
similarity index 85%
rename from src/UserInterface/Widget/function_button_widget.cpp
rename to src/FunctionWidget/functionbuttonwidget.cpp
index cd7b8f8..6b36844 100644
--- a/src/UserInterface/Widget/function_button_widget.cpp
+++ b/src/FunctionWidget/functionbuttonwidget.cpp
@@ -16,8 +16,8 @@
*
*/
-#include "function_button_widget.h"
-#include "style.h"
+#include "functionbuttonwidget.h"
+#include "src/Style/style.h"
#include
#include
#include
@@ -48,19 +48,20 @@ void FunctionButtonWidget::initUi()
{
this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_StyledBackground, true);
+ this->resize(Style::LeftBtnWidth * 2 + 5, Style::LeftBtnHeight * 6 + 25);
QGridLayout *gridLayout = new QGridLayout;
- gridLayout->setContentsMargins(40, 80, 40, 80);
+ gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setSpacing(5);
this->setLayout(gridLayout);
- for (int row = 0; row < 6; row++)
+ for (int row = 0; row < 6; row++) {
for (int col = 0; col < 2; col++) {
FunctionClassifyButton *iconbtn = new FunctionClassifyButton(Style::LeftBtnWidth,
Style::LeftBtnHeight,
Style::LeftIconSize,
m_categoryList.at(row * 2 + col),
false,
- false);
+ false, this);
gridLayout->addWidget(iconbtn, row, col);
m_buttonList.append(iconbtn);
connect(iconbtn, &FunctionClassifyButton::buttonClicked, this, &FunctionButtonWidget::functionBtnClickedSlot);
@@ -69,10 +70,11 @@ void FunctionButtonWidget::initUi()
break;
}
}
+ }
if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) {
- QGSettings *gsetting = new QGSettings(QString("org.ukui.style").toLocal8Bit());
- connect(gsetting, &QGSettings::changed, this, [ = ] {
+ QGSettings gsetting(QString("org.ukui.style").toLocal8Bit());
+ connect(&gsetting, &QGSettings::changed, this, [ = ] {
Q_FOREACH (QAbstractButton *btn, m_buttonList)
{
FunctionClassifyButton *fbtn = qobject_cast(btn);
@@ -93,12 +95,6 @@ void FunctionButtonWidget::functionBtnClickedSlot()
Q_EMIT sendFunctionBtnSignal(label->text());
}
-void FunctionButtonWidget::hideEvent(QHideEvent *event)
-{
- Q_EMIT sendResetFunctionPage();
- return QWidget::hideEvent(event);
-}
-
/**
* 接收FunctionWidget界面分类按钮列表
*/
@@ -106,12 +102,12 @@ void FunctionButtonWidget::recvClassificationBtnList()
{
QGridLayout *gridLayout = qobject_cast(this->layout());
- for (int row = 0; row < 6; row++)
- for (int col = 0; col < 2; col++) {
+ for (int row = 0; row < 6; row++) {
+ for (int col = 0 ; col < 2; col++) {
QLayoutItem *item = gridLayout->itemAtPosition(row, col);
FunctionClassifyButton *btn = qobject_cast(item->widget());
- if (UkuiMenuInterface::functionalVector.at(row * 2 + col).isEmpty()) {
+ if (UkuiMenuInterface::m_functionalVector.at(row * 2 + col).isEmpty()) {
btn->m_enabled = false;
} else {
btn->m_enabled = true;
@@ -124,4 +120,5 @@ void FunctionButtonWidget::recvClassificationBtnList()
break;
}
}
+ }
}
diff --git a/src/UserInterface/Widget/function_button_widget.h b/src/FunctionWidget/functionbuttonwidget.h
similarity index 89%
rename from src/UserInterface/Widget/function_button_widget.h
rename to src/FunctionWidget/functionbuttonwidget.h
index 3faed62..581fa62 100644
--- a/src/UserInterface/Widget/function_button_widget.h
+++ b/src/FunctionWidget/functionbuttonwidget.h
@@ -26,8 +26,9 @@
#include
#include
#include
-#include "function_classify_button.h"
-#include "ukuimenuinterface.h"
+#include "src/UtilityFunction/functionclassifybutton.h"
+#include "src/Interface/ukuimenuinterface.h"
+#include
class FunctionButtonWidget : public QWidget
{
@@ -39,7 +40,7 @@ public:
private:
QStringList m_categoryList;
- QList m_buttonList;
+ QList m_buttonList;
protected:
/**
@@ -47,15 +48,12 @@ protected:
*/
void initUi();
- void hideEvent(QHideEvent *event);
-
Q_SIGNALS:
/**
* @brief Send button click signal to functionwidget interface
* @param btnname: Category button name
*/
void sendFunctionBtnSignal(QString btnname);
- void sendResetFunctionPage();
public Q_SLOTS:
/**
diff --git a/src/FunctionWidget/functionwidget.cpp b/src/FunctionWidget/functionwidget.cpp
new file mode 100644
index 0000000..d30fee1
--- /dev/null
+++ b/src/FunctionWidget/functionwidget.cpp
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+
+FunctionWidget::FunctionWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ initUi();
+}
+
+FunctionWidget::~FunctionWidget()
+{
+ if (m_ukuiMenuInterface != nullptr) {
+ delete m_ukuiMenuInterface;
+ m_ukuiMenuInterface = nullptr;
+ }
+}
+
+/**
+ * 主界面初始化
+ */
+void FunctionWidget::initUi()
+{
+ this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
+ this->setAttribute(Qt::WA_StyledBackground, true);
+ this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ this->setFixedSize(Style::defaultMainViewWidWidth, Style::defaultContentWidHeight);
+ m_ukuiMenuInterface = new UkuiMenuInterface;
+ initAppListWidget();
+ m_functionBtnWid = new FunctionButtonWidget(this);
+ m_functionBtnWid->hide();
+ connect(this, &FunctionWidget::sendClassificationbtnList, m_functionBtnWid, &FunctionButtonWidget::recvClassificationBtnList);
+ connect(m_functionBtnWid, &FunctionButtonWidget::sendFunctionBtnSignal, this, &FunctionWidget::recvFunctionBtnSignal);
+ m_enterAnimation = new QPropertyAnimation(this);
+ m_enterAnimation->setPropertyName(QString("geometry").toLocal8Bit());
+ m_leaveAnimation = new QPropertyAnimation(this);
+ m_leaveAnimation->setPropertyName(QString("geometry").toLocal8Bit());
+ connect(m_leaveAnimation, &QPropertyAnimation::finished, this, &FunctionWidget::animationFinishedSLot);
+ connect(m_enterAnimation, &QPropertyAnimation::finished, this, &FunctionWidget::animationFinishedSLot);
+}
+
+/**
+ * 初始化应用列表界面
+ */
+void FunctionWidget::initAppListWidget()
+{
+ m_appListView = new ListView(this, this->width() - 6, this->height() - 6, 2);
+ m_appListView->setGeometry(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_appListView->show();
+ fillSoftwareAppListView(m_addDate);
+ connect(m_appListView, &ListView::sendItemClickedSignal, this, &FunctionWidget::recvItemClickedSlot);
+ connect(m_appListView, &ListView::sendHideMainWindowSignal, this, &FunctionWidget::sendHideMainWindowSignal);
+ connect(m_appListView, &ListView::sendMainWinActiveSignal, this, &FunctionWidget::sendMainWinActiveSignal);
+}
+
+/**
+ * 填充应用列表
+ */
+void FunctionWidget::fillSoftwareAppListView(int type)
+{
+ m_row = 0;
+ m_data.clear();
+ m_classificationList.clear();
+ m_classificationBtnRowList.clear();
+ QVector vector = UkuiMenuInterface::m_functionalVector;
+ QStringList functionList = m_ukuiMenuInterface->getFunctionClassName();
+
+ for (int i = 0; i < vector.size(); i++) {
+ if (!(vector.at(i).isEmpty())) {
+ QString functionName = functionList.at(i);
+ insertClassificationBtn(functionName);
+ insertAppList(vector.at(i));
+ }
+ }
+
+ if (type == 0) {
+ m_appListView->addData(m_data);
+ } else {
+ m_appListView->updateData(m_data);
+ }
+}
+
+void FunctionWidget::insertClassificationBtn(QString btnname)
+{
+ m_classificationList.append(btnname);
+ m_data.append(QStringList() << btnname << "0");
+ m_classificationBtnRowList.append(QString::number(m_row));
+}
+
+void FunctionWidget::insertAppList(QStringList appnamelist)
+{
+ m_row += (appnamelist.count() + 1);
+
+ for (int i = 0; i < appnamelist.count(); i++) {
+ m_data.append(QStringList() << appnamelist.at(i) << "1");
+ }
+}
+
+void FunctionWidget::recvItemClickedSlot(QStringList arg)
+{
+ if (arg.at(1).toInt() == 0) {
+ appClassificationBtnClickedSlot();
+ } else {
+ execApplication(arg.at(0));
+ }
+}
+
+/**
+ * 执行应用程序
+ */
+void FunctionWidget::execApplication(QString desktopfp)
+{
+ Q_EMIT sendHideMainWindowSignal();
+ execApp(desktopfp);
+}
+
+/**
+ * 更新应用列表
+ */
+void FunctionWidget::updateAppListView()
+{
+ fillSoftwareAppListView(m_updateDate);
+}
+
+/**
+ * 应用列表功能分类按钮槽函数
+ */
+void FunctionWidget::appClassificationBtnClickedSlot()
+{
+ m_leaveAnimation->setStartValue(QRect(6, 0, this->width() - 6, this->height() - 6));
+// m_leaveAnimation->setEndValue(QRect(20,20,this->width()-40,this->height()-40));
+ m_leaveAnimation->setEndValue(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_enterAnimation->setStartValue(QRect(-40, -40, this->width() + 80, this->height() + 80));
+ m_enterAnimation->setEndValue(QRect((this->width() - Style::LeftBtnWidth * 2 - 5) / 2,
+ (this->height() - Style::LeftBtnHeight * 6 - 25) / 2,
+ Style::LeftBtnWidth * 2 + 5,
+ Style::LeftBtnHeight * 6 + 25));
+ m_leaveAnimation->setDuration(10);
+ m_enterAnimation->setDuration(100);
+ //加载FunctionButtonWidget界面
+ Q_EMIT sendClassificationbtnList();
+ m_leaveAnimation->setTargetObject(m_appListView);
+ m_enterAnimation->setTargetObject(m_functionBtnWid);
+ m_leaveAnimation->start();
+ m_widgetState = 1;
+}
+
+/**
+ * 接收FunctionButtonWidget界面按钮信号
+ */
+void FunctionWidget::recvFunctionBtnSignal(QString btnname)
+{
+ //此处需实现将功能为btnname的应用列表移动到applistWid界面最顶端
+ int index = m_classificationList.indexOf(btnname);
+
+ if (index != -1) {
+ int row = m_classificationBtnRowList.at(index).toInt();
+ m_appListView->verticalScrollBar()->setValue(row);
+ }
+
+ m_leaveAnimation->setStartValue(QRect((this->width() - Style::LeftBtnWidth * 2 - 5) / 2,
+ (this->height() - Style::LeftBtnHeight * 6 - 25) / 2,
+ Style::LeftBtnWidth * 2 + 5,
+ Style::LeftBtnHeight * 6 + 25));
+ m_leaveAnimation->setEndValue(QRect(-40, -40, this->width() + 80, this->height() + 80));
+// m_enterAnimation->setStartValue(QRect(20,20,this->width()-40,this->height()-40));
+ m_enterAnimation->setStartValue(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_enterAnimation->setEndValue(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_leaveAnimation->setDuration(100);
+ m_enterAnimation->setDuration(10);
+ m_leaveAnimation->setTargetObject(m_functionBtnWid);
+ m_enterAnimation->setTargetObject(m_appListView);
+ m_leaveAnimation->start();
+ m_widgetState = 0;
+}
+
+void FunctionWidget::animationFinishedSLot()
+{
+ if (m_widgetState == 1) {
+ m_appListView->hide();
+ m_enterAnimation->start();
+ m_widgetState = -1;
+ m_functionBtnWid->show();
+ }
+
+ if (m_widgetState == 0) {
+ m_functionBtnWid->hide();
+ m_enterAnimation->start();
+ m_widgetState = -1;
+ m_appListView->show();
+ }
+}
+
+void FunctionWidget::widgetMakeZero()
+{
+ m_functionBtnWid->hide();
+ m_appListView->setGeometry(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_appListView->show();
+ m_appListView->verticalScrollBar()->setValue(0);
+}
+
+void FunctionWidget::moveScrollBar(int type)
+{
+ if (type == 0) {
+ m_appListView->verticalScrollBar()->setSliderPosition(m_appListView->verticalScrollBar()->sliderPosition() - 100);
+ } else {
+ m_appListView->verticalScrollBar()->setSliderPosition(m_appListView->verticalScrollBar()->sliderPosition() + 100);
+ }
+}
+
+void FunctionWidget::repaintWidget()
+{
+ this->setFixedSize(Style::defaultMainViewWidWidth, Style::defaultContentWidHeight);
+ m_appListView->setGeometry(QRect(6, 0, this->width() - 6, this->height() - 6));
+ m_appListView->show();
+}
+
+void FunctionWidget::setFocusToThis()
+{
+ this->setFocus();
+}
diff --git a/src/FunctionWidget/functionwidget.h b/src/FunctionWidget/functionwidget.h
new file mode 100644
index 0000000..5eec927
--- /dev/null
+++ b/src/FunctionWidget/functionwidget.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include
+#include
+#include
+#include
+#include
+#include "src/Interface/ukuimenuinterface.h"
+#include "functionbuttonwidget.h"
+#include "src/RightClickMenu/rightclickmenu.h"
+#include "src/UtilityFunction/listview.h"
+#include "src/UtilityFunction/itemdelegate.h"
+
+class FunctionWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit FunctionWidget(QWidget *parent=nullptr);
+ ~FunctionWidget();
+ /**
+ * @brief Initializes the interface state
+ */
+ void widgetMakeZero();
+ /**
+ * @brief Move the scroll bar
+ * @param type: Scroll way,Only the following parameters can be entered:
+ * 0: moving up
+ * 1: moving down
+ */
+ void moveScrollBar(int type);
+ /**
+ * @brief Repaint window
+ */
+ void repaintWidget();
+
+private:
+ UkuiMenuInterface* m_ukuiMenuInterface=nullptr;
+ FunctionButtonWidget* m_functionBtnWid=nullptr;//Classification list interface
+ ListView* m_appListView=nullptr;
+ QVector m_data;
+ QStringList m_classificationList;//Store the list of category buttons
+ QStringList m_classificationBtnRowList;//Store the row in which the category button is located
+ int m_row=0;
+ int m_addDate = 0;
+ int m_updateDate = 1;
+ /*Interface switching animation*/
+ QPropertyAnimation* m_enterAnimation=nullptr;
+ QPropertyAnimation* m_leaveAnimation=nullptr;
+ int m_widgetState=-1;
+
+protected:
+ /**
+ * @brief Initializes UI
+ */
+ void initUi();
+ /**
+ * @brief Initialize the application list interface
+ */
+ void initAppListWidget();
+ /**
+ * @brief fill application list
+ */
+ void fillSoftwareAppListView(int type);
+ /**
+ * @brief Insert the software center category button
+ * @param category: Functional classification name
+ */
+ void insertClassificationBtn(QString btnname);
+ /**
+ * @brief Insert application list
+ * @param desktopfplist: Desktop file path list
+ */
+ void insertAppList(QStringList appnamelist);
+
+public Q_SLOTS:
+ /**
+ * @brief Switch to the function classification button interface
+ */
+ void appClassificationBtnClickedSlot();
+ /**
+ * @brief Receive function classification button interface signal
+ * @param Category button name
+ */
+ void recvFunctionBtnSignal(QString btnname);
+ /**
+ * @brief Open the application
+ * @param arg: Desktop file path
+ */
+ void execApplication(QString desktopfp);
+ /**
+ * @brief Update application list slot function
+ */
+ void updateAppListView();
+ /**
+ * @brief Respond to the list item click
+ * @param arg: The desktop file information that the application contains
+ */
+ void recvItemClickedSlot(QStringList arg);
+ /**
+ * @brief Respond to animation finish
+ */
+ void animationFinishedSLot();
+
+ void setFocusToThis();
+
+Q_SIGNALS:
+ /**
+ * @brief Send the classification button click signal to functionbuttonwidget
+ */
+ void sendClassificationbtnList();
+ /**
+ * @brief Send a hidden main window signal to the MainViewWidget
+ */
+ void sendHideMainWindowSignal();
+
+ void sendMainWinActiveSignal(bool flag);
+};
+
+#endif // FUNCTIONWIDGET_H
diff --git a/src/Interface/ukuichineseletter.cpp b/src/Interface/ukuichineseletter.cpp
new file mode 100644
index 0000000..f7a1afa
--- /dev/null
+++ b/src/Interface/ukuichineseletter.cpp
@@ -0,0 +1,5827 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+
+UkuiChineseLetter::UkuiChineseLetter()
+{
+
+}
+
+bool UkuiChineseLetter::In(wchar_t start, wchar_t end, wchar_t code)
+{
+ if (code >= start && code <= end)
+ {
+ return true;
+ }
+ return false;
+}
+
+char UkuiChineseLetter::Convert(int n)//此方法有缺陷,只能识别一级字库中的汉字
+{
+ /*
+ * GB2312码范围 (B0A1-F7FE)
+ * HiByte (B0-F7) LoByte (A1-FE)
+ *
+ * GBK编码范围 (8140-FEFE)
+ * 包含三大部分
+ * 1.汉字区
+ * a. GB2312汉字区。即GBK/2
+ * b. GB13000.1扩充汉字区。包括GBK/3(CJK汉字)和GBK/4(CJK汉字和增补汉字)
+ * 2.图形符号区
+ * a. GB2312非汉字区。即GBK/1 A1A1-A9FE。还有10个小写罗马数字和GB12345增补符号
+ * b. GB13000.1扩充非汉字区。即GBK/5 A840-A9A0非汉字符号、结构符...
+ * 3.用户自定义区
+ *
+ */
+
+ if (In(0xB0A1,0xB0C4,n)) return 'A';
+ if (In(0XB0C5,0XB2C0,n)) return 'B';
+ if (In(0xB2C1,0xB4ED,n)) return 'C';
+ if (In(0xB4EE,0xB6E9,n)) return 'D';
+ if (In(0xB6EA,0xB7A1,n)) return 'E';
+ if (In(0xB7A2,0xB8c0,n)) return 'F';
+ if (In(0xB8C1,0xB9FD,n)) return 'G';
+ if (In(0xB9FE,0xBBF6,n)) return 'H';
+ if (In(0xBBF7,0xBFA5,n)) return 'J';
+ if (In(0xBFA6,0xC0AB,n)) return 'K';
+ if (In(0xC0AC,0xC2E7,n)) return 'L';
+ if (In(0xC2E8,0xC4C2,n)) return 'M';
+ if (In(0xC4C3,0xC5B5,n)) return 'N';
+ if (In(0xC5B6,0xC5BD,n)) return 'O';
+ if (In(0xC5BE,0xC6D9,n)) return 'P';
+ if (In(0xC6DA,0xC8BA,n)) return 'Q';
+ if (In(0xC8BB,0xC8F5,n)) return 'R';
+ if (In(0xC8F6,0xCBF0,n)) return 'S';
+ if (In(0xCBFA,0xCDD9,n)) return 'T';
+ if (In(0xCDDA,0xCEF3,n)) return 'W';
+ if (In(0xCEF4,0xD1B8,n)) return 'X';
+ if (In(0xD1B9,0xD4D0,n)) return 'Y';
+ if (In(0xD4D1,0xD7F9,n)) return 'Z';
+ if (In(0x00, 0x7f, n)) return n;
+ return '\0';
+}
+
+QString UkuiChineseLetter::getFirstLetter(const QString &src)
+{
+// wchar_t wchr = 0;
+// QString firstLetter;
+// if(src.size() > 0)
+// {
+// QString str = src.at(0);
+// QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
+// if(!pCodec) return QChar(' ');
+// QByteArray arr = pCodec->fromUnicode(str);
+
+// if(arr.size() == 1)
+// {
+// wchr = arr.at(0) & 0xff;
+// }
+// else if(arr.size() == 2)
+// {
+// wchr = (arr.at(0) & 0xff) << 8;
+// wchr |= (arr.at(1) & 0xff);
+// }
+// else
+// {
+//// qDebug() << "unknown word";
+// }
+
+// char c = Convert(wchr);
+// if(c != 0)
+// {
+// firstLetter.append(c);
+// }
+// }
+
+ QString appnamePy=getPinyins(src);
+ if(!appnamePy.isEmpty())
+ return QString(appnamePy.at(0));
+ else
+ return QString();
+}
+
+QString UkuiChineseLetter::getFirstLetters(const QString &src)
+{
+ QString firstLetters;
+ for (int i=0; ifromUnicode(str);
+ wchar_t wchr = 0;
+
+ if(arr.size() == 1)
+ {
+ wchr = arr.at(0) & 0xff;
+ }
+ else if(arr.size() == 2)
+ {
+ wchr = (arr.at(0) & 0xff) << 8;
+ wchr |= (arr.at(1) & 0xff);
+ }
+ else
+ {
+ //qDebug() << "unknown word";
+ }
+
+ char c = Convert(wchr);
+ if(c != 0)
+ {
+ firstLetters.append(c);
+ }
+ }
+ return firstLetters;
+}
+
+QString UkuiChineseLetter::getFirstLettersAll(const QString &src)
+{
+ QString pinyins;
+ for (int i=0; ifromUnicode(str);
+ unsigned char high = 0;
+ unsigned char low = 0;
+ int code = 0;
+
+ if(arr.size() == 1)
+ {
+ high = 0;
+ low = arr.at(0) & 0xff;
+ }
+ else if(arr.size() == 2)
+ {
+ high = arr.at(0) & 0xff;
+ low = arr.at(1) & 0xff;
+ }
+
+ if ( high < 0xa1 || low < 0xa1)
+ {
+ continue;
+ }
+ else
+ {
+ code = (high - 0xa0) * 100 + low - 0xa0;
+ }
+
+ pinyins += getPinyin(code).at(0);
+ }
+ return pinyins;
+}
+
+
+QString UkuiChineseLetter::getPinyins(const QString &text)
+{
+ QString pinyins;
+ for (int i=0; i= 0 && c <= 127))
+ {
+ pinyins+=c.toUpper();
+ continue;
+ }
+
+ QString str = text.at(i);
+ QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
+ if(!pCodec) return QChar(' ');
+ QByteArray arr = pCodec->fromUnicode(str);
+ unsigned char high = 0;
+ unsigned char low = 0;
+ int code = 0;
+
+ if(arr.size() == 1)
+ {
+ high = 0;
+ low = arr.at(0) & 0xff;
+ }
+ else if(arr.size() == 2)
+ {
+ high = arr.at(0) & 0xff;
+ low = arr.at(1) & 0xff;
+ }
+
+ if ( high < 0xa1 || low < 0xa1)
+ {
+ continue;
+ }
+ else
+ {
+ code = (high - 0xa0) * 100 + low - 0xa0;
+ }
+
+ pinyins += getPinyin(code);
+ }
+ return pinyins;
+}
+
+
+QString UkuiChineseLetter::getPinyin(int code)//此方法可以获取所有汉字的拼音
+{
+ QString pinyin;
+ switch(code)
+ {
+ case 6325:
+ case 6436:
+ case 7571:
+ case 7925:
+ pinyin="A";
+ break;
+ case 6263:
+ case 6440:
+ case 7040:
+ case 7208:
+ case 7451:
+ case 7733:
+ case 7945:
+ case 8616:
+ pinyin="AI";
+ break;
+ case 5847:
+ case 5991:
+ case 6278:
+ case 6577:
+ case 6654:
+ case 7281:
+ case 7907:
+ case 8038:
+ case 8786:
+ pinyin="AN";
+ break;
+ pinyin="ANG";
+ break;
+ case 5974:
+ case 6254:
+ case 6427:
+ case 6514:
+ case 6658:
+ case 6959:
+ case 7033:
+ case 7081:
+ case 7365:
+ case 8190:
+ case 8292:
+ case 8643:
+ case 8701:
+ case 8773:
+ pinyin="AO";
+ break;
+ case 6056:
+ case 6135:
+ case 6517:
+ case 7857:
+ case 8446:
+ case 8649:
+ case 8741:
+ pinyin="BA";
+ break;
+ case 6267:
+ case 6334:
+ case 7494:
+ pinyin="BAI";
+ break;
+ case 5870:
+ case 5964:
+ case 7851:
+ case 8103:
+ case 8113:
+ case 8418:
+ pinyin="BAN";
+ break;
+ case 6182:
+ case 6826:
+ pinyin="BANG";
+ break;
+ case 6165:
+ case 7063:
+ case 7650:
+ case 8017:
+ case 8157:
+ case 8532:
+ case 8621:
+ pinyin="BAO";
+ break;
+ case 5635:
+ case 5873:
+ case 5893:
+ case 5993:
+ case 6141:
+ case 6703:
+ case 7753:
+ case 8039:
+ case 8156:
+ case 8645:
+ case 8725:
+ pinyin="BEI";
+ break;
+ case 5946:
+ case 5948:
+ case 7458:
+ case 7928:
+ pinyin="BEN";
+ break;
+ case 6452:
+ case 7420:
+ pinyin="BENG";
+ break;
+ case 5616:
+ case 5734:
+ case 6074:
+ case 6109:
+ case 6221:
+ case 6333:
+ case 6357:
+ case 6589:
+ case 6656:
+ case 6725:
+ case 6868:
+ case 6908:
+ case 6986:
+ case 6994:
+ case 7030:
+ case 7052:
+ case 7221:
+ case 7815:
+ case 7873:
+ case 7985:
+ case 8152:
+ case 8357:
+ case 8375:
+ case 8387:
+ case 8416:
+ case 8437:
+ case 8547:
+ case 8734:
+ pinyin="BI";
+ break;
+ case 5650:
+ case 5945:
+ case 6048:
+ case 6677:
+ case 6774:
+ case 7134:
+ case 7614:
+ case 7652:
+ case 7730:
+ case 7760:
+ case 8125:
+ case 8159:
+ case 8289:
+ case 8354:
+ case 8693:
+ pinyin="BIAN";
+ break;
+ case 7027:
+ case 7084:
+ case 7609:
+ case 7613:
+ case 7958:
+ case 7980:
+ case 8106:
+ case 8149:
+ case 8707:
+ case 8752:
+ pinyin="BIAO";
+ break;
+ case 8531:
+ pinyin="BIE";
+ break;
+ case 5747:
+ case 6557:
+ case 7145:
+ case 7167:
+ case 7336:
+ case 7375:
+ case 7587:
+ case 7957:
+ case 8738:
+ case 8762:
+ pinyin="BIN";
+ break;
+ case 5787:
+ case 5891:
+ case 6280:
+ pinyin="BING";
+ break;
+ case 5781:
+ case 6403:
+ case 6636:
+ case 7362:
+ case 7502:
+ case 7771:
+ case 7864:
+ case 8030:
+ case 8404:
+ case 8543:
+ case 8559:
+ pinyin="BO";
+ break;
+ case 6318:
+ case 6945:
+ case 7419:
+ case 7446:
+ case 7848:
+ case 7863:
+ case 8519:
+ pinyin="BU";
+ break;
+ case 6474:
+ case 7769:
+ pinyin="CA";
+ break;
+ pinyin="CAI";
+ break;
+ case 6978:
+ case 7078:
+ case 7218:
+ case 8451:
+ case 8785:
+ pinyin="CAN";
+ break;
+ case 5687:
+ pinyin="CANG";
+ break;
+ case 6448:
+ case 6878:
+ case 8309:
+ case 8429:
+ pinyin="CAO";
+ break;
+ case 6692:
+ pinyin="CE";
+ break;
+ case 6515:
+ case 6825:
+ pinyin="CEN";
+ break;
+ case 6465:
+ pinyin="CENG";
+ break;
+ case 6639:
+ case 6766:
+ case 7017:
+ case 7230:
+ case 7311:
+ case 7322:
+ case 7363:
+ case 7942:
+ case 7979:
+ case 8135:
+ pinyin="CHA";
+ break;
+ case 5713:
+ case 7846:
+ case 8091:
+ case 8218:
+ pinyin="CHAI";
+ break;
+ case 5770:
+ case 5838:
+ case 6159:
+ case 6667:
+ case 6893:
+ case 6904:
+ case 6981:
+ case 7031:
+ case 7086:
+ case 7472:
+ case 7688:
+ case 7966:
+ case 8324:
+ case 8580:
+ pinyin="CHAN";
+ break;
+ case 5686:
+ case 5943:
+ case 6041:
+ case 6137:
+ case 6660:
+ case 6568:
+ case 6749:
+ case 7029:
+ case 7047:
+ case 7438:
+ case 7509:
+ case 8680:
+ pinyin="CHANG";
+ break;
+ case 6687:
+ case 7443:
+ case 8173:
+ pinyin="CHAO";
+ break;
+ case 5969:
+ case 7726:
+ pinyin="CHE";
+ break;
+ case 5840:
+ case 5863:
+ case 6251:
+ case 6433:
+ case 6923:
+ case 7201:
+ case 7320:
+ case 7755:
+ case 8619:
+ pinyin="CHEN";
+ break;
+ case 5609:
+ case 5984:
+ case 7239:
+ case 7263:
+ case 7583:
+ case 7810:
+ case 7881:
+ case 7905:
+ case 8146:
+ case 8241:
+ case 8508:
+ pinyin="CHENG";
+ break;
+ case 5749:
+ case 6015:
+ case 6061:
+ case 6319:
+ case 6374:
+ case 6420:
+ case 6445:
+ case 6633:
+ case 7042:
+ case 7523:
+ case 7787:
+ case 8023:
+ case 8101:
+ case 8161:
+ case 8231:
+ case 8304:
+ case 8355:
+ case 8388:
+ case 8489:
+ case 8556:
+ case 8746:
+ pinyin="CHI";
+ break;
+ case 6091:
+ case 6671:
+ case 6731:
+ case 8409:
+ case 8430:
+ pinyin="CHONG";
+ break;
+ case 5717:
+ case 6492:
+ case 6716:
+ case 8112:
+ case 8637:
+ pinyin="CHOU";
+ break;
+ case 5601:
+ case 5927:
+ case 6680:
+ case 6732:
+ case 7109:
+ case 7238:
+ case 7290:
+ case 7343:
+ case 8150:
+ case 8260:
+ case 8573:
+ case 8777:
+ pinyin="CHU";
+ break;
+ case 6285:
+ case 6408:
+ case 7590:
+ case 8563:
+ pinyin="CHUAI";
+ break;
+ case 6622:
+ case 6955:
+ case 7516:
+ case 7843:
+ case 8413:
+ pinyin="CHUAN";
+ break;
+ case 6675:
+ pinyin="CHUANG";
+ break;
+ case 5879:
+ case 7302:
+ case 7319:
+ pinyin="CHUI";
+ break;
+ case 6127:
+ case 8040:
+ case 8277:
+ pinyin="CHUN";
+ break;
+ case 7401:
+ case 8554:
+ case 8626:
+ pinyin="CHUO";
+ break;
+ pinyin="CI";
+ break;
+ case 6075:
+ case 6358:
+ case 7684:
+ case 8043:
+ case 8457:
+ pinyin="4337 伺";
+ break;
+ case 6042:
+ case 6840:
+ case 7085:
+ case 7193:
+ case 7214:
+ case 7240:
+ pinyin="CONG";
+ break;
+ case 7308:
+ case 7403:
+ case 7577:
+ pinyin="COU";
+ break;
+ case 6180:
+ case 6562:
+ case 6607:
+ case 7367:
+ case 8501:
+ case 8530:
+ case 8577:
+ pinyin="CU";
+ break;
+ case 5764:
+ case 6305:
+ case 7664:
+ case 7973:
+ pinyin="CUAN";
+ break;
+ case 6718:
+ case 6145:
+ case 6393:
+ case 7213:
+ case 7333:
+ case 7505:
+ case 8631:
+ pinyin="CUI";
+ break;
+ case 6666:
+ case 8169:
+ pinyin="CUN";
+ break;
+ case 5640:
+ case 6547:
+ case 7566:
+ case 7917:
+ case 7983:
+ case 8078:
+ case 8526:
+ case 8567:
+ pinyin="CUO";
+ break;
+ case 6239:
+ case 6353:
+ case 6410:
+ case 6682:
+ case 7007:
+ case 8155:
+ case 8346:
+ case 8716:
+ case 8718:
+ pinyin="DA";
+ break;
+ case 6004:
+ case 6316:
+ case 6523:
+ case 6942:
+ case 7110:
+ case 7173:
+ case 8776:
+ pinyin="DAI";
+ break;
+ case 5757:
+ case 6144:
+ case 6402:
+ case 7373:
+ case 7470:
+ case 7781:
+ case 8067:
+ case 8087:
+ case 8185:
+ case 8376:
+ pinyin="DAN";
+ break;
+ case 5852:
+ case 5942:
+ case 6148:
+ case 6920:
+ case 7724:
+ case 7885:
+ case 8141:
+ pinyin="DANG";
+ break;
+ case 6322:
+ case 6665:
+ case 7514:
+ case 8478:
+ pinyin="DAO";
+ break;
+ case 7929:
+ pinyin="DE";
+ break;
+ case 6466:
+ case 6556:
+ case 7413:
+ case 7767:
+ case 7975:
+ case 8403:
+ pinyin="DENG";
+ break;
+ case 5621:
+ case 5765:
+ case 5814:
+ case 5848:
+ case 5901:
+ case 5970:
+ case 6122:
+ case 6454:
+ case 7023:
+ case 7116:
+ case 7260:
+ case 7306:
+ case 7475:
+ case 7738:
+ case 7758:
+ case 7791:
+ case 7965:
+ case 8438:
+ case 8730:
+ pinyin="DI";
+ break;
+ case 6439:
+ pinyin="DIA";
+ break;
+ case 5871:
+ case 5967:
+ case 6559:
+ case 7172:
+ case 7868:
+ case 8116:
+ case 8118:
+ case 8401:
+ case 8558:
+ pinyin="DIAN";
+ break;
+ case 7886:
+ case 8585:
+ case 8684:
+ pinyin="DIAO";
+ break;
+ case 5976:
+ case 6006:
+ case 6273:
+ case 6409:
+ case 7526:
+ case 8012:
+ case 8183:
+ case 8562:
+ case 8688:
+ pinyin="DIE";
+ break;
+ case 5674:
+ case 6404:
+ case 7164:
+ case 7575:
+ case 7754:
+ case 7814:
+ case 8059:
+ case 8184:
+ case 8490:
+ pinyin="DING";
+ break;
+ case 7891:
+ pinyin="DIU";
+ break;
+ case 5977:
+ case 6343:
+ case 6520:
+ case 6528:
+ case 7517:
+ case 7543:
+ case 7556:
+ case 7747:
+ case 8020:
+ pinyin="DONG";
+ break;
+ case 6190:
+ case 8128:
+ case 8229:
+ case 8391:
+ pinyin="DOU";
+ break;
+ case 6022:
+ case 6429:
+ case 6834:
+ case 7292:
+ case 7525:
+ case 8328:
+ case 8338:
+ case 8739:
+ case 8782:
+ pinyin="DU";
+ break;
+ case 7318:
+ case 7649:
+ case 8393:
+ pinyin="DUAN";
+ break;
+ case 7701:
+ case 7713:
+ case 7752:
+ pinyin="DUI";
+ break;
+ case 6771:
+ case 7632:
+ case 7727:
+ case 7766:
+ case 7779:
+ case 7970:
+ case 8527:
+ pinyin="DUN";
+ break;
+ case 6345:
+ case 6365:
+ case 6785:
+ case 7122:
+ case 7876:
+ case 8154:
+ case 8566:
+ pinyin="DUO";
+ break;
+ case 5612:
+ case 5832:
+ case 5844:
+ case 5949:
+ case 6035:
+ case 6113:
+ case 6164:
+ case 6332:
+ case 6721:
+ case 6977:
+ case 7025:
+ case 7378:
+ case 7581:
+ case 7916:
+ case 7941:
+ case 8042:
+ case 8206:
+ case 8689:
+ pinyin="E";
+ break;
+ case 6176:
+ case 6284:
+ pinyin="EN";
+ break;
+ case 5706:
+ case 6939:
+ case 7177:
+ case 7879:
+ case 8025:
+ case 8660:
+ pinyin="ER";
+ break;
+ case 5950:
+ case 7732:
+ pinyin="FA";
+ break;
+ case 6212:
+ case 6232:
+ case 6506:
+ case 7283:
+ case 7660:
+ case 7818:
+ case 8576:
+ pinyin="FAN";
+ break;
+ case 5890:
+ case 7242:
+ case 7853:
+ case 8419:
+ case 8648:
+ pinyin="FANG";
+ break;
+ case 6032:
+ case 6584:
+ case 6713:
+ case 6839:
+ case 6990:
+ case 7119:
+ case 7328:
+ case 7572:
+ case 7619:
+ case 7673:
+ case 7948:
+ case 8082:
+ case 8267:
+ case 8385:
+ case 8468:
+ case 8613:
+ case 8678:
+ pinyin="FEI";
+ break;
+ case 5739:
+ case 6915:
+ case 7291:
+ case 8687:
+ case 8787:
+ pinyin="FEN";
+ break;
+ case 5726:
+ case 5926:
+ case 6155:
+ case 6384:
+ case 6767:
+ case 7731:
+ pinyin="FENG";
+ break;
+ pinyin="FO";
+ break;
+ case 8330:
+ pinyin="FOU";
+ break;
+ case 5775:
+ case 5776:
+ case 5914:
+ case 6029:
+ case 6062:
+ case 6119:
+ case 6142:
+ case 6252:
+ case 6327:
+ case 6505:
+ case 6686:
+ case 6870:
+ case 6985:
+ case 7058:
+ case 7066:
+ case 7106:
+ case 7108:
+ case 7285:
+ case 7471:
+ case 7680:
+ case 7741:
+ case 7774:
+ case 7775:
+ case 7823:
+ case 7991:
+ case 8005:
+ case 8222:
+ case 8261:
+ case 8280:
+ case 8283:
+ case 8479:
+ case 8535:
+ case 8538:
+ case 8654:
+ case 8691:
+ pinyin="FU";
+ break;
+ case 6246:
+ case 7056:
+ case 7057:
+ case 7424:
+ case 7837:
+ pinyin=" GA";
+ break;
+ case 5604:
+ case 5875:
+ case 5982:
+ case 7414:
+ case 7464:
+ pinyin="GAI";
+ break;
+ case 5965:
+ case 6053:
+ case 6247:
+ case 6306:
+ case 6779:
+ case 6838:
+ case 6887:
+ case 7104:
+ case 7347:
+ case 7426:
+ case 7723:
+ case 8065:
+ case 8491:
+ pinyin="GAN";
+ break;
+ case 7716:
+ case 7824:
+ case 8364:
+ pinyin="GANG";
+ break;
+ case 5626:
+ case 5830:
+ case 5912:
+ case 6227:
+ case 7141:
+ case 7332:
+ case 7334:
+ case 7429:
+ case 7915:
+ pinyin="GAO";
+ break;
+ case 5610:
+ case 5678:
+ case 5933:
+ case 5957:
+ case 6010:
+ case 6435:
+ case 7092:
+ case 7501:
+ case 7585:
+ case 7749:
+ case 7951:
+ case 8143:
+ case 8220:
+ case 8420:
+ case 8732:
+ pinyin="GE";
+ break;
+ pinyin="GEI";
+ break;
+ case 5608:
+ case 6102:
+ case 6371:
+ case 8462:
+ pinyin="GEN";
+ break;
+ case 6376:
+ case 6657:
+ case 7114:
+ case 8665:
+ pinyin="GENG";
+ break;
+ case 7178:
+ case 7537:
+ case 8228:
+ case 8601:
+ pinyin="GONG";
+ break;
+ case 5694:
+ case 5824:
+ case 6524:
+ case 6960:
+ case 7037:
+ case 7135:
+ case 7259:
+ case 7477:
+ case 7616:
+ case 8349:
+ case 8384:
+ case 8724:
+ pinyin="GOU";
+ break;
+ case 5637:
+ case 5812:
+ case 6152:
+ case 6536:
+ case 6773:
+ case 7284:
+ case 7379:
+ case 7484:
+ case 7486:
+ case 7591:
+ case 7617:
+ case 7813:
+ case 7825:
+ case 7860:
+ case 7932:
+ case 8019:
+ case 8083:
+ case 8233:
+ case 8494:
+ case 8593:
+ case 8681:
+ case 8729:
+ pinyin="GU";
+ break;
+ case 5652:
+ case 5820:
+ case 6341:
+ case 7273:
+ case 7550:
+ case 8027:
+ pinyin="GUA";
+ break;
+ pinyin="GUAI";
+ break;
+ case 5736:
+ case 6124:
+ case 6272:
+ case 6842:
+ case 7834:
+ case 8057:
+ case 8170:
+ case 8704:
+ pinyin="GUAN";
+ break;
+ case 6359:
+ case 6578:
+ case 7270:
+ case 7555:
+ pinyin="GUANG";
+ break;
+ case 5648:
+ case 5659:
+ case 6649:
+ case 7003:
+ case 7277:
+ case 7433:
+ case 7448:
+ case 8007:
+ case 8394:
+ case 8657:
+ case 8712:
+ pinyin="GUI";
+ break;
+ case 5782:
+ case 7121:
+ case 7762:
+ case 8671:
+ pinyin="GUN";
+ break;
+ case 5769:
+ case 6266:
+ case 6335:
+ case 6494:
+ case 6538:
+ case 6603:
+ case 7304:
+ case 7529:
+ case 8188:
+ case 8268:
+ case 8269:
+ pinyin="GUO";
+ break;
+ case 7894:
+ pinyin="HA";
+ break;
+ case 6443:
+ case 7560:
+ case 8516:
+ pinyin="HAI";
+ break;
+ case 5885:
+ case 6153:
+ case 6294:
+ case 6759:
+ case 6911:
+ case 7447:
+ case 7642:
+ case 8192:
+ case 8205:
+ case 8232:
+ case 8793:
+ pinyin="HAN";
+ break;
+ case 6776:
+ case 7112:
+ case 8194:
+ pinyin="HANG";
+ break;
+ case 6179:
+ case 6222:
+ case 6438:
+ case 6467:
+ case 6909:
+ case 6916:
+ case 7427:
+ case 8009:
+ case 8211:
+ case 8226:
+ pinyin="HAO";
+ break;
+ case 5813:
+ case 5932:
+ case 5954:
+ case 6432:
+ case 6756:
+ case 7434:
+ case 7833:
+ case 8202:
+ case 8234:
+ case 8471:
+ pinyin="HE";
+ break;
+ pinyin="HEI";
+ break;
+ pinyin="HEN";
+ break;
+ case 6231:
+ case 7181:
+ case 7276:
+ pinyin="HENG";
+ break;
+ case 5768:
+ case 5774:
+ case 5807:
+ case 6106:
+ case 6214:
+ case 6216:
+ case 6740:
+ case 6792:
+ pinyin="HONG";
+ break;
+ case 6009:
+ case 6565:
+ case 6943:
+ case 8090:
+ case 8383:
+ case 8455:
+ case 8655:
+ case 8731:
+ pinyin="HOU";
+ break;
+ case 5792:
+ case 6392:
+ case 6481:
+ case 6518:
+ case 6609:
+ case 6679:
+ case 6717:
+ case 6816:
+ case 6879:
+ case 7190:
+ case 7346:
+ case 7385:
+ case 7618:
+ case 7635:
+ case 7646:
+ case 7670:
+ case 7672:
+ case 7679:
+ case 8013:
+ case 8032:
+ case 8041:
+ case 8055:
+ case 8343:
+ case 8513:
+ case 8590:
+ pinyin="HU";
+ break;
+ case 7072:
+ case 7275:
+ case 7725:
+ case 7892:
+ pinyin="HUA";
+ break;
+ case 8555:
+ pinyin="HUAI";
+ break;
+ case 5928:
+ case 6140:
+ case 6307:
+ case 6487:
+ case 6621:
+ case 6801:
+ case 6829:
+ case 6881:
+ case 6930:
+ case 6953:
+ case 7157:
+ case 7944:
+ case 8673:
+ case 8763:
+ pinyin="HUAN";
+ break;
+ case 5882:
+ case 6569:
+ case 6850:
+ case 6874:
+ case 6956:
+ case 7211:
+ case 7533:
+ case 8105:
+ case 8308:
+ case 8382:
+ case 8692:
+ pinyin="HUANG";
+ break;
+ case 5822:
+ case 6078:
+ case 6086:
+ case 6205:
+ case 6352:
+ case 6360:
+ case 6425:
+ case 6736:
+ case 6807:
+ case 6811:
+ case 6971:
+ case 7132:
+ case 7185:
+ case 7445:
+ case 7703:
+ case 8219:
+ case 8319:
+ case 8766:
+ pinyin="HUI";
+ break;
+ case 5827:
+ case 6638:
+ case 6752:
+ case 6867:
+ pinyin="HUN";
+ break;
+ case 5669:
+ case 6229:
+ case 6311:
+ case 6475:
+ case 6623:
+ case 7856:
+ case 7933:
+ case 7976:
+ case 8175:
+ case 8322:
+ pinyin="HUO";
+ break;
+ case 5629:
+ case 5632:
+ case 5662:
+ case 5705:
+ case 5742:
+ case 5952:
+ case 6024:
+ case 6033:
+ case 6193:
+ case 6210:
+ case 6265:
+ case 6320:
+ case 6350:
+ case 6383:
+ case 6507:
+ case 6553:
+ case 6809:
+ case 6976:
+ case 7087:
+ case 7160:
+ case 7165:
+ case 7314:
+ case 7374:
+ case 7410:
+ case 7411:
+ case 7469:
+ case 7473:
+ case 7487:
+ case 7620:
+ case 7722:
+ case 7831:
+ case 7990:
+ case 8002:
+ case 8104:
+ case 8217:
+ case 8337:
+ case 8339:
+ case 8463:
+ case 8550:
+ case 8611:
+ case 8661:
+ case 8674:
+ case 8757:
+ case 8768:
+ pinyin="JI";
+ break;
+ case 5704:
+ case 5903:
+ case 6171:
+ case 6521:
+ case 6804:
+ case 6940:
+ case 7176:
+ case 7409:
+ case 7546:
+ case 7702:
+ case 7882:
+ case 7956:
+ case 8072:
+ case 8142:
+ case 8244:
+ case 8353:
+ case 8434:
+ case 8542:
+ pinyin="JIA";
+ break;
+ case 5752:
+ case 5841:
+ case 5857:
+ case 6149:
+ case 6183:
+ case 6286:
+ case 6853:
+ case 6931:
+ case 6932:
+ case 7144:
+ case 7237:
+ case 7305:
+ case 7407:
+ case 7415:
+ case 7480:
+ case 7489:
+ case 7506:
+ case 7576:
+ case 7790:
+ case 7921:
+ case 8047:
+ case 8148:
+ case 8340:
+ case 8469:
+ case 8534:
+ case 8561:
+ case 8668:
+ case 8721:
+ pinyin="JIAN";
+ break;
+ case 6092:
+ case 6814:
+ case 7113:
+ case 7154:
+ case 7481:
+ case 7768:
+ case 8180:
+ case 8461:
+ case 8488:
+ pinyin="JIANG";
+ break;
+ case 5714:
+ case 5753:
+ case 6020:
+ case 6090:
+ case 6256:
+ case 6461:
+ case 6572:
+ case 7015:
+ case 7524:
+ case 8008:
+ case 8052:
+ case 8252:
+ case 8520:
+ case 8551:
+ case 8662:
+ pinyin="JIAO";
+ break;
+ case 5806:
+ case 5821:
+ case 6255:
+ case 6414:
+ case 7028:
+ case 7061:
+ case 7278:
+ case 7757:
+ case 8060:
+ case 8201:
+ case 8227:
+ case 8441:
+ case 8658:
+ case 8726:
+ pinyin="JIE";
+ break;
+ case 5865:
+ case 6103:
+ case 6132:
+ case 6468:
+ case 6643:
+ case 6659:
+ case 7138:
+ case 7210:
+ case 7340:
+ case 7465:
+ case 7478:
+ case 8138:
+ pinyin="JIN";
+ break;
+ case 5751:
+ case 5869:
+ case 6128:
+ case 6616:
+ case 6729:
+ case 6794:
+ case 6941:
+ case 6982:
+ case 7026:
+ case 7534:
+ case 7554:
+ case 7570:
+ case 7626:
+ pinyin="JIANG";
+ break;
+ case 6936:
+ case 7671:
+ pinyin="JIONG";
+ break;
+ case 5754:
+ case 6417:
+ case 6746:
+ case 7249:
+ case 7274:
+ case 8015:
+ case 8053:
+ case 8481:
+ case 8761:
+ pinyin="JIU";
+ break;
+ case 5738:
+ case 5810:
+ case 6036:
+ case 6058:
+ case 6076:
+ case 6268:
+ case 6965:
+ case 6980:
+ case 7202:
+ case 7307:
+ case 7316:
+ case 7323:
+ case 7357:
+ case 7381:
+ case 7488:
+ case 7611:
+ case 7850:
+ case 7924:
+ case 8022:
+ case 8132:
+ case 8153:
+ case 8482:
+ case 8522:
+ case 8565:
+ case 8620:
+ case 8634:
+ case 8722:
+ pinyin="JU";
+ break;
+ case 5918:
+ case 6590:
+ case 6824:
+ case 7280:
+ case 7835:
+ case 7935:
+ case 7952:
+ case 8633:
+ pinyin="JUAN";
+ break;
+ case 5642:
+ case 5667:
+ case 5860:
+ case 5939:
+ case 6207:
+ case 6421:
+ case 6457:
+ case 6469:
+ case 6540:
+ case 6617:
+ case 7062:
+ case 7169:
+ case 7286:
+ case 7351:
+ case 7663:
+ case 7967:
+ case 8574:
+ case 8591:
+ pinyin="JUE";
+ break;
+ case 6260:
+ case 8168:
+ case 8362:
+ case 8769:
+ pinyin="JUN";
+ break;
+ case 5671:
+ case 6339:
+ case 7544:
+ pinyin="KA";
+ break;
+ case 5660:
+ case 5978:
+ case 6160:
+ case 6673:
+ case 6693:
+ case 7888:
+ case 7920:
+ case 7939:
+ pinyin="KAI";
+ break;
+ case 5709:
+ case 6108:
+ case 7412:
+ case 7772:
+ case 7811:
+ pinyin="KAN";
+ break;
+ case 5688:
+ case 6742:
+ case 7854:
+ pinyin="KANG";
+ break;
+ case 6974:
+ case 7264:
+ case 7491:
+ case 7877:
+ pinyin="KAO";
+ break;
+ case 6430:
+ case 6519:
+ case 6701:
+ case 6859:
+ case 7076:
+ case 7128:
+ case 7170:
+ case 7380:
+ case 7520:
+ case 7807:
+ case 7861:
+ case 7930:
+ case 7993:
+ case 8066:
+ case 8129:
+ case 8204:
+ case 8282:
+ case 8733:
+ pinyin="KE";
+ break;
+ case 8144:
+ pinyin="KEN";
+ break;
+ case 7912:
+ pinyin="KENG";
+ break;
+ case 5737:
+ case 6539:
+ case 8377:
+ pinyin="KONG";
+ break;
+ case 6050:
+ case 6202:
+ case 6321:
+ case 7778:
+ case 8356:
+ pinyin="KOU";
+ break;
+ case 5658:
+ case 6005:
+ case 6423:
+ case 7111:
+ case 8728:
+ pinyin="KU";
+ break;
+ case 5708:
+ pinyin="KUA";
+ break;
+ case 5665:
+ case 5906:
+ case 6364:
+ case 6586:
+ case 7558:
+ pinyin="KUAI";
+ break;
+ case 8737:
+ pinyin="KUAN";
+ break;
+ case 5818:
+ case 5831:
+ case 5887:
+ case 5959:
+ case 6237:
+ case 6349:
+ case 7094:
+ case 7460:
+ pinyin="KUANG";
+ break;
+ case 5624:
+ case 5649:
+ case 5771:
+ case 6162:
+ case 6281:
+ case 6413:
+ case 6416:
+ case 6720:
+ case 6951:
+ case 7450:
+ case 7805:
+ case 8606:
+ case 8743:
+ pinyin="KUI";
+ break;
+ case 6204:
+ case 6245:
+ case 6458:
+ case 6618:
+ case 6928:
+ case 7152:
+ case 7841:
+ case 8051:
+ pinyin="LIAO";
+ break;
+ case 5793:
+ case 5988:
+ case 6270:
+ case 6354:
+ case 6803:
+ case 8483:
+ case 8581:
+ case 8764:
+ pinyin="LIE";
+ break;
+ case 6194:
+ case 6388:
+ case 6555:
+ case 6662:
+ case 6733:
+ case 6964:
+ case 7361:
+ case 7405:
+ case 7602:
+ case 7812:
+ case 8452:
+ case 8579:
+ case 8775:
+ pinyin="LIN";
+ break;
+ case 5925:
+ case 6063:
+ case 6342:
+ case 6482:
+ case 6786:
+ case 7117:
+ case 7258:
+ case 7289:
+ case 7418:
+ case 8186:
+ case 8240:
+ case 8465:
+ case 8676:
+ pinyin="LING";
+ break;
+ case 6815:
+ case 6962:
+ case 7082:
+ case 7124:
+ case 7628:
+ case 7654:
+ case 7919:
+ case 7954:
+ case 8050:
+ case 8644:
+ pinyin="LIU";
+ break;
+ case 5966:
+ case 6055:
+ case 6781:
+ case 7171:
+ case 7248:
+ case 7542:
+ case 7735:
+ case 8110:
+ pinyin="LONG";
+ break;
+ case 5745:
+ case 6168:
+ case 6422:
+ case 6548:
+ case 7946:
+ case 8092:
+ case 8179:
+ case 8287:
+ case 8735:
+ pinyin="LOU";
+ break;
+ case 6744:
+ case 7321:
+ case 7586:
+ case 7918:
+ case 7989:
+ case 8158:
+ pinyin="Lü";
+ break;
+ case 5968:
+ case 6303:
+ case 6464:
+ case 6782:
+ case 6843:
+ case 6885:
+ case 6954:
+ case 7220:
+ case 7251:
+ case 7354:
+ case 7391:
+ case 7404:
+ case 7510:
+ case 7545:
+ case 7969:
+ case 8021:
+ case 8056:
+ case 8392:
+ case 8421:
+ case 8652:
+ pinyin="LU";
+ break;
+ case 5785:
+ case 7014:
+ case 7279:
+ case 8029:
+ case 8639:
+ pinyin="LUAN";
+ break;
+ pinyin="LǖE";
+ break;
+ pinyin="LUN";
+ break;
+ case 5732:
+ case 5789:
+ case 6093:
+ case 6259:
+ case 6291:
+ case 6604:
+ case 6788:
+ case 6880:
+ case 7183:
+ case 7301:
+ case 7565:
+ case 7961:
+ case 8107:
+ case 8635:
+ pinyin="LUO";
+ break;
+ case 6328:
+ pinyin="M";
+ break;
+ case 6373:
+ case 6579:
+ case 7054:
+ case 7231:
+ case 8301:
+ pinyin="MA";
+ break;
+ case 5929:
+ case 6104:
+ case 8618:
+ pinyin="MAI";
+ break;
+ case 6012:
+ case 6503:
+ case 7147:
+ case 7655:
+ case 7960:
+ case 8209:
+ case 8293:
+ case 8709:
+ case 8720:
+ pinyin="MAN";
+ break;
+ case 5888:
+ case 6861:
+ case 7743:
+ case 8294:
+ pinyin="MANG";
+ break;
+ case 5783:
+ case 6066:
+ case 6525:
+ case 6787:
+ case 7203:
+ case 7436:
+ case 7483:
+ case 7503:
+ case 7624:
+ case 7714:
+ case 7806:
+ case 8317:
+ case 8754:
+ pinyin="MAO";
+ break;
+ case 6114:
+ case 6550:
+ case 6613:
+ case 6828:
+ case 6856:
+ case 7325:
+ case 7949:
+ case 8044:
+ case 8139:
+ case 8740:
+ pinyin="MEI";
+ break;
+ case 6249:
+ case 7643:
+ case 7715:
+ case 7845:
+ pinyin="MEN";
+ break;
+ case 5934:
+ case 6189:
+ case 6211:
+ case 6734:
+ case 7592:
+ case 7770:
+ case 8221:
+ case 8276:
+ case 8323:
+ case 8427:
+ case 8431:
+ pinyin="MENG";
+ break;
+ case 5634:
+ case 5855:
+ case 6234:
+ case 6368:
+ case 6455:
+ case 6608:
+ case 6772:
+ case 6921:
+ case 6984:
+ case 7563:
+ case 7682:
+ case 8445:
+ case 8767:
+ case 8771:
+ pinyin="MI";
+ break;
+ case 6770:
+ case 6837:
+ case 6847:
+ case 7579:
+ case 7777:
+ pinyin="MIAN";
+ break;
+ case 6387:
+ case 6967:
+ case 7131:
+ case 7149:
+ case 7234:
+ case 7721:
+ case 7780:
+ case 8037:
+ pinyin="MIAO";
+ break;
+ case 5631:
+ case 6367:
+ case 8326:
+ case 8390:
+ pinyin="MIE";
+ break;
+ case 6069:
+ case 6526:
+ case 6741:
+ case 6793:
+ case 7137:
+ case 7168:
+ case 7175:
+ case 7710:
+ case 8710:
+ case 8628:
+ pinyin="MIN";
+ break;
+ case 5804:
+ case 6088:
+ case 6873:
+ case 7452:
+ case 7808:
+ case 8504:
+ pinyin="MING";
+ break;
+ pinyin="MIU";
+ break;
+ case 5851:
+ case 6052:
+ case 6175:
+ case 6641:
+ case 7038:
+ case 7366:
+ case 7950:
+ case 7987:
+ case 8102:
+ case 8182:
+ case 8586:
+ case 8588:
+ case 8765:
+ pinyin="MO";
+ break;
+ case 5716:
+ case 6372:
+ case 7788:
+ case 8254:
+ case 8290:
+ case 8642:
+ pinyin="MOU";
+ break;
+ case 5679:
+ case 5973:
+ case 6057:
+ case 6769:
+ case 7504:
+ case 7866:
+ pinyin="MU";
+ break;
+ case 6437:
+ pinyin="N";
+ break;
+ case 6264:
+ case 7539:
+ case 7953:
+ case 8136:
+ pinyin="NA";
+ break;
+ case 5630:
+ case 6021:
+ case 6133:
+ case 7245:
+ pinyin="NAI";
+ break;
+ case 6411:
+ case 6478:
+ case 6479:
+ case 7310:
+ case 7578:
+ case 8279:
+ case 8486:
+ pinyin="NAN";
+ break;
+ case 6313:
+ case 6476:
+ case 6646:
+ case 7457:
+ pinyin="NANG";
+ break;
+ case 5611:
+ case 5981:
+ case 6346:
+ case 6614:
+ case 7207:
+ case 7748:
+ case 7883:
+ case 8245:
+ pinyin="NAO";
+ break;
+ case 5811:
+ pinyin="NE";
+ break;
+ pinyin="NEI";
+ break;
+ case 7705:
+ pinyin="NEN";
+ break;
+ pinyin="NENG";
+ break;
+ case 5703:
+ case 5972:
+ case 6605:
+ case 6685:
+ case 7439:
+ case 7627:
+ case 7711:
+ case 7794:
+ case 7874:
+ case 8682:
+ pinyin="NI";
+ break;
+ case 5605:
+ case 5994:
+ case 7393:
+ case 8004:
+ case 8651:
+ case 8683:
+ pinyin="NIAN";
+ break;
+ pinyin="NIANG";
+ break;
+ case 6064:
+ case 7053:
+ case 7569:
+ case 8433:
+ pinyin="NIAO";
+ break;
+ case 5877:
+ case 6233:
+ case 6431:
+ case 8208:
+ case 8411:
+ case 8570:
+ pinyin="NIE";
+ break;
+ pinyin="NIN";
+ break;
+ case 5690:
+ case 6344:
+ case 6924:
+ case 8187:
+ pinyin="NING";
+ break;
+ case 6580:
+ case 6678:
+ case 7004:
+ pinyin="NIU";
+ break;
+ case 5715:
+ case 6370:
+ pinyin="NONG";
+ break;
+ case 8181:
+ pinyin="NOU";
+ break;
+ case 6983:
+ case 7032:
+ case 7059:
+ case 7069:
+ pinyin="NU";
+ break;
+ case 7704:
+ case 7847:
+ case 8412:
+ pinyin="Nǖ";
+ break;
+ pinyin="NUAN";
+ break;
+ pinyin="NUE";
+ break;
+ case 5748:
+ case 6289:
+ case 6386:
+ case 7927:
+ pinyin="NUO";
+ break;
+ case 6424:
+ case 6462:
+ pinyin="O";
+ break;
+ case 5809:
+ case 6670:
+ case 7417:
+ case 8178:
+ pinyin="OU";
+ break;
+ case 6166:
+ case 7243:
+ case 8365:
+ pinyin="PA";
+ break;
+ case 5729:
+ case 6169:
+ case 6363:
+ pinyin="PAI";
+ break;
+ case 6761:
+ case 6790:
+ case 8140:
+ case 8165:
+ case 8320:
+ case 8571:
+ pinyin="PAN";
+ break;
+ case 6561:
+ case 6872:
+ case 6944:
+ case 8306:
+ pinyin="PANG";
+ break;
+ case 6243:
+ case 6583:
+ case 6650:
+ case 7567:
+ case 8069:
+ pinyin="PAO";
+ break;
+ case 6446:
+ case 6490:
+ case 7623:
+ case 7934:
+ case 8512:
+ case 8612:
+ pinyin="PEI";
+ break;
+ case 6852:
+ pinyin="PEN";
+ break;
+ case 6001:
+ case 6456:
+ case 6681:
+ case 8318:
+ pinyin="PENG";
+ break;
+ case 5607:
+ case 5682:
+ case 5880:
+ case 5892:
+ case 5915:
+ case 5960:
+ case 6017:
+ case 6037:
+ case 6308:
+ case 6472:
+ case 6647:
+ case 6836:
+ case 7039:
+ case 7102:
+ case 7233:
+ case 7422:
+ case 7802:
+ case 7828:
+ case 7875:
+ case 8117:
+ case 8166:
+ case 8223:
+ case 8271:
+ case 8589:
+ pinyin="PI";
+ break;
+ case 5850:
+ case 7073:
+ case 7490:
+ case 7561:
+ case 8470:
+ case 8568:
+ pinyin="PIAN";
+ break;
+ case 5666:
+ case 6449:
+ case 7046:
+ case 7146:
+ case 7372:
+ case 7809:
+ case 8310:
+ pinyin="PIAO";
+ break;
+ case 6054:
+ case 7513:
+ pinyin="PIE";
+ break;
+ case 7041:
+ case 6253:
+ case 7016:
+ case 7315:
+ case 7482:
+ case 8213:
+ pinyin="PIN";
+ break;
+ case 5723:
+ case 7019:
+ case 7250:
+ case 8650:
+ pinyin="PING";
+ break;
+ case 5647:
+ case 5922:
+ case 7174:
+ case 7839:
+ case 7862:
+ case 8011:
+ case 8345:
+ pinyin="PO";
+ break;
+ case 5786:
+ case 6269:
+ pinyin="POU";
+ break;
+ case 5773:
+ case 6459:
+ case 6863:
+ case 6907:
+ case 7217:
+ case 7511:
+ case 7968:
+ case 7972:
+ case 8575:
+ pinyin="PU";
+ break;
+ case 5633:
+ case 5725:
+ case 5963:
+ case 6027:
+ case 6046:
+ case 6089:
+ case 6129:
+ case 6134:
+ case 6161:
+ case 6213:
+ case 6366:
+ case 6450:
+ case 6508:
+ case 6510:
+ case 6764:
+ case 6831:
+ case 7075:
+ case 7118:
+ case 7187:
+ case 7189:
+ case 7229:
+ case 7271:
+ case 7342:
+ case 7440:
+ case 7605:
+ case 7687:
+ case 7712:
+ case 7751:
+ case 8193:
+ case 8251:
+ case 8264:
+ case 8475:
+ case 8476:
+ case 8572:
+ case 8702:
+ case 8772:
+ pinyin="QI";
+ break;
+ case 6154:
+ case 8736:
+ pinyin="QIA";
+ break;
+ case 5727:
+ case 5761:
+ case 5868:
+ case 6023:
+ case 6045:
+ case 6071:
+ case 6271:
+ case 6509:
+ case 6705:
+ case 6727:
+ case 6925:
+ case 6926:
+ case 6929:
+ case 7155:
+ case 7293:
+ case 7541:
+ case 7709:
+ case 7852:
+ case 8215:
+ case 8373:
+ pinyin="QIAN";
+ break;
+ case 6762:
+ case 7045:
+ case 7341:
+ case 7408:
+ case 7633:
+ case 7926:
+ case 7947:
+ case 7974:
+ case 8163:
+ case 8262:
+ case 8439:
+ case 8536:
+ pinyin="QIANG";
+ break;
+ case 5668:
+ case 5829:
+ case 5859:
+ case 6081:
+ case 6529:
+ case 6724:
+ case 6730:
+ case 7352:
+ case 7745:
+ case 8546:
+ case 8719:
+ pinyin="QIAO";
+ break;
+ case 5907:
+ case 6711:
+ case 7010:
+ case 7492:
+ case 7938:
+ case 8370:
+ pinyin="QIE";
+ break;
+ case 6043:
+ case 6276:
+ case 6336:
+ case 6426:
+ case 6463:
+ case 6858:
+ case 7353:
+ case 7923:
+ case 8291:
+ case 8432:
+ pinyin="QIN";
+ break;
+ case 6060:
+ case 6485:
+ case 7349:
+ case 7764:
+ case 8263:
+ case 8332:
+ case 8368:
+ case 8605:
+ case 8675:
+ case 8784:
+ pinyin="QING";
+ break;
+ case 5886:
+ case 6068:
+ case 8123:
+ case 8243:
+ case 8344:
+ case 8528:
+ case 8638:
+ pinyin="QIONG";
+ break;
+ case 5720:
+ case 5947:
+ case 6576:
+ case 6848:
+ case 6947:
+ case 6957:
+ case 7317:
+ case 7468:
+ case 8216:
+ case 8239:
+ case 8288:
+ case 8435:
+ case 8460:
+ case 8690:
+ case 8792:
+ pinyin="QIU";
+ break;
+ case 5816:
+ case 5930:
+ case 6201:
+ case 6230:
+ case 6511:
+ case 6573:
+ case 6754:
+ case 7219:
+ case 7479:
+ case 7512:
+ case 7552:
+ case 7678:
+ case 7765:
+ case 8119:
+ case 8248:
+ case 8329:
+ case 8480:
+ case 8636:
+ case 8781:
+ pinyin="QU";
+ break;
+ case 5825:
+ case 6085:
+ case 6710:
+ case 7125:
+ case 7390:
+ case 7816:
+ case 7893:
+ case 8273:
+ case 8360:
+ case 8760:
+ pinyin="QUAN";
+ break;
+ case 6755:
+ case 6758:
+ case 7708:
+ pinyin="QUE";
+ break;
+ case 6950:
+ pinyin="QUN";
+ break;
+ case 6059:
+ case 8237:
+ case 8755:
+ pinyin="RAN";
+ break;
+ case 7692:
+ case 8006:
+ pinyin="RANG";
+ break;
+ case 6073:
+ case 7012:
+ case 7267:
+ pinyin="RAO";
+ break;
+ pinyin="RE";
+ break;
+ case 5680:
+ case 6083:
+ case 6156:
+ case 6631:
+ case 7377:
+ case 7994:
+ case 8137:
+ pinyin="REN";
+ break;
+ pinyin="RENG";
+ break;
+ pinyin="RI";
+ break;
+ case 6541:
+ case 6585:
+ case 7337:
+ case 7532:
+ case 8278:
+ pinyin="RONG";
+ break;
+ case 8459:
+ case 8569:
+ case 8723:
+ pinyin="ROU";
+ break;
+ case 6174:
+ case 6224:
+ case 6473:
+ case 6818:
+ case 6865:
+ case 6906:
+ case 7140:
+ case 7908:
+ case 8164:
+ case 8212:
+ pinyin="RU";
+ break;
+ case 7535:
+ pinyin="RUAN";
+ break;
+ case 6039:
+ case 6208:
+ case 7236:
+ case 7803:
+ case 8224:
+ pinyin="RUI";
+ break;
+ pinyin="RUN";
+ break;
+ case 5728:
+ case 8372:
+ pinyin="RUO";
+ break;
+ case 5606:
+ case 5677:
+ case 7493:
+ case 7559:
+ case 7610:
+ pinyin="SA";
+ break;
+ case 6471:
+ pinyin="SAI";
+ break;
+ case 6644:
+ case 7507:
+ case 8454:
+ pinyin="SAN";
+ break;
+ case 6290:
+ case 7763:
+ case 8210:
+ pinyin="SANG";
+ break;
+ case 6003:
+ case 7150:
+ case 7156:
+ case 7593:
+ case 8094:
+ case 8694:
+ pinyin="SAO";
+ break;
+ pinyin="SE";
+ break;
+ pinyin="SEN";
+ break;
+ pinyin="SENG";
+ break;
+ case 6394:
+ case 7606:
+ case 7901:
+ case 8080:
+ case 8436:
+ case 8614:
+ case 8672:
+ pinyin="SHA";
+ break;
+ case 8507:
+ pinyin="SHAI";
+ break;
+ case 5663:
+ case 5808:
+ case 5923:
+ case 5979:
+ case 6047:
+ case 6890:
+ case 7009:
+ case 7051:
+ case 7083:
+ case 7594:
+ case 7844:
+ case 8062:
+ case 8321:
+ case 8414:
+ case 8539:
+ case 8713:
+ pinyin="SHAN";
+ break;
+ case 5980:
+ case 7120:
+ case 7368:
+ case 7656:
+ case 8592:
+ pinyin="SHANG";
+ break;
+ case 5931:
+ case 6070:
+ case 6891:
+ case 7228:
+ case 8366:
+ case 8425:
+ pinyin="SHAO";
+ break;
+ case 5639:
+ case 5760:
+ case 6606:
+ case 6860:
+ case 7608:
+ case 7820:
+ case 8774:
+ pinyin="SHE";
+ break;
+ case 5837:
+ case 6123:
+ case 6351:
+ case 6841:
+ case 7309:
+ case 7547:
+ case 7982:
+ case 8255:
+ pinyin="SHEN";
+ break;
+ case 6551:
+ case 7441:
+ case 7782:
+ case 8347:
+ pinyin="SHENG";
+ break;
+ case 5854:
+ case 5985:
+ case 6110:
+ case 6173:
+ case 6317:
+ case 7388:
+ case 7459:
+ case 7634:
+ case 7870:
+ case 8307:
+ case 8334:
+ case 8363:
+ case 8525:
+ case 8669:
+ case 8685:
+ pinyin="SHI";
+ break;
+ case 6587:
+ case 7123:
+ case 8428:
+ pinyin="SHOU";
+ break;
+ case 5731:
+ case 5951:
+ case 6136:
+ case 6283:
+ case 6780:
+ case 6888:
+ case 7013:
+ case 7508:
+ case 7582:
+ case 7988:
+ pinyin="SHU";
+ break;
+ case 6407:
+ pinyin="SHUA";
+ break;
+ case 8316:
+ pinyin="SHUAI";
+ break;
+ case 6737:
+ case 6844:
+ pinyin="SHUAN";
+ break;
+ case 7055:
+ pinyin="SHUANG";
+ break;
+ pinyin="SHUI";
+ break;
+ pinyin="SHUN";
+ break;
+ case 6184:
+ case 6287:
+ case 6989:
+ case 7335:
+ case 7869:
+ pinyin="SHUO";
+ break;
+ case 5643:
+ case 5778:
+ case 5944:
+ case 6348:
+ case 6765:
+ case 6784:
+ case 6889:
+ case 7006:
+ case 7065:
+ case 7133:
+ case 7675:
+ case 7940:
+ case 8024:
+ case 8174:
+ case 8247:
+ case 8351:
+ pinyin="SI";
+ break;
+ case 5801:
+ case 6131:
+ case 6534:
+ case 6552:
+ case 6676:
+ case 6704:
+ case 6833:
+ case 8121:
+ pinyin="SONG";
+ break;
+ case 5937:
+ case 6220:
+ case 6418:
+ case 6453:
+ case 6640:
+ case 6849:
+ case 7612:
+ case 7804:
+ case 7943:
+ case 8284:
+ pinyin="SOU";
+ break;
+ case 5777:
+ case 5853:
+ case 6188:
+ case 6428:
+ case 6726:
+ case 6819:
+ case 8389:
+ case 8602:
+ case 8653:
+ pinyin="SU";
+ break;
+ case 6601:
+ pinyin="SUAN";
+ break;
+ case 5839:
+ case 6120:
+ case 6901:
+ case 6968:
+ case 7661:
+ case 7785:
+ case 7801:
+ pinyin="SUI";
+ break;
+ case 6105:
+ case 6588:
+ case 6624:
+ case 7330:
+ case 8632:
+ pinyin="SUN";
+ break;
+ case 6379:
+ case 6434:
+ case 6442:
+ case 7022:
+ case 7288:
+ case 7792:
+ case 8440:
+ pinyin="SUO";
+ break;
+ case 6743:
+ case 6866:
+ case 6961:
+ case 7329:
+ case 7719:
+ case 7872:
+ case 8533:
+ case 8703:
+ pinyin="TA";
+ break;
+ case 5902:
+ case 6223:
+ case 6330:
+ case 7070:
+ case 7536:
+ case 7638:
+ case 7849:
+ case 8544:
+ case 8656:
+ pinyin="TAI";
+ break;
+ case 5916:
+ case 6903:
+ case 7428:
+ case 7694:
+ case 7867:
+ case 7936:
+ case 8191:
+ pinyin="TAN";
+ break;
+ case 5746:
+ case 6491:
+ case 6871:
+ case 7209:
+ case 7344:
+ case 7906:
+ case 7959:
+ case 8177:
+ case 8305:
+ case 8311:
+ case 8442:
+ case 8517:
+ pinyin="TANG";
+ break;
+ case 5627:
+ case 6391:
+ case 6812:
+ case 7226:
+ case 7666:
+ pinyin="TAO";
+ break;
+ pinyin="1845 餐";
+ break;
+ case 6315:
+ case 7693:
+ case 7911:
+ pinyin="TE";
+ break;
+ case 7588:
+ pinyin="TENG";
+ break;
+ case 5735:
+ case 6709:
+ case 6949:
+ case 7130:
+ case 8035:
+ case 8151:
+ case 8514:
+ pinyin="TI";
+ break;
+ case 6261:
+ case 6735:
+ case 6757:
+ case 7369:
+ case 7817:
+ pinyin="TIAN";
+ break;
+ case 5712:
+ case 7686:
+ case 8127:
+ case 8272:
+ case 8352:
+ case 8448:
+ case 8622:
+ case 8670:
+ case 8756:
+ pinyin="TIAO";
+ break;
+ case 6138:
+ case 8749:
+ pinyin="TIE";
+ break;
+ case 6080:
+ case 6167:
+ case 7035:
+ case 7272:
+ case 7890:
+ case 8249:
+ case 8610:
+ pinyin="TING";
+ break;
+ case 5701:
+ case 5758:
+ case 6077:
+ case 6444:
+ case 6690:
+ case 6892:
+ case 7737:
+ pinyin="TONG";
+ break;
+ case 7855:
+ case 7822:
+ case 8727:
+ pinyin="TOU";
+ break;
+ case 6002:
+ case 6117:
+ case 6143:
+ case 7842:
+ case 8509:
+ pinyin="TU";
+ break;
+ case 6250:
+ case 6972:
+ pinyin="TUAN";
+ break;
+ case 7653:
+ pinyin="TUI";
+ break;
+ case 5759:
+ case 6629:
+ case 7453:
+ case 7564:
+ pinyin="TUN";
+ break;
+ case 5617:
+ case 5702:
+ case 5971:
+ case 6653:
+ case 6791:
+ case 7256:
+ case 7262:
+ case 7350:
+ case 7740:
+ case 8374:
+ case 8502:
+ case 8541:
+ case 8630:
+ pinyin="TUO";
+ break;
+ case 5684:
+ case 7020:
+ case 7580:
+ pinyin="WA";
+ break;
+ pinyin="WAI";
+ break;
+ case 5664:
+ case 6025:
+ case 6150:
+ case 7093:
+ case 7126:
+ case 7194:
+ case 7568:
+ case 7821:
+ case 8274:
+ pinyin="WAN";
+ break;
+ case 5672:
+ case 6244:
+ case 6715:
+ case 7394:
+ case 8745:
+ pinyin="WANG";
+ break;
+ case 5743:
+ case 5835:
+ case 5881:
+ case 5883:
+ case 6158:
+ case 6217:
+ case 6488:
+ case 6501:
+ case 6543:
+ case 6545:
+ case 6611:
+ case 6612:
+ case 6739:
+ case 6777:
+ case 6802:
+ case 6822:
+ case 6952:
+ case 7024:
+ case 7166:
+ case 7224:
+ case 7406:
+ case 7631:
+ case 7648:
+ case 8084:
+ case 8426:
+ case 8659:
+ pinyin="WEI";
+ break;
+ case 5656:
+ case 6751:
+ case 6775:
+ case 7223:
+ case 8609:
+ pinyin="WEN";
+ break;
+ case 6178:
+ case 6219:
+ pinyin="WENG";
+ break;
+ case 5733:
+ case 6111:
+ case 6502:
+ case 6855:
+ case 7531:
+ case 7750:
+ case 8627:
+ pinyin="WO";
+ break;
+ case 5603:
+ case 5685:
+ case 5867:
+ case 5889:
+ case 5956:
+ case 6044:
+ case 6377:
+ case 6648:
+ case 6668:
+ case 6672:
+ case 6820:
+ case 6927:
+ case 6935:
+ case 6992:
+ case 7036:
+ case 7080:
+ case 7227:
+ case 7485:
+ case 7641:
+ case 8036:
+ case 8045:
+ case 8077:
+ case 8258:
+ case 8640:
+ case 8789:
+ pinyin="WU";
+ break;
+ case 5750:
+ case 5766:
+ case 5884:
+ case 5913:
+ case 6130:
+ case 6163:
+ case 6191:
+ case 6241:
+ case 6381:
+ case 6567:
+ case 6630:
+ case 6750:
+ case 6827:
+ case 6832:
+ case 6979:
+ case 7050:
+ case 7184:
+ case 7356:
+ case 7456:
+ case 7474:
+ case 7604:
+ case 7668:
+ case 7689:
+ case 7691:
+ case 8010:
+ case 8122:
+ case 8265:
+ case 8303:
+ case 8312:
+ case 8410:
+ case 8424:
+ case 8443:
+ case 8449:
+ case 8466:
+ case 8521:
+ case 8791:
+ pinyin="XI";
+ break;
+ case 6340:
+ case 6582:
+ case 6958:
+ case 7206:
+ case 7252:
+ case 7744:
+ case 8093:
+ case 8333:
+ case 8779:
+ pinyin="XIA";
+ break;
+ case 5794:
+ case 5823:
+ case 6040:
+ case 6118:
+ case 6226:
+ case 6513:
+ case 6593:
+ case 6963:
+ case 7021:
+ case 7515:
+ case 7662:
+ case 7676:
+ case 8034:
+ case 8079:
+ case 8225:
+ case 8358:
+ case 8444:
+ case 8503:
+ case 8548:
+ case 8549:
+ case 8617:
+ pinyin="XIAN";
+ break;
+ case 6028:
+ case 6157:
+ case 6635:
+ case 6652:
+ case 7088:
+ case 7129:
+ case 8313:
+ case 8663:
+ case 8747:
+ pinyin="XIANG";
+ break;
+ case 6356:
+ case 6537:
+ case 6876:
+ case 6948:
+ case 7071:
+ case 7115:
+ case 7241:
+ case 7253:
+ case 8257:
+ case 8367:
+ case 8379:
+ case 8744:
+ pinyin="XIAO";
+ break;
+ case 5741:
+ case 5784:
+ case 5936:
+ case 5938:
+ case 6215:
+ case 6302:
+ case 6619:
+ case 6661:
+ case 6845:
+ case 6912:
+ case 6966:
+ case 7105:
+ case 7151:
+ case 7331:
+ case 7339:
+ case 8583:
+ pinyin="XIE";
+ break;
+ case 5622:
+ case 6016:
+ case 7431:
+ case 7607:
+ case 8646:
+ pinyin="XIN";
+ break;
+ case 5874:
+ case 6084:
+ case 6309:
+ case 6712:
+ case 7742:
+ pinyin="XING";
+ break;
+ case 6026:
+ pinyin="XIONG";
+ break;
+ case 6361:
+ case 6522:
+ case 6642:
+ case 6651:
+ case 6869:
+ case 8028:
+ case 8587:
+ case 8759:
+ pinyin="XIU";
+ break;
+ case 5828:
+ case 5935:
+ case 5955:
+ case 6203:
+ case 6810:
+ case 6851:
+ case 7179:
+ case 7282:
+ case 7667:
+ case 7776:
+ case 8167:
+ case 8458:
+ case 8515:
+ pinyin="XU";
+ break;
+ case 5756:
+ case 5846:
+ case 6170:
+ case 6279:
+ case 6789:
+ case 6854:
+ case 6886:
+ case 7215:
+ case 7324:
+ case 7449:
+ case 7637:
+ case 7651:
+ case 7759:
+ case 7871:
+ case 7964:
+ case 8071:
+ pinyin="XUAN";
+ break;
+ case 5842:
+ case 7720:
+ case 8529:
+ case 8708:
+ pinyin="XUE";
+ break;
+ case 5767:
+ case 5908:
+ case 5987:
+ case 6087:
+ case 6101:
+ case 6206:
+ case 6225:
+ case 6530:
+ case 6563:
+ case 6620:
+ case 6694:
+ case 6813:
+ case 6817:
+ case 7454:
+ case 8131:
+ case 8524:
+ case 8664:
+ pinyin="XUN";
+ break;
+ case 5683:
+ case 5975:
+ case 6275:
+ case 6512:
+ case 6934:
+ case 7011:
+ case 7180:
+ case 7266:
+ case 7518:
+ case 7728:
+ case 7793:
+ case 8073:
+ pinyin="YA";
+ break;
+ case 5641:
+ case 5645:
+ case 5718:
+ case 5740:
+ case 5780:
+ case 5861:
+ case 5917:
+ case 5919:
+ case 6030:
+ case 6146:
+ case 6535:
+ case 6691:
+ case 6738:
+ case 6753:
+ case 6846:
+ case 6857:
+ case 6991:
+ case 7044:
+ case 7192:
+ case 7360:
+ case 7444:
+ case 7557:
+ case 7645:
+ case 7827:
+ case 8359:
+ case 8506:
+ case 8742:
+ case 8748:
+ case 8790:
+ pinyin="YAN";
+ break;
+ case 6564:
+ case 6683:
+ case 7630:
+ case 7640:
+ case 7706:
+ case 8253:
+ case 8717:
+ pinyin="YANG";
+ break;
+ case 5618:
+ case 5619:
+ case 6326:
+ case 6542:
+ case 6570:
+ case 7159:
+ case 7182:
+ case 7235:
+ case 7387:
+ case 7455:
+ case 7540:
+ case 7902:
+ case 8046:
+ case 8126:
+ case 8477:
+ case 8705:
+ pinyin="YAO";
+ break;
+ case 5644:
+ case 5843:
+ case 5894:
+ case 6262:
+ case 7442:
+ case 7639:
+ case 7884:
+ pinyin="YE";
+ break;
+ case 5655:
+ case 5657:
+ case 5670:
+ case 5693:
+ case 5711:
+ case 5817:
+ case 5961:
+ case 5992:
+ case 6018:
+ case 6051:
+ case 6072:
+ case 6218:
+ case 6236:
+ case 6240:
+ case 6258:
+ case 6314:
+ case 6329:
+ case 6355:
+ case 6362:
+ case 6441:
+ case 6470:
+ case 6527:
+ case 6558:
+ case 6602:
+ case 6634:
+ case 6688:
+ case 6689:
+ case 6708:
+ case 6884:
+ case 6938:
+ case 7068:
+ case 7143:
+ case 7376:
+ case 7383:
+ case 7461:
+ case 7629:
+ case 7658:
+ case 7784:
+ case 7838:
+ case 7955:
+ case 7978:
+ case 8074:
+ case 8089:
+ case 8115:
+ case 8120:
+ case 8270:
+ case 8415:
+ case 8464:
+ case 8472:
+ case 8493:
+ case 8780:
+ pinyin="YI";
+ break;
+ case 5623:
+ case 5920:
+ case 5983:
+ case 6007:
+ case 6065:
+ case 6337:
+ case 6419:
+ case 6594:
+ case 6625:
+ case 6806:
+ case 7519:
+ case 7887:
+ case 8111:
+ case 8230:
+ case 8615:
+ case 8624:
+ pinyin="YIN";
+ break;
+ case 5788:
+ case 5911:
+ case 6067:
+ case 6094:
+ case 6126:
+ case 6151:
+ case 6186:
+ case 6292:
+ case 6451:
+ case 6663:
+ case 6862:
+ case 6875:
+ case 6913:
+ case 7188:
+ case 7212:
+ case 7326:
+ case 7584:
+ case 8048:
+ case 8108:
+ case 8203:
+ case 8331:
+ pinyin="YING";
+ break;
+ case 6401:
+ pinyin="YO";
+ break;
+ case 5724:
+ case 5953:
+ case 6013:
+ case 6415:
+ case 6728:
+ case 7163:
+ case 7962:
+ case 8014:
+ case 8711:
+ case 8751:
+ pinyin="YONG";
+ break;
+ case 5653:
+ case 5692:
+ case 5707:
+ case 6112:
+ case 6115:
+ case 6121:
+ case 6347:
+ case 6483:
+ case 6922:
+ case 7254:
+ case 7364:
+ case 7527:
+ case 7880:
+ case 8064:
+ case 8236:
+ case 8242:
+ case 8286:
+ case 8647:
+ case 8778:
+ case 8788:
+ pinyin="YOU";
+ break;
+ case 5614:
+ case 5625:
+ case 5681:
+ case 5722:
+ case 5836:
+ case 5845:
+ case 6139:
+ case 6187:
+ case 6277:
+ case 6484:
+ case 6486:
+ case 6546:
+ case 6592:
+ case 6632:
+ case 6637:
+ case 6655:
+ case 6748:
+ case 6987:
+ case 6993:
+ case 7005:
+ case 7090:
+ case 7204:
+ case 7437:
+ case 7476:
+ case 7573:
+ case 7603:
+ case 7622:
+ case 7647:
+ case 7659:
+ case 7718:
+ case 7858:
+ case 8033:
+ case 8054:
+ case 8085:
+ case 8086:
+ case 8130:
+ case 8133:
+ case 8266:
+ case 8285:
+ case 8336:
+ case 8407:
+ case 8408:
+ case 8607:
+ case 8625:
+ pinyin="YU";
+ break;
+ case 5989:
+ case 6011:
+ case 6282:
+ case 6768:
+ case 7034:
+ case 7205:
+ case 7358:
+ case 7528:
+ case 7783:
+ case 8016:
+ case 8302:
+ case 8378:
+ case 8629:
+ pinyin="YUAN";
+ break;
+ case 5763:
+ case 6914:
+ case 7348:
+ case 7530:
+ case 7865:
+ pinyin="YUE";
+ break;
+ case 5909:
+ case 6031:
+ case 6581:
+ case 6702:
+ case 6719:
+ case 7101:
+ case 7225:
+ case 7370:
+ case 7432:
+ case 7521:
+ case 7657:
+ pinyin="YUN";
+ break;
+ case 6257:
+ case 6338:
+ pinyin="ZA";
+ break;
+ case 6544:
+ case 7162:
+ pinyin="ZAI";
+ break;
+ case 7222:
+ case 7435:
+ case 8402:
+ case 8456:
+ case 8485:
+ case 8641:
+ pinyin="ZAN";
+ break;
+ case 6242:
+ case 7064:
+ case 7416:
+ pinyin="ZANG";
+ break;
+ case 6380:
+ pinyin="ZAO";
+ break;
+ case 5638:
+ case 8369:
+ case 5651:
+ case 6385:
+ case 6493:
+ case 6937:
+ case 7430:
+ case 8348:
+ case 8423:
+ pinyin="ZE";
+ break;
+ pinyin="ZEI";
+ break;
+ case 5858:
+ pinyin="ZEN";
+ break;
+ case 7153:
+ case 7421:
+ case 7832:
+ case 7913:
+ pinyin="ZENG";
+ break;
+ case 6610:
+ case 6274:
+ case 6324:
+ case 6369:
+ case 6378:
+ case 7736:
+ case 8068:
+ case 8238:
+ case 8794:
+ pinyin="ZHA";
+ break;
+ case 7746:
+ case 8109:
+ pinyin="ZHAI";
+ break;
+ case 5862:
+ case 6288:
+ case 7625:
+ pinyin="ZHAN";
+ break;
+ case 5675:
+ case 5921:
+ case 6504:
+ case 6554:
+ case 6615:
+ case 7049:
+ case 7216:
+ case 8315:
+ pinyin="ZHANG";
+ break;
+ case 5815:
+ case 7294:
+ case 7840:
+ case 8341:
+ pinyin="ZHAO";
+ break;
+ case 5856:
+ case 6301:
+ case 7247:
+ case 7392:
+ case 7761:
+ case 8049:
+ case 8162:
+ case 8256:
+ case 8487:
+ pinyin="ZHE";
+ break;
+ case 5958:
+ case 6172:
+ case 6805:
+ case 7139:
+ case 7269:
+ case 7327:
+ case 7384:
+ case 7466:
+ case 7551:
+ case 7562:
+ case 7685:
+ case 7819:
+ case 8001:
+ case 8018:
+ case 8380:
+ pinyin="ZHEN";
+ break;
+ case 5826:
+ case 6531:
+ case 6571:
+ case 7859:
+ case 7903:
+ case 8361:
+ pinyin="ZHENG";
+ break;
+ case 5620:
+ case 5876:
+ case 5904:
+ case 5990:
+ case 6038:
+ case 6293:
+ case 6489:
+ case 6669:
+ case 6973:
+ case 6975:
+ case 7079:
+ case 7246:
+ case 7255:
+ case 7257:
+ case 7268:
+ case 7382:
+ case 7389:
+ case 7462:
+ case 7553:
+ case 7589:
+ case 7677:
+ case 7683:
+ case 7773:
+ case 7984:
+ case 8026:
+ case 8075:
+ case 8246:
+ case 8474:
+ case 8505:
+ case 8537:
+ case 8557:
+ case 8560:
+ case 8584:
+ case 8603:
+ pinyin="ZHI";
+ break;
+ case 5803:
+ case 7981:
+ case 8314:
+ case 8417:
+ case 8564:
+ pinyin="ZHONG";
+ break;
+ case 6107:
+ case 6390:
+ case 7008:
+ case 7091:
+ case 7107:
+ case 7548:
+ case 7756:
+ case 8406:
+ case 8492:
+ pinyin="ZHOU";
+ break;
+ case 5689:
+ case 5710:
+ case 5905:
+ case 6049:
+ case 6079:
+ case 6808:
+ case 6830:
+ case 6883:
+ case 7244:
+ case 7338:
+ case 7345:
+ case 7636:
+ case 7889:
+ case 8070:
+ case 8081:
+ case 8335:
+ case 8371:
+ case 8422:
+ case 8467:
+ case 8578:
+ case 8770:
+ pinyin="ZHU";
+ break;
+ pinyin="ZHUA";
+ break;
+ pinyin="ZHUAI";
+ break;
+ case 6389:
+ case 6645:
+ case 8207:
+ pinyin="ZHUAN";
+ break;
+ case 5755:
+ pinyin="ZHUANG";
+ break;
+ case 6723:
+ case 7077:
+ case 7136:
+ pinyin="ZHUI";
+ break;
+ case 7538:
+ case 8124:
+ pinyin="ZHUN";
+ break;
+ case 5730:
+ case 5834:
+ case 6310:
+ case 6823:
+ case 6835:
+ case 6910:
+ case 7644:
+ case 7690:
+ case 7729:
+ case 7977:
+ pinyin="ZHUO";
+ break;
+ case 5849:
+ case 6549:
+ case 7002:
+ case 7060:
+ case 7127:
+ case 7287:
+ case 7402:
+ case 7463:
+ case 7707:
+ case 7786:
+ case 7937:
+ case 7986:
+ case 8172:
+ case 8342:
+ case 8450:
+ case 8484:
+ case 8594:
+ case 8604:
+ case 8623:
+ case 8686:
+ case 8758:
+ pinyin="ZI";
+ break;
+ case 5744:
+ case 7574:
+ case 8453:
+ pinyin="ZONG";
+ break;
+ case 5833:
+ case 5878:
+ case 5924:
+ case 7067:
+ case 8677:
+ pinyin="ZOU";
+ break;
+ case 5762:
+ case 6147:
+ case 7963:
+ pinyin="ZU";
+ break;
+ case 6312:
+ case 7158:
+ case 8582:
+ pinyin="ZUAN";
+ break;
+ case 6209:
+ pinyin="ZUI";
+ break;
+ case 6304:
+ case 7355:
+ case 8714:
+ pinyin="ZUN";
+ break;
+ case 5872:
+ case 6382:
+ case 6460:
+ case 6684:
+ case 7549:
+ case 7681:
+ pinyin="ZUO";
+ break;
+ default:
+ if(code>=1601 && code<=1602)
+ {
+ pinyin="A";
+ break;
+ }
+ if(code>=1603 && code<=1615)
+ {
+ pinyin="AI";
+ break;
+ }
+ if(code>=1616 && code<=1624)
+ {
+ pinyin="AN";
+ break;
+ }
+ if(code>=1625 && code<=1627)
+ {
+ pinyin="ANG";
+ break;
+ }
+ if(code>=1628 && code<=1636)
+ {
+ pinyin="AO";
+ break;
+ }
+ if(code>=1637 && code<=1654)
+ {
+ pinyin="BA";
+ break;
+ }
+ if(code>=1655 && code<=1662)
+ {
+ pinyin="BAI";
+ break;
+ }
+ if(code>=1663 && code<=1677)
+ {
+ pinyin="BAN";
+ break;
+ }
+ if(code>=1678 && code<=1689)
+ {
+ pinyin="BANG";
+ break;
+ }
+ if(code>=1690 && code<=1712)
+ {
+ pinyin="BAO";
+ break;
+ }
+ if(code>=1713 && code<=1727)
+ {
+ pinyin="BEI";
+ break;
+ }
+ if(code>=1728 && code<=1731)
+ {
+ pinyin="BEN";
+ break;
+ }
+ if(code>=1732 && code<=1737)
+ {
+ pinyin="BENG";
+ break;
+ }
+ if(code>1738 && code<=1761)
+ {
+ pinyin="BI";
+ break;
+ }
+ if(code>=1762 && code<=1773)
+ {
+ pinyin="BIAN";
+ break;
+ }
+ if(code>=1774 && code<=1777)
+ {
+ pinyin="BIAO";
+ break;
+ }
+ if(code>=1778 && code<=1781)
+ {
+ pinyin="BIE";
+ break;
+ }
+ if(code>=1782 && code<=1787)
+ {
+ pinyin="BIN";
+ break;
+ }
+ if(code>=1788 && code<=1794)
+ {
+ pinyin="BING";
+ break;
+ }
+ if(code>=1801 && code<=1802)
+ {
+ pinyin="BING";
+ break;
+ }
+ if(code>=1803 && code<=1821)
+ {
+ pinyin="BO";
+ break;
+ }
+ if(code>=1822 && code<=1832)
+ {
+ pinyin="BU";
+ break;
+ }
+ if(code==1833)
+ {
+ pinyin="CA";
+ break;
+ }
+ if(code>=1834 && code<=1844)
+ {
+ pinyin="CAI";
+ break;
+ }
+ if(code>=1845 && code<=1851)
+ {
+ pinyin="CAN";
+ break;
+ }
+ if(code>=1852 && code<=1856)
+ {
+ pinyin="CANG";
+ break;
+ }
+ if(code>=1857 && code<=1861)
+ {
+ pinyin="CAO";
+ break;
+ }
+ if(code>=1862 && code<=1866)
+ {
+ pinyin="CE";
+ break;
+ }
+ if(code>=1867 && code<=1868)
+ {
+ pinyin="CENG";
+ break;
+ }
+ if(code>=1869 && code<=1879)
+ {
+ pinyin="CHA";
+ break;
+ }
+ if(code>=1880 && code<=1882)
+ {
+ pinyin="CHAI";
+ break;
+ }
+ if(code>=1883 && code<=1892)
+ {
+ pinyin="CHAN";
+ break;
+ }
+ if(code>=1893 && code<=1911)
+ {
+ pinyin="CHANG";
+ break;
+ }
+ if(code>=1912 && code<=1920)
+ {
+ pinyin="CHAO";
+ break;
+ }
+ if(code>=1921 && code<=1926)
+ {
+ pinyin="CHE";
+ break;
+ }
+ if(code>=1927 && code<=1936)
+ {
+ pinyin="CHEN";
+ break;
+ }
+ if(code>=1937 && code<=1951)
+ {
+ pinyin="CHENG";
+ break;
+ }
+ if(code>=1952 && code<=1967)
+ {
+ pinyin="CHI";
+ break;
+ }
+ if(code>=1968 && code<=1972)
+ {
+ pinyin="CHONG";
+ break;
+ }
+ if(code>=1973 && code<=1984)
+ {
+ pinyin="CHOU";
+ break;
+ }
+ if(code>=1985 && code<=2006)
+ {
+ pinyin="CHU";
+ break;
+ }
+ if(code==2007)
+ {
+ pinyin="CHUAI";
+ break;
+ }
+ if(code>=2008 && code<=2014)
+ {
+ pinyin="CHUAN";
+ break;
+ }
+ if(code>=2015 && code<=2020)
+ {
+ pinyin="CHUANG";
+ break;
+ }
+ if(code>=2021 && code<=2025)
+ {
+ pinyin="CHUI";
+ break;
+ }
+ if(code>=2026 && code<=2032)
+ {
+ pinyin="CHUN";
+ break;
+ }
+ if(code>=2033 && code<=2034)
+ {
+ pinyin="CHUO";
+ break;
+ }
+ if(code>=2035 && code<=2046)
+ {
+ pinyin="CI";
+ break;
+ }
+ if(code>=2047 && code<=2052)
+ {
+ pinyin="CONG";
+ break;
+ }
+ if(code>=2054 && code<=2057)
+ {
+ pinyin="CU";
+ break;
+ }
+ if(code>=2058 && code<=2060)
+ {
+ pinyin="CUAN";
+ break;
+ }
+ if(code>=2061 && code<=2068)
+ {
+ pinyin="CUI";
+ break;
+ }
+ if(code>=2069 && code<=2071)
+ {
+ pinyin="CUN";
+ break;
+ }
+ if(code>=2072 && code<=2077)
+ {
+ pinyin="CUO";
+ break;
+ }
+ if(code>=2078 && code<=2083)
+ {
+ pinyin="DA";
+ break;
+ }
+ if(code>=2084 && code<=2094)
+ {
+ pinyin="DAI";
+ break;
+ }
+ if(code>=2102 && code<=2116)
+ {
+ pinyin="DAN";
+ break;
+ }
+ if(code>=2117 && code<=2121)
+ {
+ pinyin="DANG";
+ break;
+ }
+ if(code>=2122 && code<=2133)
+ {
+ pinyin="DAO";
+ break;
+ }
+ if(code>=2134 && code<=2136)
+ {
+ pinyin="DE";
+ break;
+ }
+ if(code>=2137 && code<=2143)
+ {
+ pinyin="DENG";
+ break;
+ }
+ if(code>=2144 && code<=2162)
+ {
+ pinyin="DI";
+ break;
+ }
+ if(code>=2163 && code<=2178)
+ {
+ pinyin="DIAN";
+ break;
+ }
+ if(code>=2179 && code<=2187)
+ {
+ pinyin="DIAO";
+ break;
+ }
+ if(code>=2188 && code<=2194)
+ {
+ pinyin="DIE";
+ break;
+ }
+ if(code>=2201 && code<=2209)
+ {
+ pinyin="DING";
+ break;
+ }
+ if(code==2210)
+ {
+ pinyin="DIU";
+ break;
+ }
+ if(code>=2211 && code<=2220)
+ {
+ pinyin="DONG";
+ break;
+ }
+ if(code>=2221 && code<=2227)
+ {
+ pinyin="DOU";
+ break;
+ }
+ if(code>=2228 && code<=2242)
+ {
+ pinyin="DU";
+ break;
+ }
+ if(code>=2243 && code<=2248)
+ {
+ pinyin="DUAN";
+ break;
+ }
+ if(code>=2249 && code<=2252)
+ {
+ pinyin="DUI";
+ break;
+ }
+ if(code>=2253 && code<=2261)
+ {
+ pinyin="DUN";
+ break;
+ }
+ if(code>=2262 && code<=2273)
+ {
+ pinyin="DUO";
+ break;
+ }
+ if(code>=2274 && code<=2286)
+ {
+ pinyin="E";
+ break;
+ }
+ if(code==2287)
+ {
+ pinyin="EN";
+ break;
+ }
+ if(code>=2288 && code<=2231)
+ {
+ pinyin="ER";
+ break;
+ }
+ if(code>=2302 && code<=2309)
+ {
+ pinyin="FA";
+ break;
+ }
+ if(code>=2310 && code<=2326)
+ {
+ pinyin="FAN";
+ break;
+ }
+ if(code>=2327 && code<=2337)
+ {
+ pinyin="FANG";
+ break;
+ }
+ if(code>=2338 && code<=2349)
+ {
+ pinyin="FEI";
+ break;
+ }
+ if(code>=2350 && code<=2364)
+ {
+ pinyin="FEN";
+ break;
+ }
+ if(code>=2365 && code<=2379)
+ {
+ pinyin="FENG";
+ break;
+ }
+ if(code==2380)
+ {
+ pinyin="FO";
+ break;
+ }
+ if(code==2381)
+ {
+ pinyin="FOU";
+ break;
+ }
+ if(code>=2382 && code<=2432)
+ {
+ pinyin="FU";
+ break;
+ }
+ if(code>=2435 && code<=2440)
+ {
+ pinyin="GAI";
+ break;
+ }
+ if(code>=2441 && code<=2451)
+ {
+ pinyin="GAN";
+ break;
+ }
+ if(code>=2452 && code<=2460)
+ {
+ pinyin="GANG";
+ break;
+ }
+ if(code>=2461 && code<=2470)
+ {
+ pinyin="GAO";
+ break;
+ }
+ if(code>=2471 && code<=2487)
+ {
+ pinyin="GE";
+ break;
+ }
+ if(code==2488)
+ {
+ pinyin="GEI";
+ break;
+ }
+ if(code>=2489 && code<=2490)
+ {
+ pinyin="GEN";
+ break;
+ }
+ if(code>=2491 && code<=2503)
+ {
+ pinyin="GENG";
+ break;
+ }
+ if(code>=2504 && code<=2518)
+ {
+ pinyin="GONG";
+ break;
+ }
+ if(code>=2519 && code<=2527)
+ {
+ pinyin="GOU";
+ break;
+ }
+ if(code>=2528 && code<=2545)
+ {
+ pinyin="GU";
+ break;
+ }
+ if(code>=2546 && code<=2551)
+ {
+ pinyin="GUA";
+ break;
+ }
+ if(code>=2552 && code<=2554)
+ {
+ pinyin="GUAI";
+ break;
+ }
+ if(code>=2555 && code<=2565)
+ {
+ pinyin="GUAN";
+ break;
+ }
+ if(code>=2566 && code<=2568)
+ {
+ pinyin="GUANG";
+ break;
+ }
+ if(code>=2569 && code<=2584)
+ {
+ pinyin="GUI";
+ break;
+ }
+ if(code>=2585 && code<=2587)
+ {
+ pinyin="GUN";
+ break;
+ }
+ if(code>=2588 && code<=2593)
+ {
+ pinyin="GUO";
+ break;
+ }
+ if(code==2594)
+ {
+ pinyin="HA";
+ break;
+ }
+ if(code>=2601 && code<=2607)
+ {
+ pinyin="HAI";
+ break;
+ }
+ if(code>=2608 && code<=2626)
+ {
+ pinyin="HAN";
+ break;
+ }
+ if(code>=2627 && code<=2629)
+ {
+ pinyin="HANG";
+ break;
+ }
+ if(code>=2630 && code<=2638)
+ {
+ pinyin="HAO";
+ break;
+ }
+ if(code>=2639 && code<=2656)
+ {
+ pinyin="HE";
+ break;
+ }
+ if(code>=2657 && code<=2658)
+ {
+ pinyin="HEI";
+ break;
+ }
+ if(code>=2659 && code<=2662)
+ {
+ pinyin="HEN";
+ break;
+ }
+ if(code>=2663 && code<=2667)
+ {
+ pinyin="HENG";
+ break;
+ }
+ if(code>=2668 && code<=2676)
+ {
+ pinyin="HONG";
+ break;
+ }
+ if(code>=2677 && code<=2683)
+ {
+ pinyin="HOU";
+ break;
+ }
+ if(code>=2684 && code<=2707)
+ {
+ pinyin="HU";
+ break;
+ }
+ if(code>=2708 && code<=2716)
+ {
+ pinyin="HUA";
+ break;
+ }
+ if(code>=2717 && code<=2721)
+ {
+ pinyin="HUAI";
+ break;
+ }
+ if(code>=2722 && code<=2735)
+ {
+ pinyin="HUAN";
+ break;
+ }
+ if(code>=2736 && code<=2749)
+ {
+ pinyin="HUANG";
+ break;
+ }
+ if(code>=2750 && code<=2770)
+ {
+ pinyin="HUI";
+ break;
+ }
+ if(code>=2771 && code<=2776)
+ {
+ pinyin="HUN";
+ break;
+ }
+ if(code>=2777 && code<=2786)
+ {
+ pinyin="HUO";
+ break;
+ }
+ if(code>=2787 && code<=2845)
+ {
+ pinyin="JI";
+ break;
+ }
+ if(code>=2846 && code<=2862)
+ {
+ pinyin="JIA";
+ break;
+ }
+ if(code>=2863 && code<=2908)
+ {
+ pinyin="JIAN";
+ break;
+ }
+ if(code>=2909 && code<=2921)
+ {
+ pinyin="JIANG";
+ break;
+ }
+ if(code>=2922 && code<=2949)
+ {
+ pinyin="JIAO";
+ break;
+ }
+ if(code>=2950 && code<=2976)
+ {
+ pinyin="JIE";
+ break;
+ }
+ if(code>=2977 && code<=3002)
+ {
+ pinyin="JIN";
+ break;
+ }
+ if(code>=3003 && code<=3027)
+ {
+ pinyin="JING";
+ break;
+ }
+ if(code>=3028 && code<=3029)
+ {
+ pinyin="JIONG";
+ break;
+ }
+ if(code>=3030 && code<=3046)
+ {
+ pinyin="JIU";
+ break;
+ }
+ if(code>=3047 && code<=3071)
+ {
+ pinyin="JU";
+ break;
+ }
+ if(code>=3072 && code<=3078)
+ {
+ pinyin="JUAN";
+ break;
+ }
+ if(code>=3079 && code<=3088)
+ {
+ pinyin="JUE";
+ break;
+ }
+ if(code>=3089 && code<=3105)
+ {
+ pinyin="JUN";
+ break;
+ }
+ if(code>=3106 && code<=3109)
+ {
+ pinyin="KA";
+ break;
+ }
+ if(code>=3110 && code<=3114)
+ {
+ pinyin="KAI";
+ break;
+ }
+ if(code>=3115 && code<=3120)
+ {
+ pinyin="KAN";
+ break;
+ }
+ if(code>=3121 && code<=3127)
+ {
+ pinyin="KANG";
+ break;
+ }
+ if(code>=3128 && code<=3131)
+ {
+ pinyin="KAO";
+ break;
+ }
+ if(code>=3132 && code<=3146)
+ {
+ pinyin="KE";
+ break;
+ }
+ if(code>=3147 && code<=3150)
+ {
+ pinyin="KEN";
+ break;
+ }
+ if(code>=3151 && code<=3152)
+ {
+ pinyin="KENG";
+ break;
+ }
+ if(code>=3153 && code<=3156)
+ {
+ pinyin="KONG";
+ break;
+ }
+ if(code>=3157 && code<=3160)
+ {
+ pinyin="KOU";
+ break;
+ }
+ if(code>=3161 && code<=3167)
+ {
+ pinyin="KU";
+ break;
+ }
+ if(code>=3168 && code<=3172)
+ {
+ pinyin="KUA";
+ break;
+ }
+ if(code>=3173 && code<=3176)
+ {
+ pinyin="KUAI";
+ break;
+ }
+ if(code>=3177 && code<=3178)
+ {
+ pinyin="KUAN";
+ break;
+ }
+ if(code>=3179 && code<=3186)
+ {
+ pinyin="KUANG";
+ break;
+ }
+ if(code>=3187 && code<=3203)
+ {
+ pinyin="KUI";
+ break;
+ }
+ if(code>=3204 && code<=3207)
+ {
+ pinyin="KUN";
+ break;
+ }
+ if(code>=3208 && code<=3211)
+ {
+ pinyin="KUO";
+ break;
+ }
+ if(code>=3212 && code<=3218)
+ {
+ pinyin="LA";
+ break;
+ }
+ if(code>=3219 && code<=3221)
+ {
+ pinyin="LAI";
+ break;
+ }
+ if(code>=3222 && code<=3236)
+ {
+ pinyin="LAN";
+ break;
+ }
+ if(code>=3237 && code<=3243)
+ {
+ pinyin="LANG";
+ break;
+ }
+ if(code>=3244 && code<=3252)
+ {
+ pinyin="LAO";
+ break;
+ }
+ if(code>=3253 && code<=3254)
+ {
+ pinyin="LE";
+ break;
+ }
+ if(code>=3255 && code<=3265)
+ {
+ pinyin="LEI";
+ break;
+ }
+ if(code>=3266 && code<=3268)
+ {
+ pinyin="LENG";
+ break;
+ }
+ if(code>=3269 && code<=3308)
+ {
+ pinyin="LI";
+ }
+ if(code==3309)
+ {
+ pinyin="LIA";
+ break;
+ }
+ if(code>=3310 && code<=3323)
+ {
+ pinyin="LIAN";
+ break;
+ }
+ if(code>=3324 && code<=3334)
+ {
+ pinyin="LIANG";
+ break;
+ }
+ if(code>=3335 && code<=3347)
+ {
+ pinyin="LIAO";
+ break;
+ }
+ if(code>=3348 && code<=3352)
+ {
+ pinyin="LIE";
+ break;
+ }
+ if(code>=3353 && code<=3363)
+ {
+ pinyin="LIN";
+ break;
+ }
+ if(code>=3364 && code<=3378)
+ {
+ pinyin="LING";
+ break;
+ }
+ if(code>=3379 && code<=3389)
+ {
+ pinyin="LIU";
+ break;
+ }
+ if(code>=3390 && code<=3404)
+ {
+ pinyin="LONG";
+ break;
+ }
+ if(code>=3405 && code<=3410)
+ {
+ pinyin="LOU";
+ break;
+ }
+ if(code>=3411 && code<=3444)
+ {
+ pinyin="LU";
+ break;
+ }
+ if(code>=3445 && code<=3450)
+ {
+ pinyin="LUAN";
+ break;
+ }
+ if(code>=3451 && code<=3452)
+ {
+ pinyin="LUE";
+ break;
+ }
+ if(code>=3453 && code<=3459)
+ {
+ pinyin="LUN";
+ break;
+ }
+ if(code>=3460 && code<=3471)
+ {
+ pinyin="LUO";
+ break;
+ }
+ if(code>=3472 && code<=3480)
+ {
+ pinyin="MA";
+ break;
+ }
+ if(code>=3481 && code<=3486)
+ {
+ pinyin="MAI";
+ break;
+ }
+ if(code>=3487 && code<=3501)
+ {
+ pinyin="MAN";
+ break;
+ }
+ if(code>=3502 && code<=3507)
+ {
+ pinyin="MANG";
+ break;
+ }
+ if(code>=3508 && code<=3519)
+ {
+ pinyin="MAO";
+ break;
+ }
+ if(code==3520)
+ {
+ pinyin="ME";
+ break;
+ }
+ if(code>=3521 && code<=3536)
+ {
+ pinyin="MEI";
+ break;
+ }
+ if(code>=3537 && code<=3539)
+ {
+ pinyin="MEN";
+ break;
+ }
+ if(code>=3540 && code<=3547)
+ {
+ pinyin="MENG";
+ break;
+ }
+ if(code>=3548 && code<=3561)
+ {
+ pinyin="MI";
+ }
+ if(code>=3562 && code<=3570)
+ {
+ pinyin="MIAN";
+ break;
+ }
+ if(code>=3571 && code<=3578)
+ {
+ pinyin="MIAO";
+ break;
+ }
+ if(code>=3579 && code<=3580)
+ {
+ pinyin="MIE";
+ break;
+ }
+ if(code>=3581 && code<=3586)
+ {
+ pinyin="MIN";
+ break;
+ }
+ if(code>=3587 && code<=3592)
+ {
+ pinyin="MING";
+ break;
+ }
+ if(code==3593)
+ {
+ pinyin="MIU";
+ break;
+ }
+ if(code>=3594 && code<=3616)
+ {
+ pinyin="MO";
+ break;
+ }
+ if(code>=3617 && code<=3619)
+ {
+ pinyin="MOU";
+ break;
+ }
+ if(code>=3620 && code<=3634)
+ {
+ pinyin="MU";
+ break;
+ }
+ if(code>=3635 && code<=3641)
+ {
+ pinyin="NA";
+ break;
+ }
+ if(code>=3642 && code<=3646)
+ {
+ pinyin="NAI";
+ break;
+ }
+ if(code>=3647 && code<=3649)
+ {
+ pinyin="NAN";
+ break;
+ }
+ if(code==3650)
+ {
+ pinyin="NANG";
+ break;
+ }
+ if(code>=3651 && code<=3655)
+ {
+ pinyin="NAO";
+ break;
+ }
+ if(code==3656)
+ {
+ pinyin="NE";
+ break;
+ }
+ if(code>=3657 && code<=3658)
+ {
+ pinyin="NEI";
+ break;
+ }
+ if(code==3659)
+ {
+ pinyin="NEN";
+ break;
+ }
+ if(code==3660)
+ {
+ pinyin="NENG";
+ break;
+ }
+ if(code>=3661 && code<=3671)
+ {
+ pinyin="NI";
+ break;
+ }
+ if(code>=3672 && code<=3678)
+ {
+ pinyin="NIAN";
+ break;
+ }
+ if(code>=3679 && code<=3680)
+ {
+ pinyin="NIANG";
+ break;
+ }
+ if(code>=3681 && code<=3682)
+ {
+ pinyin="NIAO";
+ break;
+ }
+ if(code>=3683 && code<=3689)
+ {
+ pinyin="NIE";
+ break;
+ }
+ if(code==3690)
+ {
+ pinyin="NIN";
+ break;
+ }
+ if(code>=3691 && code<=3702)
+ {
+ pinyin="NING";
+ break;
+ }
+ if(code>=3703 && code<=3706)
+ {
+ pinyin="NIU";
+ break;
+ }
+ if(code>=3707 && code<=3710)
+ {
+ pinyin="NONG";
+ break;
+ }
+ if(code>=3711 && code<=3714)
+ {
+ pinyin="NU";
+ break;
+ }
+ if(code==3715)
+ {
+ pinyin="NUAN";
+ break;
+ }
+ if(code>=3716 && code<=3717)
+ {
+ pinyin="NUE";
+ break;
+ }
+ if(code>=3718 && code<=3721)
+ {
+ pinyin="NUO";
+ break;
+ }
+ if(code==3722)
+ {
+ pinyin="O";
+ break;
+ }
+ if(code>=3723 && code<=3729)
+ {
+ pinyin="OU";
+ break;
+ }
+ if(code>=3730 && code<=3735)
+ {
+ pinyin="PA";
+ break;
+ }
+ if(code>=3736 && code<=3741)
+ {
+ pinyin="PAI";
+ break;
+ }
+ if(code>=3742 && code<=3749)
+ {
+ pinyin="PAN";
+ break;
+ }
+ if(code>=3750 && code<=3754)
+ {
+ pinyin="PANG";
+ break;
+ }
+ if(code>=3755 && code<=3761)
+ {
+ pinyin="PAO";
+ break;
+ }
+ if(code>=3762 && code<=3770)
+ {
+ pinyin="PEI";
+ break;
+ }
+ if(code>=3771 && code<=3772)
+ {
+ pinyin="PEN";
+ break;
+ }
+ if(code>=3773 && code<=3786)
+ {
+ pinyin="PENG";
+ break;
+ }
+ if(code>=3787 && code<=3809)
+ {
+ pinyin="PI";
+ break;
+ }
+ if(code>=3810 && code<=3813)
+ {
+ pinyin="PIAN";
+ break;
+ }
+ if(code>=3814 && code<=3817)
+ {
+ pinyin="PIAO";
+ break;
+ }
+ if(code>=3818 && code<=3819)
+ {
+ pinyin="PIE";
+ break;
+ }
+ if(code>=3820 && code<=3824)
+ {
+ pinyin="PIN";
+ break;
+ }
+ if(code>=3825 && code<=3833)
+ {
+ pinyin="PING";
+ break;
+ }
+ if(code>=3834 && code<=3841)
+ {
+ pinyin="PO";
+ break;
+ }
+ if(code==3842)
+ {
+ pinyin="POU";
+ break;
+ }
+ if(code>=3843 && code<=3857)
+ {
+ pinyin="PU";
+ break;
+ }
+ if(code>=3858 && code<=3893)
+ {
+ pinyin="QI";
+ break;
+ }
+ if(code==3894 || (code>=3901 && code<=3902))
+ {
+ pinyin="QIA";
+ break;
+ }
+ if(code>=3903 && code<=3924)
+ {
+ pinyin="QIAN";
+ break;
+ }
+ if(code>=3925 && code<=3932)
+ {
+ pinyin="QIANG";
+ break;
+ }
+ if(code>=3933 && code<=3947)
+ {
+ pinyin="QIAO";
+ break;
+ }
+ if(code>=3948 && code<=3952)
+ {
+ pinyin="QIE";
+ break;
+ }
+ if(code>=3953 && code<=3963)
+ {
+ pinyin="QIN";
+ break;
+ }
+ if(code>=3964 && code<=3976)
+ {
+ pinyin="QING";
+ break;
+ }
+ if(code>=3977 && code<=3978)
+ {
+ pinyin="QIONG";
+ break;
+ }
+ if(code>=3979 && code<=3986)
+ {
+ pinyin="QIU";
+ break;
+ }
+ if(code>=3987 && code<=4005)
+ {
+ pinyin="QU";
+ break;
+ }
+ if(code>=4006 && code<=4016)
+ {
+ pinyin="QUAN";
+ break;
+ }
+ if(code>=4017 && code<=4024)
+ {
+ pinyin="QUE";
+ break;
+ }
+ if(code>=4025 && code<=4026)
+ {
+ pinyin="QUN";
+ break;
+ }
+ if(code>=4027 && code<=4030)
+ {
+ pinyin="RAN";
+ break;
+ }
+ if(code>=4031 && code<=4035)
+ {
+ pinyin="RANG";
+ }
+ if(code>=4036 && code<=4038)
+ {
+ pinyin="RAO";
+ break;
+ }
+ if(code>=4039 && code<=4040)
+ {
+ pinyin="RE";
+ break;
+ }
+ if(code>=4041 && code<=4050)
+ {
+ pinyin="REN";
+ break;
+ }
+ if(code>=4051 && code<=4052)
+ {
+ pinyin="RENG";
+ break;
+ }
+ if(code==4053)
+ {
+ pinyin="RI";
+ break;
+ }
+ if(code>=4054 && code<=4063)
+ {
+ pinyin="RONG";
+ break;
+ }
+ if(code>=4064 && code<=4066)
+ {
+ pinyin="ROU";
+ break;
+ }
+ if(code>=4067 && code<=4076)
+ {
+ pinyin="RU";
+ break;
+ }
+ if(code>=4077 && code<=4078)
+ {
+ pinyin="RUAN";
+ break;
+ }
+ if(code>=4079 && code<=4081)
+ {
+ pinyin="RUI";
+ break;
+ }
+ if(code>=4082 && code<=4083)
+ {
+ pinyin="RUN";
+ break;
+ }
+ if(code>=4084 && code<=4085)
+ {
+ pinyin="RUO";
+ break;
+ }
+ if(code>=4086 && code<=4088)
+ {
+ pinyin="SA";
+ break;
+ }
+ if(code>=4089 && code<=4092)
+ {
+ pinyin="SAI";
+ break;
+ }
+ if(code>=4093 && code<=4094)
+ {
+ pinyin="SAN";
+ break;
+ }
+ if(code>=4101 && code<=4102)
+ {
+ pinyin="SAN";
+ break;
+ }
+ if(code>=4103 && code<=4105)
+ {
+ pinyin="SANG";
+ break;
+ }
+ if(code>=4106 && code<=4109)
+ {
+ pinyin="SAO";
+ break;
+ }
+ if(code>=4110 && code<=4112)
+ {
+ pinyin="SE";
+ break;
+ }
+ if(code==4113)
+ {
+ pinyin="SEN";
+ }
+ if(code==4114)
+ {
+ pinyin="SENG";
+ break;
+ }
+ if(code>=4115 && code<=4123)
+ {
+ pinyin="SHA";
+ break;
+ }
+ if(code>=4124 && code<=4125)
+ {
+ pinyin="SHAI";
+ break;
+ }
+ if(code>=4126 && code<=4141)
+ {
+ pinyin="SHAN";
+ break;
+ }
+ if(code>=4142 && code<=4149)
+ {
+ pinyin="SHANG";
+ break;
+ }
+ if(code>=4150 && code<=4160)
+ {
+ pinyin="SHAO";
+ break;
+ }
+ if(code>=4161 && code<=4172)
+ {
+ pinyin="SHE";
+ break;
+ }
+ if(code>=4173 && code<=4188)
+ {
+ pinyin="SHEN";
+ break;
+ }
+ if(code>=4189 && code<=4205)
+ {
+ pinyin="SHENG";
+ break;
+ }
+ if(code>=4206 && code<=4252)
+ {
+ pinyin="SHI";
+ break;
+ }
+ if(code>=4253 && code<=4262)
+ {
+ pinyin="SHOU";
+ break;
+ }
+ if(code>=4263 && code<=4301)
+ {
+ pinyin="SHU";
+ break;
+ }
+ if(code>=4302 && code<=4303)
+ {
+ pinyin="SHUA";
+ break;
+ }
+ if(code>=4304 && code<=4307)
+ {
+ pinyin="SHUAI";
+ break;
+ }
+ if(code>=4308 && code<=4309)
+ {
+ pinyin="SHUAN";
+ break;
+ }
+ if(code>=4310 && code<=4312)
+ {
+ pinyin="SHUANG";
+ break;
+ }
+ if(code>=4313 && code<=4316)
+ {
+ pinyin="SHUI";
+ break;
+ }
+ if(code>=4317 && code<=4320)
+ {
+ pinyin="SHUN";
+ break;
+ }
+ if(code>=4321 && code<=4324)
+ {
+ pinyin="SHUO";
+ break;
+ }
+ if(code>=4325 && code<=4340)
+ {
+ pinyin="SI";
+ break;
+ }
+ if(code>=4341 && code<=4348)
+ {
+ pinyin="SONG";
+ break;
+ }
+ if(code>=4349 && code<=4352)
+ {
+ pinyin="SOU";
+ break;
+ }
+ if(code>=4353 && code<=4364)
+ {
+ pinyin="SU";
+ break;
+ }
+ if(code>=4365 && code<=4367)
+ {
+ pinyin="SUAN";
+ break;
+ }
+ if(code>=4368 && code<=4378)
+ {
+ pinyin="SUI";
+ break;
+ }
+ if(code>=4379 && code<=4381)
+ {
+ pinyin="SUN";
+ break;
+ }
+ if(code>=4382 && code<=4389)
+ {
+ pinyin="SUO";
+ break;
+ }
+ if(code>=4390 && code<=4404)
+ {
+ pinyin="TA";
+ break;
+ }
+ if(code>=4405 && code<=4413)
+ {
+ pinyin="TAI";
+ break;
+ }
+ if(code>=4414 && code<=4431)
+ {
+ pinyin="TAN";
+ break;
+ }
+ if(code>=4432 && code<=4444)
+ {
+ pinyin="TANG";
+ break;
+ }
+ if(code>=4445 && code<=4455)
+ {
+ pinyin="TAO";
+ break;
+ }
+ if(code==4456)
+ {
+ pinyin="TE";
+ break;
+ }
+ if(code>=4457 && code<=4460)
+ {
+ pinyin="TENG";
+ break;
+ }
+ if(code>=4461 && code<=4475)
+ {
+ pinyin="TI";
+ break;
+ }
+ if(code>=4476 && code<=4483)
+ {
+ pinyin="TIAN";
+ break;
+ }
+ if(code>=4484 && code<=4488)
+ {
+ pinyin="TIAO";
+ break;
+ }
+ if(code>=4489 && code<=4491)
+ {
+ pinyin="TIE";
+ break;
+ }
+ if(code>=4492 && code<=4507)
+ {
+ pinyin="TING";
+ break;
+ }
+ if(code>=4508 && code<=4520)
+ {
+ pinyin="TONG";
+ break;
+ }
+ if(code>=4521 && code<=4524)
+ {
+ pinyin="TOU";
+ break;
+ }
+ if(code>=4525 && code<=4535)
+ {
+ pinyin="TU";
+ break;
+ }
+ if(code>=4536 && code<=4537)
+ {
+ pinyin="TUAN";
+ break;
+ }
+ if(code>=4538 && code<=4543)
+ {
+ pinyin="TUI";
+ break;
+ }
+ if(code>=4544 && code<=4546)
+ {
+ pinyin="TUN";
+ break;
+ }
+ if(code>=4547 && code<=4557)
+ {
+ pinyin="TUO";
+ break;
+ }
+ if(code>=4558 && code<=4564)
+ {
+ pinyin="WA";
+ break;
+ }
+ if(code>=4565 && code<=4566)
+ {
+ pinyin="WAI";
+ break;
+ }
+ if(code>=4567 && code<=4583)
+ {
+ pinyin="WAN";
+ break;
+ }
+ if(code>=4584 && code<=4593)
+ {
+ pinyin="WANG";
+ break;
+ }
+ if(code>=4594 && code<=4632)
+ {
+ pinyin="WEI";
+ break;
+ }
+ if(code>=4633 && code<=4642)
+ {
+ pinyin="WEN";
+ break;
+ }
+ if(code>=4643 && code<=4645)
+ {
+ pinyin="WENG";
+ break;
+ }
+ if(code>=4646 && code<=4654)
+ {
+ pinyin="WO";
+ break;
+ }
+ if(code>=4655 && code<=4683)
+ {
+ pinyin="WU";
+ break;
+ }
+ if(code>=4684 && code<=4724)
+ {
+ pinyin="XI";
+ break;
+ }
+ if(code>=4725 && code<=4737)
+ {
+ pinyin="XIA";
+ break;
+ }
+ if(code>=4738 && code<=4763)
+ {
+ pinyin="XIAN";
+ break;
+ }
+ if(code>=4764 && code<=4783)
+ {
+ pinyin="XIANG";
+ break;
+ }
+ if(code>=4784 && code<=4807)
+ {
+ pinyin="XIAO";
+ break;
+ }
+ if(code>=4809 && code<=4828)
+ {
+ pinyin="XIE";
+ break;
+ }
+ if(code>=4829 && code<=4838)
+ {
+ pinyin="XIN";
+ break;
+ }
+ if(code>=4839 && code<=4853)
+ {
+ pinyin="XING";
+ break;
+ }
+ if(code>=4854 && code<=4860)
+ {
+ pinyin="XIONG";
+ break;
+ }
+ if(code>=4861 && code<=4869)
+ {
+ pinyin="XIU";
+ break;
+ }
+ if(code>=4870 && code<=4888)
+ {
+ pinyin="XU";
+ break;
+ }
+ if(code>=4889 && code<=4904)
+ {
+ pinyin="XUAN";
+ break;
+ }
+ if(code>=4905 && code<=4910)
+ {
+ pinyin="XUE";
+ break;
+ }
+ if(code>=4911 && code<=4924)
+ {
+ pinyin="XUN";
+ break;
+ }
+ if(code>=4925 && code<=4940)
+ {
+ pinyin="YA";
+ break;
+ }
+ if(code>=4941 && code<=4973)
+ {
+ pinyin="YAN";
+ break;
+ }
+ if(code>=4974 && code<=4990)
+ {
+ pinyin="YANG";
+ break;
+ }
+ if(code>=4991 && code<=5011)
+ {
+ pinyin="YAO";
+ break;
+ }
+ if(code>=5012 && code<=5026)
+ {
+ pinyin="YE";
+ break;
+ }
+ if(code>=5027 && code<=5079)
+ {
+ pinyin="YI";
+ break;
+ }
+ if(code>=5080 && code<=5101)
+ {
+ pinyin="YIN";
+ break;
+ }
+ if(code>=5102 && code<=5119)
+ {
+ pinyin="YING";
+ break;
+ }
+ if(code==5120)
+ {
+ pinyin="YO";
+ break;
+ }
+ if(code>=5121 && code<=5135)
+ {
+ pinyin="YONG";
+ break;
+ }
+ if(code>=5136 && code<=5155)
+ {
+ pinyin="YOU";
+ break;
+ }
+ if(code>=5156 && code<=5206)
+ {
+ pinyin="YU";
+ break;
+ }
+ if(code>=5207 && code<=5226)
+ {
+ pinyin="YUAN";
+ break;
+ }
+ if(code>=5227 && code<=5236)
+ {
+ pinyin="YUE";
+ break;
+ }
+ if(code>=5237 && code<=5248)
+ {
+ pinyin="YUN";
+ break;
+ }
+ if(code>=5249 && code<=5251)
+ {
+ pinyin="ZA";
+ break;
+ }
+ if(code>=5252 && code<=5258)
+ {
+ pinyin="ZAI";
+ break;
+ }
+ if(code>=5259 && code<=5262)
+ {
+ pinyin="ZAN";
+ break;
+ }
+ if(code>=5263 && code<=5265)
+ {
+ pinyin="ZANG";
+ break;
+ }
+ if(code>=5266 && code<=5279)
+ {
+ pinyin="ZAO";
+ break;
+ }
+ if(code>=5280 && code<=5283)
+ {
+ pinyin="ZE";
+ break;
+ }
+ if(code==5284)
+ {
+ pinyin="ZEI";
+ break;
+ }
+ if(code==5285)
+ {
+ pinyin="ZEN";
+ break;
+ }
+ if(code>=5286 && code<=5289)
+ {
+ pinyin="ZENG";
+ break;
+ }
+ if(code>=5290 && code<=5309)
+ {
+ pinyin="ZHA";
+ break;
+ }
+ if(code>=5310 && code<=5315)
+ {
+ pinyin="ZHAI";
+ break;
+ }
+ if(code>=5316 && code<=5332)
+ {
+ pinyin="ZHAN";
+ break;
+ }
+ if(code>=5333 && code<=5347)
+ {
+ pinyin="ZHANG";
+ break;
+ }
+ if(code>=5348 && code<=5357)
+ {
+ pinyin="ZHAO";
+ break;
+ }
+ if(code>=5358 && code<=5367)
+ {
+ pinyin="ZHE";
+ break;
+ }
+ if(code>=5368 && code<=5383)
+ {
+ pinyin="ZHEN";
+ break;
+ }
+ if(code>=5384 && code<=5404)
+ {
+ pinyin="ZHENG";
+ break;
+ }
+ if(code>=5405 && code<=5447)
+ {
+ pinyin="ZHI";
+ break;
+ }
+ if(code>=5448 && code<=5458)
+ {
+ pinyin="ZHONG";
+ break;
+ }
+ if(code>=5459 && code<=5472)
+ {
+ pinyin="ZHOU";
+ break;
+ }
+ if(code>=5473 && code<=5504)
+ {
+ pinyin="ZHU";
+ break;
+ }
+ if(code>=5505 && code<=5506)
+ {
+ pinyin="ZHUA";
+ break;
+ }
+ if(code==5507)
+ {
+ pinyin="ZHUAI";
+ break;
+ }
+ if(code>=5508 && code<=5513)
+ {
+ pinyin="ZHUAN";
+ break;
+ }
+ if(code>=5514 && code<=5520)
+ {
+ pinyin="ZHUANG";
+ break;
+ }
+ if(code>=5521 && code<=5526)
+ {
+ pinyin="ZHUI";
+ break;
+ }
+ if(code>=5527 && code<=5528)
+ {
+ pinyin="ZHUN";
+ break;
+ }
+ if(code>=5529 && code<=5539)
+ {
+ pinyin="ZHUO";
+ break;
+ }
+ if(code>=5540 && code<=5554)
+ {
+ pinyin="ZI";
+ break;
+ }
+ if(code>=5555 && code<=5561)
+ {
+ pinyin="ZONG";
+ break;
+ }
+ if(code>=5562 && code<=5565)
+ {
+ pinyin="ZOU";
+ break;
+ }
+ if(code>=5566 && code<=5573)
+ {
+ pinyin="ZU";
+ break;
+ }
+ if(code>=5574 && code<=5575)
+ {
+ pinyin="ZUAN";
+ break;
+ }
+ if(code>=5576 && code<=5579)
+ {
+ pinyin="ZUI";
+ break;
+ }
+ if(code>=5580 && code<=5581)
+ {
+ pinyin="ZUN";
+ break;
+ }
+ if(code>=5582 && code<=5589)
+ {
+ pinyin="ZUO";
+ break;
+ }
+ }
+ if (pinyin.isEmpty())
+ {
+ pinyin="";
+ }
+ return pinyin;
+}
+
diff --git a/src/BackProcess/Interface/ukui_chineseletter.h b/src/Interface/ukuichineseletter.h
similarity index 96%
rename from src/BackProcess/Interface/ukui_chineseletter.h
rename to src/Interface/ukuichineseletter.h
index c1da729..749025c 100644
--- a/src/BackProcess/Interface/ukui_chineseletter.h
+++ b/src/Interface/ukuichineseletter.h
@@ -41,7 +41,7 @@ public:
static QString getPinyin(int code);
// 获取所有汉字的汉语拼音
- static QString getPinyins(const QString &text);
+ static QString getPinyins(const QString& text);
};
#endif // UKUICHINESELETTER_H
diff --git a/src/Interface/ukuimenuinterface.cpp b/src/Interface/ukuimenuinterface.cpp
new file mode 100644
index 0000000..3350aaa
--- /dev/null
+++ b/src/Interface/ukuimenuinterface.cpp
@@ -0,0 +1,1045 @@
+/*
+ * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "ukuichineseletter.h"
+#include "src/UtilityFunction/utility.h"
+
+UkuiMenuInterface::UkuiMenuInterface()
+{
+}
+
+QVector UkuiMenuInterface::m_appInfoVector = QVector();
+QVector UkuiMenuInterface::m_desktopfpVector = QVector();
+QVector UkuiMenuInterface::m_alphabeticVector = QVector();
+QVector UkuiMenuInterface::m_functionalVector = QVector