Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F630530
CommitPropertyDialog.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
4 KB
Referenced Files
None
Subscribers
None
CommitPropertyDialog.cpp
View Options
#include
"CommitPropertyDialog.h"
#include
"MainWindow.h"
#include
"gpg.h"
#include
"ui_CommitPropertyDialog.h"
#include
"ApplicationGlobal.h"
#include
"AvatarLoader.h"
#include
"common/misc.h"
struct
CommitPropertyDialog
::
Private
{
MainWindow
*
mainwindow
;
Git
::
CommitItem
commit
;
AvatarLoader
avatar_loader
;
};
void
CommitPropertyDialog::init
(
MainWindow
*
mw
)
{
Qt
::
WindowFlags
flags
=
windowFlags
();
flags
&=
~
Qt
::
WindowContextHelpButtonHint
;
setWindowFlags
(
flags
);
ui
->
pushButton_jump
->
setVisible
(
false
);
m
->
mainwindow
=
mw
;
ui
->
lineEdit_description
->
setText
(
m
->
commit
.
message
);
ui
->
lineEdit_commit_id
->
setText
(
m
->
commit
.
commit_id
);
ui
->
lineEdit_date
->
setText
(
misc
::
makeDateTimeString
(
m
->
commit
.
commit_date
));
ui
->
lineEdit_author
->
setText
(
m
->
commit
.
author
);
ui
->
lineEdit_mail
->
setText
(
m
->
commit
.
email
);
QString
text
;
for
(
QString
const
&
id
:
m
->
commit
.
parent_ids
)
{
text
+=
id
+
'\n'
;
}
ui
->
plainTextEdit_parent_ids
->
setPlainText
(
text
);
gpg
::
Data
key
;
int
n1
=
m
->
commit
.
fingerprint
.
size
();
if
(
n1
>
0
)
{
QList
<
gpg
::
Data
>
keys
;
if
(
gpg
::
listKeys
(
global
->
gpg_command
,
&
keys
))
{
for
(
gpg
::
Data
const
&
k
:
keys
)
{
int
n2
=
k
.
fingerprint
.
size
();
if
(
n2
>
0
)
{
int
n
=
std
::
min
(
n1
,
n2
);
char
const
*
p1
=
m
->
commit
.
fingerprint
.
data
()
+
n1
-
n
;
char
const
*
p2
=
k
.
fingerprint
.
data
()
+
n2
-
n
;
if
(
memcmp
(
p1
,
p2
,
n
)
==
0
)
{
key
=
k
;
break
;
}
}
}
}
else
{
qDebug
()
<<
"Failed to get gpg keys"
;
}
if
(
key
.
id
.
isEmpty
())
{
// gpgコマンドが登録されていないなど、keyidが取得できなかったとき
key
.
id
=
tr
(
"<Unknown>"
);
}
}
if
(
key
.
id
.
isEmpty
())
{
ui
->
frame_sign
->
setVisible
(
false
);
}
else
{
{
int
w
=
ui
->
label_signature_icon
->
width
();
int
h
=
ui
->
label_signature_icon
->
width
();
QIcon
icon
=
mainwindow
()
->
verifiedIcon
(
m
->
commit
.
signature
);
ui
->
label_signature_icon
->
setPixmap
(
icon
.
pixmap
(
w
,
h
));
}
ui
->
lineEdit_sign_id
->
setText
(
key
.
id
);
ui
->
lineEdit_sign_name
->
setText
(
key
.
name
);
ui
->
lineEdit_sign_mail
->
setText
(
key
.
mail
);
}
m
->
avatar_loader
.
start
(
mainwindow
()
->
webContext
());
connect
(
&
m
->
avatar_loader
,
&
AvatarLoader
::
updated
,
[
&
](){
UpdateAvatar
(
false
);
});
UpdateAvatar
(
true
);
}
void
CommitPropertyDialog::UpdateAvatar
(
bool
request
)
{
auto
SetAvatar
=
[
&
](
QString
const
&
email
,
QLabel
*
label
){
if
(
mainwindow
()
->
appsettings
()
->
get_committer_icon
)
{
label
->
setFixedSize
(
QSize
(
48
,
48
));
QIcon
icon
=
m
->
avatar_loader
.
fetch
(
email
.
toStdString
(),
request
);
setAvatar
(
icon
,
label
);
}
else
{
label
->
setVisible
(
false
);
}
};
SetAvatar
(
ui
->
lineEdit_mail
->
text
(),
ui
->
label_user_avatar
);
SetAvatar
(
ui
->
lineEdit_sign_mail
->
text
(),
ui
->
label_sign_avatar
);
}
CommitPropertyDialog
::
CommitPropertyDialog
(
QWidget
*
parent
,
MainWindow
*
mw
,
Git
::
CommitItem
const
*
commit
)
:
QDialog
(
parent
)
,
ui
(
new
Ui
::
CommitPropertyDialog
)
,
m
(
new
Private
)
{
ui
->
setupUi
(
this
);
m
->
commit
=
*
commit
;
init
(
mw
);
}
CommitPropertyDialog
::
CommitPropertyDialog
(
QWidget
*
parent
,
MainWindow
*
mw
,
const
QString
&
commit_id
)
:
QDialog
(
parent
)
,
ui
(
new
Ui
::
CommitPropertyDialog
)
,
m
(
new
Private
)
{
ui
->
setupUi
(
this
);
mw
->
queryCommit
(
commit_id
,
&
m
->
commit
);
init
(
mw
);
}
CommitPropertyDialog
::~
CommitPropertyDialog
()
{
m
->
avatar_loader
.
stop
();
delete
m
;
delete
ui
;
}
MainWindow
*
CommitPropertyDialog
::
mainwindow
()
{
return
m
->
mainwindow
;
}
void
CommitPropertyDialog
::
setAvatar
(
QIcon
icon
,
QLabel
*
label
)
{
QPixmap
pm
=
icon
.
pixmap
(
label
->
size
());
label
->
setPixmap
(
pm
);
}
void
CommitPropertyDialog
::
showCheckoutButton
(
bool
f
)
{
ui
->
pushButton_checkout
->
setVisible
(
f
);
}
void
CommitPropertyDialog
::
showJumpButton
(
bool
f
)
{
ui
->
pushButton_jump
->
setVisible
(
f
);
}
void
CommitPropertyDialog
::
on_pushButton_checkout_clicked
()
{
mainwindow
()
->
checkout
(
this
,
&
m
->
commit
);
done
(
QDialog
::
Rejected
);
}
void
CommitPropertyDialog
::
on_pushButton_jump_clicked
()
{
mainwindow
()
->
jumpToCommit
(
m
->
commit
.
commit_id
);
done
(
QDialog
::
Accepted
);
}
void
CommitPropertyDialog
::
on_pushButton_details_clicked
()
{
mainwindow
()
->
execCommitViewWindow
(
&
m
->
commit
);
}
void
CommitPropertyDialog
::
on_pushButton_explorer_clicked
()
{
mainwindow
()
->
execCommitExploreWindow
(
this
,
&
m
->
commit
);
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Nov 15, 9:42 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
132905
Default Alt Text
CommitPropertyDialog.cpp (4 KB)
Attached To
Mode
R77 Guitar
Attached
Detach File
Event Timeline