From eae4c1ee83d41bd1bc5687a909403cacc6c74fa0 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Mon, 15 Dec 2014 15:10:14 +0000 Subject: [PATCH] [Add] Initial commit: MainWindow, Toolbar ribbon and stuff. --- .clang_complete | 12 ++++++ .gitignore | 24 +++++++++++ bin/hpdf.pro | 18 +++++++++ bin/hpdf.qrc | 12 ++++++ img/copy.png | Bin 0 -> 1213 bytes img/cut.png | Bin 0 -> 1239 bytes img/myeditor.png | Bin 0 -> 4686 bytes img/new.png | Bin 0 -> 1145 bytes img/open.png | Bin 0 -> 963 bytes img/paste.png | Bin 0 -> 1324 bytes img/save.png | Bin 0 -> 1014 bytes img/saveas.png | Bin 0 -> 1125 bytes src/main.cpp | 10 +++++ src/main_window.cpp | 14 +++++++ src/main_window.h | 17 ++++++++ src/main_window.ui | 24 +++++++++++ src/pdf_factory.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++++ src/pdf_factory.h | 44 +++++++++++++++++++++ 18 files changed, 269 insertions(+) create mode 100644 .clang_complete create mode 100644 .gitignore create mode 100644 bin/hpdf.pro create mode 100644 bin/hpdf.qrc create mode 100644 img/copy.png create mode 100644 img/cut.png create mode 100644 img/myeditor.png create mode 100644 img/new.png create mode 100644 img/open.png create mode 100644 img/paste.png create mode 100644 img/save.png create mode 100644 img/saveas.png create mode 100644 src/main.cpp create mode 100644 src/main_window.cpp create mode 100644 src/main_window.h create mode 100644 src/main_window.ui create mode 100644 src/pdf_factory.cpp create mode 100644 src/pdf_factory.h diff --git a/.clang_complete b/.clang_complete new file mode 100644 index 0000000..9093b49 --- /dev/null +++ b/.clang_complete @@ -0,0 +1,12 @@ +-I /usr/include/SDL/ +-I /usr/include/freetype2/ +-I /usr/include/libxml2/ +-I /usr/include/GL/ +-I /usr/include/AL/ +-I /usr/include/vorbis/ +-I /usr/include/c++/ +-I /usr/include/gtk-2.0/ +-I /usr/include/gtk-3.0/ +-I /usr/include/qt4/ +-I /usr/include/x86_64-linux-gnu/qt5/ +-I lib/lua/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..621a4fb --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files +*.slo +*.lo +*.o + +# Compiled Dynamic libraries +*.so + +# Compiled Static libraries +*.lai +*.la +*.a + +# Crap. +*hpdf +*Makefile* +moc_* +*.swp +*.swo +*pro.user +ui_* +qrc_* +tmp/ + diff --git a/bin/hpdf.pro b/bin/hpdf.pro new file mode 100644 index 0000000..2b6fc48 --- /dev/null +++ b/bin/hpdf.pro @@ -0,0 +1,18 @@ +QT += widgets + +TEMPLATE = app +TARGET = hpdf +DEPENDPATH += . +INCLUDEPATH += . + +HEADERS += \ + ../src/pdf_factory.h + +SOURCES += \ + ../src/main.cpp \ + ../src/pdf_factory.cpp + +RESOURCES += hpdf.qrc + +CONFIG += console + diff --git a/bin/hpdf.qrc b/bin/hpdf.qrc new file mode 100644 index 0000000..2703623 --- /dev/null +++ b/bin/hpdf.qrc @@ -0,0 +1,12 @@ + + + ../img/cut.png + ../img/myeditor.png + ../img/open.png + ../img/paste.png + ../img/save.png + ../img/copy.png + ../img/new.png + ../img/saveas.png + + diff --git a/img/copy.png b/img/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce11583bdeed9803c7deb5279b5fbd0e541a2cc GIT binary patch literal 1213 zcmV;u1Va0XP)@+VcoE32$2b$wT)?FC7Mlb`{bQ@>7t{{J64%&X} z!NH1>aYNXbEvNbFA_BNBeBXoV0;-}yHXNv?jn1xK%$Smg%&Z9ZAMM0Aev$wV z0sLT5aCGj$wmBMO=g}vtD43dyX_Ion34B%4DV9v2J4k38L%NEqaRrT=mfQqpyPJOD z<%{M7C2~9uAzBpE4KZlkg;@XLFxbpNZEGjqUpR+K=8_Qzp!zT@gJ61K?;&#D z=|6k%)Ps|7=C3|fmn}#^SXILbzWMd%BAVsEr5lQWGD8wP5aFy$A0U&k7){vhEn)xx6qEC+~~RVuYzY5~aYR z3|Zj_svBe2wD?(!7=h7N&2|GL7<4hsv~cReC9GcXI0mjMX!*4p?dN*}$Fa(939wWE z%oIRK9cCfQKtfg~0e*~O%WKyGBSsJqlOU#Lq34Q>%kd!$#4RK!P9yP;pS=jSxxS58 zmChRl2vTD#nAsT__@uENTbDc^l*sdvF#pR%`efzBe zBjYXtY-?!8j%D)#0QZtc@KX?mgu&sG_&VKMp=<^dCPHC`b)O&pe?VqN1Un8LN7d3I zvT+h14v+fRV?0Vl^>yfq$jHEu!Z9Hy3omV}2mAP78{hWk*Z^@xMpVLJK*-VxJxrToL?4@)cQL-4Cpp=u!IaUf*nOrHb$8!)bdp-+4RY|cwl7>SjB;6f7i+dx9uly z?>~$$*1ntq+&Cn9Cn1r8L|8Xz4w-bgCpQPvR}kR-(w+Xp`S-#m0mmAmKRsG76*Vi0 z#sq}Jl!5Ia8jc1f6VeO8b0=gWUjWkSh#%D*^{bb^I3^$k61_!A>PAXoV)i%y<+UyT z?y{oW0-O|x0Hn{92|4KlHWJ{|TL8oX4%J<>Zy|#uL?_zh-0buLtM>lnfA#Ldz<#Fd z-L%QjEm}+ZRdiy52nEyf#-YL2t$y`e^V10(H6B{CCp`e3-r(PtKLy-z(+U?ON*&;z b3tjjZ-EhLKm_Bkt00000NkvXXu0mjfGjTCV literal 0 HcmV?d00001 diff --git a/img/cut.png b/img/cut.png new file mode 100644 index 0000000000000000000000000000000000000000..23e1387de6c29489deafec2f0a7ab970224ce02f GIT binary patch literal 1239 zcmV;|1StE7P)2;zp67C?X|15~(=1C}x z#yv8I4n?-%6E~v<=lca{BCA!12sTI`fM9!Dp-_77u52zdi?b5WA7Aq2JLmk)cOKt| zz&K^sFZJaziDZjNBGc$*MBRIq9`d4&({l`x(v>UBsdMJ>dTmzFsw4l`#|r^CG6k|_ z!`hb8weQUEjnZJXT0Kc>IWb`XVZ>B@{o#Yh)UnfnX7(*cV~ai|UOQocm*+10Y*+Q3 zjRIjXU~CljA2?XOZdqaRgaCpRaY#~}`p^%1ekynz{ixRi4d#tCO%~ zjk4*-+B&VvJqQmU^uVR-rsNIF@~%zL4K#xE(NfK=L@4=i|@z1sQ8^D*V z6-x_pF24KWR{4n63wKN=ciwzmz`u3A+V`6VN9jy9zfz&XI<0X*yGPSU?`}MJSZ0W<~-SZ?(d<&%dncCtYT%wWrHV(H0bA z-$y9gJY?^5Kh;GHAw!Y%eVsgGW{4M|jy9Gh<&PCRt)eI>I^pLSod#~4Id;I&VHC`K zwQM1ZArR@cI;&RC75dYC2#XE!AX!$mY|-WnjtGU}!C?xa@F6bF;^ViNo zCoy+XF~(Gp$1GgtCAw{URNT0JTD4zuz+7XoP-R#pe&vlcG>`xk$ABE@8}Qt{xOLES zvp076$NNb80Q8;M--d_Cg_@%LP!H)Exl*pf{T?(H3W+EM@hn2hL1~X|*h8MDX&{xa z*W3=As#aT0oT_lPlz%~u&}*dn%1z;^S`pIIuWH_&)j94-W@aUAa#`bfw$}}9JLVyO z6(0{LVplXo<`>7&UDkYKW&Y7|0|<=uT4?FH8VvKmo$Z-VbXk*gJ~0Nw&yE|uXVsiR;?$Dh=|xF=akyl3(B*MiJF9Ki zDoUSc>la`wRcr`FXwXm;^PbVr#{6jA{@6X1KLO{msishYycz%i002ovPDHLkV1l;2 BP^AC> literal 0 HcmV?d00001 diff --git a/img/myeditor.png b/img/myeditor.png new file mode 100644 index 0000000000000000000000000000000000000000..0baef1763374e84d45ef26a1f2fdb144594db431 GIT binary patch literal 4686 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 Q3IG5A07*qoM6N<$g5%#Gn*aa+ literal 0 HcmV?d00001 diff --git a/img/new.png b/img/new.png new file mode 100644 index 0000000000000000000000000000000000000000..2913d69623b922f210b3910313ceb2fe97a706f0 GIT binary patch literal 1145 zcmV-<1cv*GP)3RSTBK}CXsAACVIT15yxDA*P&J}Q1FRg_9=vq+`JR z{Leji80M6B+kO**Gk89S5CUKf3gnIM49J=sDs@cTCNkL^Vo4pHdtYE!ps;fRYwx-> zsE0x-3WkfERY2bIVAw7u4FglU57TlG9XpGmvl-YXTM$wmmKuyR>AXbU3O6K2QIbyQ)zUZ=);{iUXRY9IDUQWS$19k-*sWaBY;XXc40YrSY$

