Page MenuHomePhabricator (Chris)

No OneTemporary

Authored By
Unknown
Size
157 KB
Referenced Files
None
Subscribers
None
diff --git a/.gitignore b/.gitignore
index 818affd..a00a83c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,15 @@
*.user
win.rc
Info.plist
version.c
_notes
_release
.DS_Store
image/about.psd
extra/_build_*
misc/win32tools
_bin/
+build/
+src/version.h
*.autosave
src/version.h
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2831737
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,386 @@
+cmake_minimum_required(VERSION 3.2)
+
+project(Guitar
+ VERSION 0.9.0
+ LANGUAGES CXX C
+)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
+
+find_package(Qt5 COMPONENTS Core Widgets Network Svg REQUIRED)
+find_package(zlib REQUIRED )
+find_package(OpenSSL REQUIRED )
+find_package(Qt5LinguistTools REQUIRED)
+if(WIN32)
+ # check package at
+ # https://github.com/rprichard/winpty
+ find_package(winpty REQUIRED )
+endif()
+
+# extract version information
+string(TIMESTAMP Guitar_copyright_year "%Y")
+execute_process(
+ COMMAND git rev-parse --short=7 HEAD
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE Guitar_git_hash
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+add_compile_options(-std=c++11)
+
+configure_file(version.h.in version.h)
+configure_file(win.rc.in win.rc.h)
+configure_file(Info.plist.in Info.plist)
+
+set(Guitar_SOURCES
+ src/main.cpp
+ src/MainWindow.cpp
+ src/Git.cpp
+ src/common/joinpath.cpp
+ src/common/misc.cpp
+ src/ConfigCredentialHelperDialog.cpp
+ src/MySettings.cpp
+ src/FileDiffWidget.cpp
+ src/TextEditDialog.cpp
+ src/LogTableWidget.cpp
+ src/FileDiffSliderWidget.cpp
+ src/FileUtil.cpp
+ src/SettingsDialog.cpp
+ src/MergeBranchDialog.cpp
+ src/CloneDialog.cpp
+ src/AboutDialog.cpp
+ src/RepositoryInfoFrame.cpp
+ src/RepositoryPropertyDialog.cpp
+ src/RepositoryData.cpp
+ src/MyToolButton.cpp
+ src/GitDiff.cpp
+ src/CommitPropertyDialog.cpp
+ src/Terminal.cpp
+ src/DeleteTagsDialog.cpp
+ src/RepositoriesTreeWidget.cpp
+ src/SelectCommandDialog.cpp
+ src/ImageViewWidget.cpp
+ src/FileHistoryWindow.cpp
+ src/GitPackIdxV2.cpp
+ src/GitPack.cpp
+ src/GitObjectManager.cpp
+ src/FilePropertyDialog.cpp
+ src/BigDiffWindow.cpp
+ src/MaximizeButton.cpp
+ src/CommitExploreWindow.cpp
+ src/ReadOnlyLineEdit.cpp
+ src/ReadOnlyPlainTextEdit.cpp
+ src/MyTableWidgetDelegate.cpp
+ src/SetRemoteUrlDialog.cpp
+ src/ClearButton.cpp
+ src/SetUserDialog.cpp
+ src/SearchFromGitHubDialog.cpp
+ src/webclient.cpp
+ src/charvec.cpp
+ src/urlencode.cpp
+ src/HyperLinkLabel.cpp
+ src/JumpDialog.cpp
+ src/CheckoutDialog.cpp
+ src/DeleteBranchDialog.cpp
+ src/BasicRepositoryDialog.cpp
+ src/RemoteRepositoriesTableWidget.cpp
+ src/LocalSocketReader.cpp
+ src/PushDialog.cpp
+ src/StatusLabel.cpp
+ src/RepositoryLineEdit.cpp
+ src/DirectoryLineEdit.cpp
+ src/AbstractSettingForm.cpp
+ src/SettingExampleForm.cpp
+ src/CreateRepositoryDialog.cpp
+ src/GitHubAPI.cpp
+ src/MemoryReader.cpp
+ src/ExperimentDialog.cpp
+ src/gunzip.cpp
+ src/AvatarLoader.cpp
+ src/SettingNetworkForm.cpp
+ src/Photoshop.cpp
+ src/SettingBehaviorForm.cpp
+ src/MyProcess.cpp
+ src/FileViewWidget.cpp
+ src/MyTextEditorWidget.cpp
+ src/AbstractProcess.cpp
+ src/texteditor/AbstractCharacterBasedApplication.cpp
+ src/texteditor/InputMethodPopup.cpp
+ src/texteditor/TextEditorTheme.cpp
+ src/texteditor/TextEditorWidget.cpp
+ src/texteditor/unicode.cpp
+ src/texteditor/UnicodeWidth.cpp
+ src/MyImageViewWidget.cpp
+ src/SetGlobalUserDialog.cpp
+ src/ReflogWindow.cpp
+ src/Theme.cpp
+ src/ApplicationGlobal.cpp
+ src/BlameWindow.cpp
+ src/MenuButton.cpp
+ src/SettingGeneralForm.cpp
+ src/WelcomeWizardDialog.cpp
+ src/DialogHeaderFrame.cpp
+ src/CommitViewWindow.cpp
+ src/EditRemoteDialog.cpp
+ src/gpg.cpp
+ src/SelectGpgKeyDialog.cpp
+ src/SetGpgSigningDialog.cpp
+ src/CommitDialog.cpp
+ src/ConfigSigningDialog.cpp
+ src/AreYouSureYouWantToContinueConnectingDialog.cpp
+ src/LineEditDialog.cpp
+ src/SettingProgramsForm.cpp
+ src/InputNewTagDialog.cpp
+ src/EditTagsDialog.cpp
+ src/darktheme/DarkStyle.cpp
+ src/darktheme/NinePatch.cpp
+ src/darktheme/StandardStyle.cpp
+ src/darktheme/TraditionalWindowsStyleTreeControl.cpp
+ src/EditGitIgnoreDialog.cpp
+ src/SelectItemDialog.cpp
+ src/RebaseOntoDialog.cpp
+ src/RemoteWatcher.cpp
+ src/DoYouWantToInitDialog.cpp
+ src/BasicMainWindow.cpp
+ )
+
+
+set(Guitar_HEADERS
+ src/MainWindow.h
+ src/Git.h
+ src/common/joinpath.h
+ src/common/misc.h
+ src/ConfigCredentialHelperDialog.h
+ src/MySettings.h
+ src/main.h
+ src/FileDiffWidget.h
+ src/TextEditDialog.h
+ src/LogTableWidget.h
+ src/FileDiffSliderWidget.h
+ src/FileUtil.h
+ src/SettingsDialog.h
+ src/MergeBranchDialog.h
+ src/CloneDialog.h
+ src/AboutDialog.h
+ src/RepositoryInfoFrame.h
+ src/RepositoryPropertyDialog.h
+ src/RepositoryData.h
+ src/MyToolButton.h
+ src/GitDiff.h
+ src/CommitPropertyDialog.h
+ src/Terminal.h
+ src/DeleteTagsDialog.h
+ src/RepositoriesTreeWidget.h
+ src/SelectCommandDialog.h
+ src/ImageViewWidget.h
+ src/FileHistoryWindow.h
+ src/Debug.h
+ src/GitPackIdxV2.h
+ src/GitPack.h
+ src/GitObjectManager.h
+ src/FilePropertyDialog.h
+ src/BigDiffWindow.h
+ src/MaximizeButton.h
+ src/CommitExploreWindow.h
+ src/ReadOnlyLineEdit.h
+ src/ReadOnlyPlainTextEdit.h
+ src/MyTableWidgetDelegate.h
+ src/SetRemoteUrlDialog.h
+ src/ClearButton.h
+ src/SetUserDialog.h
+ src/SearchFromGitHubDialog.h
+ src/webclient.h
+ src/charvec.h
+ src/urlencode.h
+ src/HyperLinkLabel.h
+ src/JumpDialog.h
+ src/CheckoutDialog.h
+ src/DeleteBranchDialog.h
+ src/BasicRepositoryDialog.h
+ src/RemoteRepositoriesTableWidget.h
+ src/LocalSocketReader.h
+ src/PushDialog.h
+ src/StatusLabel.h
+ src/RepositoryLineEdit.h
+ src/DirectoryLineEdit.h
+ src/AbstractSettingForm.h
+ src/SettingExampleForm.h
+ src/CreateRepositoryDialog.h
+ src/GitHubAPI.h
+ src/MemoryReader.h
+ src/ExperimentDialog.h
+ src/gunzip.h
+ src/AvatarLoader.h
+ src/SettingNetworkForm.h
+ src/Photoshop.h
+ src/SettingBehaviorForm.h
+ src/MyProcess.h
+ src/FileViewWidget.h
+ src/MyTextEditorWidget.h
+ src/AbstractProcess.h
+ src/texteditor/AbstractCharacterBasedApplication.h
+ src/texteditor/InputMethodPopup.h
+ src/texteditor/TextEditorTheme.h
+ src/texteditor/TextEditorWidget.h
+ src/texteditor/unicode.h
+ src/texteditor/UnicodeWidth.h
+ src/MyImageViewWidget.h
+ src/SetGlobalUserDialog.h
+ src/ReflogWindow.h
+ src/Theme.h
+ src/ApplicationGlobal.h
+ src/BlameWindow.h
+ src/MenuButton.h
+ src/SettingGeneralForm.h
+ src/WelcomeWizardDialog.h
+ src/DialogHeaderFrame.h
+ src/CommitViewWindow.h
+ src/EditRemoteDialog.h
+ src/gpg.h
+ src/SelectGpgKeyDialog.h
+ src/SetGpgSigningDialog.h
+ src/CommitDialog.h
+ src/ConfigSigningDialog.h
+ src/AreYouSureYouWantToContinueConnectingDialog.h
+ src/LineEditDialog.h
+ src/SettingProgramsForm.h
+ src/InputNewTagDialog.h
+ src/EditTagsDialog.h
+ src/darktheme/DarkStyle.h
+ src/darktheme/NinePatch.h
+ src/darktheme/StandardStyle.h
+ src/darktheme/TraditionalWindowsStyleTreeControl.h
+ src/EditGitIgnoreDialog.h
+ src/SelectItemDialog.h
+ src/RebaseOntoDialog.h
+ src/RemoteWatcher.h
+ src/DoYouWantToInitDialog.h
+ src/BasicMainWindow.h
+ )
+
+if(UNIX)
+ list(APPEND Guitar_SOURCES
+ src/unix/UnixProcess.cpp
+ src/unix/UnixPtyProcess.cpp
+ )
+ list(APPEND Guitar_HEADERS
+ src/unix/UnixProcess.h
+ src/unix/UnixPtyProcess.h
+ )
+elseif(WIN32)
+ list(APPEND Guitar_SOURCES
+ src/win32/thread.cpp
+ src/win32/event.cpp
+ src/win32/win32.cpp
+ src/win32/Win32Process.cpp
+ src/win32/Win32PtyProcess.cpp
+ )
+ list(APPEND Guitar_HEADERS
+ src/win32/thread.h
+ src/win32/event.h
+ src/win32/mutex.h
+ src/win32/win32.h
+ src/win32/Win32Process.h
+ src/win32/Win32PtyProcess.h
+ )
+endif()
+
+set(Guitar_UIS
+ src/MainWindow.ui
+ src/ConfigCredentialHelperDialog.ui
+ src/TextEditDialog.ui
+ src/SettingsDialog.ui
+ src/MergeBranchDialog.ui
+ src/CloneDialog.ui
+ src/AboutDialog.ui
+ src/RepositoryPropertyDialog.ui
+ src/CommitPropertyDialog.ui
+ src/DeleteTagsDialog.ui
+ src/SelectCommandDialog.ui
+ src/FileDiffWidget.ui
+ src/FileHistoryWindow.ui
+ src/FilePropertyDialog.ui
+ src/BigDiffWindow.ui
+ src/CommitExploreWindow.ui
+ src/SetRemoteUrlDialog.ui
+ src/SetUserDialog.ui
+ src/SearchFromGitHubDialog.ui
+ src/JumpDialog.ui
+ src/CheckoutDialog.ui
+ src/DeleteBranchDialog.ui
+ src/PushDialog.ui
+ src/SettingExampleForm.ui
+ src/CreateRepositoryDialog.ui
+ src/ExperimentDialog.ui
+ src/SettingNetworkForm.ui
+ src/SettingBehaviorForm.ui
+ src/SetGlobalUserDialog.ui
+ src/ReflogWindow.ui
+ src/BlameWindow.ui
+ src/SettingGeneralForm.ui
+ src/WelcomeWizardDialog.ui
+ src/CommitViewWindow.ui
+ src/EditRemoteDialog.ui
+ src/SelectGpgKeyDialog.ui
+ src/SetGpgSigningDialog.ui
+ src/CommitDialog.ui
+ src/ConfigSigningDialog.ui
+ src/AreYouSureYouWantToContinueConnectingDialog.ui
+ src/LineEditDialog.ui
+ src/SettingProgramsForm.ui
+ src/InputNewTagDialog.ui
+ src/EditTagsDialog.ui
+ src/EditGitIgnoreDialog.ui
+ src/SelectItemDialog.ui
+ src/RebaseOntoDialog.ui
+ src/DoYouWantToInitDialog.ui
+ )
+
+set(Guitar_RESOURCES
+ src/resources/resources.qrc
+ )
+
+set(Guitar_TRANSLATIONS
+ src/resources/translations/ja_JPN.ts
+ )
+
+qt5_add_translation(Guitar_QM_FILES ${Guitar_TRANSLATIONS})
+configure_file(${Guitar_RESOURCES} ${CMAKE_BINARY_DIR} COPYONLY)
+
+add_custom_target(translations ALL DEPENDS ${Guitar_QM_FILES})
+
+add_custom_target(resources ALL DEPENDS ${Guitar_RESOURCES})
+
+add_dependencies(resources translations)
+
+include_directories(src)
+include_directories(src/texteditor)
+
+add_executable(${PROJECT_NAME}
+ ${Guitar_SOURCES}
+ ${Guitar_HEADERS}
+ ${Guitar_UIS}
+ ${Guitar_RESOURCES}
+ ${Guitar_QM_FILES}
+ )
+
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ CXX_STANDARD 11
+ CXX_EXTENSIONS OFF
+)
+
+target_link_libraries(${PROJECT_NAME}
+ Qt5::Widgets
+ Qt5::Network
+ Qt5::Svg
+ zlib
+ OpenSSL::SSL OpenSSL::Crypto
+)
+
+
+add_subdirectory(extra)
diff --git a/Guitar.icns b/Guitar.icns
deleted file mode 100644
index 878b45a..0000000
Binary files a/Guitar.icns and /dev/null differ
diff --git a/Guitar.ico b/Guitar.ico
deleted file mode 100644
index eadd7cc..0000000
Binary files a/Guitar.ico and /dev/null differ
diff --git a/Guitar.pro b/Guitar.pro
index d56e2bb..66d631e 100644
--- a/Guitar.pro
+++ b/Guitar.pro
@@ -1,394 +1,399 @@
QT += core gui widgets svg network
win32:QT += winextras
CONFIG(debug,debug|release):TARGET = Guitard
CONFIG(release,debug|release):TARGET = Guitar
TEMPLATE = app
CONFIG += c++11
DESTDIR = $$PWD/_bin
TRANSLATIONS = Guitar_ja.ts
DEFINES += APP_GUITAR
DEFINES += HAVE_POSIX_OPENPT
macx:DEFINES += HAVE_SYS_TIME_H
macx:DEFINES += HAVE_UTMPX
gcc:QMAKE_CXXFLAGS += -Wall -Wextra -Werror=return-type -Werror=trigraphs -Wno-switch -Wno-reorder
linux:QMAKE_RPATHDIR += $ORIGIN
macx:QMAKE_RPATHDIR += @executable_path/../Frameworks
linux:QTPLUGIN += ibusplatforminputcontextplugin
#linux:QTPLUGIN += fcitxplatforminputcontextplugin
INCLUDEPATH += $$PWD/src
INCLUDEPATH += $$PWD/src/texteditor
-win32:INCLUDEPATH += $$PWD/winpty
-win32:LIBS += $$PWD/winpty/winpty.lib
+win32:INCLUDEPATH += $$PWD/misc/winpty
+win32:LIBS += $$PWD/misc/winpty/winpty.lib
# OpenSSL
linux:LIBS += -lssl -lcrypto
haiku:LIBS += -lssl -lcrypto -lnetwork
macx:INCLUDEPATH += /usr/local/include
macx:LIBS += /usr/local/lib/libssl.a /usr/local/lib/libcrypto.a
win32:msvc {
INCLUDEPATH += C:\openssl\include
+ INCLUDEPATH += $$PWD/../zlib
LIBS += -LC:\openssl\lib
}
win32:gcc {
INCLUDEPATH += C:\Qt\Tools\mingw530_32\opt\include
LIBS += -LC:\Qt\Tools\mingw530_32\opt\lib
LIBS += -lcrypto -lssl
}
# execute 'ruby prepare.rb' automatically
prepare.target = prepare
prepare.commands = cd $$PWD && ruby -W0 prepare.rb
QMAKE_EXTRA_TARGETS += prepare
PRE_TARGETDEPS += prepare
# zlib
win32:msvc {
CONFIG(debug, debug|release):LIBS += $$PWD/_bin/libz.lib
CONFIG(release, debug|release):LIBS += $$PWD/_bin/libz.lib
}
win32:gcc {
CONFIG(debug, debug|release):LIBS += $$PWD/_bin/liblibz.a
CONFIG(release, debug|release):LIBS += $$PWD/_bin/liblibz.a
}
!haiku {
unix:CONFIG(debug, debug|release):LIBS += $$PWD/_bin/libzd.a
unix:CONFIG(release, debug|release):LIBS += $$PWD/_bin/libz.a
#unix:LIBS += -lz
}
haiku:LIBS += -lz
win32 {
LIBS += -ladvapi32 -lshell32 -luser32 -lws2_32
RC_FILE = win.rc
QMAKE_SUBSYSTEM_SUFFIX=,5.01
}
macx {
QMAKE_INFO_PLIST = Info.plist
ICON += Guitar.icns
t.path=Contents/Resources
QMAKE_BUNDLE_DATA += t
}
SOURCES += \
- version.c \
src/main.cpp\
src/MainWindow.cpp \
src/Git.cpp \
src/common/joinpath.cpp \
src/common/misc.cpp \
src/ConfigCredentialHelperDialog.cpp \
src/MySettings.cpp \
src/FileDiffWidget.cpp \
src/TextEditDialog.cpp \
src/LogTableWidget.cpp \
src/FileDiffSliderWidget.cpp \
src/FileUtil.cpp \
src/SettingsDialog.cpp \
src/MergeBranchDialog.cpp \
src/CloneDialog.cpp \
src/AboutDialog.cpp \
src/RepositoryInfoFrame.cpp \
src/RepositoryPropertyDialog.cpp \
src/RepositoryData.cpp \
src/MyToolButton.cpp \
src/GitDiff.cpp \
src/CommitPropertyDialog.cpp \
src/Terminal.cpp \
src/DeleteTagsDialog.cpp \
src/RepositoriesTreeWidget.cpp \
src/SelectCommandDialog.cpp \
src/ImageViewWidget.cpp \
src/FileHistoryWindow.cpp \
src/GitPackIdxV2.cpp \
src/GitPack.cpp \
src/GitObjectManager.cpp \
src/FilePropertyDialog.cpp \
src/BigDiffWindow.cpp \
src/MaximizeButton.cpp \
src/CommitExploreWindow.cpp \
src/ReadOnlyLineEdit.cpp \
src/ReadOnlyPlainTextEdit.cpp \
src/MyTableWidgetDelegate.cpp \
src/SetRemoteUrlDialog.cpp \
src/ClearButton.cpp \
src/SetUserDialog.cpp \
src/SearchFromGitHubDialog.cpp \
src/webclient.cpp \
src/charvec.cpp \
src/urlencode.cpp \
src/HyperLinkLabel.cpp \
src/JumpDialog.cpp \
src/CheckoutDialog.cpp \
src/DeleteBranchDialog.cpp \
src/BasicRepositoryDialog.cpp \
src/RemoteRepositoriesTableWidget.cpp \
src/LocalSocketReader.cpp \
src/PushDialog.cpp \
src/StatusLabel.cpp \
src/RepositoryLineEdit.cpp \
src/DirectoryLineEdit.cpp \
src/AbstractSettingForm.cpp \
src/SettingExampleForm.cpp \
src/CreateRepositoryDialog.cpp \
src/GitHubAPI.cpp \
src/MemoryReader.cpp \
src/ExperimentDialog.cpp \
src/gunzip.cpp \
src/AvatarLoader.cpp \
src/SettingNetworkForm.cpp \
src/Photoshop.cpp \
src/SettingBehaviorForm.cpp \
src/MyProcess.cpp \
src/FileViewWidget.cpp \
src/MyTextEditorWidget.cpp \
src/AbstractProcess.cpp \
src/texteditor/AbstractCharacterBasedApplication.cpp \
src/texteditor/InputMethodPopup.cpp \
src/texteditor/TextEditorTheme.cpp \
src/texteditor/TextEditorWidget.cpp \
src/texteditor/unicode.cpp \
src/texteditor/UnicodeWidth.cpp \
src/MyImageViewWidget.cpp \
src/SetGlobalUserDialog.cpp \
src/ReflogWindow.cpp \
src/Theme.cpp \
src/ApplicationGlobal.cpp \
src/BlameWindow.cpp \
src/MenuButton.cpp \
src/SettingGeneralForm.cpp \
src/WelcomeWizardDialog.cpp \
src/DialogHeaderFrame.cpp \
src/CommitViewWindow.cpp \
src/EditRemoteDialog.cpp \
src/gpg.cpp \
src/SelectGpgKeyDialog.cpp \
src/SetGpgSigningDialog.cpp \
src/CommitDialog.cpp \
src/ConfigSigningDialog.cpp \
src/AreYouSureYouWantToContinueConnectingDialog.cpp \
src/LineEditDialog.cpp \
src/SettingProgramsForm.cpp \
src/InputNewTagDialog.cpp \
src/EditTagsDialog.cpp \
src/darktheme/DarkStyle.cpp \
src/darktheme/NinePatch.cpp \
src/darktheme/StandardStyle.cpp \
src/darktheme/TraditionalWindowsStyleTreeControl.cpp \
src/EditGitIgnoreDialog.cpp \
src/SelectItemDialog.cpp \
src/RebaseOntoDialog.cpp \
src/DoYouWantToInitDialog.cpp \
src/RemoteWatcher.cpp \
src/BasicMainWindow.cpp
HEADERS += \
src/MainWindow.h \
src/Git.h \
src/common/joinpath.h \
src/common/misc.h \
src/ConfigCredentialHelperDialog.h \
src/MySettings.h \
src/main.h \
src/FileDiffWidget.h \
src/TextEditDialog.h \
src/LogTableWidget.h \
src/FileDiffSliderWidget.h \
src/FileUtil.h \
src/SettingsDialog.h \
src/MergeBranchDialog.h \
src/CloneDialog.h \
src/AboutDialog.h \
src/RepositoryInfoFrame.h \
src/RepositoryPropertyDialog.h \
src/RepositoryData.h \
src/MyToolButton.h \
src/GitDiff.h \
src/CommitPropertyDialog.h \
src/Terminal.h \
src/DeleteTagsDialog.h \
src/RepositoriesTreeWidget.h \
src/SelectCommandDialog.h \
src/ImageViewWidget.h \
src/FileHistoryWindow.h \
src/Debug.h \
src/GitPackIdxV2.h \
src/GitPack.h \
src/GitObjectManager.h \
src/FilePropertyDialog.h \
src/BigDiffWindow.h \
src/MaximizeButton.h \
src/CommitExploreWindow.h \
src/ReadOnlyLineEdit.h \
src/ReadOnlyPlainTextEdit.h \
src/MyTableWidgetDelegate.h \
src/SetRemoteUrlDialog.h \
- myzlib.h \
src/ClearButton.h \
src/SetUserDialog.h \
src/SearchFromGitHubDialog.h \
src/webclient.h \
src/charvec.h \
src/urlencode.h \
src/HyperLinkLabel.h \
src/JumpDialog.h \
src/CheckoutDialog.h \
src/DeleteBranchDialog.h \
src/BasicRepositoryDialog.h \
src/RemoteRepositoriesTableWidget.h \
src/LocalSocketReader.h \
src/PushDialog.h \
src/StatusLabel.h \
src/RepositoryLineEdit.h \
src/DirectoryLineEdit.h \
src/AbstractSettingForm.h \
src/SettingExampleForm.h \
src/CreateRepositoryDialog.h \
src/GitHubAPI.h \
src/MemoryReader.h \
src/ExperimentDialog.h \
src/gunzip.h \
src/AvatarLoader.h \
src/SettingNetworkForm.h \
src/Photoshop.h \
src/SettingBehaviorForm.h \
src/MyProcess.h \
src/MyTextEditorWidget.h \
src/AbstractProcess.h \
src/texteditor/AbstractCharacterBasedApplication.h \
src/texteditor/InputMethodPopup.h \
src/texteditor/TextEditorTheme.h \
src/texteditor/TextEditorWidget.h \
src/texteditor/unicode.h \
src/texteditor/UnicodeWidth.h \
src/MyImageViewWidget.h \
src/SetGlobalUserDialog.h \
src/ReflogWindow.h \
src/Theme.h \
src/ApplicationGlobal.h \
src/BlameWindow.h \
src/MenuButton.h \
src/SettingGeneralForm.h \
src/WelcomeWizardDialog.h \
src/DialogHeaderFrame.h \
src/CommitViewWindow.h \
src/EditRemoteDialog.h \
src/gpg.h \
src/SelectGpgKeyDialog.h \
src/SetGpgSigningDialog.h \
src/CommitDialog.h \
src/ConfigSigningDialog.h \
src/AreYouSureYouWantToContinueConnectingDialog.h \
src/LineEditDialog.h \
src/SettingProgramsForm.h \
src/InputNewTagDialog.h \
src/EditTagsDialog.h \
src/darktheme/DarkStyle.h \
src/darktheme/NinePatch.h \
src/darktheme/StandardStyle.h \
src/darktheme/TraditionalWindowsStyleTreeControl.h \
src/EditGitIgnoreDialog.h \
src/SelectItemDialog.h \
src/RebaseOntoDialog.h \
src/DoYouWantToInitDialog.h \
src/RemoteWatcher.h \
src/BasicMainWindow.h \
+<<<<<<< HEAD
+ src/version.h
+=======
src/platform.h
+>>>>>>> 1577236553e0370f7ab2c4b5a5743bab35f93670
FORMS += \
src/MainWindow.ui \
src/ConfigCredentialHelperDialog.ui \
src/TextEditDialog.ui \
src/SettingsDialog.ui \
src/MergeBranchDialog.ui \
src/CloneDialog.ui \
src/AboutDialog.ui \
src/RepositoryPropertyDialog.ui \
src/CommitPropertyDialog.ui \
src/DeleteTagsDialog.ui \
src/SelectCommandDialog.ui \
src/FileDiffWidget.ui \
src/FileHistoryWindow.ui \
src/FilePropertyDialog.ui \
src/BigDiffWindow.ui \
src/CommitExploreWindow.ui \
src/SetRemoteUrlDialog.ui \
src/SetUserDialog.ui \
src/SearchFromGitHubDialog.ui \
src/JumpDialog.ui \
src/CheckoutDialog.ui \
src/DeleteBranchDialog.ui \
src/PushDialog.ui \
src/SettingExampleForm.ui \
src/CreateRepositoryDialog.ui \
src/ExperimentDialog.ui \
src/SettingNetworkForm.ui \
src/SettingBehaviorForm.ui \
src/SetGlobalUserDialog.ui \
src/ReflogWindow.ui \
src/BlameWindow.ui \
src/SettingGeneralForm.ui \
src/WelcomeWizardDialog.ui \
src/CommitViewWindow.ui \
src/EditRemoteDialog.ui \
src/SelectGpgKeyDialog.ui \
src/SetGpgSigningDialog.ui \
src/CommitDialog.ui \
src/ConfigSigningDialog.ui \
src/AreYouSureYouWantToContinueConnectingDialog.ui \
src/LineEditDialog.ui \
src/SettingProgramsForm.ui \
src/InputNewTagDialog.ui \
src/EditTagsDialog.ui \
src/EditGitIgnoreDialog.ui \
src/SelectItemDialog.ui \
src/RebaseOntoDialog.ui \
src/DoYouWantToInitDialog.ui
RESOURCES += \
src/resources/resources.qrc
unix {
SOURCES += \
src/unix/UnixProcess.cpp \
src/unix/UnixPtyProcess.cpp
HEADERS += \
src/unix/UnixProcess.h \
src/unix/UnixPtyProcess.h
}
win32 {
SOURCES += \
src/win32/thread.cpp \
src/win32/event.cpp \
src/win32/win32.cpp \
src/win32/Win32Process.cpp \
src/win32/Win32PtyProcess.cpp
HEADERS += \
src/win32/thread.h \
src/win32/event.h \
src/win32/mutex.h \
src/win32/win32.h \
src/win32/Win32Process.h \
src/win32/Win32PtyProcess.h
}
+
+
diff --git a/Guitar_ja.qm b/Guitar_ja.qm
deleted file mode 100644
index b0e0027..0000000
Binary files a/Guitar_ja.qm and /dev/null differ
diff --git a/Guitar_ja.ts b/Guitar_ja.ts
deleted file mode 100644
index 82afad1..0000000
--- a/Guitar_ja.ts
+++ /dev/null
@@ -1,2482 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="ja_JP">
-<context>
- <name>AboutDialog</name>
- <message>
- <location filename="src/AboutDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/AboutDialog.ui" line="29"/>
- <location filename="src/AboutDialog.ui" line="36"/>
- <location filename="src/AboutDialog.ui" line="43"/>
- <location filename="src/AboutDialog.ui" line="50"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/AboutDialog.cpp" line="28"/>
- <source>About %1</source>
- <translation>%1 について</translation>
- </message>
-</context>
-<context>
- <name>AreYouSureYouWantToContinueConnectingDialog</name>
- <message>
- <location filename="src/AreYouSureYouWantToContinueConnectingDialog.ui" line="14"/>
- <source>Unknown Host</source>
- <translation>不明なホスト</translation>
- </message>
- <message>
- <location filename="src/AreYouSureYouWantToContinueConnectingDialog.ui" line="20"/>
- <source>Are you sure you want to continue connecting (yes/no)?</source>
- <translation>接続を続行しますか? (yes/no)?</translation>
- </message>
- <message>
- <location filename="src/AreYouSureYouWantToContinueConnectingDialog.ui" line="52"/>
- <source>Continue</source>
- <translation>続行</translation>
- </message>
- <message>
- <location filename="src/AreYouSureYouWantToContinueConnectingDialog.ui" line="59"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
-</context>
-<context>
- <name>BasicRepositoryDialog</name>
- <message>
- <location filename="src/BasicRepositoryDialog.cpp" line="66"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/BasicRepositoryDialog.cpp" line="67"/>
- <source>Purpose</source>
- <translation>用途</translation>
- </message>
- <message>
- <location filename="src/BasicRepositoryDialog.cpp" line="68"/>
- <source>URL</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>BigDiffWindow</name>
- <message>
- <location filename="src/BigDiffWindow.ui" line="14"/>
- <source>Diff</source>
- <translation>差分</translation>
- </message>
-</context>
-<context>
- <name>BlameWindow</name>
- <message>
- <location filename="src/BlameWindow.ui" line="14"/>
- <source>Blame</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="45"/>
- <source>Information</source>
- <translation>情報</translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="60"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="70"/>
- <source>Date</source>
- <translation>日付</translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="90"/>
- <source>Message</source>
- <translation>メッセージ</translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="80"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/BlameWindow.ui" line="118"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
-</context>
-<context>
- <name>CheckoutDialog</name>
- <message>
- <location filename="src/CheckoutDialog.ui" line="14"/>
- <source>Checkout</source>
- <translation>チェックアウト</translation>
- </message>
- <message>
- <location filename="src/CheckoutDialog.ui" line="20"/>
- <location filename="src/CheckoutDialog.ui" line="27"/>
- <location filename="src/CheckoutDialog.ui" line="34"/>
- <source>RadioButton</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CheckoutDialog.ui" line="63"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CheckoutDialog.ui" line="70"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>CloneDialog</name>
- <message>
- <location filename="src/CloneDialog.ui" line="14"/>
- <location filename="src/CloneDialog.ui" line="103"/>
- <source>Clone</source>
- <translation>クローン</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="22"/>
- <source>Remote</source>
- <translation>リモート</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="39"/>
- <source>&amp;Test</source>
- <translation>テスト(&amp;T)</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="46"/>
- <source>Local</source>
- <translation>ローカル</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="56"/>
- <source>Browse</source>
- <translation>参照</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="83"/>
- <source>Open existing local directory...</source>
- <translation>既存のフォルダを開く...</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.ui" line="113"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.cpp" line="40"/>
- <source>Search</source>
- <translation>検索</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.cpp" line="41"/>
- <source>GitHub</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CloneDialog.cpp" line="108"/>
- <source>Checkout into</source>
- <translation>ここにチェックアウト</translation>
- </message>
- <message>
- <location filename="src/CloneDialog.cpp" line="120"/>
- <source>Open existing directory</source>
- <translation>既存のフォンるだを開く</translation>
- </message>
-</context>
-<context>
- <name>CommitDialog</name>
- <message>
- <location filename="src/CommitDialog.ui" line="14"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="27"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="49"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="68"/>
- <location filename="src/CommitDialog.ui" line="94"/>
- <location filename="src/CommitDialog.ui" line="139"/>
- <location filename="src/CommitDialog.ui" line="159"/>
- <location filename="src/CommitDialog.ui" line="179"/>
- <source>---</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="75"/>
- <location filename="src/CommitDialog.ui" line="166"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="111"/>
- <source>GPG Signing</source>
- <translation>GPG署名</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="126"/>
- <source>ID</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="146"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="189"/>
- <source>Configure...</source>
- <translation>設定...</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="198"/>
- <source>Message</source>
- <translation>メッセージ</translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="223"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CommitDialog.ui" line="233"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>CommitExploreWindow</name>
- <message>
- <location filename="src/CommitExploreWindow.ui" line="14"/>
- <source>Commit Explorer</source>
- <translation>コミットエクスプローラー</translation>
- </message>
- <message>
- <location filename="src/CommitExploreWindow.ui" line="65"/>
- <source>Commit ID</source>
- <translation>コミットID</translation>
- </message>
- <message>
- <location filename="src/CommitExploreWindow.ui" line="82"/>
- <source>Date</source>
- <translation>日付</translation>
- </message>
- <message>
- <location filename="src/CommitExploreWindow.ui" line="89"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CommitExploreWindow.cpp" line="80"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
-</context>
-<context>
- <name>CommitPropertyDialog</name>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="14"/>
- <source>Commit Property</source>
- <oldsource>Commit Properties</oldsource>
- <translation>コミットのプロパティ</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="46"/>
- <source>Date</source>
- <translation>日付</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="56"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="66"/>
- <location filename="src/CommitPropertyDialog.ui" line="196"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="154"/>
- <source>GPG Sign</source>
- <translation>GPG署名</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="176"/>
- <source>ID</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="186"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="233"/>
- <source>Commit ID</source>
- <translation>コミットID</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="243"/>
- <source>Parent IDs</source>
- <translation>親ID</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="265"/>
- <source>Files...</source>
- <translation>ファイル...</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="285"/>
- <source>Explorer</source>
- <translation>エクスプローラ</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="305"/>
- <source>Checkout</source>
- <translation>チェックアウト</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="312"/>
- <source>Jump</source>
- <translation>移動</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.ui" line="332"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
- <message>
- <location filename="src/CommitPropertyDialog.cpp" line="59"/>
- <source>&lt;Unknown&gt;</source>
- <translation>&lt;不明&gt;</translation>
- </message>
-</context>
-<context>
- <name>CommitViewWindow</name>
- <message>
- <location filename="src/CommitViewWindow.ui" line="14"/>
- <source>Commit View</source>
- <translation>コミットビュー</translation>
- </message>
- <message>
- <location filename="src/CommitViewWindow.cpp" line="58"/>
- <source>History</source>
- <translation>履歴</translation>
- </message>
-</context>
-<context>
- <name>ConfigCredentialHelperDialog</name>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="26"/>
- <source>wincred</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="39"/>
- <source>winstore</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="52"/>
- <source>None</source>
- <translation>なし</translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="65"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="78"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/ConfigCredentialHelperDialog.ui" line="91"/>
- <source>Other</source>
- <translation>その他</translation>
- </message>
-</context>
-<context>
- <name>ConfigSigningDialog</name>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="14"/>
- <source>Signing Policy</source>
- <translation>署名ポリシー</translation>
- </message>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="20"/>
- <source>Config commit.gpgsign</source>
- <translation>commit.gpgsign の設定</translation>
- </message>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="32"/>
- <source>global</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="42"/>
- <source>local</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="70"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ConfigSigningDialog.ui" line="77"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>CreateRepositoryDialog</name>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="14"/>
- <location filename="src/CreateRepositoryDialog.cpp" line="42"/>
- <location filename="src/CreateRepositoryDialog.cpp" line="46"/>
- <location filename="src/CreateRepositoryDialog.cpp" line="50"/>
- <location filename="src/CreateRepositoryDialog.cpp" line="54"/>
- <source>Create Repository</source>
- <translation>リポジトリの作成</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="22"/>
- <source>Path</source>
- <translation>パス</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="32"/>
- <source>Browse</source>
- <translation>参照</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="54"/>
- <source>Bookmark</source>
- <translation>ブックマーク</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="63"/>
- <location filename="src/CreateRepositoryDialog.ui" line="88"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="76"/>
- <source>Remote</source>
- <translation>リモート</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="98"/>
- <source>URL</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="108"/>
- <source>Test</source>
- <translation>テスト</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="146"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.ui" line="153"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.cpp" line="19"/>
- <source>A valid git repository already exists there.</source>
- <translation>有効なリポジトリが既に存在しています。</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.cpp" line="42"/>
- <location filename="src/CreateRepositoryDialog.cpp" line="50"/>
- <source>The specified path is not a directory.</source>
- <translation>指定されたパスはフォルダではありません。</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.cpp" line="54"/>
- <source>Remote name is invalid.</source>
- <translation>リモート名が無効です。</translation>
- </message>
- <message>
- <location filename="src/CreateRepositoryDialog.cpp" line="62"/>
- <source>Destination Path</source>
- <translation>作成先のパス</translation>
- </message>
-</context>
-<context>
- <name>DeleteBranchDialog</name>
- <message>
- <location filename="src/DeleteBranchDialog.ui" line="14"/>
- <source>Delete Branch</source>
- <translation>ブランチの削除</translation>
- </message>
- <message>
- <location filename="src/DeleteBranchDialog.ui" line="25"/>
- <source>&amp;All branches</source>
- <translation>全てのブランチ(&amp;A)</translation>
- </message>
- <message>
- <location filename="src/DeleteBranchDialog.ui" line="45"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/DeleteBranchDialog.ui" line="52"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/DeleteBranchDialog.cpp" line="23"/>
- <source>Delete Remote Branch</source>
- <translation>リモートブランチの削除</translation>
- </message>
-</context>
-<context>
- <name>DeleteTagsDialog</name>
- <message>
- <location filename="src/DeleteTagsDialog.ui" line="14"/>
- <source>Delete tags</source>
- <translation>タグを削除</translation>
- </message>
- <message>
- <location filename="src/DeleteTagsDialog.ui" line="32"/>
- <source>Check all</source>
- <translation>全てチェック</translation>
- </message>
- <message>
- <location filename="src/DeleteTagsDialog.ui" line="52"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/DeleteTagsDialog.ui" line="62"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>DoYouWantToInitDialog</name>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="14"/>
- <source>Init Repository</source>
- <translation>リポジトリの初期化</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="20"/>
- <source>The folder:</source>
- <translation>フォルダ:</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="32"/>
- <source>is not a valid git working copy.</source>
- <translation>は、有効なGitリポジトリではありません。</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="39"/>
- <source>Do you want to init it as a git repository ?</source>
- <translation>これをGitリポジトリとして初期化しますか?</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="81"/>
- <source>Yes, Please init it.</source>
- <translation>はい、初期化します。</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="88"/>
- <source>No, Stop it.</source>
- <translation>いいえ、初期化しません。</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.ui" line="140"/>
- <source>Please choose option</source>
- <translation>選択してください</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.cpp" line="20"/>
- <source>Next...</source>
- <translation>次へ...</translation>
- </message>
- <message>
- <location filename="src/DoYouWantToInitDialog.cpp" line="26"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>EditGitIgnoreDialog</name>
- <message>
- <location filename="src/EditGitIgnoreDialog.ui" line="14"/>
- <source>Edit Git Ignore</source>
- <translation>Gitで無視するファイルの編集</translation>
- </message>
- <message>
- <location filename="src/EditGitIgnoreDialog.ui" line="20"/>
- <location filename="src/EditGitIgnoreDialog.ui" line="27"/>
- <location filename="src/EditGitIgnoreDialog.ui" line="34"/>
- <location filename="src/EditGitIgnoreDialog.ui" line="41"/>
- <source>RadioButton</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/EditGitIgnoreDialog.ui" line="63"/>
- <source>Edit the file</source>
- <translation>ファイルを編集する</translation>
- </message>
- <message>
- <location filename="src/EditGitIgnoreDialog.ui" line="83"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/EditGitIgnoreDialog.ui" line="90"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>EditRemoteDialog</name>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="14"/>
- <source>Edit Remote</source>
- <translation>リモートの編集</translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="20"/>
- <source>Remote</source>
- <translation>リモート</translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="26"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="33"/>
- <source>URL</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="53"/>
- <source>&amp;Test</source>
- <translation>テスト(&amp;T)</translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="81"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/EditRemoteDialog.ui" line="88"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
-</context>
-<context>
- <name>EditTagsDialog</name>
- <message>
- <location filename="src/EditTagsDialog.ui" line="14"/>
- <source>Edit Tags</source>
- <translation>タグの編集</translation>
- </message>
- <message>
- <location filename="src/EditTagsDialog.ui" line="41"/>
- <source>Add...</source>
- <translation>追加...</translation>
- </message>
- <message>
- <location filename="src/EditTagsDialog.ui" line="48"/>
- <source>Delete</source>
- <translation>削除</translation>
- </message>
- <message>
- <location filename="src/EditTagsDialog.ui" line="68"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
-</context>
-<context>
- <name>ExperimentDialog</name>
- <message>
- <location filename="src/ExperimentDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>FileDiffWidget</name>
- <message>
- <location filename="src/FileDiffWidget.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>FileHistoryWindow</name>
- <message>
- <location filename="src/FileHistoryWindow.ui" line="14"/>
- <source>File History</source>
- <translation>ファイルの履歴</translation>
- </message>
- <message>
- <location filename="src/FileHistoryWindow.ui" line="20"/>
- <location filename="src/FileHistoryWindow.ui" line="27"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/FileHistoryWindow.cpp" line="112"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
- <message>
- <location filename="src/FileHistoryWindow.cpp" line="113"/>
- <source>Date</source>
- <translation>日付</translation>
- </message>
- <message>
- <location filename="src/FileHistoryWindow.cpp" line="114"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/FileHistoryWindow.cpp" line="115"/>
- <source>Description</source>
- <translation>概要</translation>
- </message>
-</context>
-<context>
- <name>FilePropertyDialog</name>
- <message>
- <location filename="src/FilePropertyDialog.ui" line="14"/>
- <source>File Property</source>
- <oldsource>File Properties</oldsource>
- <translation>ファイルのプロパティ</translation>
- </message>
- <message>
- <location filename="src/FilePropertyDialog.ui" line="78"/>
- <source>&amp;Close</source>
- <translation>閉じる(&amp;C)</translation>
- </message>
-</context>
-<context>
- <name>FileViewWidget</name>
- <message>
- <location filename="src/FileViewWidget.cpp" line="31"/>
- <source>Form</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>InputNewTagDialog</name>
- <message>
- <location filename="src/InputNewTagDialog.ui" line="14"/>
- <source>Edit tag</source>
- <translation>タグの編集</translation>
- </message>
- <message>
- <location filename="src/InputNewTagDialog.ui" line="31"/>
- <source>Tag</source>
- <translation>タグ</translation>
- </message>
- <message>
- <location filename="src/InputNewTagDialog.ui" line="58"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/InputNewTagDialog.ui" line="65"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>JumpDialog</name>
- <message>
- <location filename="src/JumpDialog.ui" line="14"/>
- <source>Jump</source>
- <translation>移動</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="24"/>
- <source>Branches and Tags</source>
- <translation>ブランチとタグ</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="47"/>
- <source>&amp;Filter</source>
- <translation>フィルタ(&amp;F)</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="98"/>
- <source>Find</source>
- <translation>検索</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="126"/>
- <source>&amp;Checkout</source>
- <translation>チェックアウト(&amp;C)</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="146"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/JumpDialog.ui" line="153"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/JumpDialog.cpp" line="28"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
-</context>
-<context>
- <name>LineEditDialog</name>
- <message>
- <location filename="src/LineEditDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/LineEditDialog.ui" line="20"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/LineEditDialog.ui" line="45"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/LineEditDialog.ui" line="52"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <location filename="src/MainWindow.ui" line="14"/>
- <source>Guitar</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="96"/>
- <location filename="src/MainWindow.ui" line="1339"/>
- <location filename="src/MainWindow.ui" line="1342"/>
- <location filename="src/MainWindow.cpp" line="3569"/>
- <location filename="src/MainWindow.cpp" line="3574"/>
- <location filename="src/MainWindow.cpp" line="3591"/>
- <location filename="src/MainWindow.cpp" line="3596"/>
- <source>Clone</source>
- <translation>クローン</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="131"/>
- <source>Fetch</source>
- <translation>フェッチ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="166"/>
- <source>Pull</source>
- <translation>プル</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="201"/>
- <source>Push</source>
- <translation>プッシュ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="252"/>
- <source>Terminal</source>
- <translation>端末</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="287"/>
- <source>Explorer</source>
- <translation>エクスプローラ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="373"/>
- <source>Repository</source>
- <translation>リポジトリ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="380"/>
- <source>Branch Name</source>
- <translation>ブランチ名</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="422"/>
- <source>Offline</source>
- <translation>オフライン</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="432"/>
- <source>Online</source>
- <translation>オンライン</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="648"/>
- <source>PushButton</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="762"/>
- <location filename="src/MainWindow.cpp" line="2584"/>
- <source>Unstage</source>
- <translation>除外</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="791"/>
- <source>Select all</source>
- <translation>全て選択</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="826"/>
- <location filename="src/MainWindow.cpp" line="2454"/>
- <source>Stage</source>
- <translation>追加</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="855"/>
- <location filename="src/MainWindow.cpp" line="1331"/>
- <location filename="src/MainWindow.cpp" line="1993"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="986"/>
- <source>&amp;File</source>
- <translation>ファイル(&amp;F)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="998"/>
- <source>&amp;View</source>
- <translation>表示(&amp;V)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1004"/>
- <source>&amp;Edit</source>
- <translation>編集(&amp;E)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1330"/>
- <source>Settings</source>
- <translation>設定</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1352"/>
- <location filename="src/MainWindow.cpp" line="2318"/>
- <source>Edit tags...</source>
- <translation>タグの編集...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1355"/>
- <source>Edit tags</source>
- <translation>タグの編集</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1401"/>
- <source>reset HEAD~1</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1406"/>
- <source>Create a repository</source>
- <translation>リポジトリの作成</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1415"/>
- <source>Stop process</source>
- <translation>処理の停止</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1420"/>
- <source>E&amp;xit</source>
- <translation>終了(&amp;X)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1423"/>
- <source>Ctrl+Q</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1428"/>
- <source>Reflog...</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1433"/>
- <source>Property...</source>
- <translation>プロパティ...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1438"/>
- <location filename="src/MainWindow.ui" line="1441"/>
- <source>Set GPG signing</source>
- <translation>GPS署名の指定</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1016"/>
- <source>&amp;Help</source>
- <translation>ヘルプ(&amp;H)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1022"/>
- <source>&amp;Window</source>
- <translation>ウィンドウ(&amp;W)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1028"/>
- <source>&amp;Repository</source>
- <translation>リポジトリ(&amp;R)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1049"/>
- <source>Experiment</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1076"/>
- <source>Log</source>
- <translation>ログ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1243"/>
- <source>&amp;Open existing working copy...</source>
- <translation>既存の作業コピーを開く(&amp;O)...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1246"/>
- <location filename="src/MainWindow.cpp" line="2731"/>
- <source>Add existing working copy</source>
- <translation>既存の作業コピーを追加</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1251"/>
- <location filename="src/MainWindow.ui" line="1254"/>
- <source>Refresh</source>
- <translation>更新</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1257"/>
- <source>F5</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1266"/>
- <source>&amp;Commit</source>
- <translation>コミット(&amp;C)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1275"/>
- <source>&amp;Push</source>
- <translation>プッシュ(&amp;P)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1283"/>
- <source>test</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1286"/>
- <source>Ctrl+T</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1295"/>
- <source>Pu&amp;ll</source>
- <translation>プル(&amp;L)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1304"/>
- <source>&amp;Fetch</source>
- <translation>フェッチ(&amp;F)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1309"/>
- <location filename="src/MainWindow.ui" line="1312"/>
- <source>Edit global .gitconfig</source>
- <translation>グローバル .gitignore を編集</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1317"/>
- <source>Edit .git/config</source>
- <translation>.git/config を編集</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1322"/>
- <source>Edit .gitignore</source>
- <translation>.gitignore を編集</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1327"/>
- <source>&amp;Settings...</source>
- <translation>設定(&amp;S)...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1378"/>
- <source>&amp;Jump...</source>
- <translation>移動(&amp;J)...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1381"/>
- <source>Ctrl+J</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1386"/>
- <source>Check&amp;out...</source>
- <translation>チェックアウト(&amp;O)...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1391"/>
- <location filename="src/MainWindow.cpp" line="2330"/>
- <source>Delete branch...</source>
- <translation>ブランチの削除...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1396"/>
- <source>Push --set-upstream</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1446"/>
- <location filename="src/MainWindow.cpp" line="2331"/>
- <source>Delete remote branch...</source>
- <translation>リモートブランチの削除...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1451"/>
- <source>rebase onto</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1347"/>
- <source>&amp;About</source>
- <translation>Guitarについて(&amp;A)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1360"/>
- <source>Push all tags</source>
- <translation>全てのタグをプッシュ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1365"/>
- <source>Set config user</source>
- <translation>ユーザー情報を設定</translation>
- </message>
- <message>
- <location filename="src/MainWindow.ui" line="1373"/>
- <source>&amp;Log</source>
- <translation>ログ(&amp;L)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="769"/>
- <source>Unnamed</source>
- <translation>無名</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1047"/>
- <source>Default</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1330"/>
- <source>Graph</source>
- <translation>樹形図</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1332"/>
- <source>Date</source>
- <translation>日付</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1333"/>
- <source>Author</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1334"/>
- <source>Description</source>
- <translation>概要</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1516"/>
- <source>, %1 ahead</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1519"/>
- <source>, %1 behind</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1745"/>
- <location filename="src/MainWindow.cpp" line="2046"/>
- <source>Uncommited changes</source>
- <translation>コミットされていない変更があります</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1832"/>
- <source>Confirm Remove</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1832"/>
- <source>Are you sure you want to remove the repository from bookmarks ?</source>
- <translation>リポジトリをブックマークから削除してよろしいですか?</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1832"/>
- <source>(Files will NOT be deleted)</source>
- <translation>(ファルは削除されません)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1853"/>
- <location filename="src/MainWindow.cpp" line="1860"/>
- <source>Open Repository</source>
- <translation>リポジトリを開く</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1853"/>
- <source>No such folder</source>
- <translation>そのようなフォルダはありません</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1853"/>
- <source>Remove from bookmark ?</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1860"/>
- <location filename="src/MainWindow.cpp" line="2072"/>
- <source>Not a valid git repository</source>
- <translation>有効なリポジトリではありません</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="1993"/>
- <source>Commit message can not be omitted.</source>
- <translation>コミットメッセージを空にすることはできません。</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2072"/>
- <source>Repository Property</source>
- <translation>リポジトリのプロパティ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2209"/>
- <source>&amp;Add new group</source>
- <translation>新しいグループを追加(&amp;A)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2210"/>
- <source>&amp;Delete group</source>
- <translation>グループを削除(&amp;D)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2211"/>
- <source>&amp;Rename group</source>
- <translation>グループ名の変更(&amp;R)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2216"/>
- <source>New group</source>
- <translation>新しいグループ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2240"/>
- <source>Open &amp;terminal</source>
- <translation>端末を開く(&amp;T)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2241"/>
- <source>Open command promp&amp;t</source>
- <translation>コマンドプロンプトを開く(&amp;T)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2243"/>
- <source>&amp;Open</source>
- <translation>開く(&amp;O)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2252"/>
- <source>Open &amp;folder</source>
- <translation>フォルダを開く(&amp;F)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2254"/>
- <source>&amp;Remove</source>
- <translation>削除(&amp;R)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2301"/>
- <source>Copy commit id (7 letters)</source>
- <translation>コミットIDをコピー(7文字)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2302"/>
- <source>Copy commit id (completely)</source>
- <translation>コミットIDをコピー(すべて)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2312"/>
- <source>Edit comment...</source>
- <translation>コメントを編集...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2316"/>
- <location filename="src/MainWindow.cpp" line="4250"/>
- <source>Rebase</source>
- <translation>リベース</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2335"/>
- <source>Explore</source>
- <translation>探索</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2324"/>
- <source>Reset HEAD</source>
- <translation>HEADをリセット</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2410"/>
- <location filename="src/MainWindow.cpp" line="2459"/>
- <location filename="src/MainWindow.cpp" line="2585"/>
- <source>History</source>
- <translation>履歴</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4760"/>
- <source>Authentication Failed</source>
- <translation>認証が失敗しました</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2319"/>
- <source>Revert</source>
- <translation>変更を破棄する</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2008"/>
- <source>Failed to commit</source>
- <translation>コミット失敗</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2110"/>
- <source>No remote repository is registered.</source>
- <translation>リモートリポジトリが登録されていません。</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2132"/>
- <source>The current branch %1 has no upstream branch.</source>
- <translation>現在のブランチ「%1」には上流ブランチがありません。</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2135"/>
- <source>You try push --set-upstream</source>
- <translation>--set-upstream を試してください</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2141"/>
- <location filename="src/MainWindow.cpp" line="4373"/>
- <source>Connection refused.</source>
- <translation>接続が拒否されました。</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2190"/>
- <source>&amp;Property</source>
- <translation>プロパティ(&amp;P)</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2306"/>
- <source>Checkout/Branch...</source>
- <translation>チェックアウト/ブランチ...</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2315"/>
- <source>Merge</source>
- <translation>マージ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2317"/>
- <source>Cherry-pick</source>
- <translation>チェリーピック</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2409"/>
- <location filename="src/MainWindow.cpp" line="2458"/>
- <source>Untrack</source>
- <translation>追跡しない</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2411"/>
- <location filename="src/MainWindow.cpp" line="2460"/>
- <location filename="src/MainWindow.cpp" line="2586"/>
- <source>Blame</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2419"/>
- <source>Delete selected files.</source>
- <translation>選択されたファイルを削除します。</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2430"/>
- <source>rm --cached files</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2455"/>
- <source>Reset</source>
- <translation>リセット</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2456"/>
- <source>Ignore</source>
- <translation>無視する</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2625"/>
- <source>Reset a file</source>
- <translation>ファイルをリセットします</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4247"/>
- <source>Are you sure you want to rebase the commit ?</source>
- <translation>コミットをリベースしてよろしいですか?</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4299"/>
- <source>No repository selected</source>
- <translation>リポジトリが選択されていません</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2408"/>
- <location filename="src/MainWindow.cpp" line="2457"/>
- <source>Delete</source>
- <translation>削除</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2609"/>
- <source>Are you sure you want to run the following command ?</source>
- <translation>次のコマンドを実行してよろしいですか?</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="2640"/>
- <source>Revert all files</source>
- <translation>すべてのファイルの変更を破棄</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3278"/>
- <source>Select %1 command</source>
- <translation>%1 コマンドの選択</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3568"/>
- <source>A file with same name already exists</source>
- <translation>同じ名前のファイルが既に存在しています</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3573"/>
- <source>A folder with same name already exists</source>
- <translation>同じ名前のフォルダが既に存在しています</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3590"/>
- <source>Invalid folder</source>
- <translation>無効なフォルダ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3595"/>
- <source>No such folder. Create it now ?</source>
- <translation>このフォルダはありません。作成しますか?</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3959"/>
- <source>The URL is a valid repository</source>
- <translation>このURLは有効なリポジトリです</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3960"/>
- <source>Failed to access the URL</source>
- <translation>このURLへのアクセスに失敗しました</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="3965"/>
- <source>Remote Repository</source>
- <translation>リモートリポジトリ</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4098"/>
- <source>Jump</source>
- <translation>移動</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4098"/>
- <source>That commmit has not foud or not read yet</source>
- <translation>そのコミットは、見つからないか、まだ読み込まれていません</translation>
- </message>
- <message>
- <location filename="src/MainWindow.cpp" line="4220"/>
- <source>Failed to delete the branch &apos;%1&apos;
-</source>
- <translation>ブランチの削除に失敗しました : &apos;%1&apos;</translation>
- </message>
-</context>
-<context>
- <name>MergeBranchDialog</name>
- <message>
- <location filename="src/MergeBranchDialog.ui" line="14"/>
- <source>Merge</source>
- <translation>マージ</translation>
- </message>
- <message>
- <location filename="src/MergeBranchDialog.ui" line="26"/>
- <source>Current branch :</source>
- <translation>現在のブランチ :</translation>
- </message>
- <message>
- <location filename="src/MergeBranchDialog.ui" line="39"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MergeBranchDialog.ui" line="62"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/MergeBranchDialog.ui" line="75"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>MyImageViewWidget</name>
- <message>
- <location filename="src/MyImageViewWidget.cpp" line="35"/>
- <source>Save as...</source>
- <translation>名前を付けて保存...</translation>
- </message>
- <message>
- <location filename="src/MyImageViewWidget.cpp" line="42"/>
- <source>Save as</source>
- <translation>名前を付けて保存</translation>
- </message>
-</context>
-<context>
- <name>MyTextEditorWidget</name>
- <message>
- <location filename="src/MyTextEditorWidget.cpp" line="35"/>
- <source>Save as...</source>
- <translation>名前を付けて保存...</translation>
- </message>
- <message>
- <location filename="src/MyTextEditorWidget.cpp" line="36"/>
- <source>Copy</source>
- <translation>コピー</translation>
- </message>
- <message>
- <location filename="src/MyTextEditorWidget.cpp" line="43"/>
- <source>Save as</source>
- <translation>名前を付けて保存</translation>
- </message>
-</context>
-<context>
- <name>PushDialog</name>
- <message>
- <location filename="src/PushDialog.ui" line="14"/>
- <source>Push</source>
- <translation>プッシュ</translation>
- </message>
- <message>
- <location filename="src/PushDialog.ui" line="20"/>
- <source>push --set-upstream</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/PushDialog.ui" line="26"/>
- <source>Remote</source>
- <translation>リモート</translation>
- </message>
- <message>
- <location filename="src/PushDialog.ui" line="33"/>
- <source>Branch</source>
- <translation>ブランチ</translation>
- </message>
- <message>
- <location filename="src/PushDialog.ui" line="64"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/PushDialog.ui" line="71"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>RebaseOntoDialog</name>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="14"/>
- <source>Rebase onto</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="22"/>
- <source>New base</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="32"/>
- <source>Upstream</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="42"/>
- <source>Branch</source>
- <translation>ブランチ</translation>
- </message>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="82"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/RebaseOntoDialog.ui" line="89"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>ReflogWindow</name>
- <message>
- <location filename="src/ReflogWindow.ui" line="14"/>
- <source>Reflog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.ui" line="57"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="35"/>
- <source>Commit</source>
- <translation>コミット</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="36"/>
- <source>Head</source>
- <translation>ヘッド</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="37"/>
- <source>Command</source>
- <translation>コマンド</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="38"/>
- <source>Comment</source>
- <translation>コメント</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="98"/>
- <source>Checkout</source>
- <translation>チェックアウト</translation>
- </message>
- <message>
- <location filename="src/ReflogWindow.cpp" line="99"/>
- <source>Explorer</source>
- <translation>エクスプローラ</translation>
- </message>
-</context>
-<context>
- <name>RemoteRepositoriesTableWidget</name>
- <message>
- <location filename="src/RemoteRepositoriesTableWidget.cpp" line="27"/>
- <source>Copy URL</source>
- <translation>URLをコピー</translation>
- </message>
-</context>
-<context>
- <name>RepositoryPropertyDialog</name>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="14"/>
- <source>Repository Property</source>
- <oldsource>Repository Properties</oldsource>
- <translation>リポジトリのプロパティ</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="65"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="95"/>
- <source>Local dir :</source>
- <translation>ローカルフォルダ :</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="114"/>
- <source>Remote URLs</source>
- <translation>リモートURL</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="124"/>
- <source>Remote</source>
- <translation>リモート</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="130"/>
- <source>Add</source>
- <translation>追加</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="137"/>
- <source>Edit</source>
- <translation>編集</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="157"/>
- <source>Remove</source>
- <translation>削除</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="169"/>
- <source>&amp;Remote menu</source>
- <translation>リモートメニュー(&amp;R)</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.ui" line="189"/>
- <source>Close</source>
- <translation>閉じる</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.cpp" line="128"/>
- <source>Confirm Remove</source>
- <translation>削除の確認</translation>
- </message>
- <message>
- <location filename="src/RepositoryPropertyDialog.cpp" line="128"/>
- <source>Are you sure you want to remove the remote &apos;%1&apos; from the repository &apos;%2&apos; ?</source>
- <translation>リポジトリ「%2」からリモート「%1」を削除してよろしいですか?</translation>
- </message>
-</context>
-<context>
- <name>SearchFromGitHubDialog</name>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="14"/>
- <source>Search From GitHub</source>
- <translation>GitHubから検索</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="25"/>
- <source>Search</source>
- <translation>検索</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="78"/>
- <source>ssh</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="88"/>
- <source>http</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="115"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.ui" line="122"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.cpp" line="58"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.cpp" line="59"/>
- <source>Owner</source>
- <translation>オーナー</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.cpp" line="60"/>
- <source>Score</source>
- <translation>スコア</translation>
- </message>
- <message>
- <location filename="src/SearchFromGitHubDialog.cpp" line="61"/>
- <source>Description</source>
- <translation>概要</translation>
- </message>
-</context>
-<context>
- <name>SelectCommandDialog</name>
- <message>
- <location filename="src/SelectCommandDialog.ui" line="14"/>
- <source>Select git command</source>
- <translation>git コマンドの選択</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.ui" line="20"/>
- <source>TextLabel</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.ui" line="32"/>
- <source>&amp;Browse...</source>
- <translation>参照(&amp;B)...</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.ui" line="52"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.ui" line="59"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.cpp" line="29"/>
- <source>Please select the &apos;%1&apos; command you want to use.</source>
- <translation>使用したい &apos;%1&apos; コマンドを選択してください。</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.cpp" line="58"/>
- <location filename="src/SelectCommandDialog.cpp" line="65"/>
- <source>%1 command (%2);;</source>
- <translation>%1 コマンド (%2);;</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.cpp" line="60"/>
- <source>Executable files (*.exe)</source>
- <translation>実行可能ファイル (*.exe)</translation>
- </message>
- <message>
- <location filename="src/SelectCommandDialog.cpp" line="71"/>
- <source>%1 command</source>
- <translation>%1 コマンド</translation>
- </message>
-</context>
-<context>
- <name>SelectGpgKeyDialog</name>
- <message>
- <location filename="src/SelectGpgKeyDialog.ui" line="14"/>
- <source>Select GPG Key</source>
- <translation>GPGキーの選択</translation>
- </message>
- <message>
- <location filename="src/SelectGpgKeyDialog.ui" line="57"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectGpgKeyDialog.ui" line="64"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/SelectGpgKeyDialog.cpp" line="31"/>
- <source>ID</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectGpgKeyDialog.cpp" line="32"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SelectGpgKeyDialog.cpp" line="33"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
-</context>
-<context>
- <name>SelectItemDialog</name>
- <message>
- <location filename="src/SelectItemDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectItemDialog.ui" line="25"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SelectItemDialog.ui" line="32"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>SetGlobalUserDialog</name>
- <message>
- <location filename="src/SetGlobalUserDialog.ui" line="14"/>
- <source>Global User Setting</source>
- <translation>グローバルユーザー設定</translation>
- </message>
- <message>
- <location filename="src/SetGlobalUserDialog.ui" line="31"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SetGlobalUserDialog.ui" line="41"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/SetGlobalUserDialog.ui" line="68"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetGlobalUserDialog.ui" line="78"/>
- <source>Skip</source>
- <translation>スキップ</translation>
- </message>
-</context>
-<context>
- <name>SetGpgSigningDialog</name>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="14"/>
- <source>Set GPG Signing</source>
- <translation>GPG署名の指定</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="26"/>
- <source>Global</source>
- <translation>グローバル</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="39"/>
- <location filename="src/SetGpgSigningDialog.cpp" line="29"/>
- <source>Repository</source>
- <translation>リポジトリ</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="61"/>
- <source>ID</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="71"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="81"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="93"/>
- <source>Select</source>
- <translation>選択</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="113"/>
- <source>Clear</source>
- <translation>消去</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="127"/>
- <source>Configure...</source>
- <translation>設定...</translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="147"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetGpgSigningDialog.ui" line="154"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>SetRemoteUrlDialog</name>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="14"/>
- <source>Set Remote URL</source>
- <translation>リモートURLの設定</translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="20"/>
- <source>Current URLs</source>
- <translation>現在のURL</translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="30"/>
- <source>New URL</source>
- <translation>新しいURL</translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="36"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="91"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="98"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="43"/>
- <source>URL</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetRemoteUrlDialog.ui" line="63"/>
- <source>&amp;Test</source>
- <translation>テスト(&amp;T)</translation>
- </message>
-</context>
-<context>
- <name>SetUserDialog</name>
- <message>
- <location filename="src/SetUserDialog.ui" line="14"/>
- <source>Set User</source>
- <translation>ユーザーの設定</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="20"/>
- <source>Global</source>
- <translation>グローバル</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="27"/>
- <location filename="src/SetUserDialog.cpp" line="31"/>
- <source>Repository</source>
- <translation>リポジトリ</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="42"/>
- <source>Name</source>
- <translation>名前</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="52"/>
- <source>Mail</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="66"/>
- <source>Get icon from Gravatar</source>
- <translation>Gravatarからアイコンを取得</translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="122"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SetUserDialog.ui" line="132"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>SettingBehaviorForm</name>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="14"/>
- <source>Behavior</source>
- <translation>動作</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="20"/>
- <location filename="src/SettingBehaviorForm.cpp" line="77"/>
- <source>Default working folder</source>
- <translation>既定の作業フォルダ</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="29"/>
- <source>Browse...</source>
- <translation>参照...</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="39"/>
- <source>Automatically fetch when opening the repository</source>
- <translation>リポジトリを開くとき自動的にフェッチする</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="46"/>
- <source>Get committer&apos;s icon from gravatar.com</source>
- <translation>gravatar.comからアイコンを取得する</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="61"/>
- <source>Maximum number of commit item acquisitions</source>
- <translation>取得するコミット情報の最大個数</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="88"/>
- <source>Watch remote changes periodically</source>
- <oldsource>Periodically watch remote updates</oldsource>
- <translation>定期的リモートの変更を監視する</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="108"/>
- <source>interval</source>
- <oldsource>interval in min:</oldsource>
- <translation>間隔</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="128"/>
- <source>GPG signing policy</source>
- <oldsource>GPG Signing Policy</oldsource>
- <translation>GPG署名ポリシー</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.ui" line="135"/>
- <source>Configure...</source>
- <translation>設定...</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.cpp" line="38"/>
- <source>Disable</source>
- <translation>無効</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.cpp" line="40"/>
- <source>1 min</source>
- <translation>1分</translation>
- </message>
- <message>
- <location filename="src/SettingBehaviorForm.cpp" line="42"/>
- <source>%1 mins</source>
- <translation>%1分</translation>
- </message>
-</context>
-<context>
- <name>SettingExampleForm</name>
- <message>
- <location filename="src/SettingExampleForm.ui" line="14"/>
- <source>Example</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SettingExampleForm.ui" line="20"/>
- <source>Underconstruction</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>SettingGeneralForm</name>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="14"/>
- <source>General</source>
- <translation>一般</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="20"/>
- <source>Language</source>
- <translation>言語</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="31"/>
- <source>Change Language...</source>
- <translation>言語の変更...</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="54"/>
- <source>Change Theme...</source>
- <translation>テーマの変更...</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="66"/>
- <source>Remember and restore window position</source>
- <translation>ウィンドウの位置を記憶し復元する</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="73"/>
- <source>Enable high DPI scaling</source>
- <translation>高精細画面のスケーリングを行う</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="43"/>
- <source>Theme</source>
- <translation>テーマ</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="16"/>
- <source>English</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="17"/>
- <source>Japanese</source>
- <translation>日本語</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="19"/>
- <source>Standard</source>
- <translation>標準</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="20"/>
- <source>Dark</source>
- <translation>ダーク</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="78"/>
- <source>Select Language</source>
- <translation>言語の選択</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.cpp" line="97"/>
- <source>Select Theme</source>
- <translation>テーマの選択</translation>
- </message>
- <message>
- <location filename="src/SettingGeneralForm.ui" line="93"/>
- <source>(Changes are applied at next run)</source>
- <translation>(設定は次の実行時に有効になります)</translation>
- </message>
-</context>
-<context>
- <name>SettingNetworkForm</name>
- <message>
- <location filename="src/SettingNetworkForm.ui" line="14"/>
- <source>Network</source>
- <translation>ネットワーク</translation>
- </message>
- <message>
- <location filename="src/SettingNetworkForm.ui" line="20"/>
- <source>Proxy server</source>
- <oldsource>Proxy Server</oldsource>
- <translation>プロキシサーバー</translation>
- </message>
- <message>
- <location filename="src/SettingNetworkForm.ui" line="26"/>
- <source>No proxy</source>
- <oldsource>No Proxy</oldsource>
- <translation>プロキシなし</translation>
- </message>
- <message>
- <location filename="src/SettingNetworkForm.ui" line="33"/>
- <source>Auto detect</source>
- <oldsource>Auto Detect</oldsource>
- <translation>自動検出</translation>
- </message>
- <message>
- <location filename="src/SettingNetworkForm.ui" line="40"/>
- <source>Manual</source>
- <translation>手動</translation>
- </message>
-</context>
-<context>
- <name>SettingProgramsForm</name>
- <message>
- <location filename="src/SettingProgramsForm.ui" line="14"/>
- <source>Programs</source>
- <translation>プログラム</translation>
- </message>
- <message>
- <location filename="src/SettingProgramsForm.ui" line="20"/>
- <source>Git command</source>
- <translation>Git コマンド</translation>
- </message>
- <message>
- <location filename="src/SettingProgramsForm.ui" line="29"/>
- <location filename="src/SettingProgramsForm.ui" line="48"/>
- <location filename="src/SettingProgramsForm.ui" line="67"/>
- <source>Browse...</source>
- <translation>参照...</translation>
- </message>
- <message>
- <location filename="src/SettingProgramsForm.ui" line="39"/>
- <source>File command</source>
- <translation>File コマンド</translation>
- </message>
- <message>
- <location filename="src/SettingProgramsForm.ui" line="58"/>
- <source>GPG command (option)</source>
- <translation>GPGコマンド(オプション)</translation>
- </message>
-</context>
-<context>
- <name>SettingsDialog</name>
- <message>
- <location filename="src/SettingsDialog.ui" line="14"/>
- <source>Settings</source>
- <translation>設定</translation>
- </message>
- <message>
- <location filename="src/SettingsDialog.ui" line="141"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/SettingsDialog.ui" line="148"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>TextEditDialog</name>
- <message>
- <location filename="src/TextEditDialog.ui" line="14"/>
- <source>Dialog</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/TextEditDialog.ui" line="48"/>
- <source>OK</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/TextEditDialog.ui" line="58"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
-</context>
-<context>
- <name>WelcomeWizardDialog</name>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="14"/>
- <source>Welcome to the Guitar Wizard</source>
- <translation>Guitarウィザードへようこそ</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="45"/>
- <source>Helper Tools</source>
- <translation>ヘルパープログラム</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="61"/>
- <location filename="src/WelcomeWizardDialog.ui" line="338"/>
- <source>git</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="71"/>
- <location filename="src/WelcomeWizardDialog.ui" line="88"/>
- <location filename="src/WelcomeWizardDialog.ui" line="248"/>
- <source>Browse</source>
- <translation>参照</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="78"/>
- <location filename="src/WelcomeWizardDialog.ui" line="352"/>
- <source>file</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="120"/>
- <source>Global User Information</source>
- <translation>グローバルユーザー情報</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="142"/>
- <source>git config --global user.name</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="152"/>
- <source>git config --global user.email</source>
- <translation></translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="168"/>
- <source>Get icon from Gravatar</source>
- <translation>Gravatarからアイコンを取得</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="222"/>
- <location filename="src/WelcomeWizardDialog.cpp" line="156"/>
- <source>Default Working Folder</source>
- <translation>規定の作業フォルダ</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="238"/>
- <location filename="src/WelcomeWizardDialog.ui" line="324"/>
- <source>folder</source>
- <translation>フォルダ</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="280"/>
- <source>Ready to play the Guitar !</source>
- <translation>Guitarの準備ができました!</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="296"/>
- <source>user</source>
- <translation>ユーザー</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="310"/>
- <source>email</source>
- <translation>メール</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="426"/>
- <location filename="src/WelcomeWizardDialog.cpp" line="148"/>
- <source>&lt;&lt; Prev</source>
- <translation>&lt;&lt; 戻る</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.ui" line="433"/>
- <location filename="src/WelcomeWizardDialog.cpp" line="149"/>
- <source>Next &gt;&gt;</source>
- <translation>次へ &gt;&gt;</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.cpp" line="127"/>
- <source>Cancel</source>
- <translation>キャンセル</translation>
- </message>
- <message>
- <location filename="src/WelcomeWizardDialog.cpp" line="146"/>
- <source>Finish</source>
- <translation>完了</translation>
- </message>
-</context>
-</TS>
diff --git a/Info.plist.in b/Info.plist.in
new file mode 100644
index 0000000..eb01716
--- /dev/null
+++ b/Info.plist.in
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>CFBundleIconFile</key>
+ <string>Guitar.icns</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleGetInfoString</key>
+ <string>@CMAKE_PROJECT_VERSION@</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleExecutable</key>
+ <string>Guitar</string>
+ <key>CFBundleIdentifier</key>
+ <string>jp.soramimi.Guitar</string>
+</dict>
+</plist>
diff --git a/cmake/modules/Findzlib.cmake b/cmake/modules/Findzlib.cmake
new file mode 100644
index 0000000..7773469
--- /dev/null
+++ b/cmake/modules/Findzlib.cmake
@@ -0,0 +1,30 @@
+set(zlib_ROOT_DIR "${zlib_DIR}")
+
+find_path(zlib_INCLUDE_DIRS
+ NAMES zlib.h
+ HINTS "${zlib_ROOT_DIR}/include"
+ DOC "The zlib include directory"
+ )
+
+find_library(zlib_LIBRARIES
+ NAMES z
+ HINTS "${zlib_ROOT_DIR}/lib"
+ DOC "The zlib library"
+ )
+
+include(FindPackageHandleStandardArgs)
+
+find_package_handle_standard_args(zlib DEFAULT_MSG
+ zlib_LIBRARIES
+ zlib_INCLUDE_DIRS
+ )
+
+mark_as_advanced(zlib_INCLUDE_DIRS zlib_LIBRARIES )
+
+if(zlib_FOUND)
+ add_library(zlib SHARED IMPORTED)
+ set_target_properties(zlib PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${zlib_INCLUDE_DIRS}"
+ )
+ set_property(TARGET zlib APPEND PROPERTY IMPORTED_LOCATION "${zlib_LIBRARIES}")
+endif()
diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt
new file mode 100644
index 0000000..f21f97d
--- /dev/null
+++ b/extra/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(FileView)
diff --git a/extra/FileView/CMakeLists.txt b/extra/FileView/CMakeLists.txt
new file mode 100644
index 0000000..58071bb
--- /dev/null
+++ b/extra/FileView/CMakeLists.txt
@@ -0,0 +1,64 @@
+cmake_minimum_required(VERSION 3.2)
+
+project(FileView
+ VERSION 0.9.0
+ LANGUAGES CXX C
+)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+find_package(Qt5 COMPONENTS Core Widgets Network Svg REQUIRED)
+
+set(FileView_SOURCES
+ main.cpp
+ MainWindow.cpp
+ ../../src/texteditor/AbstractCharacterBasedApplication.cpp
+ ../../src/texteditor/InputMethodPopup.cpp
+ ../../src/texteditor/TextEditorTheme.cpp
+ ../../src/texteditor/TextEditorWidget.cpp
+ ../../src/texteditor/unicode.cpp
+ ../../src/texteditor/UnicodeWidth.cpp
+ ../../src/FileViewWidget.cpp
+ ../../src/common/joinpath.cpp
+ ../../src/common/misc.cpp
+ ../../src/ImageViewWidget.cpp
+ ../../src/MemoryReader.cpp
+ ../../src/Photoshop.cpp
+ ../../src/ImageViewWidget.cpp
+ )
+
+set(FileView_HEADERS
+ MainWindow.h
+ ../../src/texteditor/AbstractCharacterBasedApplication.h
+ ../../src/texteditor/InputMethodPopup.h
+ ../../src/texteditor/TextEditorTheme.h
+ ../../src/texteditor/TextEditorWidget.h
+ ../../src/texteditor/unicode.h
+ ../../src/texteditor/UnicodeWidth.h
+ ../../src/FileViewWidget.h
+ ../../src/common/joinpath.h
+ ../../src/common/misc.h
+ ../../src/ImageViewWidget.h
+ ../../src/MemoryReader.h
+ ../../src/Photoshop.h
+ ../../src/ImageViewWidget.h
+ )
+
+set(FileView_UIS
+ MainWindow.ui
+ )
+
+add_executable(${PROJECT_NAME}
+ ${FileView_SOURCES}
+ ${FileView_HEADERS}
+ ${FileView_UIS}
+ )
+
+target_link_libraries(${PROJECT_NAME}
+ Qt5::Widgets
+ Qt5::Network
+ Qt5::Svg
+)
diff --git a/winpty/winpty.h b/misc/winpty/winpty.h
similarity index 100%
rename from winpty/winpty.h
rename to misc/winpty/winpty.h
diff --git a/winpty/winpty.lib b/misc/winpty/winpty.lib
similarity index 100%
rename from winpty/winpty.lib
rename to misc/winpty/winpty.lib
diff --git a/winpty/winpty_constants.h b/misc/winpty/winpty_constants.h
similarity index 100%
rename from winpty/winpty_constants.h
rename to misc/winpty/winpty_constants.h
diff --git a/myzlib.h b/myzlib.h
deleted file mode 100644
index 213d57e..0000000
--- a/myzlib.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifdef __HAIKU__
-#include <zlib.h>
-#else
-#include "../zlib/zlib.h"
-#endif
-//#include <QtZlib/zlib.h>
diff --git a/prepare.rb b/prepare.rb
index d00ea42..15f2b8c 100755
--- a/prepare.rb
+++ b/prepare.rb
@@ -1,89 +1,89 @@
#!/usr/bin/ruby
# create the following files
# * version.c
# * win.rc
# * Info.plist
load 'version.rb'
def get_revision()
rev = ""
if Dir.exist?(".git")
hash = `git rev-parse HEAD`
if hash =~ /^[0-9A-Za-z]+/
rev = hash[0, 7]
end
end
return rev
end
-File.open("version.c", "w") {|f|
+File.open("src/version.h", "w") {|f|
f.puts <<_____
int copyright_year = #{$copyright_year};
char const product_version[] = "#{$version_a}.#{$version_b}.#{$version_c}";
char const source_revision[] = "#{get_revision()}";
_____
}
File.open("win.rc", "w") {|f|
f.puts <<_____
#include <windows.h>
-100 ICON DISCARDABLE "#{$product_name}.ico"
+100 ICON DISCARDABLE "src/resources/#{$product_name}.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION #{$version_a},#{$version_b},#{$version_c},#{$version_d}
PRODUCTVERSION #{$version_a},#{$version_b},#{$version_c},#{$version_d}
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041103a4"
BEGIN
VALUE "CompanyName", "S.Fuchita"
VALUE "FileDescription", "The Git GUI Client"
VALUE "FileVersion", "#{$version_a}, #{$version_b}, #{$version_c}, #{$version_d}"
VALUE "InternalName", "#{$product_name}.exe"
VALUE "LegalCopyright", "Copyright (C) #{$copyright_year} S.Fuchita (@soramimi_jp)"
VALUE "OriginalFilename","#{$product_name}.exe"
VALUE "ProductName", "#{$product_name}"
VALUE "ProductVersion", "#{$version_a}, #{$version_b}, #{$version_c}, #{$version_d}"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0411, 932
END
END
_____
}
File.open("Info.plist", "w") {|f|
f.puts <<_____
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>#{$product_name}.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>#{$version_a}.#{$version_b}.#{$version_c}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>#{$product_name}</string>
<key>CFBundleIdentifier</key>
<string>jp.soramimi.#{$product_name}</string>
</dict>
</plist>
_____
}
diff --git a/resources.qrc b/resources.qrc
deleted file mode 100644
index 3af07a0..0000000
--- a/resources.qrc
+++ /dev/null
@@ -1,43 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>image/stage.svg</file>
- <file>image/unstage.svg</file>
- <file>image/commit.svg</file>
- <file>image/push.svg</file>
- <file>image/selall.svg</file>
- <file>image/graphcolor.png</file>
- <file>image/pull.svg</file>
- <file>image/clone.svg</file>
- <file>image/fetch.svg</file>
- <file>image/digits.png</file>
- <file>image/guitar.png</file>
- <file>image/Guitar.svg</file>
- <file>image/folder.png</file>
- <file>image/repository.png</file>
- <file>image/maximize.png</file>
- <file>image/transparent.png</file>
- <file>image/file.png</file>
- <file>image/clear.png</file>
- <file>image/terminal.svg</file>
- <file>image/explorer.svg</file>
- <file>image/about.png</file>
- <file>image/redsquare.svg</file>
- <file>darktheme/button/button_normal.png</file>
- <file>darktheme/button/button_press.png</file>
- <file>darktheme/hsb/hsb_add_line.png</file>
- <file>darktheme/hsb/hsb_page_bg.png</file>
- <file>darktheme/hsb/hsb_slider.png</file>
- <file>darktheme/hsb/hsb_sub_line.png</file>
- <file>darktheme/progress/horz.png</file>
- <file>darktheme/progress/vert.png</file>
- <file>darktheme/vsb/vsb_add_line.png</file>
- <file>darktheme/vsb/vsb_page_bg.png</file>
- <file>darktheme/vsb/vsb_slider.png</file>
- <file>darktheme/vsb/vsb_sub_line.png</file>
- <file>darktheme/graphcolor.png</file>
- <file>image/menu.png</file>
- <file>image/signature-bad.png</file>
- <file>image/signature-dubious.png</file>
- <file>image/signature-good.png</file>
- </qresource>
-</RCC>
diff --git a/src/AboutDialog.cpp b/src/AboutDialog.cpp
index b20e775..653be49 100644
--- a/src/AboutDialog.cpp
+++ b/src/AboutDialog.cpp
@@ -1,67 +1,64 @@
#include "AboutDialog.h"
#include "ui_AboutDialog.h"
#include "common/misc.h"
#include <QPainter>
-// defined in 'version.c' generated by prepare.rb
-extern "C" int copyright_year;
-extern "C" char const product_version[];
-extern "C" char const source_revision[];
+#include "version.h"
AboutDialog::AboutDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::AboutDialog)
{
ui->setupUi(this);
Qt::WindowFlags flags = windowFlags();
flags &= ~Qt::WindowContextHelpButtonHint;
setWindowFlags(flags);
misc::setFixedSize(this);
QString copyright_holder = "S.Fuchita";
QString twitter_account = "soramimi_jp";
pixmap.load(":/image/about.png");
setWindowTitle(tr("About %1").arg(qApp->applicationName()));
setStyleSheet("QLabel { color: black; }");
ui->label_title->setText(appVersion());
ui->label_copyright->setText(QString("Copyright (C) %1 %2").arg(copyright_year).arg(copyright_holder));
ui->label_twitter->setText(twitter_account.isEmpty() ? QString() : QString("(@%1)").arg(twitter_account));
QString t = QString("Qt %1").arg(qVersion());
#if defined(_MSC_VER)
t += QString(", msvc=%1").arg(_MSC_VER);
#elif defined(__clang__)
t += QString(", clang=%1.%2").arg(__clang_major__).arg(__clang_minor__);
#elif defined(__GNUC__)
t += QString(", gcc=%1.%2.%3").arg(__GNUC__).arg(__GNUC_MINOR__).arg(__GNUC_PATCHLEVEL__);
#endif
ui->label_qt->setText(t);
}
AboutDialog::~AboutDialog()
{
delete ui;
}
void AboutDialog::mouseReleaseEvent(QMouseEvent *)
{
accept();
}
void AboutDialog::paintEvent(QPaintEvent *)
{
QPainter pr(this);
int w = width();
int h = height();
pr.drawPixmap(0, 0, w, h, pixmap);
}
QString AboutDialog::appVersion()
{
return QString("%1, v%2 (%3)").arg(qApp->applicationName()).arg(product_version).arg(source_revision);
}
diff --git a/src/FileViewWidget.cpp b/src/FileViewWidget.cpp
index 89065b7..ae199f8 100644
--- a/src/FileViewWidget.cpp
+++ b/src/FileViewWidget.cpp
@@ -1,171 +1,171 @@
#include "FileViewWidget.h"
#include <QMenu>
#include <QPainter>
#include <QStackedWidget>
#include <QVBoxLayout>
#include "common/misc.h"
FileViewWidget::FileViewWidget(QWidget *parent)
: QWidget(parent)
{
setObjectName(QStringLiteral("FileViewWidget"));
ui_verticalLayout = new QVBoxLayout(this);
ui_verticalLayout->setSpacing(0);
ui_verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
ui_verticalLayout->setContentsMargins(0, 0, 0, 0);
ui_stackedWidget = new QStackedWidget(this);
ui_stackedWidget->setObjectName(QStringLiteral("stackedWidget"));
ui_page_none = new QWidget();
ui_page_none->setObjectName(QStringLiteral("page_none"));
ui_stackedWidget->addWidget(ui_page_none);
ui_page_text = new X_TextEditorWidget();
ui_page_text->setObjectName(QStringLiteral("page_text"));
ui_page_text->setFocusPolicy(Qt::StrongFocus);
ui_stackedWidget->addWidget(ui_page_text);
ui_page_image = new X_ImageViewWidget();
ui_page_image->setObjectName(QStringLiteral("page_image"));
ui_page_image->setFocusPolicy(Qt::StrongFocus);
ui_stackedWidget->addWidget(ui_page_image);
ui_verticalLayout->addWidget(ui_stackedWidget);
setWindowTitle(QApplication::translate("FileViewWidget", "Form", Q_NULLPTR));
ui_stackedWidget->setCurrentIndex(1);
QMetaObject::connectSlotsByName(this);
ui_page_text->setRenderingMode(TextEditorWidget::DecoratedMode);
ui_page_text->setTheme(TextEditorTheme::Light());
ui_page_text->showHeader(false);
ui_page_text->showFooter(false);
ui_page_text->setAutoLayout(true);
ui_page_text->setReadOnly(true);
ui_page_text->setToggleSelectionAnchorEnabled(false);
ui_page_text->setFocusFrameVisible(true);
ui_stackedWidget->setCurrentWidget(ui_page_none);
}
void FileViewWidget::setTextCodec(QTextCodec *codec)
{
ui_page_text->setTextCodec(codec);
}
-void FileViewWidget::bind(BasicMainWindow *mw, FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, TextEditorThemePtr theme)
+void FileViewWidget::bind(QMainWindow *mw, FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, TextEditorThemePtr theme)
{
ui_page_text->bindScrollBar(vsb, hsb);
ui_page_image->bind(mw, fdw, vsb, hsb);
ui_page_text->setTheme(theme);
}
void FileViewWidget::setViewType(FileViewType type)
{
view_type = type;
switch (view_type) {
case FileViewType::Text:
ui_stackedWidget->setCurrentWidget(ui_page_text);
return;
case FileViewType::Image:
ui_stackedWidget->setCurrentWidget(ui_page_image);
return;
default:
ui_stackedWidget->setCurrentWidget(ui_page_none);
return;
}
}
const TextEditorTheme *FileViewWidget::theme() const
{
return ui_page_text->theme();
}
int FileViewWidget::latin1Width() const
{
return ui_page_text->latin1Width();
}
int FileViewWidget::lineHeight() const
{
return ui_page_text->lineHeight();
}
void FileViewWidget::setDiffMode(TextEditorEnginePtr editor_engine, QScrollBar *vsb, QScrollBar *hsb)
{
ui_page_text->setTextEditorEngine(editor_engine);
return ui_page_text->bindScrollBar(vsb, hsb);
}
void FileViewWidget::refrectScrollBar()
{
switch (view_type) {
case FileViewType::Text:
ui_page_text->refrectScrollBar();
return;
case FileViewType::Image:
ui_page_image->refrectScrollBar();
return;
}
}
void FileViewWidget::move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
{
return ui_page_text->move(cur_row, cur_col, scr_row, scr_col, auto_scroll);
}
void FileViewWidget::setImage(QString mimetype, QByteArray const &ba, QString const &object_id, QString const &path)
{
setViewType(FileViewType::Image);
this->source_id = object_id;
#ifdef APP_GUITAR
ui_page_image->setImage(mimetype, ba, object_id, path);
#else
ui_page_image->setImage(mimetype, ba);
#endif
}
-void FileViewWidget::setText(const QList<Document::Line> *source, BasicMainWindow *mw, QString const &object_id, QString const &object_path)
+void FileViewWidget::setText(const QList<Document::Line> *source, QMainWindow *mw, QString const &object_id, QString const &object_path)
{
setViewType(FileViewType::Text);
this->source_id = object_id;
#ifdef APP_GUITAR
- ui_page_text->setDocument(source, mw, object_id, object_path);
+ ui_page_text->setDocument(source, qobject_cast<BasicMainWindow *>(mw), object_id, object_path);
scrollToTop();
texteditor()->moveCursorOut(); // 現在行を -1 にして、カーソルを非表示にする。
#else
ui_page_text->setDocument(source);
scrollToTop();
#endif
}
-void FileViewWidget::setText(QByteArray const &ba, BasicMainWindow *mw, QString const &object_id, QString const &object_path)
+void FileViewWidget::setText(QByteArray const &ba, QMainWindow *mw, QString const &object_id, QString const &object_path)
{
std::vector<std::string> lines;
char const *begin = ba.data();
char const *end = begin + ba.size();
misc::splitLines(begin, end, &lines, true);
QList<Document::Line> source;
source.reserve(lines.size());
int num = 0;
for (std::string const &line : lines) {
Document::Line t(line);
t.line_number = ++num;
source.push_back(t);
}
setText(&source, mw, object_id, object_path);
}
void FileViewWidget::scrollToTop()
{
ui_page_text->scrollToTop();
}
void FileViewWidget::write(QKeyEvent *e)
{
ui_page_text->write(e);
}
TextEditorWidget *FileViewWidget::texteditor()
{
return ui_page_text;
}
diff --git a/src/FileViewWidget.h b/src/FileViewWidget.h
index 67961d1..ccf7ebb 100644
--- a/src/FileViewWidget.h
+++ b/src/FileViewWidget.h
@@ -1,77 +1,77 @@
#ifndef FILEVIEWWIDGET_H
#define FILEVIEWWIDGET_H
#include <QWidget>
#include "texteditor/TextEditorWidget.h"
class QScrollBar;
struct PreEditText;
class BasicMainWindow;
class FileDiffWidget;
class QVBoxLayout;
class QStackedWidget;
enum class FileViewType {
None,
Text,
Image,
};
#ifdef APP_GUITAR
#include "MyTextEditorWidget.h"
#include "MyImageViewWidget.h"
#else
#include "ImageViewWidget.h"
#endif
class FileViewWidget : public QWidget {
private:
#ifdef APP_GUITAR
using X_TextEditorWidget = MyTextEditorWidget;
using X_ImageViewWidget = MyImageViewWidget;
#else
using X_TextEditorWidget = TextEditorWidget;
using X_ImageViewWidget = ImageViewWidget;
#endif
QVBoxLayout *ui_verticalLayout;
QStackedWidget *ui_stackedWidget;
QWidget *ui_page_none;
X_TextEditorWidget *ui_page_text;
X_ImageViewWidget *ui_page_image;
QString source_id;
FileViewType view_type = FileViewType::None;
public:
explicit FileViewWidget(QWidget *parent = 0);
~FileViewWidget()
{
}
void setTextCodec(QTextCodec *codec);
void setViewType(FileViewType type);
void setImage(QString mimetype, const QByteArray &ba, QString const &object_id, const QString &path);
- void setText(const QList<Document::Line> *source, BasicMainWindow *mw, QString const &object_id, const QString &object_path);
- void setText(const QByteArray &ba, BasicMainWindow *mw, const QString &object_id, const QString &object_path);
+ void setText(const QList<Document::Line> *source, QMainWindow *mw, QString const &object_id, const QString &object_path);
+ void setText(const QByteArray &ba, QMainWindow *mw, const QString &object_id, const QString &object_path);
void setDiffMode(TextEditorEnginePtr editor_engine, QScrollBar *vsb, QScrollBar *hsb);
int latin1Width() const;
int lineHeight() const;
TextEditorTheme const *theme() const;
void scrollToTop();
void write(QKeyEvent *e);
void refrectScrollBar();
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll);
TextEditorWidget *texteditor();
- void bind(BasicMainWindow *mw, FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, TextEditorThemePtr theme);
+ void bind(QMainWindow *mw, FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, TextEditorThemePtr theme);
};
#endif // FILEVIEWWIDGET_H
diff --git a/src/GitPack.cpp b/src/GitPack.cpp
index c206141..e052815 100644
--- a/src/GitPack.cpp
+++ b/src/GitPack.cpp
@@ -1,252 +1,252 @@
#include "GitPack.h"
-#include "../myzlib.h"
+#include <zlib.h>
#include <QDebug>
#include <QFile>
#include "GitPackIdxV2.h"
void GitPack::decodeTree(QByteArray *out)
{
if (out && out->size() > 0) {
QByteArray ba;
uint8_t const *begin = (uint8_t const *)out->data();
uint8_t const *end = begin + out->size();
uint8_t const *ptr = begin;
while (ptr < end) {
int mode = 0;
while (ptr < end) {
int c = *ptr & 0xff;
ptr++;
if (isdigit(c & 0xff)) {
mode = mode * 10 + (c - '0');
} else if (c == ' ') {
break;
}
}
uint8_t const *left = ptr;
while (ptr < end && *ptr) {
ptr++;
}
std::string name(left, ptr);
if (ptr + 20 < end) {
ptr++;
char tmp[100];
sprintf(tmp, "%06u %s ", mode, mode < 100000 ? "tree" : "blob");
char *p = tmp + 12;
for (int i = 0; i < 20; i++) {
sprintf(p, "%02x", ptr[i]);
p += 2;
}
ba.append(tmp, p - tmp);
ba.append('\t');
ba.append(name.c_str(), name.size());
ba.append('\n');
ptr += 20;
} else {
break;
}
}
*out = std::move(ba);
}
}
Git::Object::Type GitPack::stripHeader(QByteArray *out)
{
if (out) {
int n = out->size();
if (n > 0) {
char const *p = out->data();
if (n > 16) n = 16;
for (int i = 0; i < n; i++) {
if (p[i] == 0) {
Git::Object::Type type = Git::Object::Type::UNKNOWN;
if (strncmp(p, "blob ", 5) == 0) {
type = Git::Object::Type::BLOB;
} else if (strncmp(p, "tree ", 5) == 0) {
type = Git::Object::Type::TREE;
} else if (strncmp(p, "commit ", 7) == 0) {
type = Git::Object::Type::COMMIT;
} else if (strncmp(p, "tag ", 4) == 0) {
type = Git::Object::Type::TAG;
}
if (type != Git::Object::Type::UNKNOWN) {
*out = out->mid(i + 1);
}
return type;
}
}
}
}
return Git::Object::Type::UNKNOWN;
}
bool GitPack::decompress(QIODevice *in, size_t expanded_size, QByteArray *out, size_t *consumed, uint32_t *crc)
{
if (consumed) *consumed = 0;
try {
int err;
z_stream d_stream;
d_stream.zalloc = nullptr;
d_stream.zfree = nullptr;
d_stream.opaque = nullptr;
d_stream.next_in = nullptr;
d_stream.avail_in = 0;
err = inflateInit(&d_stream);
if (err != Z_OK) {
throw QString("failed: inflateInit");
}
while (1) {
if (expanded_size > 0 && (size_t)out->size() > expanded_size) {
throw QString("file too large");
}
uint8_t src[1024];
uint8_t tmp[65536];
if (d_stream.next_in != src && d_stream.avail_in > 0) {
memmove(src, d_stream.next_in, d_stream.avail_in);
}
d_stream.next_in = src;
if (d_stream.avail_in < sizeof(src)) {
int n = sizeof(src) - d_stream.avail_in;
n = in->read((char *)(src + d_stream.avail_in), n);
if (n >= 0) {
d_stream.avail_in += n;
}
}
d_stream.next_out = tmp;
size_t l = expanded_size - out->size();
if (l > sizeof(tmp)) l = sizeof(tmp);
d_stream.avail_out = l;
uLong total = d_stream.total_out;
err = ::inflate(&d_stream, Z_NO_FLUSH);
int in_len = (uint8_t *)d_stream.next_in - src;
if (consumed) *consumed += in_len;
if (crc) *crc = crc32(*crc, src, in_len);
int out_len = d_stream.total_out - total;
out->append((char const *)tmp, out_len);
if (err == Z_STREAM_END) {
break;
}
if (err != Z_OK) {
throw QString("failed: inflate");
}
}
err = inflateEnd(&d_stream);
if (err != Z_OK) {
throw QString("failed: inflateEnd");
}
return true;
} catch (QString const &e) {
qDebug() << e;
}
return false;
}
bool GitPack::seekPackedObject(QIODevice *file, const GitPackIdxItem *item, Info *out)
{
try {
Info info;
auto Read = [&](void *ptr, size_t len){
const auto l = file->read((char *)ptr, len);
if (l < 0 || ((size_t)(l)) != len) {
throw QString("failed to read");
}
info.checksum = crc32(info.checksum, (uint8_t const *)ptr, len);
};
file->seek(0);
uint32_t header[3];
Read(header, sizeof(int32_t) * 3);
if (memcmp(header, "PACK", 4) != 0) throw QString("invalid pack file");
uint32_t version = read_uint32_be(header + 1);
if (version < 2) throw QString("invalid pack file version");
/*int count = */read_uint32_be(header + 2);
file->seek(item->offset);
info.checksum = 0;
// cf. https://github.com/github/git-msysgit/blob/master/builtin/unpack-objects.c
{
size_t size = 0;
char c;
Read(&c, 1);
info.type = (Git::Object::Type)((c >> 4) & 7);
size = c & 0x0f;
int shift = 4;
while (c & 0x80) {
Read(&c, 1);
size |= (c & 0x7f) << shift;
shift += 7;
}
info.expanded_size = size;
}
if (info.type == Git::Object::Type::OFS_DELTA) {
uint64_t offset = 0;
char c;
Read(&c, 1);
offset = c & 0x7f;
while (c & 0x80) {
Read(&c, 1);
offset = ((offset + 1) << 7) | (c & 0x7f);
}
info.offset = offset;
} else if (info.type == Git::Object::Type::REF_DELTA) {
char bin[20];
Read(bin, 20);
char tmp[41];
for (int i = 0; i < 20; i++) {
sprintf(tmp + i * 2, "%02x", bin[i] & 0xff);
}
info.ref_id = QString::fromLatin1(tmp, GIT_ID_LENGTH);
}
*out = info;
return true;
} catch (QString const &e) {
qDebug() << e;
}
return false;
}
bool GitPack::load(QIODevice *file, const GitPackIdxItem *item, Object *out)
{
*out = Object();
try {
seekPackedObject(file, item, out);
if (decompress(file, out->expanded_size, &out->content, &out->packed_size, &out->checksum)) {
out->expanded_size = out->expanded_size;
return true;
}
} catch (QString const &e) {
qDebug() << e;
}
return false;
}
bool GitPack::load(QString const &packfile, const GitPackIdxItem *item, GitPack::Object *out)
{
QFile file(packfile);
if (file.open(QFile::ReadOnly)) {
if (load(&file, item, out)) {
return true;
}
}
return false;
}
diff --git a/src/ImageViewWidget.cpp b/src/ImageViewWidget.cpp
index 791a14b..a4c54b2 100644
--- a/src/ImageViewWidget.cpp
+++ b/src/ImageViewWidget.cpp
@@ -1,373 +1,373 @@
#include "ImageViewWidget.h"
#include "FileDiffSliderWidget.h"
#include "FileDiffWidget.h"
#include "MainWindow.h"
#include "MemoryReader.h"
#include "Photoshop.h"
#include "charvec.h"
#include "common/joinpath.h"
#include "common/misc.h"
#include <QBuffer>
#include <QDebug>
#include <QFileDialog>
#include <QMenu>
#include <QPainter>
#include <QSvgRenderer>
#include <QWheelEvent>
#include <cmath>
#include <functional>
#include <memory>
using SvgRendererPtr = std::shared_ptr<QSvgRenderer>;
struct ImageViewWidget::Private {
- BasicMainWindow *mainwindow = nullptr;
+ QMainWindow *mainwindow = nullptr;
FileDiffWidget *filediffwidget = nullptr;
FileDiffWidget::DrawData *draw_data = nullptr;
QScrollBar *v_scroll_bar = nullptr;
QScrollBar *h_scroll_bar = nullptr;
QString mime_type;
QPixmap pixmap;
SvgRendererPtr svg;
double image_scroll_x = 0;
double image_scroll_y = 0;
double image_scale = 1;
double scroll_origin_x = 0;
double scroll_origin_y = 0;
QPoint mouse_press_pos;
int wheel_delta = 0;
QPointF interest_pos;
int top_margin = 1;
int bottom_margin = 1;
bool draw_left_border = true;
#ifndef APP_GUITAR
QPixmap transparent_pixmap;
#endif
};
ImageViewWidget::ImageViewWidget(QWidget *parent)
: QWidget(parent)
, m(new Private)
{
#if defined(Q_OS_WIN32)
setFont(QFont("MS Gothic"));
#elif defined(Q_OS_LINUX)
setFont(QFont("Monospace"));
#elif defined(Q_OS_MAC)
setFont(QFont("Menlo"));
#endif
setContextMenuPolicy(Qt::DefaultContextMenu);
}
ImageViewWidget::~ImageViewWidget()
{
delete m;
}
-void ImageViewWidget::bind(BasicMainWindow *mainwindow, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb)
+void ImageViewWidget::bind(QMainWindow *mainwindow, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb)
{
m->mainwindow = mainwindow;
m->filediffwidget = filediffwidget;
m->v_scroll_bar = vsb;
m->h_scroll_bar = hsb;
}
bool ImageViewWidget::hasFocus() const
{
QWidget *w = qApp->focusWidget();
return w && w != m->filediffwidget && w->isAncestorOf(this);
}
void ImageViewWidget::setLeftBorderVisible(bool f)
{
m->draw_left_border = f;
}
void ImageViewWidget::internalScrollImage(double x, double y)
{
m->image_scroll_x = x;
m->image_scroll_y = y;
QSizeF sz = imageScrollRange();
if (m->image_scroll_x < 0) m->image_scroll_x = 0;
if (m->image_scroll_y < 0) m->image_scroll_y = 0;
if (m->image_scroll_x > sz.width()) m->image_scroll_x = sz.width();
if (m->image_scroll_y > sz.height()) m->image_scroll_y = sz.height();
update();
}
void ImageViewWidget::scrollImage(double x, double y)
{
internalScrollImage(x, y);
if (m->h_scroll_bar) {
m->h_scroll_bar->blockSignals(true);
m->h_scroll_bar->setValue((int)m->image_scroll_x);
m->h_scroll_bar->blockSignals(false);
}
if (m->v_scroll_bar) {
m->v_scroll_bar->blockSignals(true);
m->v_scroll_bar->setValue((int)m->image_scroll_y);
m->v_scroll_bar->blockSignals(false);
}
}
void ImageViewWidget::refrectScrollBar()
{
double e = 0.75;
double x = m->h_scroll_bar->value();
double y = m->v_scroll_bar->value();
if (fabs(x - m->image_scroll_x) < e) x = m->image_scroll_x; // 差が小さいときは値を維持する
if (fabs(y - m->image_scroll_y) < e) y = m->image_scroll_y;
internalScrollImage(x, y);
}
void ImageViewWidget::clear()
{
m->mime_type = QString();
m->pixmap = QPixmap();
setMouseTracking(false);
update();
}
QString ImageViewWidget::formatText(Document::Line const &line)
{
QByteArray const &ba = line.text;
if (ba.isEmpty()) return QString();
std::vector<char> vec;
vec.reserve(ba.size() + 100);
char const *begin = ba.data();
char const *end = begin + ba.size();
char const *ptr = begin;
int x = 0;
while (ptr < end) {
if (*ptr == '\t') {
do {
vec.push_back(' ');
x++;
} while ((x % 4) != 0);
ptr++;
} else {
vec.push_back(*ptr);
ptr++;
x++;
}
}
return QString::fromUtf8(&vec[0], vec.size());
}
QSizeF ImageViewWidget::imageScrollRange() const
{
QSize sz = imageSize();
int w = int(sz.width() * m->image_scale);
int h = int(sz.height() * m->image_scale);
return QSize(w, h);
}
void ImageViewWidget::setScrollBarRange(QScrollBar *h, QScrollBar *v)
{
h->blockSignals(true);
v->blockSignals(true);
QSizeF sz = imageScrollRange();
h->setRange(0, (int)sz.width());
v->setRange(0, (int)sz.height());
h->setPageStep(width());
v->setPageStep(height());
h->blockSignals(false);
v->blockSignals(false);
}
void ImageViewWidget::updateScrollBarRange()
{
setScrollBarRange(m->h_scroll_bar, m->v_scroll_bar);
}
-BasicMainWindow *ImageViewWidget::mainwindow()
+QMainWindow *ImageViewWidget::mainwindow()
{
return m->mainwindow;
}
QBrush ImageViewWidget::getTransparentBackgroundBrush()
{
#ifdef APP_GUITAR
- return mainwindow()->getTransparentPixmap();
+ return qobject_cast<BasicMainWindow *>(mainwindow())->getTransparentPixmap();
#else
if (m->transparent_pixmap.isNull()) {
m->transparent_pixmap = QPixmap(":/image/transparent.png");
}
return m->transparent_pixmap;
#endif
}
bool ImageViewWidget::isValidImage() const
{
return !m->pixmap.isNull() || (m->svg && m->svg->isValid());
}
QSize ImageViewWidget::imageSize() const
{
if (!m->pixmap.isNull()) return m->pixmap.size();
if (m->svg && m->svg->isValid()) return m->svg->defaultSize();
return QSize();
}
void ImageViewWidget::paintEvent(QPaintEvent *)
{
QPainter pr(this);
QSize imagesize = imageSize();
if (imagesize.width() > 0 && imagesize.height() > 0) {
pr.save();
if (!m->draw_left_border) {
pr.setClipRect(1, 0, width() - 1, height());
}
double cx = width() / 2.0;
double cy = height() / 2.0;
double x = cx - m->image_scroll_x;
double y = cy - m->image_scroll_y;
QSizeF sz = imageScrollRange();
if (sz.width() > 0 && sz.height() > 0) {
QBrush br = getTransparentBackgroundBrush();
pr.setBrushOrigin((int)x, (int)y);
pr.fillRect((int)x, (int)y, (int)sz.width(), (int)sz.height(), br);
if (!m->pixmap.isNull()) {
pr.drawPixmap((int)x, (int)y, (int)sz.width(), (int)sz.height(), m->pixmap, 0, 0, imagesize.width(), imagesize.height());
} else if (m->svg && m->svg->isValid()) {
m->svg->render(&pr, QRectF(x, y, sz.width(), sz.height()));
}
}
misc::drawFrame(&pr, (int)x - 1, (int)y - 1, (int)sz.width() + 2, (int)sz.height() + 2, Qt::black);
pr.restore();
}
if (m->draw_left_border) {
pr.fillRect(0, 0, 1, height(), QColor(160, 160, 160));
}
if (hasFocus()) {
misc::drawFrame(&pr, 0, 0, width(), height(), QColor(0, 128, 255, 128));
misc::drawFrame(&pr, 1, 1, width() - 2, height() - 2, QColor(0, 128, 255, 64));
}
}
void ImageViewWidget::resizeEvent(QResizeEvent *)
{
updateScrollBarRange();
}
void ImageViewWidget::setImage(QString mimetype, QByteArray const &ba)
{
if (mimetype.isEmpty()) {
mimetype = "image/x-unknown";
}
setMouseTracking(true);
m->pixmap = QPixmap();
m->svg = SvgRendererPtr();
if (!ba.isEmpty()) {
if (misc::isSVG(mimetype)) {
m->svg = std::make_shared<QSvgRenderer>(ba);
} else if (misc::isPSD(mimetype)) {
if (!ba.isEmpty()) {
MemoryReader reader(ba.data(), ba.size());
if (reader.open(QIODevice::ReadOnly)) {
std::vector<char> jpeg;
photoshop::readThumbnail(&reader, &jpeg);
if (!jpeg.empty()) {
m->pixmap.loadFromData((uchar const *)&jpeg[0], jpeg.size());
}
}
}
} else {
m->pixmap.loadFromData(ba);
}
}
QSize sz = imageSize();
double sx = sz.width();
double sy = sz.height();
if (sx > 0 && sy > 0) {
sx = width() / sx;
sy = height() / sy;
m->image_scale = (sx < sy ? sx : sy) * 0.9;
}
updateScrollBarRange();
m->h_scroll_bar->blockSignals(true);
m->v_scroll_bar->blockSignals(true);
m->h_scroll_bar->setValue(m->h_scroll_bar->maximum() / 2);
m->v_scroll_bar->setValue(m->v_scroll_bar->maximum() / 2);
m->h_scroll_bar->blockSignals(false);
m->v_scroll_bar->blockSignals(false);
refrectScrollBar();
}
void ImageViewWidget::mousePressEvent(QMouseEvent *e)
{
if (e->button() == Qt::LeftButton) {
QPoint pos = mapFromGlobal(QCursor::pos());
m->mouse_press_pos = pos;
m->scroll_origin_x = m->image_scroll_x;
m->scroll_origin_y = m->image_scroll_y;
}
}
void ImageViewWidget::mouseMoveEvent(QMouseEvent *e)
{
if (isValidImage()) {
QPoint pos = mapFromGlobal(QCursor::pos());
if ((e->buttons() & Qt::LeftButton) && hasFocus()) {
int delta_x = pos.x() - m->mouse_press_pos.x();
int delta_y = pos.y() - m->mouse_press_pos.y();
scrollImage(m->scroll_origin_x - delta_x, m->scroll_origin_y - delta_y);
}
double cx = width() / 2.0;
double cy = height() / 2.0;
double x = (pos.x() + 0.5 - cx + m->image_scroll_x) / m->image_scale;
double y = (pos.y() + 0.5 - cy + m->image_scroll_y) / m->image_scale;
m->interest_pos = QPointF(x, y);
m->wheel_delta = 0;
}
}
void ImageViewWidget::setImageScale(double scale)
{
if (scale < 1 / 32.0) scale = 1 / 32.0;
if (scale > 32) scale = 32;
m->image_scale = scale;
}
void ImageViewWidget::wheelEvent(QWheelEvent *e)
{
if (isValidImage()) {
double scale = 1;
const double mul = 1.189207115; // sqrt(sqrt(2))
m->wheel_delta += e->delta();
while (m->wheel_delta >= 120) {
m->wheel_delta -= 120;
scale *= mul;
}
while (m->wheel_delta <= -120) {
m->wheel_delta += 120;
scale /= mul;
}
setImageScale(m->image_scale * scale);
updateScrollBarRange();
double cx = width() / 2.0;
double cy = height() / 2.0;
QPoint pos = mapFromGlobal(QCursor::pos());
double dx = m->interest_pos.x() * m->image_scale + cx - (pos.x() + 0.5);
double dy = m->interest_pos.y() * m->image_scale + cy - (pos.y() + 0.5);
scrollImage(dx, dy);
update();
}
}
diff --git a/src/ImageViewWidget.h b/src/ImageViewWidget.h
index 562fd17..5edfae9 100644
--- a/src/ImageViewWidget.h
+++ b/src/ImageViewWidget.h
@@ -1,57 +1,57 @@
#ifndef IMAGEVIEWWIDGET_H
#define IMAGEVIEWWIDGET_H
#include <QScrollBar>
#include <QWidget>
#include "Git.h"
#include "MainWindow.h"
#include "AbstractCharacterBasedApplication.h"
class FileDiffWidget;
class FileDiffSliderWidget;
class ImageViewWidget : public QWidget {
Q_OBJECT
private:
struct Private;
Private *m;
bool isValidImage() const;
QSize imageSize() const;
QSizeF imageScrollRange() const;
void internalScrollImage(double x, double y);
void scrollImage(double x, double y);
void setImageScale(double scale);
QBrush getTransparentBackgroundBrush();
bool hasFocus() const;
void setScrollBarRange(QScrollBar *h, QScrollBar *v);
void updateScrollBarRange();
protected:
- BasicMainWindow *mainwindow();
+ QMainWindow *mainwindow();
void resizeEvent(QResizeEvent *) override;
void paintEvent(QPaintEvent *) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void wheelEvent(QWheelEvent *) override;
public:
explicit ImageViewWidget(QWidget *parent = nullptr);
~ImageViewWidget() override;
- void bind(BasicMainWindow *m, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb);
+ void bind(QMainWindow *m, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb);
void clear();
void setImage(QString mimetype, QByteArray const &ba);
void setLeftBorderVisible(bool f);
void refrectScrollBar();
static QString formatText(const Document::Line &line2);
signals:
void scrollByWheel(int lines);
};
#endif // IMAGEVIEWWIDGET_H
diff --git a/src/MyImageViewWidget.cpp b/src/MyImageViewWidget.cpp
index 7ed2189..8d3ca85 100644
--- a/src/MyImageViewWidget.cpp
+++ b/src/MyImageViewWidget.cpp
@@ -1,52 +1,53 @@
#include "MyImageViewWidget.h"
#include <QMenu>
#include <QFileDialog>
#include "common/misc.h"
#include "common/joinpath.h"
MyImageViewWidget::MyImageViewWidget(QWidget *parent)
: ImageViewWidget(parent)
{
}
void MyImageViewWidget::setImage(QString mimetype, QByteArray const &ba, QString const &object_id, QString const &path)
{
this->object_id_ = object_id;
this->path_ = path;
ImageViewWidget::setImage(mimetype, ba);
}
void MyImageViewWidget::contextMenuEvent(QContextMenuEvent *e)
{
QString id = object_id_;
if (id.startsWith(PATH_PREFIX)) {
// pass
} else if (Git::isValidID(id)) {
// pass
} else {
return; // invalid id
}
QMenu menu;
QAction *a_save_as = id.isEmpty() ? nullptr : menu.addAction(tr("Save as..."));
if (!menu.actions().isEmpty()) {
update();
QAction *a = menu.exec(misc::contextMenuPos(this, e));
if (a) {
if (a == a_save_as) {
- QString path = mainwindow()->currentWorkingCopyDir() / path_;
+ auto *mw = qobject_cast<MainWindow *>(mainwindow());
+ QString path = mw->currentWorkingCopyDir() / path_;
QString dstpath = QFileDialog::getSaveFileName(window(), tr("Save as"), path);
if (!dstpath.isEmpty()) {
- mainwindow()->saveAs(id, dstpath);
+ mw->saveAs(id, dstpath);
}
update();
return;
}
}
}
}
diff --git a/src/gunzip.cpp b/src/gunzip.cpp
index b68eb70..abf36f7 100644
--- a/src/gunzip.cpp
+++ b/src/gunzip.cpp
@@ -1,228 +1,228 @@
#include "gunzip.h"
-#include "myzlib.h"
+#include <zlib.h>
#include <cstdint>
#include <QFile>
void gunzip::set_header_only(bool f)
{
header_only = f;
}
void gunzip::set_maximul_size(int64_t size)
{
maxsize = size;
}
bool gunzip::decode(QIODevice *input, QIODevice *output)
{
error = QString();
try {
struct Header {
uint8_t id1;
uint8_t id2;
uint8_t cm;
uint8_t flg;
uint8_t mtime[4];
uint8_t xfl;
uint8_t os;
};
enum {
FTEXT = 0x01,
FHCRC = 0x02,
FEXTRA = 0x04,
FNAME = 0x08,
FCOMMENT = 0x10,
};
unsigned char ibuf[4096];
bool ok = true;
int n;
n = input->read((char *)ibuf, sizeof(Header));
if (n != 10) {
throw QString("failed to read the header");
}
auto *h = (Header *)ibuf;
if (h->id1 == 0x1f && h->id2 == 0x8b && h->cm == 8) {
// ok
if (header_only) {
return true;
}
} else {
throw QString("invalid input format");
}
auto ReadText = [&](){
char c;
std::vector<uint8_t> vec;
while (1) {
if (input->read(&c, 1) != 1) {
break;
}
if (c == 0) break;
vec.push_back((uint8_t)c);
}
std::string str;
if (!vec.empty()) {
str.assign((char const *)&vec[0], vec.size());
}
return str;
};
if (h->flg & FEXTRA) {
n = input->read((char *)ibuf, 2);
n = ((uint8_t)ibuf[1] << 8) | (uint8_t)ibuf[0];
input->seek(input->pos() + n);
}
if (h->flg & FNAME) {
std::string name = ReadText();
(void)name;
}
if (h->flg & FCOMMENT) {
std::string comment = ReadText();
(void)comment;
}
if (h->flg & FHCRC) {
input->read((char *)ibuf, 2);
}
z_stream stream;
uint32_t crc = 0;
int err;
stream.zalloc = nullptr;
stream.zfree = nullptr;
stream.opaque = nullptr;
stream.next_in = ibuf;
stream.avail_in = 0;
err = inflateInit2(&stream, -MAX_WBITS);
if (err != Z_OK) {
throw QString("inflateInit2 faled");
}
if (open) {
if (!open(output)) {
ok = false;
}
} else {
if (!output->open(QIODevice::WriteOnly)) {
ok = false;
}
}
if (!ok) throw QString("failed to open the output device");
int64_t inpos = input->pos();
auto Close = [&](){
if (close) {
close(output);
} else {
output->close();
}
inflateEnd(&stream);
};
try {
while (1) {
if (stream.avail_in == 0) {
stream.next_in = ibuf;
}
if (stream.avail_in < sizeof(ibuf)) {
stream.next_in = ibuf + stream.avail_in;
auto len = input->read((char *)stream.next_in, sizeof(ibuf) - stream.avail_in);
stream.avail_in += len;
}
unsigned char obuf[65536];
stream.next_out = obuf; /* discard the output */
stream.avail_out = sizeof(obuf);
if (maxsize != -1 && stream.total_out + stream.avail_out > (unsigned)maxsize && (unsigned)maxsize >= stream.total_out) {
stream.avail_out = maxsize - stream.total_out;
}
uLong total_out = stream.total_out;
err = ::inflate(&stream, Z_NO_FLUSH);
int n = stream.total_out - total_out;
if (write) {
if (!write(output, (char const *)obuf, n)) {
ok = false;
}
} else {
int w = output->write((char const *)obuf, n);
if (w != n) {
ok = false;
}
}
if (!ok) throw QString("failed to write to the output device");
crc = crc32(crc, (unsigned char const *)obuf, n);
if (err == Z_STREAM_END) {
break;
}
if (err != Z_OK) {
throw QString("inflate failed");
}
if (stream.total_out >= (unsigned)maxsize) {
break;
}
}
} catch (...) {
Close();
throw;
}
Close();
input->seek(inpos + stream.total_in);
n = input->read((char *)ibuf, 8);
auto ReadU32LE = [](void const *p)->uint32_t{
auto const *q = (uint8_t const *)p;
return (q[3] << 24) | (q[2] << 16) | (q[1] << 8) | q[0];
};
auto c = ReadU32LE(ibuf);
auto l = ReadU32LE(ibuf + 4);
if (c != crc) throw QString("crc incorrect");
if (l != stream.total_out) throw QString("length incorrect");
return true;
} catch (QString const &e) {
error = e;
}
return false;
}
bool gunzip::decode(QString const &inpath, QString const &outpath)
{
QFile infile(inpath);
QFile outfile(outpath);
if (infile.open(QFile::ReadOnly)) {
if (decode(&infile, &outfile)) {
return true;
}
}
return false;
}
bool gunzip::is_valid_gz_file(QIODevice *input)
{
gunzip z;
z.set_header_only(true);
return z.decode(input, nullptr);
}
bool gunzip::is_valid_gz_file(QString const &inpath)
{
QFile infile(inpath);
if (infile.open(QFile::ReadOnly)) {
gunzip z;
if (z.is_valid_gz_file(&infile)) {
return true;
}
}
return false;
}
diff --git a/version.h.in b/version.h.in
new file mode 100644
index 0000000..f931ac1
--- /dev/null
+++ b/version.h.in
@@ -0,0 +1,10 @@
+#ifndef GUITAR_VERSION_H
+#define GUITAR_VERSION_H
+
+// this file was autogenerated from src/version.h.in
+
+int copyright_year = @Guitar_copyright_year@;
+char const product_version[] = "@CMAKE_PROJECT_VERSION@";
+char const source_revision[] = "@Guitar_git_hash@";
+
+#endif // GUITAR_VERSION_H
diff --git a/win.rc.in b/win.rc.in
new file mode 100644
index 0000000..cbdbb9f
--- /dev/null
+++ b/win.rc.in
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+100 ICON DISCARDABLE "Guitar.ico"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION @CMAKE_PROJECT_VERSION_MAJOR@,@CMAKE_PROJECT_VERSION_MINOR@,@CMAKE_PROJECT_VERSION_PATCH@,0
+ PRODUCTVERSION @CMAKE_PROJECT_VERSION_MAJOR@,@CMAKE_PROJECT_VERSION_MINOR@,@CMAKE_PROJECT_VERSION_PATCH@,0
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "041103a4"
+ BEGIN
+ VALUE "CompanyName", "S.Fuchita"
+ VALUE "FileDescription", "The Git GUI Client"
+ VALUE "FileVersion", "@CMAKE_PROJECT_VERSION_MAJOR@, @CMAKE_PROJECT_VERSION_MINOR@, @CMAKE_PROJECT_VERSION_PATCH@0, 0"
+ VALUE "InternalName", "Guitar.exe"
+ VALUE "LegalCopyright", "Copyright (C) @Guitar_copyright_year S.Fuchita (@soramimi_jp)"
+ VALUE "OriginalFilename","Guitar.exe"
+ VALUE "ProductName", "Guitar"
+ VALUE "ProductVersion", "@CMAKE_PROJECT_VERSION_MAJOR@, @CMAKE_PROJECT_VERSION_MINOR@, @CMAKE_PROJECT_VERSION_PATCH@0, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0411, 932
+ END
+END
diff --git a/zlib.pro b/zlib.pro
deleted file mode 100644
index 913f468..0000000
--- a/zlib.pro
+++ /dev/null
@@ -1,42 +0,0 @@
-unix:CONFIG(debug,debug|release):TARGET = zd
-unix:CONFIG(release,debug|release):TARGET = z
-win32:CONFIG(debug,debug|release):TARGET = libzd
-win32:CONFIG(release,debug|release):TARGET = libz
-
-TEMPLATE = lib
-CONFIG += console staticlib
-CONFIG -= app_bundle
-CONFIG -= qt
-
-DESTDIR = $$PWD/_bin
-
-SOURCES += \
- ../zlib/gzclose.c \
- ../zlib/uncompr.c \
- ../zlib/compress.c \
- ../zlib/adler32.c \
- ../zlib/crc32.c \
- ../zlib/gzread.c \
- ../zlib/infback.c \
- ../zlib/inflate.c \
- ../zlib/trees.c \
- ../zlib/zutil.c \
- ../zlib/inffast.c \
- ../zlib/inftrees.c \
- ../zlib/gzlib.c \
- ../zlib/gzwrite.c \
- ../zlib/deflate.c
-
-HEADERS += \
- ../zlib/trees.h \
- ../zlib/inftrees.h \
- ../zlib/inffast.h \
- ../zlib/inffixed.h \
- ../zlib/crc32.h \
- ../zlib/inflate.h \
- ../zlib/gzguts.h \
- ../zlib/zutil.h \
- ../zlib/deflate.h \
- ../zlib/zconf.h \
- ../zlib/zlib.h
-

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 16, 12:15 AM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
71234
Default Alt Text
(157 KB)

Event Timeline