OSDN Git Service

Ver0.09pre
[gefu/Gefu.git] / main.cpp
1 #include "common.h"\r
2 #include "mainwindow.h"\r
3 \r
4 #include <QApplication>\r
5 #include <QSettings>\r
6 #include <QDir>\r
7 \r
8 int main(int argc, char *argv[])\r
9 {\r
10     QApplication a(argc, argv);\r
11     a.setOrganizationName("miyabi");\r
12     a.setOrganizationDomain("rakusaba.jp");\r
13     a.setApplicationName("Gefu");\r
14 #if defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACX)\r
15     a.setWindowIcon(QIcon(":/images/Gefu.icns"));\r
16 #else\r
17     a.setWindowIcon(QIcon(":/images/Gefu.png"));\r
18 #endif\r
19     QSettings::setDefaultFormat(QSettings::IniFormat);\r
20     QSettings settings;\r
21     if (settings.value(IniKey_ResetOnBoot, false).toBool()) {\r
22         settings.clear();\r
23     }\r
24 \r
25     // オラはやっちまっただぁ…\r
26     QString strValue = settings.value("TerminalOption", "").toString();\r
27     if (!strValue.isEmpty()) {\r
28         settings.remove("TerminalOption");\r
29         settings.setValue(IniKey_TerminalOption, strValue);\r
30     }\r
31 \r
32     // 各オプションのデフォルト値を設定する\r
33     //>>>>> 起動と終了\r
34     if (settings.value(IniKey_ConfirmExit, "").toString().isEmpty())\r
35         settings.setValue(IniKey_ConfirmExit, true);\r
36     if (settings.value(IniKey_BootSizeSpec, "").toString().isEmpty()) {\r
37         settings.setValue(IniKey_BootSizeSpec, "sizeRelative");\r
38         settings.setValue(IniKey_BootSizeAbs, QSize(800,600));\r
39         settings.setValue(IniKey_BootSizeRel, QSize(75,75));\r
40     }\r
41     if (settings.value(IniKey_BootPosSpec, "").toString().isEmpty()) {\r
42         settings.setValue(IniKey_BootPosSpec, "posCenter");\r
43         settings.setValue(IniKey_BootPosAbs, QPoint(0, 0));\r
44         settings.setValue(IniKey_BootPosRel, QPoint(0, 0));\r
45     }\r
46     //>>>>> 色とフォント\r
47     if (settings.value(IniKey_BoxFont, "").toString().isEmpty()) {\r
48         settings.setValue(IniKey_BoxFont, a.font());\r
49         settings.setValue(IniKey_BoxColorBg, QPalette().base().color());\r
50         settings.setValue(IniKey_BoxColorFg, QPalette().text().color());\r
51     }\r
52     if (settings.value(IniKey_ViewFont, "").toString().isEmpty()) {\r
53         settings.setValue(IniKey_ViewFont, a.font());\r
54         settings.setValue(IniKey_ViewColorBgMark, QColor(0,192,0));\r
55         settings.setValue(IniKey_ViewColorBgNormal, QPalette().base().color());\r
56         settings.setValue(IniKey_ViewColorFgHidden, QColor(128,128,128));\r
57         settings.setValue(IniKey_ViewColorFgMark, QColor(128,0,0));\r
58         settings.setValue(IniKey_ViewColorFgNormal, QPalette().text().color());\r
59         settings.setValue(IniKey_ViewColorFgReadonly, QColor(0,128,0));\r
60         settings.setValue(IniKey_ViewColorFgSystem, QColor(128,0,128));\r
61     }\r
62     //>>>>> ファイル操作\r
63     if (settings.value(IniKey_AutoCloseCopy, "").toString().isEmpty()) {\r
64         settings.setValue(IniKey_AutoCloseCopy, false);\r
65         settings.setValue(IniKey_AutoCloseDelete, false);\r
66         settings.setValue(IniKey_AutoCloseMove, false);\r
67         settings.setValue(IniKey_AutoCloseRename, false);\r
68     }\r
69     if (settings.value(IniKey_ConfirmCopy, "").toString().isEmpty()) {\r
70         settings.setValue(IniKey_ConfirmCopy, true);\r
71         settings.setValue(IniKey_ConfirmDelete, true);\r
72         settings.setValue(IniKey_ConfirmMove, true);\r
73         settings.setValue(IniKey_ConfirmRename, true);\r
74     }\r
75     if (settings.value(IniKey_DefaultOnCopy, "").toString().isEmpty())\r
76         settings.setValue(IniKey_DefaultOnCopy, "owDefIfNew");\r
77     if (settings.value(IniKey_MoveAfterCreateFolder, "").toString().isEmpty())\r
78         settings.setValue(IniKey_MoveAfterCreateFolder, false);\r
79     if (settings.value(IniKey_OpenAfterCreateFile, "").toString().isEmpty())\r
80         settings.setValue(IniKey_OpenAfterCreateFile, false);\r
81     //>>>>> パス設定\r
82     if (settings.value(IniKey_EditorPath, "").toString().isEmpty()) {\r
83 #if defined(Q_OS_WIN)\r
84         settings.setValue(IniKey_EditorPath, "notepad.exe");\r
85 #elif defined(Q_OS_MAC)\r
86         settings.setValue(IniKey_EditorPath, "/Applications/TextEdit.app");\r
87 #else\r
88         settings.setValue(IniKey_EditorPath, "gedit");\r
89 #endif\r
90         settings.setValue(IniKey_EditorOption, QQ("$P"));\r
91     }\r
92     if (settings.value(IniKey_TerminalPath, "").toString().isEmpty()) {\r
93 #if defined(Q_OS_WIN)\r
94         settings.setValue(IniKey_TerminalPath, "cmd.exe");\r
95         settings.setValue(IniKey_TerminalOption, "/k cd " + QQ("$D"));\r
96 #elif defined(Q_OS_MAC)\r
97         settings.setValue(IniKey_TerminalPath, "/Applications/Utilities/Terminal.app");\r
98         settings.setValue(IniKey_TerminalOption, "-c cd " + QQ("$D"));\r
99 #else\r
100         settings.setValue(IniKey_TerminalPath, "gnome-terminal");\r
101         settings.setValue(IniKey_TerminalOption, "-c cd " + QQ("$D"));\r
102 #endif\r
103     }\r
104     //>>>>> 隠しファイルの表示\r
105     if (settings.value(IniKey_ShowHidden, "").toString().isEmpty())\r
106         settings.setValue(IniKey_ShowHidden, false);\r
107     //>>>>> システムファイルの表示\r
108     if (settings.value(IniKey_ShowSystem, "").toString().isEmpty())\r
109         settings.setValue(IniKey_ShowSystem, false);\r
110     //>>>>> 最新版のチェック\r
111     if (settings.value(IniKey_CheckUpdates, "").toString().isEmpty())\r
112         settings.setValue(IniKey_CheckUpdates, true);\r
113     //>>>>> 最後のフォルダとソート方法\r
114     QString side = "Left/";\r
115     if (settings.value(side + IniKey_Dir, "").toString().isEmpty()) {\r
116         settings.setValue(side + IniKey_Dir, QDir::homePath());\r
117         settings.setValue(side + IniKey_SortBy, SortByName);\r
118         settings.setValue(side + IniKey_OrderBy, OrderByAsc);\r
119         settings.setValue(side + IniKey_PutDirs, PutDirsFirst);\r
120         settings.setValue(side + IniKey_IgnoreCase, true);\r
121     }\r
122     side = "Right/";\r
123     if (settings.value(side + IniKey_Dir, "").toString().isEmpty()) {\r
124         settings.setValue(side + IniKey_Dir, QDir::homePath());\r
125         settings.setValue(side + IniKey_SortBy, SortByName);\r
126         settings.setValue(side + IniKey_OrderBy, OrderByAsc);\r
127         settings.setValue(side + IniKey_PutDirs, PutDirsFirst);\r
128         settings.setValue(side + IniKey_IgnoreCase, true);\r
129     }\r
130 \r
131     MainWindow w;\r
132     w.show();\r
133 \r
134     return a.exec();\r
135 }\r