Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F131297
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
14 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9d2f48d..eee7061 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,366 +1,378 @@
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
+)
+
+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
- 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
)
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
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/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
)
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
)
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/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/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/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
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Jun 16, 12:10 AM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
71194
Default Alt Text
(14 KB)
Attached To
Mode
R77 Guitar
Attached
Detach File
Event Timeline