CwA)bHW_E`%!FAmEP^-B;buym0@ zT6CNo3dVI^ATOMt{^zMtoJo#j@RL_60b84Y7MmZrV^#xBV$M9oN)Wk5a<+iyI>kV+ zIBDc!ENh^qM#G8d2=@KZjp634m4GcDelK2KdrtuH2;dN)sx&4_4-3*{nxe^ZTyU4P zkr76qbk@RUmsX?eR06vX{f?2(UaJIb+S@7`H#}Ul0MZp4(uNRSv^mdtz5<)uFgzP} zp1~Cs0Zgp8B8+2$aq>hvMh|YQ1gvXn5xbvj2ml7nPLKt3MKvXi5c$ZbI;T`oCF>rE z?vVvH^?EKQas{kfaV7rfi{qJnhmmUCUI}Q3d@4TJ{CEJ!7#376f|qLK7L_T*a3Y^6 zDp^E=_;i}wg-60q=mu`Sb{UTSJ%Y!Y4r1cV9hHF9JDNqymPZ4?WWEqMK8X52Y=#gy zs+wSq6ea{*B!M0yYe|Egi5spC<79Lc^^N5i zx#VIB(*)Ku9>C<+ivdu(s!D@PGgcLiT&ICkI#F0Loh%90pnE8Rhav|swHN>b3sj0C z0?-j6F{GEI106~yOKUFx;NKj>N-Ge-rety-SJhsE;{;f9ApmmLGK5(mzDy%NuDQH+ zVZcowYcoJ92{f58-kfQNMjZvfoB30ZX5FL-c&~((IPGm?HOvx=rsPeRyXj zptj+4(ciLd(J!AVtJdv;^~*c+1LWNm(kbG+UMfFx80D{-G6VPrGrycSN)dQN00000 LNkvXXu0mjfx$gec literal 0 HcmV?d00001 diff --git a/img/open.png b/img/open.png new file mode 100644 index 0000000000000000000000000000000000000000..03a100b521316d918d2902a5b836f4783798ddcd GIT binary patch literal 963 zcmV;!13dhRP)>b zQ2{xZ_MwCTe>-PEV})b-Ie79qiXG2U`>>o%caXX@VM(;Yl8^u?;Dx)gl1-;Y0J&+%KDQgk@+Lv9 zDTm^I4~UNhU!OO^oC95lBdp13;?_Ld#p4lfw!4d}*k@|A2+#3Gguj zSUeW1&SWD$>jFlt*hRH9L+B7GD{4uhFO5O^?*ZD~S!VNQOrilp6#Hc75dNI=S@cSgGVg15x{K(EMI^R zS8pO~@eah=Ga*P#st6O8H2@dy1O&+?WA;z#5O9lCBtEiBn~qsB2UX>-FnZ-)^*fbB zRYcN>bAVr+SK1=|O6G00qNd^*3*!jj?*g!m$%0}YM&)r(t((1fel)=Uy8%+LwNuMNfKXHb?LZ!yyGiJuLFEb6t6jq(0knvH5U8t0;P+4X zf7L;54_Ba;oLxTbPPxyzlmJS10A={ne3)Y6NUREemlJ{d@7y(eNzU%?yCm`wy)eTe lYgR^HN`9Nf#NLQSvp*!O*GA9S!0P}2002ovPDHLkV1mX-!^;2w literal 0 HcmV?d00001 diff --git a/img/paste.png b/img/paste.png new file mode 100644 index 0000000000000000000000000000000000000000..1fccb4bfc4f30ce2752213083234624320c93135 GIT binary patch literal 1324 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 +#include "pdf_factory.h" + +int main(int argc, char* argv[]) { + QApplication a(argc, argv); + PDFFactory pdffactory; + pdffactory.show(); + + return a.exec(); +} diff --git a/src/main_window.cpp b/src/main_window.cpp new file mode 100644 index 0000000..62ca750 --- /dev/null +++ b/src/main_window.cpp @@ -0,0 +1,14 @@ +#include "main_window.h" +#include "ui_main_window.h" + +MainWindow::Mainwindow(Qwidget* parent) : + QMainWindow(parent), + ui(new UI::MainWindow { + + ui->setupUI(this); +} + +MainWindow::~MainWindow(void) { + delete ui; +} + diff --git a/src/main_window.h b/src/main_window.h new file mode 100644 index 0000000..3ccfcbf --- /dev/null +++ b/src/main_window.h @@ -0,0 +1,17 @@ +#pragma once +#include + +namespace Ui { + class MainWindow; +} + +class MainWindow : public QMainWindow { + Q_OBJECT +public: + explicit MainWindow(QWidget* parent = 0); + ~MainWindow(void); + +private: + Ui::MainWindow* ui; +}; + diff --git a/src/main_window.ui b/src/main_window.ui new file mode 100644 index 0000000..6050363 --- /dev/null +++ b/src/main_window.ui @@ -0,0 +1,24 @@ + + MainWindow + + + + 0 + 0 + 400 + 300 + + + + MainWindow + + + + + + + + + + + diff --git a/src/pdf_factory.cpp b/src/pdf_factory.cpp new file mode 100644 index 0000000..ccf6e84 --- /dev/null +++ b/src/pdf_factory.cpp @@ -0,0 +1,94 @@ +#include +#include "pdf_factory.h" + +PDFFactory::PDFFactory(void) { + createWidgets(); + createActions(); + createToolBars(); + createRibbon(); + createStatusBar(); +} + +/* Create the shit we need for our window. */ +void PDFFactory::createWidgets(void) { + centralWidget = new QWidget(); + QVBoxLayout* layout = new QVBoxLayout(); + centralWidget->setLayout(layout); + setCentralWidget(centralWidget); + + /* Create ribbon. */ + ribbon = new QTabWidget(); + ribbon->addTab(new QWidget(), tr("File")); + ribbon->addTab(new QWidget(), tr("Edit")); + ribbon->addTab(new QWidget(), tr("View")); + ribbon->addTab(new QWidget(), tr("Help")); + ribbon->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + ribbon->setFixedHeight(100); + layout->addWidget(ribbon); + + /*setWindowIcon(QIcon(":/img/hpdf.png"));*/ + setGeometry(0, 0, 550, 650); +} + +void PDFFactory::createActions(void) { + openAction = new QAction(tr("&Open"), this); + openAction->setIcon(QIcon(":/img/open.png")); + openAction->setShortcut(tr("Ctrl+O")); + openAction->setStatusTip(tr("Open a PDF")); + connect(openAction, SIGNAL(triggered()), this, SLOT(open())); + + exportAction = new QAction(tr("&Export"), this); + exportAction->setIcon(QIcon(":/img/save.png")); + exportAction->setShortcut(tr("Ctrl+S")); + exportAction->setStatusTip(tr("Export the selected frame to a new PDF")); + /*connect(saveAction, SIGNAL(triggered()), this, SLOT(save()))*/ + + exportAllAction = new QAction(tr("Combine all and export"), this); + exportAllAction->setIcon(QIcon(":/img/saveas.png")); + exportAllAction->setShortcut(tr("Shift+Ctrl+S")); + exportAllAction->setStatusTip(tr("Combine all and export as one PDF")); + /*connect(saveAsAction, SIGNAL(triggered()), this, SLOT(saveAs()))*/ + + cutAction = new QAction(tr("C&ut"), this); + cutAction->setIcon(QIcon(":/img/cut.png")); + cutAction->setShortcut(tr("Ctrl+X")); + cutAction->setStatusTip(tr("Cut selected contents to clipboard")); + /*connect(cutAction, SIGNAL(triggered()), this, SLOT(cut()))*/ + + copyAction = new QAction(tr("&Copy"), this); + copyAction->setIcon(QIcon(":/img/copy.png")); + copyAction->setShortcut(tr("Ctrl+C")); + copyAction->setStatusTip(tr("Copy selected contents to clipboard")); + /*connect(copyAction, SIGNAL(triggered()), this, SLOT(copy()))*/ + + pasteAction = new QAction(tr("&Paste"), this); + pasteAction->setIcon(QIcon(":/img/paste.png")); + pasteAction->setShortcut(tr("Ctrl+V")); + pasteAction->setStatusTip(tr("Paste clipboard's contents into current" + "selection")); + /*connect(pasteAction, SIGNAL(triggered()), this, SLOT(paste()))*/ +} + +void PDFFactory::createToolBars() { + fileToolBar = new QToolBar(tr("File")); + fileToolBar->addAction(openAction); + fileToolBar->addAction(exportAction); + fileToolBar->addAction(exportAllAction); + + editToolBar = new QToolBar(tr("Edit")); + editToolBar->addAction(cutAction); + editToolBar->addAction(copyAction); + editToolBar->addAction(pasteAction); +} + +void PDFFactory::createRibbon(void) { + QWidget* tabFile = ribbon->widget(0); + QVBoxLayout* layoutTabFile = new QVBoxLayout(); + tabFile->setLayout(layoutTabFile); + layoutTabFile->addWidget(fileToolBar); +} + +void PDFFactory::createStatusBar(void) { + statusBar()->showMessage(tr("")); +} + diff --git a/src/pdf_factory.h b/src/pdf_factory.h new file mode 100644 index 0000000..f476230 --- /dev/null +++ b/src/pdf_factory.h @@ -0,0 +1,44 @@ +#pragma once +#include + +class QAction; +class QToolBar; +class QTabWidget; +class QWidget; + +class PDFFactory : public QMainWindow { + Q_OBJECT +public: + PDFFactory(); + +protected: + /*void closeEvent(QCloseEvent* event);*/ + +private slots: + /*void openFile(void); + void exportFile(void); + void exportAllFiles(void);*/ + +private: + void createWidgets(void); + void createActions(void); + void createToolBars(void); + void createRibbon(); + void createStatusBar(); + + QAction* openAction; + QAction* exportAction; + QAction* exportAllAction; + QAction* cutAction; + QAction* copyAction; + QAction* pasteAction; + QAction* aboutAction; + + QWidget* centralWidget; + + QTabWidget* ribbon; + + QToolBar* fileToolBar; + QToolBar* editToolBar; +}; +