_1p^$FX|Ya-c9B66jw@Wjkw}c<%2v8(C7{<$DEF=|Dt!<=?(o@0&3*kwAB+;
zYQYK|TMbbz>IY>7Ud)rsN1(amJfziJ2a6RK^^2e@TbQi~Ee6tWs~PPX$!JkmMh(i^
z2gcWj(TJBA#ZKbVb1;DSGelMzhQ^4?BON7A05tbiR%^%S>^{nS-Qr-}-Yu(4UE40J
zOxflK9*8cQhrA#K%nCvzN9GGGsBm`JJy+jxQVWkoF#?I_snqnp}y0J64rnsw$
z1_BJ&CA|K%S=RLy5(mj~#0$>1t6N-
zkXU;FA+F`=1&feUOq!>?Ta0#%kabbbL0@Ydth`vuIiS71SE2g{11VJi#Y{37OXI9K
zEeXZQRfGWy`OjO)0YXOB(|cC|5cbKAcsV<5AI9j{<#wE-7!@snEk?8fgo5fgA_v;Q
z^Ot3b4r
z<#!q&e)+8bgxyS(ASWlHZc9;-B(wLuD?UrN$?DOgM{Uyjzjqkz8O7+#N`s0^a@>ul
zs2bgg_D^sMAb$B`3Dy3w?13r5V-2|r_*!|0)Rn11iPEDDll62F%yvlIS=xaN3F$I_F&(u3&-QcVzwhifV5iU
z6sXQl2u_SgAra?kfFk69Ou~(2wrF?kWJce{?oAa)uw@7tVdGdzse&Gj7;PLN!#96_
zt(^ltXyPk*2$)KAH#!hy*?b+k+1N*^wvFWC6cja>bxt}N%PX^`2=xfBrFxp{V3AKU
z0EF`xewxQ<&YLpxih>tlwpCOCpW{BfGVDQu>x=-Xu4>|lM!qBipE&CC>NX}%_rjow
zuaLG86b=j~sZ%<$=M~Qb94uuM(qmI?oI);aV0V+xn6t^5e_RojZLFvqhiYj6mKw7;E+GU+6L5n!|KnMUw+xP)x}ks-iZ%{p^Scr
z)Umki5+HH1S9SL#1w0bTyF$EAezfXiQFSFm?cvR#c<-AMK>n&!7`83uH>v&zjln(GcxVgV4+9B6sz^@{T15na^NaA${R4jD7@bW6*n<|~>{ksupDKzU_vwjU8~gxE1J0mBephlhhKBlI*<-thJ?>(&uo
zV-``wsjvV;NSIQIX2J*+o$^bPe?hhtXLN5G#Ar%;&jJ*jgVACR(6-N{lYn^;RID6u
z`J{amYQ3C+%1H3wNZ=W+RT5%+kxmdGZ{`1MWNS8?|NkmD?;$k+`59Ck^kRNag*laI
z62_k7qW{~5Pgug1q4HeQ1LLH31$Pt%^(U?pPA-vI$3NCdFmdn_081JX4p7pSPf?J1
zpFK&68Am#E8%W3h$He*ESg#}h&G>FE6*9<#iejr5B8vWIBUcIcQq7M;#6J%prxZT8J$=t5Bh_&LCO#Wbrik_pg6@I
zk^|=ejDpI+@APTxGSlI{-c}`(FK{}G6Yk9$%#1XPI|)(!WF!Hrl}<0^18%+4AV|vH
z-7im)gqA?^?&@|qkZ|f3`iv0K`o4^2c4B98Wf!N2)!-DNj=nCZ&PFP(2EX%8f??~3
zQO#*7Dz5%9exRZf*XlTpDkLXs_-=hRc>K#OW^NaDeNk7IfSEYv5-_${^>bvJl&~`^
z_=x14!HOA-HmEQg?U4=v)F-46X=O+b!v2^zB0g5Hw2hHRIE_^sm3wh|o6~EYTB&l+
z4LLojnDe-zC)BZPxYw9ddrpHm%~o~nPN4A7_%@7I_m*l70}aw}oDZ}!%jIALSkMrl
zv#aDioRhb2tdzWE?=c$kJX@fCucq2BRar?-X(c^HmGl_ZTYxk3ARjds3RGVV(zXby
z&JIY`ROjpH&U1ttx2ehcPH4-Ha<%wic~3ba!RY8OY^+Qr>8kRs|r2g?1&beUgXS;
z$I>dU&P7BU?KnI|+9ZGl_Zv|VQ?>|G0RwCyRTY)`P#R5_I9
z@^va7WQr!3L4qWOYIUc6ysGMaEdx*u)KqyCH33*<
zLs+}no!C8YKSW#MJpw3wR$lZN`HJ`3hRJ8Rs;6n~*_qH_0r=zUcd9707G{#1LMCvs
zI&)TdvNVGNDZ5GCX`571{b)G@P!R?O)K)5{o?-$3Ygnr!dv!!hwkfg;y8{M5bwv%3
zV1N;r!Q52Z~E&?=>x!3NY)qxK0UWp$cYWUq~D&7vb;XSbljzzh&<4evBfeU+WASxf+1
zSq*|P6EJ!-hNyO#DMZ~bYEaK*4H6Y@7*sV?8*A$}wu)d~CcnZ?a%oE7QcUyT;@Oy2$W_(r~#}n#neiQ
z!BrG9B2;IRP{|-x=iR#OoxV-jz~0ZW51UpHDyO`X&@zV37B`H<5Y^$_hS8YK5U$E?
zlKi6T`=u<}8Lrx?+l2vEJs^P9NpX0XqXIn{vQh0>u#K45CiV1-RMrhE2Om-nebw*Q&!Hxu}@8nhA
z*MI~XMxdX|>LEE;ISlR0YiOsjeFf~0vCYATw&peso-_d^&9^`*M))a4W>HMlzy+!f
zSW%#QR@;#*s*}EH*-?XC)qrW+Wo%zgMY&9r(@uLm+EyYDm&7yx=a4+v1{d4ttH@6=
g-p}w^hP3zp0ogC#*rj)0C;$Ke07*qoM6N<$f|Mj$pa1{>
literal 0
HcmV?d00001
diff --git a/kernelinformationdialog.cpp b/kernelinformationdialog.cpp
new file mode 100644
index 0000000..2c5cf9a
--- /dev/null
+++ b/kernelinformationdialog.cpp
@@ -0,0 +1,16 @@
+#include "kernelinformationdialog.h"
+#include "ui_kernelinformationdialog.h"
+
+KernelInformationDialog::KernelInformationDialog(QJsonObject data, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::KernelInformationDialog)
+{
+ ui->setupUi(this);
+ // 解析数据
+
+}
+
+KernelInformationDialog::~KernelInformationDialog()
+{
+ delete ui;
+}
diff --git a/kernelinformationdialog.h b/kernelinformationdialog.h
new file mode 100644
index 0000000..0839885
--- /dev/null
+++ b/kernelinformationdialog.h
@@ -0,0 +1,23 @@
+#ifndef KERNELINFORMATIONDIALOG_H
+#define KERNELINFORMATIONDIALOG_H
+
+#include
+#include
+
+namespace Ui {
+class KernelInformationDialog;
+}
+
+class KernelInformationDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit KernelInformationDialog(QJsonObject data, QWidget *parent = nullptr);
+ ~KernelInformationDialog();
+
+private:
+ Ui::KernelInformationDialog *ui;
+};
+
+#endif // KERNELINFORMATIONDIALOG_H
diff --git a/kernelinformationdialog.ui b/kernelinformationdialog.ui
new file mode 100644
index 0000000..7484d0c
--- /dev/null
+++ b/kernelinformationdialog.ui
@@ -0,0 +1,85 @@
+
+
+ KernelInformationDialog
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ Dialog
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ <html><head/><body><p><img src=":/icon/tux.png"/></p></body></html>
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+ -
+
+
-
+
+
+ Kernel Name:
+
+
+
+ -
+
+
+ Kernel Version:
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
diff --git a/mainwindow.cpp b/mainwindow.cpp
index f45d78e..ec4d28b 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -8,6 +8,8 @@
#include
#include
+#include "kernelinformationdialog.h"
+
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
@@ -210,3 +212,23 @@ void MainWindow::on_actionDonate_triggered()
QDesktopServices::openUrl(QUrl("https://gitee.com/GXDE-OS#%E8%AF%B7%E4%BD%9C%E8%80%85%E5%96%9D%E6%9D%AF%E8%8C%B6"));
}
+
+void MainWindow::on_m_kernelShow_doubleClicked(const QModelIndex &index)
+{
+ // 显示具体信息
+ QModelIndex list = index;
+ int row = list.row();
+ if(row < 0) {
+ // 未选中任何内容
+ QMessageBox::critical(this, tr("Error"), tr("Nothing to choose"));
+ return;
+ }
+ // 获取 ID
+ QModelIndex chooseIndex = ui->m_kernelShow->model()->index(row, 0);
+ int id = ui->m_kernelShow->model()->data(chooseIndex).toUInt();
+ // 获取选中行
+ KernelInformationDialog dialog(kernelInformation->get_kernelData(id));
+ dialog.exec();
+
+}
+
diff --git a/mainwindow.h b/mainwindow.h
index 810f6ff..d48e22f 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -45,6 +45,8 @@ private slots:
void on_actionDonate_triggered();
+ void on_m_kernelShow_doubleClicked(const QModelIndex &index);
+
private:
Ui::MainWindow *ui;
KernelInformation *kernelInformation;