OSDN Git Service

Ver0.15
[gefu/Gefu.git] / main.cpp
index c3282c7..055606e 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1,9 +1,12 @@
 #include "common.h"\r
 #include "mainwindow.h"\r
 \r
+#include <QDebug>\r
 #include <QApplication>\r
 #include <QSettings>\r
 #include <QDir>\r
+#include <QAction>\r
+#include <QTimer>\r
 \r
 int main(int argc, char *argv[])\r
 {\r
@@ -16,6 +19,7 @@ int main(int argc, char *argv[])
 #else\r
     a.setWindowIcon(QIcon(":/images/Gefu.png"));\r
 #endif\r
+\r
     QSettings::setDefaultFormat(QSettings::IniFormat);\r
     QSettings settings;\r
     if (settings.value(IniKey_ResetOnBoot, false).toBool()) {\r
@@ -31,14 +35,11 @@ int main(int argc, char *argv[])
 \r
     // 各オプションのデフォルト値を設定する\r
     //>>>>> 起動と終了\r
-    if (settings.value(IniKey_ConfirmExit, "").toString().isEmpty())\r
+    if (settings.value(IniKey_ConfirmExit, "").toString().isEmpty()) {\r
         settings.setValue(IniKey_ConfirmExit, true);\r
-    if (settings.value(IniKey_BootSizeSpec, "").toString().isEmpty()) {\r
         settings.setValue(IniKey_BootSizeSpec, "sizeRelative");\r
         settings.setValue(IniKey_BootSizeAbs, QSize(800,600));\r
         settings.setValue(IniKey_BootSizeRel, QSize(75,75));\r
-    }\r
-    if (settings.value(IniKey_BootPosSpec, "").toString().isEmpty()) {\r
         settings.setValue(IniKey_BootPosSpec, "posCenter");\r
         settings.setValue(IniKey_BootPosAbs, QPoint(0, 0));\r
         settings.setValue(IniKey_BootPosRel, QPoint(0, 0));\r
@@ -101,6 +102,16 @@ int main(int argc, char *argv[])
         settings.setValue(IniKey_TerminalOption, "-c cd " + QQ("$D"));\r
 #endif\r
     }\r
+    //>>>>> テキストビューア\r
+    if (settings.value(IniKey_ViewerFont, "").toString().isEmpty()) {\r
+        settings.setValue(IniKey_ViewerColorBg, QPalette().base().color());\r
+        settings.setValue(IniKey_ViewerColorFg, QPalette().text().color());\r
+        settings.setValue(IniKey_ViewerFont, a.font());\r
+        settings.setValue(IniKey_ViewerForceOpen, false);\r
+        settings.setValue(IniKey_ViewerInherit, true);\r
+        settings.setValue(IniKey_ViewerIgnoreExt, ViewerIgnoreExt());\r
+    }\r
+\r
     //>>>>> 隠しファイルの表示\r
     if (settings.value(IniKey_ShowHidden, "").toString().isEmpty())\r
         settings.setValue(IniKey_ShowHidden, false);\r
@@ -133,3 +144,65 @@ int main(int argc, char *argv[])
 \r
     return a.exec();\r
 }\r
+\r
+QString ViewerIgnoreExt()\r
+{\r
+    QStringList list;\r
+    // 画像系\r
+    list << "ico" << "ai" << "psd" << "xcf" << "tif" << "tiff" << "wmf";\r
+    // 音・動画系\r
+    list << "wav" << "mp3" << "ogg" << "midi" << "mid" << "aif" << "aiff";\r
+    list << "mov" << "mpg" << "mpeg" << "wma" << "wmv" << "asf" << "avi";\r
+    list << "flac" << "mkv";\r
+    // 実行ファイル系\r
+    list << "exe" << "com" << "lib" << "dll" << "msi" << "scr" << "sys";\r
+    list << "o" << "obj" << "ocx" << "a" << "so" << "app";\r
+    // アーカイブ系\r
+    list << "lzh" << "zip" << "cab" << "tar" << "rar" << "gz" << "tgz";\r
+    list << "bz2" << "xz" << "jar" << "7z" << "dmg";\r
+    // ドキュメント系\r
+    list << "pdf" << "doc" << "docx" << "xls" << "xlsx" << "ppt" << "pptx";\r
+    // フォント\r
+    list << "ttf" << "ttc";\r
+\r
+    list.sort();\r
+\r
+    return list.join(",");\r
+}\r
+\r
+bool ProcessShortcut(const QString &ksq, const QObject *object)\r
+{\r
+    qDebug() << "ProcessShortcut()";\r
+\r
+    if (ksq.isEmpty()) {\r
+        return false;\r
+    }\r
+\r
+    foreach (QObject *obj, object->children()) {\r
+        QAction *action = qobject_cast<QAction*>(obj);\r
+        if (!action || !action->isEnabled()) {\r
+            continue;\r
+        }\r
+\r
+        foreach (const QKeySequence &k, action->shortcuts()) {\r
+            if (ksq == k.toString()) {\r
+                if (action->isCheckable()) {\r
+                    action->setChecked(!action->isChecked());\r
+                }\r
+                else {\r
+                    emit action->triggered();\r
+                }\r
+                qDebug() << "emit" << action->objectName();\r
+                return true;\r
+            }\r
+        }\r
+    }\r
+    return false;\r
+}\r
+\r
+void Sleep(int msec)\r
+{\r
+    QEventLoop loop;\r
+    QTimer::singleShot(msec, &loop, SLOT(quit()));\r
+    loop.exec();\r
+}\r