2 #include "mainwindow.h"
\r
5 #include <QApplication>
\r
10 bool ProcessShortcut(const QString &ksq, const QObject *object)
\r
12 qDebug() << "ProcessShortcut()";
\r
14 if (ksq.isEmpty()) {
\r
18 foreach (QObject *obj, object->children()) {
\r
19 QAction *action = qobject_cast<QAction*>(obj);
\r
20 if (!action || !action->isEnabled()) {
\r
24 foreach (const QKeySequence &k, action->shortcuts()) {
\r
25 if (ksq == k.toString()) {
\r
26 if (action->isCheckable()) {
\r
27 action->setChecked(!action->isChecked());
\r
30 emit action->triggered();
\r
32 qDebug() << "emit" << action->objectName();
\r
40 int main(int argc, char *argv[])
\r
42 QApplication a(argc, argv);
\r
43 a.setOrganizationName("miyabi");
\r
44 a.setOrganizationDomain("rakusaba.jp");
\r
45 a.setApplicationName("Gefu");
\r
46 #if defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACX)
\r
47 a.setWindowIcon(QIcon(":/images/Gefu.icns"));
\r
49 a.setWindowIcon(QIcon(":/images/Gefu.png"));
\r
52 QSettings::setDefaultFormat(QSettings::IniFormat);
\r
54 if (settings.value(IniKey_ResetOnBoot, false).toBool()) {
\r
59 QString strValue = settings.value("TerminalOption", "").toString();
\r
60 if (!strValue.isEmpty()) {
\r
61 settings.remove("TerminalOption");
\r
62 settings.setValue(IniKey_TerminalOption, strValue);
\r
65 // 各オプションのデフォルト値を設定する
\r
67 if (settings.value(IniKey_ConfirmExit, "").toString().isEmpty()) {
\r
68 settings.setValue(IniKey_ConfirmExit, true);
\r
69 settings.setValue(IniKey_BootSizeSpec, "sizeRelative");
\r
70 settings.setValue(IniKey_BootSizeAbs, QSize(800,600));
\r
71 settings.setValue(IniKey_BootSizeRel, QSize(75,75));
\r
72 settings.setValue(IniKey_BootPosSpec, "posCenter");
\r
73 settings.setValue(IniKey_BootPosAbs, QPoint(0, 0));
\r
74 settings.setValue(IniKey_BootPosRel, QPoint(0, 0));
\r
77 if (settings.value(IniKey_BoxFont, "").toString().isEmpty()) {
\r
78 settings.setValue(IniKey_BoxFont, a.font());
\r
79 settings.setValue(IniKey_BoxColorBg, QPalette().base().color());
\r
80 settings.setValue(IniKey_BoxColorFg, QPalette().text().color());
\r
82 if (settings.value(IniKey_ViewFont, "").toString().isEmpty()) {
\r
83 settings.setValue(IniKey_ViewFont, a.font());
\r
84 settings.setValue(IniKey_ViewColorBgMark, QColor(0,192,0));
\r
85 settings.setValue(IniKey_ViewColorBgNormal, QPalette().base().color());
\r
86 settings.setValue(IniKey_ViewColorFgHidden, QColor(128,128,128));
\r
87 settings.setValue(IniKey_ViewColorFgMark, QColor(128,0,0));
\r
88 settings.setValue(IniKey_ViewColorFgNormal, QPalette().text().color());
\r
89 settings.setValue(IniKey_ViewColorFgReadonly, QColor(0,128,0));
\r
90 settings.setValue(IniKey_ViewColorFgSystem, QColor(128,0,128));
\r
93 if (settings.value(IniKey_AutoCloseCopy, "").toString().isEmpty()) {
\r
94 settings.setValue(IniKey_AutoCloseCopy, false);
\r
95 settings.setValue(IniKey_AutoCloseDelete, false);
\r
96 settings.setValue(IniKey_AutoCloseMove, false);
\r
97 settings.setValue(IniKey_AutoCloseRename, false);
\r
99 if (settings.value(IniKey_ConfirmCopy, "").toString().isEmpty()) {
\r
100 settings.setValue(IniKey_ConfirmCopy, true);
\r
101 settings.setValue(IniKey_ConfirmDelete, true);
\r
102 settings.setValue(IniKey_ConfirmMove, true);
\r
103 settings.setValue(IniKey_ConfirmRename, true);
\r
105 if (settings.value(IniKey_DefaultOnCopy, "").toString().isEmpty())
\r
106 settings.setValue(IniKey_DefaultOnCopy, "owDefIfNew");
\r
107 if (settings.value(IniKey_MoveAfterCreateFolder, "").toString().isEmpty())
\r
108 settings.setValue(IniKey_MoveAfterCreateFolder, false);
\r
109 if (settings.value(IniKey_OpenAfterCreateFile, "").toString().isEmpty())
\r
110 settings.setValue(IniKey_OpenAfterCreateFile, false);
\r
112 if (settings.value(IniKey_EditorPath, "").toString().isEmpty()) {
\r
113 #if defined(Q_OS_WIN)
\r
114 settings.setValue(IniKey_EditorPath, "notepad.exe");
\r
115 #elif defined(Q_OS_MAC)
\r
116 settings.setValue(IniKey_EditorPath, "/Applications/TextEdit.app");
\r
118 settings.setValue(IniKey_EditorPath, "gedit");
\r
120 settings.setValue(IniKey_EditorOption, QQ("$P"));
\r
122 if (settings.value(IniKey_TerminalPath, "").toString().isEmpty()) {
\r
123 #if defined(Q_OS_WIN)
\r
124 settings.setValue(IniKey_TerminalPath, "cmd.exe");
\r
125 settings.setValue(IniKey_TerminalOption, "/k cd " + QQ("$D"));
\r
126 #elif defined(Q_OS_MAC)
\r
127 settings.setValue(IniKey_TerminalPath, "/Applications/Utilities/Terminal.app");
\r
128 settings.setValue(IniKey_TerminalOption, "-c cd " + QQ("$D"));
\r
130 settings.setValue(IniKey_TerminalPath, "gnome-terminal");
\r
131 settings.setValue(IniKey_TerminalOption, "-c cd " + QQ("$D"));
\r
135 if (settings.value(IniKey_ViewerFont, "").toString().isEmpty()) {
\r
136 settings.setValue(IniKey_ViewerColorBg, QPalette().base().color());
\r
137 settings.setValue(IniKey_ViewerColorFg, QPalette().text().color());
\r
138 settings.setValue(IniKey_ViewerFont, a.font());
\r
139 settings.setValue(IniKey_ViewerForceOpen, false);
\r
140 settings.setValue(IniKey_ViewerInherit, true);
\r
141 settings.setValue(IniKey_ViewerIgnoreExt, ViewerIgnoreExt());
\r
145 if (settings.value(IniKey_ShowHidden, "").toString().isEmpty())
\r
146 settings.setValue(IniKey_ShowHidden, false);
\r
147 //>>>>> システムファイルの表示
\r
148 if (settings.value(IniKey_ShowSystem, "").toString().isEmpty())
\r
149 settings.setValue(IniKey_ShowSystem, false);
\r
151 if (settings.value(IniKey_CheckUpdates, "").toString().isEmpty())
\r
152 settings.setValue(IniKey_CheckUpdates, true);
\r
153 //>>>>> 最後のフォルダとソート方法
\r
154 QString side = "Left/";
\r
155 if (settings.value(side + IniKey_Dir, "").toString().isEmpty()) {
\r
156 settings.setValue(side + IniKey_Dir, QDir::homePath());
\r
157 settings.setValue(side + IniKey_SortBy, SortByName);
\r
158 settings.setValue(side + IniKey_OrderBy, OrderByAsc);
\r
159 settings.setValue(side + IniKey_PutDirs, PutDirsFirst);
\r
160 settings.setValue(side + IniKey_IgnoreCase, true);
\r
163 if (settings.value(side + IniKey_Dir, "").toString().isEmpty()) {
\r
164 settings.setValue(side + IniKey_Dir, QDir::homePath());
\r
165 settings.setValue(side + IniKey_SortBy, SortByName);
\r
166 settings.setValue(side + IniKey_OrderBy, OrderByAsc);
\r
167 settings.setValue(side + IniKey_PutDirs, PutDirsFirst);
\r
168 settings.setValue(side + IniKey_IgnoreCase, true);
\r
177 QString ViewerIgnoreExt()
\r
181 list << "gif" << "jpg" << "jpeg" << "png" << "bmp" << "ico" << "ai";
\r
182 list << "psd" << "xcf" << "tif" << "tiff" << "wmf";
\r
184 list << "wav" << "mp3" << "ogg" << "midi" << "mid" << "aif" << "aiff";
\r
185 list << "mov" << "mpg" << "mpeg" << "wma" << "wmv" << "asf" << "avi";
\r
186 list << "flac" << "mkv";
\r
188 list << "exe" << "com" << "lib" << "dll" << "msi" << "scr" << "sys";
\r
189 list << "o" << "obj" << "ocx" << "a" << "so" << "app";
\r
191 list << "lzh" << "zip" << "cab" << "tar" << "rar" << "gz" << "tgz";
\r
192 list << "bz2" << "xz" << "jar" << "7z" << "dmg";
\r
194 list << "pdf" << "doc" << "docx" << "xls" << "xlsx" << "ppt" << "pptx";
\r
196 list << "ttf" << "ttc";
\r
200 return list.join(",");
\r